LegionMammal978

Output length, part 1

Dec 21st, 2015
68
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 62392662418075190269500973650117675751296718467979385860906510820762638523167025338785757500645519075530144655980643818496051894817277512462177086492238187322436047227630418313474029391714851289433655645543077706889211523174120932537181741140175645071396865640065216586969398970335374925153942344577964508949918267812872829958753410103002530175554819768128456695600068618943613621594422933976305904433562803052203007792381503105895759775504982507646152601337309285305419535279948654205380471458975985051579356561339133067127508028735520252826701847011028145350664570971955552469744964689765831879646351292000930622241086379364071870079757358993480777532890097879140351899229910110663010706531101416693662739402526657485935731338437342224816921634132006800433584577816829965189009543896916410406835585838306321555440333462615970035008750725548546181949007140949218825771401015360024265916875345661776499676404965799115122310771440164374384387922290606475829240815820349579829911852128344285597986914289444424719961454114613683443423456427157639814297458868203174357738721017316661562081598167197475048714735626667317511861932126334027199362574285231821831786073964442483058671377995758081833432557061459343380245805239042338067450964807747697056312401112532003583001327101570055261166205542182115526344353309025646426442199123149574917325960779303059820777298042209564760400498178454175523655587861723939630394660715690435169143465074226039168081970761086363880423150390439244850137799679022657748871002791516931744398775032948115075563776710201245313265556900814013468851598270548799435085717477744742702236116972801651017101682751371796146391726831195609188008946015227831634612093609957002017645099305695622491157588783202604185462370752425738576652816374049383226704172242547119767376555166708441317077949776398974292457514797313641798078462022432240180339379663073261606203853488506676881536493966538209941146971077749305673635581230382411694098575535571830122348236243454414907317891177098770084987469893518902959245890182608703386315221996439478700448257753148375643896040200142258937308484417650169368692130357716945020769463201390288831914563216429142649355604910145501574723621345087895420836975171831894160233070249472942030119826607467811285682005293647372900601880376857486562783200105427407620613330505941682589530565792533454839278949029794914254513852990035886141482116372370850997306159020332665080845574830787550656467854053404125187974474022665258900670670183275583562713268537692019037601124077542953891293093501197632594477829272029604332981979713431164271832210734977298125853024130063484370229273394493204400538311118551196308194108723763813315833599211936167026259019935636358591497924185101058307989090696699010153790636924434645565810600769707562824058091045909946375324328546009334427624126500711937559278690509627594423793396646383185263409178621873810225469952737853468220358205221580306187118072826062660840475566830774837081978998525256656411273679405477402548348837807437989564440820116966693484434390122962224360008837453377356798056273243296065482511830496927544995986683530619058538026330739894743265268997104293067665946327059346954074475994189702735096164992349769661612014303819881130254689568006011750179226559921691652915631070434476978706305366701276836426441962206547520336956459207965802851203902112282150071567960772883883451140122516142496613556565345520880552763791583287078775447588551341953411194685629621942559619501492354466572886798238328096268199893713022736228602898550756625248630861553286002814027761668200202744918494164194036874667668489593316427281138337812988410807892660724416477450721156493454888603217560895775477470632185504249593843652634634393613005138853959177634486732979001928726327092201965117620461732539740030890360884272581338101329973113891701497951024528031141821653529084185294240089559188872597778495757230297445612339198164627497458206762179328897516104346140025009622833328427369666041599846176543099817957286491110905124774799014786686175630554873883991122028549962187602987354259553965243716773794226283517843273452637320979482210513982232897824975421852675307715835250950909828589151844131783716786672036826360737172800936014031297598311065476275793882182903195619726362640084456892578027468052608654486726886706014194846360683353308207951294499604387570133389186669986871988894517978523548628272958963930574337637935951345867084753559865935426573600007982410076272875312568199520482355700463125403995756310045804854021124740140784134720433382287923249214102141212896073864756469399123379301263070877573377640167987964210260745770448380873702897652462358681317478675697988683668193902633375351910808912899285980966644920358026524909142969491374876248894761938780783310103751144494413329110276746154352889501310621433375488217769316751276561546464120788342824938521490646315210995614335268574519217065349704463837626048157316929669277048097316880616729640307310780194347772520426527228522526015340149682238451322905321682164237019345774924919085727138668289432534032707651169129148679469381360599529575196424854003942084173658882352511364176345946279064943825756348060041855436380880171580844802852235170019582478685817091247301016366466376143875352502558893627760972180843786666251915604428025733780719030979751265192654625002659615384817510603148462549524954350965262593923162653622303925632044590325435785078901333388133795965353685451652457424819706362156599872496784137280733968606885831674547328715685036389838433997880307651190649040449413510714868721917446819000348115424318370708028828591622298169911844271814262321489970757990348283984657755757111751934725506483559570013093563243942953834353714781973178864875451343909866083768614382026147738938864856901309311008594809173360853642924979956433704670183820704051446986004155737406815591824401023173650602386041546150360940560175655434462908816222137643236785708352408455709345147444564985047865206728629160143274889174389489101276493114132016239034556340740567557031029162910397418670155077541969547440828559368281195058455643417043709700158635439184673743628030831165796676826156893591716979102577504665311820483515153531041517410465515565908048715967891762937637411880620894829208327945750938991936440241368739685726419746804146428007088294893613201217536773446781889291065046621535651666286354741441388284218516365104068454451168226762840358706407170152318629999536212236286419289220703334620915478895266287049390248249201793271606825358871843704761834048786319526606108844514004505351779947829912693728213267126956064696714554083321481762182912053416390876145835782227595973137223212963553115608233298537749721407994111253223216445541219808102887809567831390140923049290116022335189912977285827011589940539749330364481224266548392328607560754953320490097883763354228031045217987562015219181895921822400154478209289235022546441633150639322334361746190016313234490664132981559621538271271524727382365314906313810537117028652289825013467405790673397675767699824236827931644385831326409289405158691642153672769893318687792330064346083381361020401950081349403696739013577157845752695257404157267076622589624188735205106407220509881248612010053188079105791670909089620591788935948126250179830954183360371034437152353791597131195946072471562193394761148638514773402440024878242188224709819266712880561859839231140183049145539992733984935365920912890910847258501888275495670225492202327462510480357683186480428379824263991230625548484736245954444279518863108002337341998296652920646053196481997343179860413360300192879715538129050843411169750490639626090978512149167611810890080605299955363351086374211320629437552127433613623719123526627890536914128548063108858577900383829385999488062813240514832291102662081512653738389920814822271772247363857925212398280911062752081921303394806552720706264081426993918252664792611962206955656967567123836207687143647927351423644076495019321068201814635590258911425991441286737374470323210530189237351544112093769945293498208435723022115813975400874034502576632711250928117728952347397033144757498082188093325622844203900615368180764079043745597120307240151445608382262810434401578307271544703275888484659157690208272341204163659569914603392248817866838756371768805431120911531958303562237574839999075413508218880212617027294530983803235376793218233863744455470070132028862070086947233778643302241417946711320995890150326917136573210371900478950871642503980129522759565573073658650350193065855855773345941524643910802226421424712077896140351943580145593820578013596046893532019857246643429183161998827770918592794780699000766903783160602509461520574488338605100900218518293683126876397078746095955236188295853641162243292339768690560817896707859024422441322673100840441621733102523652245347527284927949417205627034970426668452166371680519214984576746599469721879853907282169853802423716628693287048674810646782722957741697184886310043058498584172195578331687778164564148143109964566029637589874669402894762753505360790509050929219893841056225712011504654113383535917700736866667039684747839100570037694721356454717436487318934330032915363816390157891485348486415976661743480577062327909516880291765507724164795626275231591673914234459926219807365555872719541473724788153104042506379851487788074977863191876662569338646399389125992386136101433097613146061942048875452300296754206490459094191387477649221797926265897442462539276795532276316701878955041683459403217705523688347247073557964122084531832663183681166677594388387768051061670811147039133616558553174131408852529508427156224953114386231001993618737963069913963959211088875755016875593226307738559352472602291360794484714360670997527204630071819975910037980363294362519001916619326534447202502737524389787987409076115773314042645776448314464468811799027827343260211323800189837490765557619086156640907079921955103940954706495660033418503417219336610935511628870583716310621878038093126947817130372419700468040313835439989414525460062645290491599675230330470875023469386359194883722228028490342498402482734798571912845653354327096233354930814870374488579507283409744985537748747836310565537036219103317755255041398970132904501623023730462017367604757321753090008016149414379332548738494257955791267934215598963032442365329198999384195383123342212957306497640522420268760808947773226643684992796524714760546395665014728134831831443942111911240909760114070210021992570705061162770523908476881727038253593758676629571371354858458714841402984831146240825518143638111346771324313001840321657425433010594866827229491732028777330713805876853770479297256391075135927032803560986430224777583454157415769825077229589470609009740267475382161103495643950166327531558464619915695029093747444832237178545723926480179909681148296888777047902520512537089534603247775677760533229531096115999988344843408119106982609343270067405763104662238695264580677107426479036391034733292210746580016332709522562784979322860624717930714677185352143243600867401261713139012198075777856806892788534506095506157887361049761095953016183607037150496169194338446928783249370187700855936310693442996290367113691104653085325611956630335314566142416537331308846370866786264039187301562296941266550618097397844152421766889443393908334279502105364327676734772997769787111170278476101758322726394326564456769155251608266326328348776111473681706043357202239292436257491764803298993575675691523267423026201138141832518854307517382675649216122795756418552668245742933750073041434360748476935961541250366515298755961426791418966149051510132098208331506705674056314026591192122653739161240872435345154975574242797650362264861944115571005694828381982294864293573241861757185077949098779074843670591185609510672112415310548822383073169651431254576916874069762333227219883426888227222947847813618228335045368937549872835579420586370996900688907014062659759199696462042555058661728861407689478592116793257609828710065447478896998636396023834746639484145480339788771794669239446255558973498537777847129661498638982489904712819347184167250948329972267306778611539444962787001658380139457287333670985505616062530115310221694155620058859906933605764191023937026814401002945704952775784649168808236919599724126711393745239918353915998340435290229415743353447739160108171020063042699876177108298678956559243592779659726153083964839211418051170609559166013600482006357052108071210181352702617322581867101119859061412129095402039858951789646560228456302114384716685341266349090290151826570364680787950130752549086255377783297809997438135494178103407603664903226883020253972180231699491855041673170480684938961382211572386493429343036151548907988294771056753853130204932937875979280537506027697553884132112799712799849902054452792182592230257692947613397652574267957762851920156878542530837284909440952500091017689247195358028036966210249401611092544847647646358608329652379927293354962238495401423935218686551107995484901491058377418341516829536508225551516821123552826890307440383053826377887099366309383033422770021483547890161308588572496343018380799808039915330375314569807860652595170448561925096590807546886295467343272277384010449013288925648926943260832977646322458642736418457893743045141834242585890892315927638949044519015367658190809601123795637879919609542783582952426126276358355547021710220912972474151186014355674546969402040678411896712434625033328381120123463484431370865202918244032299780497085657612078093652280213972376503009315669630284086010333082123833945485260406276251223527221882195491802602441320238817299510704319998608917871967507963055144966565511795743434453924964898823346390017358846689782076946537510565423975788487653361442563699779260846436044488921143869395076496908468204708266019528689463286009013652366405761776185984465880987866670189249456057270185660125854390154770431322017719618535176674017602193245275552902939888723555768212784400076735217918618064901487090966890360340948918767693713840900313658298214492533472217505436210644037495503319872260734491720336522122502720344833446249110263122154557443915474807642246994847655476743143573606581835763731166850889713212483873843394245786661537102890231143778117961774316137293800802933977508638952553523605704007377315159632222189942712041655804012807869229347675477761802502738548939369810218292258505298531673501576196018982878262135831062565975166449385033075843222934373249349337648689582393936583723145592809097718785577957703281086403571760458162706550445806386683201938001998745003774608170422964747800030133726011156644651640664053555680137994041172314143894851019654953361845060403066960041952098843697131130353538913539324808817268104291958323533029231628516820087322973514611455613351273368004523574598001607005936555933307936167019973844084923428298837957782709476049406194488483148405736002204622154425490285418905788346722108946957537565892172486174146784478981629635461764118420342281456435217686553080831662223910299766884026719185246671028945252333901289377950000998558741970009093668035167174391560506530900792338404950449197334408941470849894383427864849449903548927584935420980961564441656346672508501280295191743328223768931416806144971531640669488875100788906320692367251758634877282127444719397688873656872978221364717936224039429930581940318436437528146059582877937720217280570931588559537251089970494453709896030541436521865922458132497811131490065590363978185653134486619907481239713554987760383847602279832002706037963519362648286642835411113433694106021048084882750832624077422834577644932727132753338822995566132910241953962947054363364577863164611187078277109446669966905454336637719966227127936947086043376421828879092340732202799784655611656104431557279816298780965718020418721607497635949827940092909099635684443510749724073132218678905584922596233751632109277172400731602530027298394496785103174595445505063201784573092057408505631299025672930818387393595164567714763140425847839549125329202167752035473319847773912457089489642951175331927455155821231891383907781135702995884860974655118260166986780780206527233409868092784820358421069531679203199686892835573395158800370607945341419229979731789919321931837033961203728130006057200589766802343629673545967039662073825396964274037356978515355375762908068445852500813655465476480513418397819672719888224711114309137217863498631019266891720593086522046729757488181420728265186204137661843122341905782743824138114040416883969085460691287008043507357115630457650591527435813135967181463080748102218995257806347252545787918078025910197961078069736560066316621612534013377419305321108180240789901330084394046528340992541491152184034861225442838936709290356777860485134758673361690563350708424279000136310278735850099418078746911182393673130085344905907649858499149382147868435284639472218790942636946195846059636781922711594728336639563775110126425925691441311784850047282290934809769307741350462135566855997978265334686146074415206493952561880176842385543668140056898858008151024320558987907198258127640695037364031866374590192248667174827808852457098276203163756406589883694038940932801237648725729409639693087520927533289169941978170805606426607062526358105864090775077516433542612143792355634520907415336545546396150487355044735736202694747183109522558181844713113886298353198470895700553746712288975750022256903212429580875169527723341381127019650720957974663398630499807517054954733305092480016987315793249209134755614336556054558639805254410139614845372754711516085255385495265783378254279861921805473174842713946763874470120371167032703753209615921492930580583399130597735385948531271663513869916696977120346234947305995635286940181155612393974823859594815188357661965538957096781585710829048323529280903073193290880266445436387380446351429394316589468341393732841163433954588043855873230988896821584087584385757584372984179699907491371398073273512298637707281281259535578588348288160483410265512032999661456685902464264109257079822414696575632562688144567577062286050599134509580035988684485047596145429572071746211943990595089269589254987992846418807015455823528223181955020181013713496439507511795667347854981051912445221962396832722896789287250663103610377507062103182042951738028485071303869559695628093115102641199841926483865745975769112741056723106102468158220468900473284754161417749261275245378672783930794546274367828456077578133015508844901695940783732142827353155005035413325247892054054308694214082648730816379428687816880566923550357619990591300212937868415498908158269556910990783201519750344566381236715128836198914304588268454666851909384976037853203265017717759431044486247604734961469846176351932687537487250791814264021917556957301789442019341409288980261061156225638642779537395750299801098430811027290761182569420362094269423746370244069560864156076945610262416706898533950277861890108584097599802890087561967028198529112794995673252050251532800011168069791508837077663756023949453736153176469643225550592785713254076080611120451070342225837166436372008978095963882961033613289243085714918970273391663210283396675461279251779163068626317085705877568593923392723116830177243185895940355069779851694047245696402372056984207814473004877553993221283866959399971273867233656583671025405254905388250735551114254235713247788206108018097768676705669120588720405090843381968911758199874988389272210496333458054486087865522933290092348438104460842302204504113625850167016902870645673042195009640547967576962761292602899605405378152164053931084758773805962305936576923527650106799332499919159748576204929009805837226078281196320514495979443592094589144323448879918656169997995924579878362122065642316864622520125100208036267886441219171681549332756801954044747046418785170447418873707179392468362377665094581523264447716101109188627496519687611657755104314925530063046174254958237380227821778343157159460202884478838467343476118632860725085400705024107412161292768748343037731617485856027514604622437804399906706842229100212079587085226132626157578356257160040762894769761817274097389409575035174701989595592859108750984339331658675209987636932930787788568365591527172587825808537529585040887916347616475122881917912229414663063790441320079468291320343513715904042069261337537541683110882563677874269459215826920851832873764334724203021430791558841771448341506026202141182896846191570071475377083509736947505825444216747759517260746898233569912874431955872847286075672212338257826127369951851829875033066363395213910076069667947550002317811147999180297397118921419034836385848313616478684558610324163805502239832853958746376112252294667069263265409125638841187862642216895949701084532794093479505810727864252047767536124899796582346563601945990047884343649228746544216355057482163909391203058184223022774309962034286041603523041930789167717441797943367710435809155751779390213124514041685979433842042330919787105141385137770024966167620829517739294719632024007576482893108654059102474189650565635253759924558977182097841893614208828097281443969626706720084768864469710617617523708231279576275811082855170211007705926180531851480705858814390028808443306277347774304327066453528764298665843750873573687928552256307086738527198982952648798458124264546943111753561107544654667457146659221460393464189740328678173092149884685871334889479771682377344658967366306011868774635514435729045018098005434832786032517582454532203774965401667813642460639817280820640446440307920887823964584575863284280546065324637338439901012308436832080913643171848370713835819379966392107742481406663338355201184967987586924877391244874074562074837945462462115264180574320673816835700906933513067689514007643197961239155217649504252973760686657903239707642985765292045212760674882747793067963803298111262289879856051370255592686380348586008015539819126294607047977817799629586531300453027082592212877410435677526676376085151241246579882679222134403741589907764190916277986507272167249757475876977796416196244453308319628171047975410910648308365138881714820106549633081790575051416236818526513520173881229523930884591466331831552948156403398959701138003290844512732461480306359831730687636358666637951798673698350580779716354636898697770467265735833902352293893522492175948164169692161668182486444843961871686730268091930177465417471594617840510320558708467764359927955502448801062794818425747987244573655074466405781114401740339258809456567556094848928854022136287066621354746794310458465776036771416734081834951650853588483189328326712043578292528881985416361249570059101076075421973782162178375331943982063473719334351257119908032221149224091572193419561155265286501077099973835108776400835007537300982441676532658535057457598042111550978470558693790427929881392175483354195312759554133956344515842010956580241761430856996705680050778450897612456188206295608807915789380127643694744169194634130496407427274111092627935609546630342953336958413913188710575418711545355952688783701548712880581191370723210773090220142192806506402873960858523456693514098945745234317639635998416530699988859834867147370058718721337383058771657966761975277576666490898644930942946498022839669614196816453247444501642469651065679579520518003975548792882081332235714964473654156248415789686166112700619530506719108686478553486856159631783634652011721036119949868796805627378108266960957250202141499152691253796852872485997075377609745581431207945870744851257078469112208891014205029186090705366909095871876196680361937155183400580032930671842582030844157134918005684955999231149401869894153181309404933208258259809750677324328609262595486867782094008438796666270323990019353270682523810652670416443319612120906286373094022670374315683123239362158737178783932066655078178550661889076209155240861055532981139452107645873955544857656348201793115362759864359793771136660768562351283367668233720163249996828386640818904189031271200516689252179268214323739618516866266721938924821010970738586993168117289548843437351909461311829392597136954064606422399140601891498372287303511122368265381837862124826579894805681378828483327439244908178114673628363019838004235152912516084941279600044212744949065064956963202269277050223739383685559461719436248945884271483251349728100766343171116194880698385419858446628953562764727625463761424147530933950601552308448446385448759769846071493269004580674834694831640245904673777626307454244477457436155258065272629051657322284826295388953474960842019334845138809574711529507037755823259304923983621859511811210264088297940025845536715577446702066425459914927575969562688634295389817559947199104201972133117944180222884370835953232487054290007373777244008577667188858691293987913160254665263161425985665380228332413774473093588009052603653421655651455706489739389360940172631466885668497664699598288443118149244995546820899804363523460609569775113719273322010168921293427642259210135917970568549883216110610658217707332165607623319844870469325699636080452616059626000930006173269147867366539917344362424250838078482344423776859130424628418158313201938003244457434911924133398113694556189886241273436747947927951768963595397857187649155664344208587865202198582003968585769958096467478674528159825305766527706118858401668833519342057074340780002817800046414820408569196579967546596734690134705861865726041673210212194231491935113803989977788754625501203759575682782981275642166161790411992996164843107093741607366197076450134352465711717189915056921152246943802388017718038524044807948454579495139957532704640799362990228307895914240672402884613218453087536105746853108742729066787320685079180374014266555247336271892008738928655971363448911362658109504955083583823899219275014071232381964224881701087716509930650272535434317798750767062111943022244360658552866931002586288747721304330245428023791141928064625569205197916260516407607865487489797441631955683190906121481567841215343154795613351413989649327001132248549586834691076512073738536164099576942516408272732588804004766194905060953296123946815752536697886524289420980380027223506381058732288320513021245712773852535945407766905115071793313418918935796718697463825530197524075157037938039805406575761826418470575870333158757901310753347377487737907403353392464448045706197745461727172372718516687286618522228438048092381910092527828661038794948809581205803355970320096281945133722127893180277978862820768919189344691279117035113962713941979180434417848375926370632646541304983466451759256922416527586755097743809996826522598215763251854772931253806080446170523424133515940127748030403177789577777603209080691980901159777311386687434387057379195104306651638199735995282800272593488261074738434110818904564217050193233496542234155198347550633749012911418290004936145565941327961245707083678394786318182359664419206767281426458984834217611897742686173159370828313805037682469081684149372376304758602564632581507690657470289712170759615388382368897129887659980520158796489362505024549648410988484740098123967401524293976819820403967337269740374682328678420136317401609955826738100415767067907427968562770002797350233929660515525461812955115223066206668345694085294498225502018915134010980963064205722058697604419672408485417282472284404783947319530795804677736980562566952947991082029525657185785617849611686876659051208617369561219744715561512825433685392762455616313924684581205228921190081369773486600104165791549033431263765750597544043503917374358953749946773666221340501807732695502180838064339022662838305687859675879620691248486598548478108348538667776787984860661250890577091231444459230148469622892110147642435491584670926801254735777324171074616262022379471224054731795469737935966869586930003856092392882616218818056115499100925806641032900591374565334979456315719296849131953140755973713660171937579028487409788436661060154144811361536712059608915438328355835046149451063856704076310177739262896980782217445896907523811660165844888037967781582686712752163557720658340525599226497738092862847930488573689791332047285683262372927453598759242753835938002709289597096403462871975886867472808454790212356593615038372561267686146130411033101580782283571376735159860358298227863772188399861221597886284964608600242461387843290225824373786206553117397603301436966937324244699753206331986966078930069961129295939050046781185297275226824631811907949633288118879468072762135458027339348073629987599363941307125180518811193441019423768343824797593254636046437163111905470580777128622975786260594631765932662428641955176249191862246451888826486102616315792558392221515091729736578169829931183984429468830244822719345243373272495540939467763724986453564764763074146135988843287327464487250809293349224966944612356461270630533153366277244185148621567270022011188953688270818015196531383054494957962504133052130468171719833946016887466927374304325745991279471815891654175074617407307078660580812566028474307754338018892303253534844179328051037272576372753135607525113586576683858412530369848105397480023656801449663154063855445324753052905541946706037866005668491640769752511665474025201243914874277404902323626652599385014612081691297173687395171891610301118280572046682718381264188300080039895156968991890084268078607493205149786361576011280437149895700258612144193760370085737090286205746731925122772856179147135686165559174622050489265540566316045424676013616341293310163517068773448653139347052739845578939958786053222529833424646792856627318357837049813417799483819012763375618692639919337513577138947333481630114348039430128717993514041472626788332326688201676241621294376686158727963738357716180443100172593234003709073519464880574063391868246164435384552899909607799491416870062295873893800715778942408465024613844372834692904846461696995659796690098009524981560628979657012488291177528941267738670350563759485304602721609413750688262472264645124635889276888070095763334125401592197451113404372492839777440755789517027948932277334793533449150241606229504599859042414346721222141115502858465342126145635166951724237912445952251575391796118074003825642144817611914235449595796043500055746999082955907002100078255791612374423147044731742198234570365121637537840045811969439522536280345383378814796198220858103474586325898758191757492135099801971334793085369462273100951229176074772260678543205883723270516197320197604777709747230945680743071104330006048855139421358563125651651743996144345611944809293049962036887936085867068179328992843739362669331001479347809369811967190334523649461648760464074005908334087104961786615243158153361616901617630401273376156162026403717058183561999139334534885064641675013871606614099514748568646032028572049801546448477838696146369183228894853277647785914189482266523493824888002710217358393780869193394160204492493495862534822556024157036501865529466426257999121586803799741991567969074977724166459636079021839787490645570742680845574894171602416066219396163976633112650504779426828696258789509651491753625455970456716938012786574439020384023844137627052950310321327816721595428125967323939929842921981168241869333444457092286407301719335079588214843892383504629257655141919141278036243951663753166903011772300836796977606668563350668810168508969048445865268974137633083792102079192670064031452248236616326813291139038503307146879561477614848169471902311457201057075608705611183046283743484309156463803577656749762691170840663396400399871327756890378612021375608950484156772551048801399460328671200090686815872272967214360811858968753763199620550117715546571750783002289026878945881671925572470804333278381827977673782359494311498178920712650576000118925862230790179899580440425998898917365573321188829923571681620487018890679613967869971276570120266970046597506154560049986408649506290867315200968226450676785005893997156031622344966771633304160185002147779929541774436489842045823170544827497546282287456158759700042982951125907865261413699023775138083609306944285233263500084645326475877816725129940343705457744792803537772857660255243868156357795878047458116029594988803987678463046278426296982067007734310640119875184149380510025031011520927951759150054638061588027547351926106899288687353423750236805773074451243528300455170862339006211154954278681211139678486719756536506451397164616977552944421261475611025980633897986830686281830341054525020220260543461597508562046779583468269500517251017304904908454045637435553169437850757291867855152899931044527037176263462004739214281433659898343620495618635383357533302656830447222520881980875100126857989093675980401294434991739285977354713164109411609795131589141038836821770994920784726295289065729169043341181623046397556052034782610636725360164171050502089703790773369631250809356206185995706723878752323331893660022478003599098641580888773202623240024104346831021674176179585000331200717440144019156562756134262095076381729919720360235012329674560150740902665488857427173908852498981892318331419063130979486148240860806333732137147901368968897499906645307324334033012615120162761264506570748340561213333167187026235374707266961645425082295985660071033784017834425359583735837712903495649492617337307934401390336385614826781059358413891834261274295380161924271511386198483895216690955192624452433663468146631695736605713837677749756419390411524845519216009473418830517213872072624599894334903082827921536841373958649794635862507344297223511252268803393373388869280283676873622900500787630578398666858697692479942438855665605296035974550365297714111845594543311680858069679479228106618541240286011858136158744738561732399496574214612352965652499172789667460174822752661100361983332428012848214388669475464457215249774840628527062170328455010222200008101427768711804158329989710975999324814777139053111673152332350502034339501762281561655189536663010067989449481033090970123339764236385815898680239823552308374671260454874338854724300224772871130106350446461073208805786343385405195797446128794303349030932263305788288955960618339754616644575383982095743337178157527035233840579319986886384795682222295568645083591647637574076071999771225450401915217525108798038346865629726916533201738268307517997144518549951853708720623443184726517166187149726177937872709190026909906273079310756004279326099255403170557690648203182879968159672295524561303139576079075903883530881488332020312849498284286712519978111012420080415240035845151783520307525124084282948569410118142947883120003702275827314042860488810130506500837927387920587769669104518902904570655301880993877722718447795034237798407128683684015299820010520108328477157017935547611242792057460367444258851306062120525110977793376807340681095744948391575871991545832265297027435780036043445790810696127790529508192432650336339210032672864542284578256431440829552464109286146464564724560735468819996934427148646283949034170943202326050608313810273078132261753190156648861075010777548709760067076110297669689897125822095311708704504336956581882107773523715739595713081851093252841492167444502092943311086540828610064937017856883833224000583423297585407554692416659069421835508696877160802890037799553665630851001350460435539592279696751565183906051768160555915061150500741495817251174845810783819646689638893875343817675585915619246845877751395534162588517972166909576920753798933209998397698725673440446319750081534919008103706635956734057415277284646412880906689566819161569768021511088325489487929722690858574149709070660232032396628092690328068047674656830179611070219067316040508697292609716972477122965818675949959427611564479654881217288795402626130878707299102082723729762260881617719994345425199070488942290153293183922593175790684513386162076244502516873000435964172950915079358655041831217099598640538107083345261591152132359939975987071742456365784431614724319220288989822437680031887515988397876591689213950132088530071862061583942780047220346435612145438640304721056618804078136642635000439745793959080023726090239451841202984437642453898063035666684115682841667153335383873539696267556947810845780785553460844194640851286348369633950294920183884142706837908066597113270821355958259753816888971119338734319039545083803668318620346974655759444787239977054060817777245150934085503611399175918219511786051969096351002234306142866567043343598835205152488852659066768282363239349577016349263211418168475434721866266297982795335264878729196887895354032866067942793039436823570343764156248066798726242153859862835710725488451934588120034303354604359816857877389100411121987608382919658586114065037372917442749028856316847009409830238002161119424861453289802998217062182160981443664431759567745770557048725048146286655315295568205548198092934254170496569525084161534047012895154660929101637432629163823935747234720756575383760634618247679291834135753717623844411177066077763978989223452674189979099266972673322164988969409841105943887467295976966344474387476924270113130334679816016180638305925578890667570994532668377549320562926041967039331251921310697989270522536228844486842092490984447592726023016641374262983786308869348417022516540966086905363982158276441926453282186578568039065221643515522820525334806831402062327815710407236134253195684275925234793424695486512553777884986229181447118050607887849018650157013775832808248448089674369917196096884967831800477461294868262884251402981634403164820700601986431932872524507771154036011485828279545555225733619191638852992962908676547446701514373170627749440874693913900931813515812434756488538812090734213471365078464867071188431607356667349308160136484553652772533637109757075313874458556845950908157276860466084078396311814011044821889958248717856509792601595110534000469917250369605541256682411808954812362946847988319029405907309250275778118283195931950776555262154135720930605209517443971644469677145436221962395221940703275900927776509651068383315810017132249004141183373806543197485260494806296374158177984390762708547830475497822050164644693381433422720809043310714178404518966248795316503632789176901030732941934289008898889101071342467446613747902659298684796618293319662330493681431818223073217440715500371106152072970761708072750945167831198172842122976723711303587187120810679396055376808648551421581225031257367964397720997433544909906566879345878261870561654918983781933460490476694609893500818859803346439353463455866380183764286533962705559087955666110421638090619035524410572518118554643872971018327059988081074264884480409250811003534694161425633405013038070396770117084664178332711833894873051391533652758488294804730042509122073632047106027540699514162812157708820447648192830289708762191907973477641474678704243075739229756909536660042151085682385179449950223198694137224563573647536538223263782169616138465079356520610986672934721328339639938084115823644090151644038506772330138901913155621964199214287415984425369019140787466013669773246226631720867956903575294973355181902404044053191508342069416699853803897907536576874257217046204273807333372171100358238121953133599756864330387391238409074703327690906852411404880221311378942651102332013854851583265334966490121374687543345479241102567699459073602950813880137632251471753552049459168901921900642236058520996193734508138032734433319545884740877637730708537347424257741898649459350252963058417652107851475127980594583079409713323449723783621611929076309781821962124007149683659205023401955879630391563601203354935884287431538578752609958488662828172129482612515232372636099097554231887063587573499667544788665195457573935452079358596788835813965028330547108978727951858898367939695616849832027248385769045526584722689385366819102354588438539330030056250290148428963831325330242634890853741144748306886616602167584312032630068501244558363977162834249789802609065343955691339661249789168184768724044306579781369169404595582861474234401040205827015473081356660421089025200950294822366212639365840358062276439926424664115738983898799755505440469523504044324474412107979614700618072525934979082847691635738660650220987700480742242376570857327929556755760946967988623051760025479348368430937530275149622061543283529632110605247344035473630502751501215330964358568548389110813388397447808233772494926771073958537430380704275039112651034884546606693706043693776325691051848909096206394921720927738839455750109314719765403520101346248153588546373885997755923870737310189712843407661543112524010041919915160369572949442158956193056422920542034068198039642185140954976986772206195478099172802955813675057169381970462456495896802311066035763585831163824235611718560402075238334178134605981843666749829011281532005829551381264752159073572507569396318624200613246460651129498543675271071849744172883961061931947467712747092669146353866425132115367375379906388534549652210049059787940763920841770417793016231066351146544194003704541536701742980143428568746373317261803103631833725197087517072218644903573078001100902448473669508805967360309452060382412203600381658909886856895386983905097247244931653565581638148952618189693970004014852309566181012527436868439358829299006488093360147459806179353475387772379839555989762089707785170893611087274897996275074793708958251500794947169444941704064293636324630639888975442999641999873361307433197004442593055544148502142013812089875735494375463353611283824691608941123996658259309208483659896938887265445650623850412297585618288660478822961092640586257961372549467817410488493575062508343727704182678748107599537943672574023186558598106839364157010333149782458620083698567450213657309106613957618468213338136890700064486304192639578564509373821212699689144946794473448177674962276485145669782572284314731261614693237950738914801682756111172350502085959941521288631599370432000815133810049165251092883823983144956680791697426250664184028064252737933978866535934479985291975455391389571632480152996954176525205281740635888650030858203919393199067215224046534716446966437289737188951150210310209425096081863245865831042588809840191713028191629550293361133053984346732628079190026221262922696088333668074967971204517859820695811441859890093826219506619975744710131222415354292021852581959221839425794733719701157491640552987707103398623713687367987288478413476540269769928870757634995244733515346292260183306629042695459465225981770804279364746322914657399127601738029957046671696970974765894931988018929818320789288304601769466700500420202529933512352602673748508847833419184442509655434151880722090368709730723359997555828557143752192986978074876744334804587683495713141816827751966933869071937261192807028439246114572801446722284750182135611005550210124524858008674289313512044390943996053966224160226253615813260933604959792401678816573890804460239754890485961381483625285773951910680920953658580700201952141740495921081799782323027292513351061148014218141382113842625009621521065874082421773339140587906545275488338385553875200027609416675226388202551140122588025181394061982163072543329043462797600058818905590440618255470487224645471266560917197000921251052359902748275487099065093049048378094111515915425364054817629593593186982981244319087310817424795708675900507565488704532568646398980567345826916111882070706984934631605158443157235702984820041624144652526423050883441462145869189638484756396105615078930956934002295419991752154319336917521621810218067062898426039048353832434625857404509206856144522902899244580916141160749146045394290928060310168073493158529355791299283568660022756201793390201980919128581776277988867404405727731229806728269758145635009219362708908608417595559707625884179718220999857965022342051207335753099093354969975930296313992108565248201374596926411161676664913619588922207388804186893316026617766773401797484935572855714903763586722134594835040426960776632018599725729435949583215930283366348867506863630470203432843922228551551577960385577500333940144298938331054889942138535266498639120976114888264307061649304256221305272423805472097942830341365846365440595097197803231116541305290105892196852165508443829799747853438406487067822078252320601488026121991677969285801022670330662935628294236844111874578005019426768873608510272080011626929223160032701152988269876704640049744168367511365935226034139397613302769254401781624204775373999800286081262263379505405013695840762422776150696682500177216886933030888019141811263518078812726400829869365607718954886596670995619729186079580922528980009597667335351270319464449826392953212526959915408627385571780999226396226758624331416956381577725344837517748138902091482239740535463001511760934134858843878698854036502596622356770854247279370787847871477569227102891682511597215614013605140647823347137797690325481142166447068188003592634084384103302386170378039643895007961107565507340295650041856542729745945534263751618810783973954943832519331736713139577980928628957360818170591665251545344346642935680300555010647146346690645060864792859146277222967162628738439475042446034376383638945707360179199157328174783730898610677147866787211601464086121747001968811915921885425460178815848581025581850339442532887747984156753693485303552203733841086717256607172292581658754572386534298774606327578903191327742059952574493470810509122257104493020503471981487057775664139117563319638035070514422387650609007041298387547173034838372520812315659886813221902405334459885499884349035664394465346842738417218712840642976498794327115081576335274175953130581608128928002576659195768647386012796897048145572620969533383389286076889576738451510402669292166239216354269548917379182396972297646366914523703929630464916332583005747619164588963147348359615375851189446940459737232797411296652644682444464468003046969318937081220151980304880161140110818210918981857315182401497987412632423828071803758524141817534826877184900296806377303253986396498419826972566641772006964725452683990205688395817680706751077898840457747222941884981409354315742901913386606083882273697350804262452564478430660347172884791115004448509002814226097377597454133910341293133904947384611860168890859684134158958598419679670802287858433826387646644869352088632649703907273376634289257853781012043792909118513267048660574771184026248824505318497367944204433698513624379316167472912668712369570193128521899433263825155294202600944234738109513760058491125411027055647079398321548001287015425497342184413248001207839134577445083526287823855025574370186276272445045749416512138582367368828458437790077615168992006525568893130742635351519891256993555823151482345903406967374008991039654578382616884688799489731218748758575040957295016793533597699826850439731484243006411696591937916890722841929765926946758495437034774640144205718105170645894282750102430990000270268044461332739303753220187653493667225004908693917993790971294085285769197736275055923719234626771469366456246224001195883744211065290493172464596742101894206264532945202779801043539860744475269231167797888081777478636694399831149210263299925713938748906855060729286917173311712876362282435895579248901079693462132068719665779465060385599067347533873181216375378254026063396288760184632342431798680616530626510229503694729414465872694064011858782590205620575373821427321779111780098529656361767123053194720581469693674399383516588565385222766377861619374269926827783678862274868956225657285542598654745958478271938545870819745234584578873999021866816351176329966201942464283461730808259185740902398413689045961184880414712216008430262313042085869763167954536696595324658922004815871566460970454143392315346694143738193442888470009715442967498909783809032275890007334127136646191608130577070937440019910540406904885700377868341507348751994062557299788815087762085393301581929691383981701835219550907942300974187308820652973933456584271146636264460264387508949256474773680494960546128404551596393683353152348144750150811091920685024769322901802267056846188651825794254685787423340738817704445944580329168456511589882665522924412564496102096645539956426232327366319652607114780522159116353507867122857011970098524002792586132553994857157101908150583823127721359962611490976530278320152759911938139212296936002267600912974952272232756447624336176639610118879137957528202629556957636442967355170276474875630973806172913738085226152195837890683816659125198858972018831399218592329703514279155120722139648117894008928392855692022065853897440254681877718310975152133467098890606427821661283718247218916507773626075225978755746929121362613130699989452639418808812401931184655940663355164300443687367559228072924155687106104615597389377995910611901062326605969005782125184296902042925360844432796905386183375779123166348953915135883906408047531312681153765591739244676344049797750706221823217899392409708649142882376152351570207956148835292471927938952699817202701293642890719072453613391304741489351586982441751828322303479980648691820795779688614138426055935721641514762128154835310214293994317266835563304218386889141256235301672136473156096184410119360619689171547751103309163349657994215097845936951789069631064018161016653706491219765352691886573025044973809898952706907485181259053608946710638229870296613816617732321835419702413434541810658126766943082286332025929870089514064998830320529904035347394858002264600093312022594529326877161056431354011046610671257385605151466274706391514074125953686923783855845840734081432107122758497907787101290524744678325327254776202725819652590454265266114568006392536281541180461723639763051033851477556138327320081832420930585546706117235161678632121746634284220658851670639335550945748585715262656052451523821221205820365522025897385031321928664083702519699084854026065394487863167330883924031139996725620871926193284343648425439371722423382792440040833124447254782381824750128135844246504189075177328760909512002087609944939779924840230541649081482156002457347208066004393008249521646344797522217204937050033428632606990504714479577816998224822858544502634809164034766537394867222009949157389533176647409315663793845557748264782443933938273981071307724607666515462802334007638665127734958543924978976577630716787374133119687310744386312565653942188935500916091820549147117617518495002214754340696712841268775628883811565430625905134981908746386951706155034640376631235694916750905399747263307173104440392981048954064839949000473250369085274118769642061963013967562701583023575307974085366072469201257832430598184218160205273933118535934078294663535253444499588134309246550273532373713221557378260841959717483834357417703758463556962299432851181781120463620834374250207595323665223239199502347694669820164906081986500806686960423061925277741426451472026365271382211263256682029913652725741763145502913479419337939689781019682173753157727782125709139708756191066344998193369436612641147458041830434839354508929102764586054420381728395740898085672806016433946637061315922609247640023161193690216683779265149318885450734155431715423071849408771355688969976532919058511079086057325020055893586751190863661899657238874472666967603531616697295449914893500161351794237054746580770501428901954692116678997905031944474585912553640697807344097480186108321981962892643135810293986928942748162033521633613541212467225980623589874311358373856328919690414233267562237612175303942653645667671025644820627341321513070137137437084896360440149212905613340538743202215264497631711568839278098414123362520533491100080254477871579906337543641479493357019332007947049062779787242915794897290523671106556046439902924421153834397689911561811696102898377123286467989041116215492889671274555194669894395821597835151491934269563891273481902940507133126512386808064396664501167448903219201714116742936730073242045571309421380153758968990498902417639415922297216220128658594810412845435861038527758305257464287549588972937685597277910563788496271696611348538797010111665190320469363082959968215570693705110029825771537665922308592851887667033763800187173813691472866272059521642791028614551867210977533562638808715542382862034558587962178704545530082055236344891530216502040657027951164673222552514242071961466677643173714372149479955345587374360211632687995014977296376516161752908152627405174593300955110432669597663857546870734254910279943670858503494583237329591692801391778001654086273636945909560946614455769257230593540144962996140453502556679508288947449340726316777693850301265776974214579411946033205744392652852796257691881246514392119279021132166745911737389697250109934174029981516446237368695291407262502157021725130393342043166306398773501566284531753862915106068509067436800433773911294736805630829753330949217244376468625384108570342053196818798143853467504615038271229254844830999745094002264313049154112623963852716266769373096539521167143375470601539273640917714614071048780184105057477780766618141562427225178747502827875340553864579554262164373815825727144284351236130091808137034794804748287224274513163464444269535676026675988612941318365593134831000274731809607738260771061433191433697704169362729525574787406521339089224899023968419876228044867217277156997769313245918963791776539153808051701830290902197680387273642600728886653325238377544919532846003824076970041845414857470471355511418022169694275132660033793633469790563882729800061689589216605694457288888916207192325776322706035865098842973866084943414134139799800667610518246379346749104781179545794666412959922692387276157746296544956425560753997577963949990984244313850713358722776879949732756714481479780842121348090960565600045980243361880406401370909012235406273380511085164338922860906329927327159757168387456510924092637157613658688218726702220888154417759746274503544814458716465430103875504544844821818028270539311965660101220129991672950729106054283552171291739620388258322915768996565343977333098126236016687811573998339662525476626517759862619497850625320120980623778344739265425495738253988203345801839808320856022026353907999387979927640585113472656432467755252562257366511906181728580496444799631616773294479340167342178347340369952964146977141988919904308503636222478178037197107687722660334567037062869775700179289863028642980015146377782496271804638116644846023840359497431907799420683484068017958700856159863552157505116355678914532310263228694385060758053231812922910348424419453446675674009888584736476966748163354414454059822032667884708958215188886366602342812842906861667801245562424179730931271444084484005474542940208974868209151974111978988484695041537870029341295079538081582566106189171822031391244685374239147289788217679193519803547241707843739102287778198906386090416470045521634338436165983287289090103705518808094785589372819450151022641765180588930094693181459133814461233561766407722086462143257269484011374077281731364369293694427259853104914581290443557770359341162284068482731977249810251752717004039267571948837442392916735942192587008203044014652857838992066676131843639678223245867314955212962010812784972890357088320183658210183064575875757114663572227345857642479837129144273959623312054872964040500635822794585459612339306565110484669140602639062926272953035039423158900908823595352542757545438053552248653933829842450300315319296118318114606955064788554400333835583005317521411838985828141812387667777026739087616580673245614469081737474597745507036294347268655641677038377577233229743548341097265864746180066341371804022778397849448674635308900497344486534124528692091647367210133952327746145365012424006812175416700101385887800322495186308974587293483463734043716333790844243810958756369851473738016848188117920767841288914800964275533860199963582040279382069910589327532328797154473162084721816906295558789426742248826292320088088974395752323184798507277666313879758911129644612981280196675344932537263857443143949276301618811352205177977953102336835888534880167373731427416672951221489464357294975479840982718421500349486121993959803277433212413495271093828493369435271865229874593726948585263096096848158503732461264244660314160010179796593290169757488563579904241397774734838755709198834528058559914288767174806395285149435375630725336813110910795201550232990871546452307252307003507054964110234041891169148532555068357735462203122132939481437594936067542649527544172504647419125188236212648981901817967638229748822926528225849380482753148802953543169765405387684962420723970214772079024641022197789266674369196426368733308196777426719392530335521812420411313280287663681637045878302250115151704401533668792464210259475409287689671862141250241662804082434668374660758086069568894472400331332748712769495103189750671009766033794998708310825277616183137957404689598392714052018874484016106745925093799544208263999051631343399102796517531023988387956244383680250853671419276610915763401273291426028054945963489883049132777768516023254508371824777564242984132205003686043703311476683074958742398741179363475772117378823708973454351146518644798126411617520532528975610800006470530526045193239917713724824811267958752090462656048722750603421296260410235470010344797590451838371872311610040099931604929307693523647982833139010796476139327924787800694218837179634091628419894298442125767061398010828598585521182842911798566567660213001008632437190171650216837825332537461036936785470698278009266124781046721119940127436641105420758506041838563426382254509539866238271972862794442144138406258013395493155226882331775877397897971692685711680207526731583467156854036754935691322446902748164309720849781031658897130344054727987976391486977503787289255849056847417115970763201104934998547306989489047625265819612926432188194173937380470457668723246075166032837254392280549716251786299466065910305719574309612827222673435078648846488957425663117689000860382536401170601591906611458897062026522135197419715613695598837180432873210757592849622526448126665265493876160343709325783126353935699729311238693818821291974577436127286711716658722666692376312295806337381380935682732624843775964441782050624932571351489043179010341818822560268111290879631252815025041726050898686312321198052069108566655047273798430941542143643232257430820205188218320800713938236988553164991818996507416643272875558676656021070231348110591703580696029788263141289071025823506349127852663580678705570227204904775721625356727284156470827621195174205469335292554604972638753104355310843880476136387835683806255569823171477139539811807888024191019479106460597186565453128429287452774207287283739375457021923941792147068405577645814291617048036702819317716166745712213396885188733570157194968587271857531171299553295000334815784508435750995960790415074400807208788225067446829379616654227833111245972174527613517473626552836008439000293069385593809117608190091527576664983778685580521599166268668704571792840576950097284401618628847014961595666638735374993878565920975356769759410955872302895360784564154109997127695827316419185975037163553199554517565696144168189557120880239314212092923621642407444424735492016004944370183613979061516205454454673012997890427297166972827234986454579137100191369378033796686438873097579159742543122161750774389934793887249033881998991583552363594135326461986902159319626447352448616891962941590652150606743658187326311502581329504921242917117016202628248978912840595694835349797850512070551898629144587034046922468207109912616608940026442113329719108367361133803383734740885510129608689061063936513605328880044580927154522548215330532067332819664491372922964847848022797747853330374237535594545845904240696577702502322578339496376132299897319359962438166904631942358618003361236551907183315838122371762756893657708302145289684977867741733693686087797070401012234152911688340194382248534622244001444947532377561183015582244630639829181333486073763952992279093583322923090534553218790515242401480829079188048100140116047297635265491567976750372851512300127319236493476350484787133371014540365435206759746328491169672285951073119090170019119686698760855009863147367841421736735023303114477789565432559814597067143943670373864141374711271660561609935767311723294109973529413474559639023784856108684325490570520985717113679366404987884003516459924644884842513243757930387843615425968528042583126205795440689135367730884451370805355734304687414459781271276266936836430801755367938243614726806209558200466597216409653003513047545953452280741118949897825377042969597874281681890042763014590455709424522019032971046637301265210789185176103677166099919268901918014614534911174385728314282986330106374297155312293076886600470596244237547013827565120067675375599835676284018951905354932144286873788460075506140911752631506765585374738162822438697884231379294553855422793584130842938829032348137584781728908675697451321901069039233264120288443330811541666623706047666006563052757503466096808067820481096028736199529031394429290118287019097373971808501158878096959664616082547857552985097698974043622540987824829236214589045677901378600567778929419428303574969897246243727059959566761592761609927622319407739711580811841525335993928866027392201853997793724217333691303674786226039570206664394902983481271457484250089858697560565965310402149106767097280746678462989343225684083721110472553148373747257027851806269693675580389857908610906970083626729659278946179587148368304037256089802119304324390286133408935651815323230886693582082741648873933446685097716572617430580108399852562175564778798792631598915641160169819045573898462706233868867035919320590662780553434671618934005424716604717566740940363917243011833038495227509649361774549819730042108423252100497424793548494960721960258319361224172665007207143196198196814532013504359869624722034781387984356035039357850284406913268821512276483430704694761281179730328550791454982492490154584840504236989005108835648335938836969523244212737448549227206582105415871449231079547648034427044632456700740480976280897884277541859713950189300949699057267059641326720775148443192372522908844917103688513812977161822511928302523175063931779784788715762835694072332563587200317338402645339910851117393942277791649863720551933295566731936485451810975194645075262089266563332183207413368828762837043670941558845449234931117998882972283241084975187757085377783890797713786238459799757257706593960378189227335081666818086119598830463221804417541142169229205333927114867631535020800822336268711635528223157050478790421341955010412950687347257611700815480083965457611217388976312059700207182443803424199203143114330360433063353495651190380278604084531068590219592567318989317313558263178131293698341231821377446568229272371647444781108107669468444750621771957351760076454300265847379927164028860254119968299503313550959073829870555236580699822080092522833660470854641266231267153026996780591025192252981678397078889393281058440519045524405602341268382905764687036324835683589014642150682925598935356802215218059804210726970052115246916660144043274277761210433070942078569261726447504011163530146116811624851712573016321212512784941857833461377106138919127627666853435698911320561369997636869985146144143774041917371906354317310626968203838208434023610635128667898825570920706524862451563765453139875988571319092125559040649358651755073030554538734839476278493774467759377453032583234807397105477063799895890206010454095815955422220685635929606162771312383697408210941657967801339983413263244502809695505632972001360249044931748910812632642086889426777805848424795461993306783601467592674356124800184184649823485647936455659752359532279682159558741402985089504776178672365869309269581824989362930363957768013472865852108521634882824529314955717208965308165649764871816524160830068520803414977050198645871900806234786832401499382575080861303502665734679078658666093999117827511788223893453723936679865445306641678786543021022723547519484974524582876645145725204977020138813514262173730162135181600823895840478015785698954551276593570596895492023186175807023682653492883288072456844959441206872401977955306941769816033878474951647014390858571882109823005073483635541008867137360880036461509519455294726793731618684012227852091415739022892725316764721586975129361029573380032609169163406476325431497380420808951180884784872238249776587655669216990846049199851299155185297380399876401534341730341169526986890442611206872534184456839025532343169135396451533494044892733521605608922272434081063142557820879425384605963192291878665697234294245457365071367248477458867988474423467526650274443390351255614537469582489709787642077265976597937475438141615344215494004900576697716368174423109956149197612089028281407879493638770133029121660198849423513417842236274647864348751278488625126004224160511950479066608674098138992711389343542371979707798793169803508013054880284320508930422275411032190129210616993774392568157607958441331363545192139687267818216041660709911994907053208940217879956305359280540328705866799610864657416025347289162025404046676665254619675584583485127994193415062158152567830986187191651194052492056337905587634059169807506007087655102137989504288033717943548949348455323055169205279864282482531686757933182532162344712785535261338851419397332944900407421177548802040526850176785645108552728981969433123278693390983355745761820218240854767009350754810727434645211299482884105489561148996607912373399311532680989215200805066422530977629149938335672964240904345600005700765375893052141677152756158637320804692011222412228939451622008633453087237437975348908434971082290931513295692734524595420997212409624412668387963517111518492638687639587200781513483146668642995927721773734354294291350389891346318921371462310603450456086158234941939698277669329942095503842713444744728482914482971344474265614800734932663931648469253680704929434721617750179803071609648265358077186787524736371881940509737166883619436097808734226117936795417251285389981372341572271310893379095179050232816473391999180014593830845102418044793237486495047721655868625971981268761253874780391178766699201788927565939510092157799542626699859754503365737822165346874519500407685037360189444079918096169609036092371403306744188205879023242814455001579319198583265144999224675516313793804576997928803931779480449926107569491106993589767436970680523258716711688857365514261639884834095304954723171939039737476178810012170702349835503958624103267691878020361155217413546574562635948108843008240845296278783948094216929973205363030570781478269788987620758938612259746627503927784806197470582578171672171269818251922443871880669539964825694784096871905875608770133941375780390655974334808906901645911290696708444519778830699319798222746275912431877827262502128680444562769118618193257437971087368541059515447865274414956554510923897936052304686921122402525091874443155588791927511110124650340943634400258505692268377092001408898277437285507696932747257373663314505408390201242198849642828355257089516180865419572498856904230227690196969206556170924623067327419585112849557846914439473311257882256004017808950832855180305142601792354118278480115919491219566543592874884872870614944487021410296613835719163518187140708685856261425678272669466988653173447874333177845070989058242234029288457023957620684081881911814116368937586408463123299585902836558152832783116084693376581843645082545277588738259500855993566482337315579696596745502102035668405229263744151466798587276556770658870695391790474400368640980479262073621912335844486187686733732385535960407064835428484554705669675032106111511034463458175311987179661275013812517281163275983349601370301070729848833891682742327466070477713160852292664111451479362883149530472950458389046971816655612072956047622437499282634770523473307804683790043192784708289823702096627093945634240378059073767569613367894457236312650956477621820690686474995690010898169684435926425226538485948032949540066354900856710260883062628035002405322014412997995752794916385141120335863040271441209955830132849585996021530259298838380930796465358748077447057286970169492248601040047567114408683963581445035743643906505926676438109447219683723536815075865071442711705183958414162663545086149100790524584580018606784689983584482395474917698470162287329058395509583231409324809343992126719509067707191916634252909682205874937967299808862922713612191437166061668003175840847603658343222811465998764576057825077907390291750685665648077689018593842637422496466317460846506440336650873682386192853915462077729109643715866832855075785233142743803960061781871012809652864469776018144818411622657495347135197288900008062528683970298961004489090193965434467234260724203642585708837160610179260756547260132321931251576681531530253938215266831437118833477576264551534123062246874940232683476627716965222749207472739235093770896018970249252436277841433671567060938727343244933939799656988299096612122164861478387588313339315076314792873441106552129803225395379295706343327251603280071204812065226957046914802283509358484330165055967493561559194757029433644177927484820696576770230118489604831625184799570868820070281538265667020238996793595103688356858954163898887757418433466250936361356378807580505839190342450628495073095130579833435618621518336294599582599354476747714468719692359652747368426065953853501174863749488679710623392687379109632172738509489880624660197441654521293537733447997470570742243971949048385813997780577921190535190538378073638626536035857389721001609959554146165477010441658799443499955799831002841849319386829372629276772047661771089984288977458944117172328775344132357971178312987869686141623590281866134381684076424221403435503862516702093822048245395475321840260946163479225756596203835833194403381440915453318916714873184731054189262542291511450921623325141787987076517007680025009969617743594453250777203418125840607355947218466350348682311189809467524854715184558065891502185906691856623631688932254288843794554159155599920877240478542206548619603686313295485859037147994525453818366686182019191320638783629947971639148517878648840380270947287334482073256659609925151309345826931514944597976357982976802673263241712833417094802290467139095974324701273075245285845199923773664122361663618605458097425154543114834868942847884786989772767739000489588454927202217822859893426214240783384092864094294454135474075292420701005277379091328696663661919230116469401939483909324127082763082522744363490782123942138923416825584785239601536146970607618154065546976512951741766289527037965459322366741947084244291095156924569552930783279792831001013452692585966866362680174391174716438997454899940403095556162760072829425335228921061885448170134529782972233340418786017798309879697496857782279086848847385767203633596079755120769917018350824526179675687413967971428425519484428318378895866573525772547899513845741143805643150641983017067901186136960743978853626362519610605629475045531989973411758267660945228631987069105055943339614171332650514153155913977897252218906451232260950144431812694842383545826668418673653058997140329649567543192003568197255055218442284207684210887675805912671814090709819420992686694363303580695210417119819365375011054482393642837800958525264770166218798480351496088172086833548720731909078615580900817408834025212554761865205305661134674087970200853630181572193534396429169797418058055938013560025041478507887060995463214441915789625096236781972128603054447876231296259166322965092420932495063042166060328689534300700592007076440617652198399991665517177294095612709017413982387872585724683526641789136513056413606593609046514451730265792811114928642197091763607614147214559347234624351096356679246988121517015950892758404709616698575908256193939422152648005824815245140798719208807826584045408527792777370513363805987191556636261678909746022163748762037180240578512350502798999386156106381031646062003074589510510279388701751118654805026448569330756727159031196414057078106078884982568982112168340226801743912325686968559795194653424664721032483106915211733027042520623308577164434289412756961437396507010306515717379959345383277893028637192545619913912943801522698478268063530209951138950412272060231746353536026390250046355901861125928694794274277871446570792191332927680035625010280893017368342137229089206207924810963524567064451959539276540126780939041575279899965546319815305528967007822142038112850787608710611455308542346687765898727446807233351856872418117282122491929797392575425037715415092586285850078920200890447421353726595011728267748240681168183074998092085112064256457683902356450979410021568994896051787219978838509087777980513195245470605539396440822540148040156893090393093739580964948034375515574834782300653025318031601423367678101275021647082571091237603714809510998630265467178164463778922389704327902683791855799849371327607255562828847227031562367746085517779026768414040968292192270340262676222825078873517296026761762057566636135358292578008866949781657920092527908598672433723974167526992849602499744633917755404934087445142915197712399793693302379018435902105867207293518581478678674509344704561659223659546776055437553585091748176569427428486084103105642799569021154331296715731366528842518420372751893556447388235577789840418394229775144618468378693955931934769831743744884148844189304019432116670321324000729323866139651823034340019617349562387152826536685418401189313436912944194437277128708630810337706373649213837755388064275049683584550455713537597345548507911829053180916082160472856297407704783375388975679391862359617221975769293888240575130939670084254132774271519810382106175007210973394769803080049876385112287788682168836479209712003448331552463493935386395847772594939359999367399869088405716138956265681931858544000206603746127301471803113807856494063744802859186697086993783805931759420371467720468550792776497450425412261363835054635412708974823517611622257502308624535967433526618312809453836623889912227540687221383240973565289146809680016226018685403344893937225758351048388183008233203789835911247407430197638251236884212433035956314653534065908347682068289402805384266128803983203091824703303857980564823301210621194455765757844582442932918277386120613024558355750154396486658896354058065092457489042199821724255522039170314602985038600094175199963935934754162171264188101095168634866102850099876046975993861198361771664720953999080127056380249162320577779559817564308453602522264703386933777508619024892610988259227939516030634650544386067126796404038221084877372408376917771091473611341983186833494944115646243385930943244083313596797241283346597740244778322560176654583373586791430665162719727255508787941919907342662237357328724967871246766368916024482156720301616401631506806460803491746713396676423650405294310831442722478086068663675354075118199646545056144265698055000658522675677106137409520062413051730500874385570506634971577245075455129871065055216193784502734861560072989975439433225184344012578066119923546528552693252103130224896672470899604107626120685106051360295734160498606810277844560802316869221273543547653803750147172005511783534010451274671852663743584540731631857245143131838939524275898929775798715309187761368559161662023919230018445099630408585501832614917528592122345367054368210889766594151530225767932122955369160513835994736678072458681055365268736303617830785211596146856030251875976951670720748404381332314280485707032613301325059040149683104216575501376520462004185103977903181979637608675213272559855933199485071892662265600708627823202376582884238011550720625917540136705753647337920364696541700550130874126279827329941356748785027864049472235584995896001616267023108376599242515577210569922495858681941511974405256308723511552665568637764369057094523280765080626957241672913021637003982144836774618607710922925373489341643874159080515181230353867208674776068425720263500235333770304437405368453706533613866881078776694124434775918504381414492338769044722264149897320493147464091258304967895004357496458272614806150923797869620323909688019697195868830575480595622819644075158726079270169595010866789400793374185439003919386228092854586695497822634555933390134585795700960156205950269577218563972205182772513901346367057542433687118319400279748613573993062875223023678588088472746019553073349585399169539871982574617838832927209708124883427581355604511390388364819949434280815322440326595887399040389259363280269993655995981312432047011794025537080746592891224503658514131647312998008892952295122212943693226438031136452963803456655838400434141341910707493970000727630567472055872031268147536538952233539738386900686885654339790615164931369823707819374555381640825025315802876849493544559826100958447933338752650396168644022629371185159975775513127809799866565640096061021041131482185223260078430495534136397583669853730012251551817296329682696864957685231602661039939259285658226528249461004438036674706922531585595619372763609167531491304327425574419516285457829210763970075960776662698983506282688848586443166708140163979207601381624032245876721957103231991833337523949642852118966527984948218849253113012473982555592489388453414607939848760256363482001130259898170329176334738366189866164921474760557354330867182846893625418996385572086418016095464736316789238724803343348351809258053701769467453424157270347876010474576354726264091924603470085392054311363918643953407654966646065717821678060477488604877721433825019952677351071195755194905676095819270943148507737354155782106359820101108204977335994071082987554775942656292152524077819286056945433704045928574829555821863857333546497306613482517539503536575491340374498724556141210634390478386005838197584644684111686050996731641991865989204692542311642945149871953738018201600124934941122595533702215812352033856983869358503265834469171027108087273252231515119199277843027631870705940313646694458506943768375480255149658582601565892869293435784261726758559470429693092692166279839538978037712384069245750911221870031372609445913957808437480070486122119147004929914303413072407482165637354101830663296730870014008100520797977017227713411387115289580271806353613737195652419010818466188672753415534019500883003175744868489790339082195171439883217632686666356060319400987930954285117038181614801186998155772658739190880175476776501865353016191510969010474095669584353592749463737111687117533106657338546737265191920041938732790165881626260924301980948631832739211588562704531491221757962275225026111417319520782969977801086891184729578852700888698039578968575226387397086334061351317952082302264698582182995762783937039000556457267476659296326600950110178873782074680267053201634639677732186231415035274165098925483813971849619349569849107642334752595358625051409765065789256227820490198559581113122713958725402160738084368808463085042413129808797872912172298256516465690217711006651861628426536701220257632352218934060093386865743594041001277411732964066701791878051270561601635082810324079638915379302601404433276942423212793476386099604660088572459287949095818307012573711513252730231631139925368258501490350066483050703696344303245388134179935506647874143389345975039314567689201140846216765790730398540761326738036152975050230090168330002503309756221716468353270992080730747671584884442292721702889562547912661763276684606252079176853584175852686147908419943238581386291851346169561836161390091219957533108822103572240070268148627991158165753396063496640121385261162540331688056519288811596809720491742453078006018072487838914039688829082266380662130843740498198760410335501481004328581069136036058636641749673401035704545880062702733267792484776863444531362782905325104647194535307515609736262903351216997100164514869619402243541841105450279699416317487965619733428860754737023417040965484836425411575724496164029378821769059014187053239647948133175235854854030080525697458296957045437311091131380372015251790325812940046655119382871773201537621053355047740461321511429223980394364817500339435312562554982139570056006285221154276304251071722908507585293393484469362963561773278243304376884016417933705120782333679538947008257282662603875742673090029614690283401839819627415427565520592290904965455689534294534614364782144002221379386871878049807093299996839469858570479307362590433444977880377187331504846577294006358122653097308826523061249612818584579230308718044084607680398648183053463981730240030452026598178992084765111296057069445563492644520949649239537406095449600692057818089723104365322305077130062766367041621419464669616738569545410860786615993850729107450598911420251473788626376288599150212787631176824809296546874980191951849235234374975965442411937962675709223607721728381206180639838014678410091836974456220828619319321699437365328866884733361405634175642660996090515135460923336363903790870573880264334442109234327347653622214686592077718559190126845492528737560584735377663038066328680751011678903884907215545758019047410150890904742281780697443990503508790126519094980999167139550687836592986512052325915145216884375228962954679848732143385277050845157868674259636944071706501467177506006845085587495800281786815742280276332766530400148091116912494142337208161384315641149872884003662855442704199645811007493604630271987950096348422576513938280165137648219073143002088696904795822529589303071883955962283530598517105717716271682428170476766005983350266556039975675470624761147949417399583256626592798825023466089684312285016560439230877509915635091200307360039161259531800404944928522643838917553932559082447085918130370457900762883783646418459115308177752711334777014046336549420061209744610870122089784960229817742644124375080089062269959154533861626299413647056366669353172970231631506938839000008658609883965408485980202044630023958449793583563193586207123280187276407716734195286042069596019981999177260936022141527999213979201846003281011609028362665750151823397475997342303399842120868429183035111159510211186339388100928269981557855237516182575737991783922148173302927862695025427800318422635739306880002948322865326700495551875953215563493759502274052763217803486177290826555722157123948426404283479308944688766600386139905002718872219555785153186883068467939688695273608859288074165948641549879217529862402935704388179111972984444038408645820434215399834162805367548442641923008095045281850875298488342436789081716342543659806919798916698899146997398661888866826665250166615232542943803480355488404397643483436791406845832022766797254213711111953482906118010037525284847342366540279234006012065807110196967461476273234547051463585672932909498083590417819499290207377569178479685310145830314834184643060301541552440875652616935753185982577858286093046742885621954898561980879893686155463757264034895633539429557393711615190965555863025636257644076734289196874749203035917186977430161677243828216298495996105430371036222362218359899511330508298298174452868820899762305262264935451444451742220974068180500291427935858075416150872699909292142704965506196037375294093621022790515301155370016325053572337231622394025647195303053466937738727263998398458487186642220533313034765209613526723943342217870106784419610258039244591559963401140568625375708886236702108364381923538043636365883856789682584684448994706009820451175790666198357906082748536994181184587941580597336185108527227074825807103759488314196815449729757608959923354679100357588212568910511132591712520696417551019713449530590008707636254081518190444625662858155709071390104112101256918955056923999987253044243290513421105251458745639431424121389205830295834222584386961042701844476993826666581197745575773627670224415882835929340572523895843748078039242382371844616816932205569466519071316602480937907265251137651556688035715296662387522174474038583578266279584238026839604715204632347657043596552632683629538848038911872040731662523703933961283466808250034002180357060444298320408407212975601184729480077751413715507027410060270981167203946914538336629090731838048190733862469842892341993868535859341584844427210307700035973851160101568783909366672951352200575032681775005780014768844883460569024839640580920016952459552613925174772921074586746915985424340515701083806556361774552541387119527302289770250011799951265318941921494890717108134322963455486013571309956513854103347903344827492430000662204185841229121815704699731917728181905162871562764017661213115363705518138574588461462015687459625875421793202202574421200569593429425790263090741004076209539870796091255156363162909569603257774854181244569736605937014180415121800993793067030085123966027752885549391679116363898073542435719424492593787618335563454551180251950368756176987941285904799953505187322875048917242612162787828722275814361625947669408636674296097548718225708120804319010841751835834691679388937712713303420104781235063054836295674980253938174342203175794927675105229248431815137438277895031773989139397668629530526716950747733381384649897421932186797603007842234459640426690478274269754110780028407496018020832949566628885424910537424002456911203440644391637135146175810879469907735728995850220272604215866645863051590782784362101852056212534741400112568727131238721616572056072250615045005858256060095797871220390788658046445901927791987229186306049457947570997606115935144777971361257986245379034123621121747356255030767050162799927731581708544939239360506621184218914359597010667451695038843789445954874072964707965074403966397405760351344756873010866124052314270345802055503451475303501787352564282218184188782148390826943151201908091020813542595314160778572636821648541838161070217359478275615491742327305180316571280840785250994481056936193873560414127910187169148200614099369149749970540367821281296223626991832524786758605224383351257002602571946156444190157645122859982912747852742136655455780405798591218673013777755552347740517749095097932407761744807055316782578168919392931580199110268802764116050251544738929877359839562330209223423259754786859273605708269516248061750591507706037863008486758587055007896770632086705043808320955843630225046720701674434203544742341635757220500528478557807486181244123664884519072870241183361171357911277198579305248108006603848449923154803177437347627699143572314742386783475077824044879167681611057540683110437648896620875731836845292140997082830088136347715623190288215771677206222048546798681175428952700921639247712382459880289195388188801464862622817937531885235894428055664605984800391706307178991625255937746907211964206295411585414066794172594929042522393710878185618742949453866282238297348607498324041036853619465918909010877745106312939714734831315797997860074697268489930927614952059281623091033707025373195893670335824004743009790473797098252583406286986411861879128719316520210744714056177694586648178777900239320589368053925180617232082015660476762571265572403850565798051704401116174582263242214587145365339749109987364949663823803697949675011070636588543495756970750361999528848653002340483800176587380110912239617277188503026304889331182698075851222860474982039018615759772960930447647809902699910038387544756715848340924259542576151259921720950077728837714851678354364801999978110882638735627641563028491193997947541646376036538938750028137919191652896394511804907089247840389060272265330039827608434311261753247762497879812183761134575187811104640998362990431163297814883405909567506609558806790817760797865417277506159345664167998147833921973122088012720629305438732817791609723793181932507053978305351157168634383800510209840069583828723011423276113278793538354947841942531952932142232428613743958477219040552503944417095432110414451027820308967582132813050570753015507839447507818140269278575542365543974766836719089760509422559786115594917375589933023589527552317190612346030473628559236375426928424543913245558235925524096318695416465792087326341638666701842988146603719574885083819620435988859216773573863458011529054179277731833184436262699078223587776246798037526961764069909627437619997454518252943356290272296875927430995933359240709530863270627850514437008342346390693017584940815151257216120038176731428045036756581459506892305787990885229130947386497989115071804336569276200321107305731829367167130568350500294660867234835095044359089925488844227346292105769692856428764669271673744111851119812950988419778683026548306917533346396591513627858249232379537493023111651558850621120867367219218240468359880253797012834526229139936530903586881787217044888616574732435829108636078123587930398473149451002963966481552656547108060560615592018127390993589253156322797461927686470523581185888912687134362151492338117356286054915670842210497602928003172215855860864480826062093238108690391458798975262654911913152200148619237997132519188155613630736705001681504584093163085461432290947875350334491091827205002769711417981598164950402838489140676629872124442868560844399762167211456723485366249124350543060893242177481978514782328561799820076621001005284695824581359316199004111199990938196232842560667923053067876749488408040511331959850538915955100247791333417852736912522147845518827249157832021751120468308216125454616166102981374923230349127113680464303016946866981607081813001205949397010568870816614810565897177547790698887446085709501387216786656142905255528821298144751956768448211783679569184206903393669054109672394638959841821824663998147593901947491668116364119076404232963498881778244549421232106948676248068485532618960642247583167432741557294025705702615661112067259259383805613474933246774333822869430261483172323248596111533835116770214157735204936201069838234586736144620794706985329048656674506960065390318940146052152313666475631287886879773612358553826978656577052007300128100251755205051050657102280516620399980535722377897241097234435814215402474772092170091014283337683468584283531206780171653199113874717008265012332918755362544863262364031166244825752481156210992458271235789596189127229384734006867229047988889421998684863949602861090557587496837636623676223262502603133975053547199623412316746519786839313773716899832537598185738598798039579874230731761347676117055905078485025751548086984463242467947455713969964949151513897104604244112173401576219724517613166239700322699479988049069237019826000534301948278104839956845811988277999344486228857259699601524927614215710017845631056755896709843946793141605479354011705063838594676683307504733467243411265727940969959014838866460228682738625186983214535089025377732553690136259425938617783752535114374594813133399335180386302667701231168980511787306107112530690165487281015659767968640909828581086146742701493303006174432295045019467199552758861571776851286748152718071797301290751630683298044542902728630493276721369908974867369866918444379779087331151674024205050126430692672278482837489455885547878075709600125542075610503692128986728128465458360462482047149803076008127583887923949103730408510906574916342266685900681794962807907410047399678492094420789408261403279380085927866777773395941804079126803313452674752869092949305605463094715404130101596446486256733666092973152286099041101441749823130858693202133887060240881429901614649257379528301657556413460398611192503742230624147535598803568923761975960289856800715773242514817310196325484839669056119219062382454474493305373653514318336488139756481057946449562003293641056691973220523619474603656448039927885810018880229131996947597970355308384376694120767179362879328384357039866477613913810568503162311060847866539871990934405456727797446920488881387457020285765340355796430421672588313346707680917025874506950649890763870522415212826533940050760664326435121949709173840147082051916476095489071517546292315507442944623355690565371585048270935667171505315674917815049206239010602749505211234352734104540346583418091475528447873782934563869314274150270022881454810352806334544062312136791002182249492261541979931278578882436628862095826763492632376885380846095720987536128029108661069602446556387703261726543934917113882313563142010708063695866898811989909194483104377495454623138997845225917362181602078156123898741779851750970929216162984696682411356920832303632341593991356173515567312527179232881629363089661305394037815806942115813050554220108225090591952076826340056910682259945418195247132082498920518853931077616424736693611480757240981785969835071068910675175397315570256120656216140995620971814674292622778940798375689677523134794312836929948251667105254342697775223954903782222953867126683718240769580270079855773903207764549160022668194956354532517745028743548824614850222890161349961551584082722678650706186432022071256422534588947082571496761018933207451404131093865671696800277463154753393392578353636708658921788298163269679356315564064254516385534168035812711711410229692269651358009942413906068228979866708287952522112543005063128100436947074917509612139167522967230990204648568003117318813229788469948075971968035188063562060539185445903830198018594749736409223437524444798927597373148010042408773319586044512327185923456614215384293597590913814375146883231636599060011070382752362693728687939653719669876550295855070988692540356913219717532825005509357506414658201083476398845749216861765472325427440914429777850604436366051086050260028120138742177955699294103125065619156932491060872035844785393079307268953904927741105667869498518372665651515996724935365565748787128614899173901301425045964607748428502491390027404360574386230073213331733993092698805169751279069029970933819511765741785524799919670682945800896913751653424623337874690789503805512470729770233737041857322072228040354720801150632685427153266414271225104013781671821673586635115300133787425117686670741024072015145108858755833522655185687019132741995115478195318889048747106699006583850748139180006772276361735225277978669941927951648144318656550420684021213835067004071664648213157600838046016089050135126459584773995824472001527095825071447728019089707183950713154020934732824154439030104302277960560998972042775359210913022089790332985430232251141359565141542930189202595880447225555024080165378108686467558673378504266298901583945630730743199240932532025738789793880600180694300350567443106359218512038482915340949792310517185156734156494306141119815445235871829771509706351873429639820588267862758758069492725122856682263621019731844466706390696289392031325882496434169196721934412951638163174473677649195288854826748171234025880442916779047375784643184445970204457647845923002145437400925674653118047075662768398010063464188571962435106490063631907458787155417303464426089626342063926721986898815005079428623333604077132441820833041729266726123242277330592885606760463975019787833372707793304661164967321299959172837614355434773200162735157378920788190929591916734610439305048181243293580211685286354463078607214967542328775691225029486073348144314926044453798402460889940229567005819412846620140380626021733917170052933924906436750228169989109059046965345152831503800816197030736327915705923096771253415625847583638260211837844775617402294736987769205492737077543610211940622617769706009304359614208785395908107893873098632727699831716410848490553894890999939193097235685715276433994849826876999485940038571516425395939360481613416406341678578460082408600328139775737914362127164950954658721067415912364363350613807867540243356251245141800226212737279448163090296748389420206062544648017725959113237811997668101761050503278927761279817288539100869669504819216440885320610315350429311520454748795537632447954688133673724201192725106789588854977732518366323838882958408768903045276495783825397060139779840250153169718848721441825563044046745149925206238266502906370385193771400835550265384015173254041960993576894471242829828804906854985139093200453200019305077405837102891673854961190693866386964520116826578753053229095021953664287707350406197287941987640226608245145061064262908995170918147647956196003269795832118580177459949696509853362353251116252405558760690701116842469440161352756256272409112181857955819271749918440058983031260053424636509001461569795140834296068156742992886240841419017845964163777959291045309539086448905623436360454751735809729419555057009389475997201712711762043674917444888804333698598556477006010287855563502210958659648604005732568684386719813269130967952720382237188046277791268252784640907383336622920536528591452517051214274299427463748409487780778597396718814321492713021697384917964648085791039445832949459442148943744549597929623649968601423800936804859056465658473871859189067164838517367226569844918646251045383614934171466275046372689189423972708155945995963193305830368335554471198648924469888170664811753063827880590097851909631903839215339756809121721311618222491890885081520100253594781882610525892592097486151066743706944029111525065578075739139787999650230531230854572600411874185614223941550719436089299555775533065248548652274020905496515653562734429193235042907727614104839214543568562530137652646152433810978258415573659876386597077235823607325074551486878634379711678284192264726661133431253908940186381461142868890543974176671647535538667235213460654261517525066202807822680166405575231841730670006400362770317397128929708739568466945971894430236462971432642941456107827849805384785021466617760972375765487151493746013685276116699668912391453581630419677046036832603377524643881867961494985888386874208652048363208802524203683011764265964351225485161090125474889701927222656382874846630079157772415587871150743102483747356489915233527194084236035429390646111451846863213063028785427302003810916825876257228205038799566522879036007292765612753605125469740668594654894642936866950170527364283292834416328530908398410688641027521161180733947057146414760778225152134126557362063128798247491120598603425914447694772626630659838310487415560348969870612568851251288140151640254715440972505391836893717463552015660575563956020093659865660213626634840830979769284586675034935754868635753066306208835252485058635103469513291842735467925585236815765085486653460818307731796954905888589257218751258420323430065936622466003467210513358541647568977556185048010625090967946459343835874480951523960607505647952834896705353513133519671227453030735755018933023145632510401754701258153201337931358863636682892659547677325224275987313825839600607534269174616052872904157649752404690290895202305203354449057386871143705473761792608828814207962742316339725992266722575591614326311113438448649233024471994472059683537242785217410435787073790052154235708909563526779765752746806903333267962829170508402561701074015817543730019882079999569692399072009169934511862924880422428199422801886235936079569556881971712192881571213382180945592999657795246337128346996634758885017774943730003029606989583980273379402075482200421762706093489615073905670941282279094278910527032708336318017097432769779600277863281535869775973809967033588293304620254782918662970197022929073797236672656485296038656506072058713241877779934137564497890577028647204770833489365615868513764344252609319586757875632534537325620201183407390722481104671167342303813369071521468657695501743575687054011038068478356687424756122701319978676553711051157337528330120796456160336958093399923787018640271556563169121126412407860594079017756413779044055875494797501888778509973603415831257244949696420741650901476826678920827550479143958088192061242122363175682483513313360599584327606424177923229397104680481601567865282304614504116247560673566869744107922771551335527890555080433031738277908039675207017161174865053893281642034787881178472733718201842952351226735430076518998008133552769257769805873978969159570774975159283293623209637689517781755774562633933004580299413651163219135801921514012129499334350572586807609803337763397064934813939573578073826393463275434050406708805941823947193477110411372920849822331175061744371707382591460551579233783373721714108049201170277550800788651016856609806760423247756553473553786110271495325372516859387783798890685897609375682811549288542179319347493191548794249094260984470245724353090410319768994804615625105920925140153449673901014542527566163669776748083760410090047661611529906552165226897574670669148002381264656661790982957484271238511317061994501131347564420795421838143232239102669703185178240437629711774968962124447715785275794319550181259755260955272167234537539851911525349098233687427223373718397015510829584063899669139577215887596927597152889801671821326166694519961061370295319976834410136808603235550816802338502812145652325451757844202437436071924410650129458902036687426774967345998800909267257233045387826362859413987089873504193068092077770918271332137137763479703147252966038443672200395758499899556757040219739883971991519426642342895696335845299822609132171262409920317460094598048450866202862290497009680009664070073765049148226036191775497788054723515330638886307312467723509532898376049950972721261232486576419167782518772420783811430999138770016440545112878270936975450470645606172742905000490725761424598037175836212526625657468194113325242407755305902075318548716837437250364750280825399269090039357724752954062892899210250347056935368658746433586918119574138182321138531780149677783098226521841140593336375984688028770604764022881471059932479608798449132730580466823903981046783972002978335352860507372426441481553843131604076483300585924844942638427558072823512623907749945153606598412168249538581537953400503692024881696341093719025711289704367082028618980038204448566786102338944189821446554307425421687821017063432731357791503809203516760384967282140828713836731777426429640379090157486896506390018635769705809998745051785329319761254702486054305859887412824254441810723190669947532117739249857721974025346979907658040890454506940783448659855565095649100240174920474912951421769471349524223802643066472333603763745435697324035483410425245142523513760541428604156004183761593142894007637359227296013932557297062852867715646504518221437808818532059381035182421572192808149921577515413382495499869561122965570969729845039914860356157012541812120615961899702366584764032702088570018616264680366799607656290557550870136553791715459154065928640987484656924779058241715453598441473149753720124078782732454935875423231273539777811440501763448672744722298966358904605064307022362562571835849887101171050649470671016212644520543987817818805647510497126315714585469723068439815615744944240356384050280731514359639207996635683770613508768153409289981450155460892453705192197660428264668660023433064978952009430492090294459663288082703496082427318801664686839333623560547066591835191057007559645479382978135781420931173859412218171818728390607684675453742030728590964974836636970143976170299748886221574597506459502646765683662728654113631974826425804177006657532079064536818073972192787715541502037325905230241613983226787552431254632967224435858686988103630867876307943127547467529277664490735705258041716955050161901989380871060585011610077708236146184228421120209278620010993029460753534344208772426860568173928735259102888873347434657093827689682539971301539141656310813234733803595655645639405719697721755757640709542618199204939798874072889257290248759078489277188751378903807231047301193938639056302754967526716509340222862087681563938259981080223802296846408221587999553806205384389612466514822505565550301263750832215800472284771316605542326011193072014089156514497044849710732796043520919180469933066585931668559551701788514897563938626147740325135653906562428993418311105878203298740427584544454012443657528118081629902576059052205368045394438531925438264917306903316767364690277951865826838234183081530255536910338642788767720642252486831063363208839089317654717928444251421775371817393404209050161974674440483822632305473677226431663774755470755050006251761784085980110313374417944711508867143059395506094939194990878122782508164527446214010745821782524362591453635474860450065058749367842694664212957668204416003366753961155656845869325186575244590900255430515650267541608854112329012967352470798205653916776638772347059290851782908613042707600732718335226439085684904837781831085700295071436091597464458271725142905865995539675681023735285660149947638576091687646043669735702535975274633787204175494883515696999579280960604886272201504609287028917449672758793902218107143073034383013366752500891965515932654013450590683880422644847607776507825781271929324890507508820500308963589036893372832316310104644949431478747169850878651440808217637891370297102043206039634529298096057478397057278155812259617230670044660216883970340402384231196646225994584716994396877000445000673862676465994964965125915702563626465670396042219118557561220859737281728050635884583529193811956978815990129671871150384618714662756355806826870363354190695386000199228682645181356889584906646281880053834195049493402779402853913282365175582142420640887261957714330487475270363897130030459859707501382982233448933878902747268151759468039666828341079274363399416943659777325757818976419277154147981123661966571535073048143783213663419746063941246309870962657830876723139470266731399822946152253808890903613670215819984443791168130818090855059406093072500099689283202004196709134587132767042495153913866858997086395763686742582440289306508091509078062984801563343963531593513581919275779372270346417171907221672832703120423921894682151138941050033455247476166106084096462858565420906646117871057780439450393768252492681943143821468495271032382135270776252262799389433129876239784579184879947098848647074160207347727594489239258589249713139396741530824582715499279557704504670460188698335543467232520228326949251101316437235708526804195129659909292074491389595334882910940946930825503611257562275906864312771545768542201049960144497122161748622561782071310866009424501993082577824015637587902776728650626653565290866494818875591643922829733783789274715696540125639786243428590113555734852890939542465119074098849451429393014367544370164809461060321189386807862096205380633323019950888796327766455842332419187683174839359450601753955294482292225313310930868911668098248229894844159321469331064745524183536868294055242284361873689373577196743228402609942045226269857930170170445287842467107913684543656934321510817730489369682289035730850132906117290164466683710647973389215327408674310444532292410643846875514237892044335683874992566129031936444525821797216672125779973902087945814351701823755284738607912480461692948991239495540063984445559372607611696377076282933225653968652447084928580409545690178701722557843793778906949905563093541468599544488545985870683209256397124428666663542420671598427841820025425245398226926779293113052130374886100879157753477269738417996189113082097406317700267632015725738617977940949049240162432179306150817645623602488554267628367662103884217107468810217693612831851392406935710475728614689403337585368563439462291400238792167613301782694602303147293136834280262077160165742491419830672396414552504288425318427406914720961386608335985089107640901103100384115842376595821958059718855251448734527150306771041366017473333548771530852630498787570001567647017442159247482300501997434836429551884847042866675954590218129857625045886185670691848591635311496763158445377855824622635030234454518576122815279524761952060168092530019996845778856297941768646747317444578402047449003688240216389992583893053296295153448169046008449577785697910567688335122238170966902043996385313147483574186256698219897581534236397794612766169385194706724320093779963438036286859352606512183852674380377110022421699408318511996868955558244527718881416747909194251001358853780927709269763115671179186853275305766036702088347543971806151548667345551281070524253643757873015693629951696553616346124846561846553632502520321823440203479898872181613415957184018273380679630882697201234012068309870395346618632724921336107447701862773243670112989266459420054689033531891286226631472950815207542842702788750089254501725134661295514145805158789203890926526432773971873298695377298293622713819463410530294359734544915635639371682985691833575626698867747849730435231986172289674404888605004273903853008719879323021454667357893688816701843183335959617943317720999690449395731711833727854782456417206062509661959793146984920175730184503357583920465068916730010232948140724014919804622391208853026524114694771044890082947400898722962302556566575341238880308604192169072041321939499456291522396006047297110975622484098068300801728809693714118156488978601430976412884037696841849354376241612868237177119572888497977551660878506890560004451386785981652806594137684219298443147519975616977305517413154912553961759210576172364288947757687376624669271282956635293091201858711119874234764608711491299474106389934332160059293407984904654488901371361695198170843321819126815240991506342026479352906124964939831333024148387562705917201315246376864135396401179098960834676019316751273200906054610585275912085887304764972761269690758205763325324023726211790740701250737340642488568089565819626931783534036354537424725879358278655769461008171730600086614863771081137053665203089733110651928145024474332539166562890971432293697727974187658278157933811517466052398471252178998348228580682234533413675172869255871194028699632210317311190097228756263198157740223193894067139177317409278153190375174052086070079406499894519087555651917941802401334414341571479206262934608658236792562548737696412685966372003422657851165206134920737764843283477511381250742334753417881314689589999505433270476659788998588229673687999023096109240792270635696988958573809094776197966726041230394345665753942916479106052124638112811713317045738496804310978641786354453038514220394745348900867443566673724909193543292128550651697018295631605879402998639763772481883661784980935237736093742315092980087726019782121966990447612258095091904374737700406426223894632829274085506459743656046728048813125569689011979776166099560796579052984038346948326296182639502782628587256491078234176480714486550428177980181206994824233749783134976660930248163880478459970781230427517799820795697001212399487478127739475504498182069799304418518955793469528420846286076243848522782658851515920216770075084764220873663813146048568265351677772773651865530428142470277638677201822481622410387891593083676340118288006588719102222009003944472931174966188554588179615963307762459663204807983731443981420824297550212095097490410335653883706413415545401805527244669302943273638860586718334988305060891091765151658618067573549131928977959914522914334378092439727497816332031122593033702081058996275383539400014788244200968736963001501618796970698562985540843407884719203813369700778740121042558542253900737719360285037838991613286622159307016353888004427869471496690395532192761221754610979701274645989600455033886617833903484069109929928877759821322766778645059671816887006142125905828242507901863895436592370103462383559711269064645205892461110125920147045778665990514933603375218498911306083396225935229788658202623758671272425602667028163910798989809379396197403370678994982668704265853384887336217739220031571325892668342079012786788965622159453202801002403165386197325581599923306140030638578657128865532427061165065248923036451874534600426049093295285905872427066508290579158752733384097254134844106807359582818407819589925979590184346759133248549076947183531935678058881718495781822138383078427568414128914350071028401444112780024393452952014303668980595506168609296733867943349097153128306654958441951478917930719970969884435334214632840113903208930417834406847746127743569163025581216501475280444708082800885040030810891248266783167894343957691549293339174667352655349969099636402662990120202668640235082191065741525581171368318306915522572871102443625134268524305608675155272785880134052289957496855477436711197455117424865403444354995491576286554180555733703784881116084037289641519977990075160277718134934262766027414732252727390969494294815310710438187222964765581258579549073096323476991383364840253277274714407169655301890178291514106810587188555568440188128762774635233169821413142701962862643065292964043696445368895777326433991418654124016145966148442345719593685091514822776227053742411398081900432982768001875507588812761965309643142324369998884878203060543586924818082247883311204661177331840709780005406769704100924155909935001224601358337050682283593938672728582816968711494366849209911975249296221440602737703053273235152318354050443094321413475743128418408934614099169944840074889769870756804273832328117430026310247405321047946596212914865926946793923904550534055461411506203095114116538996725937147077384050020413745847198770028861871749495748725544822033818519577866620507974237286306757471506686330407473318313816388705470106916005953878266006563834738093403664261022308427756997885858615963649117840509033519236819036900112753373582383811293164868211525163991278103582717412492510819253485509944538026070503521085353762871753187359010643613882732727933022539246248342111506476563155244970317647349977024311804159789852598219929510527960291833853411355780183676728528771059076095781718929593183733958792011438289367611271219646440724046452150363200891235951488845517329707742120736341524827184111421088700443622993755108795547615468996726488913473237976867211663974320944941418504876487545715541999947570527349512527562846281724586354718737244704571738433114907836189587636600559792173540173958047181524183140551898301193315545853751495141190744624653648279441480717726114460043734257932632013477941628439858026606289127155044001568555740332140195668192235442229448542241501629550372286965724603139278835675539120323138667586938119231562666020287265573659042261528011843985662966601664652275508749869646676860133386571691545963491348585855070763265152485562540477141547696209265315124248485278823706005859283822170143341898713787330222136339220136213517789338311818355661832198353490494967224204606677047236447028846132442215088405891716128088253625696052842825755159315885378061889391408017272256618077773842140261862713933257690409592244685728555650311062406719849924105388582545722432781171088851911470915507459185863721458211931641833104395014612572316370150573142778695530868628169550962530996551983067488978721110623740929506370678063786877373850674027401230764853207848496592856157089659548322654222863125435898672213183613729072804913003460714452340002719341390712424231359452442073039378181808779613938524227807240465572160060860912584271701652725798935694743847888325459905112366467282967232565214338628501296696670710825707565597618728995447114873321493064340686634814099305871068524011982729870291932395232831297210987576966332257804387969428725106351038742892476799614275874526702729330614503056799573687408829333549596558512908061670252790617885937893130560021848084160823763087953470556627957841471692983703618671489273834656892304161005587848360504473626532937593243638057655143689835332114668535270006783350123429764659796710684728533918676874923306758771841901496946617990386926796582416023834574989813178833398788012343295915031984874186954602861195556646448460648509018406100357776091597381106533991983116616793290974813391484423925741283323711226769456111506559196212262347397224471741931637203485645331905950644902350224954187901144537613790293354123241512869989844885857321716460523043713329261059298911018313982803800392264746017998712369860441445688134756105069166499966107413614461432320110626960906123574900941656904907006981005118849400081650486714578341268949750310675457068930957763296357884659775965115130202328782309142582709969915897642763958654325982870488025242411588065169344051612878301366467548395931126835845493650502388196508031877105712049222912771729602347512892000861395210820846019998499815513760385041410799738323911069100318724687655559179567080681155553857352356520594979554229259452952642783019246825091324377766959702253275288240806350074225354961398640872423635029687496262590294772136399280743430832045366679621524898412034620490226986209976060012333668019205893598965331541957864879056821859854965434475575743405108514617703107894931747985224734355769938562264494071898896664768297138342698513600511040488655352390507968275339267321821780132408682195404319155005959962934383751137042387242273751496304338221227580741040696155758390950610180755139032250409447309650801213160735411877160234155651937565986450805289334756566726381891392282608652076840872567996607900068191821295228564201035979398287816919535676901777878897506315146211678437850905096718257950636210762682927311858251999185243360068019150335973999382362131354288120434755053330607629451741980837891249710182991481993481045965183117892309003361644743613108419477638949759111945308379128405049893653254028214455065182451723098593452087534810846597464902187981512563655445802517755041531788391364778653831784503969197921584369604918475800821832893057795541414294954998710801554688354505655720055644486605002854395338221837433205071870408767938772431509786248443137414570319416200772407882009237911167989308610734979652657211725003140630144911915049340046489772471492133003031177210304637908568607035996264412226368044832030865198522986940422064806524275191450841862593108285361368721233818055976366892437282602850521337231361355626165961999550039752102286736539901257059843752568903205220352215723409669134705046518391568954887264271569373514040830852620082455139222582915126322163971122540352434094360646904529862574183049251984937532363437984129228257564195426635706448443134374017688510708034574547012353699535324533294550024468952606648451416111417171811878276837155630422705306741366770715650724883610453414181875534932319572082023891167083199564496748361820486288807829465539443186932899850535568508892766116153511711049960475992708983483436462455488379509945371466093844896181267121581555256474460570703719627735749090516695232230560399149841255179641152758384409737948608289744181790832449594863199987739009660626696435143469362964303180827323004032709832132952385494339241904772151000425885731673142048219223337630936892995338430906519584061754545639448112527508235083152805705812996201471805510046768074824169400607508159619240160229717191088366028030341457798952049010837528117403209467986812314080270957566707823506242740568538006304419198966777990218060769067887560220733596116502973026708353158011485817821430107718836366856582659647359758632355996276006279880589042561905082277705906305648692055202368195741176907687510585864722258370045697539491707696544337689449337768753869242685730724886778600057710553591995157603506273584056016345938259482269778192697256599917491816192374039392298406972935281936283417214425665156464486592239403964694769656574988565802981126420131686543565753733844863591077326363744191522636908270096764150984850586808872410067595498491930449245201966843665624232647940775201729622885388440837131095856673949633626436907102066050216231118709724740187403909357389802397265443563142026336114547637560988548632435794267934686667883231515076184821017719043512062215892564428239058091943182155660419753767290755698807142290839055377325244585306326297637982154512485463517176048250314679319243911256307231303922681824441353013174989722098117231031546617365588064534690186652448728210681670762030754413132268269979822644328768828388048137134208389171876275664386185867671759888947249932842343534763214741919337585485577621172759394652144407821783459244223421549709786778131961461154373311840907559047828989932719553001933900416280797636739578863915503798522629195627075652472085542271943156830766008422799022682988557416769271410779601921914013472033190692527341864650862142335243504007865074561475598254171427492604177734813477416849166949998217889111313302293433083552398985198393279984942976458111115442905911365863875156398588898206662351158252991562114966682464127079962502680148459076195428195237591123022791784359530498589595551729104382175965103764299853828695221571377737432697640033070777097647704420299440354856252521573513927533617567436812824489566080237625549760040092333099700542113982395464302599366197982131297556593713658222400790915537445060984852842569016277355896722424110241569401754263885780058437278972023785791185396499299159076760214439255221782380124527878167665234275399656546432214726813559024888596873103377158149662784808075221396588627139058995762884041398835337149776308234787319506452787348113604438336518045049547600102502038389690930402006370086721926234387489868253316375457160407076460855086254731713015875691840270783483827187551899258327260213384297325461180427769932694397694334186571036814737785439094169704798369693206251816922991101654384922378335640048355638299733431066451061426341472976900946255626923104414090077504500471346836139537935912689488395661771890678524285768989247429591133609349152027440770336770145704010311224089753068896128865877240226293723672120156165463252043370757112621044628068986085169860644841820283192518068552299556922868010317964574643529665808981189863669092830893535936468068848110276829907118675444275973725722751809799820987724980259306343005421362766101531512200925757073155920855025470580876529885753501793827932013871258346314411865477559731617221298673443790069500573433550125119422654827428622741238092426636719800689237435623124903003771594367060490213750032874890539416685578089523824205473790572576645245486607128799901427294701090466395808557333082450053529318507797145393943950147888946204649553196601014014219911699681623272429856119373799959306954226908304075868075715697683958643586215665635634074572337950575825751279199420226222428625142197967760707850798651256499364155786517926378257776820441235805431275121130973095413506582871217678746443826993226159726247951928649377807940382438161189692416554085710948655805197332785276319561707886833953597805888481866018147913733322600631250926437919381512944580772236361069918177699368550513771515205099394769197019143645466942629875660670487565501227530967530351186094400295219472543331463234268006913582486082317836934116478152086640730667285868224947939660639278512218454786017074039509370257710162311362116492145685287646408842460356272249067422942233352491182515108120401105924957083087222437495987292353983933614861598448464794888776018431140419067173150367827628392542114028160068936280804333472013092321087965433025955644160566915382817295728781273818736004280645864596214932853850384584099604017107047070269832123785735289207670134226150026066057116975556459073687963715966392225274346417756660583923536152808436874624722175433895176349358938604219293919434258357536080037508481672137545759769352000060805768157427138907221296785070751294876537392507995889955731848921125842971524274657539750190877262084236961016712631546332642375242766220526341244674037480041896837188577474993834114386190105098649843552058888248359961221805850445832443815563330271014493318214186245332637857452430111522292747934204605048467042098738489434510647625984154572388150740108970247184774641985813416130824957302472667645332163873491786626381770856395820553479395810370296753914173795622296330846193444406924477509379457530424455874845171349789395961278294063824230819038075032928027181256323843167849686469774864279365283299158020084880547823602621606279946975755806293195265357946610328249436222909911086020887633953484160132981690530800065767305067349503570600083175477042990085398272620209168002148110222695862366238190915278169043214957184574317424298851089830111931899987305628148738139596756632588025075119439192301797763520653353328883849074092803447869951473021173580194671253530752543529510824410796281767930379089269666316074659040475673461804520492944228088955590785162226325316264949505814927427405199157882289481162985671864140432321007305164564057758860110285807252117873530399585910983834343064575711117716923822147166630787064079252136744617212945656987104663375604255920926988114398399701009995920745125405578234492030715727101660882123890238830141068457478274466752235392103612074023243932330418977338339836536775422965589917088356459552236963299304428054608609644371350460579779209614110865385720067324390123313255473437921187508544263217519388931957720613503486794447536185727082840843520584056410672059496432280167499220262552806463289596947653764814013676855725068712538432799676214330568788001421080355905187616992241448391180620703120787373185298881411692491674667098020437469379740209459050541659926435704716381451230922094544633124513939461401851393800123106954829090622618476081594740980598927771232744787363369460722066540036013829288974029942219284558706097366446683387464629057139859441596395891404903906087701206268560600366795202114988286800423870010883357081903301049710193216245893408521851557925932012860330742019171426583562343520897628828134158778897062712541686620628163796479290620024103314452100010305202846155098203756341234492992440873451391554512470152207551212463773696962207414157140285315279933908977569011811581003938519904110263014510048285356171956457418268726438752234994683782724751595529153260355075893926550539407775105611054552211591705141099362457044061468139271691766159344011943283833580127882109689920071521064455617076915276641711406745033427527001336843460246169707927785937572462824211049013459524101677992696764402532953356216211349370999426681583933217210082032890373392452555224975343589657620639326060052931373372049393693673730722620198302605740111943358343565188476819597054510996361368602569530138952693996902041367202286546000455397316058848142700428466300741655384030418668003475403593692277956173311278881024435725431778427143788543365523788913781652933490996761570867234949867461232945424629825524872122729643349963621747041073163985236305392922033885636128710995028384378074466846237285627008612581978197123585187608441962422218406086696819888892468365278085804555380581481427901294147501412756514690052400782880527935256094074831821329531956262899768777248393740537504695212394367614797923268160534588339404998969756817421756132363381938543704668436303208890447421320016340760986367458165135028039221491880397670548272975171764830938415312421409091023042867851814736113228319201625656995488012168007651615272290544024308548047680931734071193541360744617147874957213479137699815055183446490343941004428266419298180467666963109676513110629459355023286163038202398851553760433178296199478669024746970278770386522303072219681803063494009889059390191981758128196416131397204064391100610268953870999760829503202519911116275146525748977663917219847845109704285919965110632598964147179301258100054012851011163984013582676549330512330601650855256750131156203471313218747252789767792762109118603560725216390948495895719905294057611432933503170185064480701313958421293719193958173094756216592160895823969509173748638816729538260497098618947208619985355917259245031270052107664261583730462181719859278555913275091107923564116576868923095856650811776875743475092902060484132628534420576404710540195388647103900424572121298434405733883639460556311937889174572456332528576607977874060136614097580016049496381488008427783028286381260319335103505777822587231532861489388948283249119669858760077717371357041333803776029928950086218323104441662669134568495804754128911188009115251375823305717248177807991707609874969416719775383053359265906458141051584559509724548039311645432945761479039558472599265460539531327077447243854768580853647448488937596980561211687419289501470249259435526812029833188954229249920450293727394555854489391009013222833668790236906108420034914462936211740518594795583615434502662280961637474951959075615664009066227545156589828282926696840777197067491464098144076993956932405497865545040917928100316320402206503190615920884059698060249855673772996492366741356800181129948766634487820656091454095674497442808525468655023135932138997880330317788524846834239683402121453585502430031575999918013400820667056913286700219920783368556207610521899698218264049799876749777251286750025782764630374663018220964319596017485913541948749980404837792833350736078899251239120253991155045013717570124999623019180197755029629075761090647494607810487756747412673350957639225347020700142634670802396340715686783694526587406538457885175123951362531232300550927866025067536180391258310189642558560054825226487486425562542725746270426712340987864604409642378119468218969404587881231046448511391545875921666489708459682856670896028179790058331393827615161223312439637142110214206144891252895220504671679956631003562597324188754665253819380522550979806387720820156114891960784259138913746428787794294126362178398647818233489861886495641913537940513705799123622189481739606534011742311214689584163606159155140761714931528807356575817943699379927649738130781730081130299175471507412579672221329764200347280641596159920935119444847998013755553103039114687992171473613816886679182300781068501495274474231905126118110792552026931786982116808090732069106576937495252001515956506297436238530546118142726889272452639192460657693623006137799781792932683141730345433966627506227573081482813055250302415935823271981051630742687152571679504185541134561432080403347401739548276956755887038719999270015665427533980341859285114385191351535079414592101803614249023263481484974278886137963150098548848230239436285925785593002742126126164988920717083804993011169571949312756966757758498518056517269745511899951512704724184736319442097328931201162456997594463811099245130702306354098002535767381384990832557395037835861593560489096108050580811172128178136611887602236439198946030592353272876954036987011471380389577589455435187664216556261091602885780287529505190781237524514103409594058098549003502341252421981356862974044483026052071884526658129930923139808240728359356321722379678583496105740834874465086585135866849962472924263410228156560563972066511928329676544400167631794610294867324155758822110395011143853277976841567929173398557608745903199470381406167487191842607371779847416285536375648987911587563645904104704008780704040622363478119258387484445475953157350803375968066321518661730711791068967559874947839824022679656256654032385362927078172135923341106408500477436906548370860332171126289806142666484503705292720609301044523933076558044263223712513485054195718395096794843989416844012775604678100277161397327492832661339338890810462460302741460373276463247268218402295834335425657550155269349998733067383095658562321812453270060755602936467427173390221704009316993138561688258905639274331675036082581978063570494694910863538650768703675563333199552170554913991986261139560096171809502415241988141356563313885157223176595129756708398824529650444687684065434740807971687347445163138848382286628298858002844520549330703717576739607086978803857319942702461450008346545514309569306197871662073140916226514829011201015506669174723786903621411467806054351168887559415342907890411316959779325550653328738119685511658960301853076302240875431954115253838647907460732942627260731243186613413719795475815412404571683916623737361351694542785174687341198055407222429724018444716545820980930748101429366773022220036614012684361504796870075780292196732261219746547465792761993735981582450537968646753332998692438750720215801725177059498667400305462659699063342079208452879896497233089271324748529546226489187039964979627871114478101566280021169372512379799855393541236968726181120969555461648975772775371272587200775032605419763706647237588003382573628552332843054462361272939646335556397821588556628937190371545219493592992267669491054587509747881796191747781991966086824335778199371509427675956692008990765209177263665183350570343915411860455159216665938328134958400031391210095256831404479936407165868473127049931074007438674077041979725335598450244252123730202402613861135565009287874422909980631544330129552616947285894778395285700766474518024393055460046175126521247476226569117200782800484663074965939956771330076464912197880669683940899507708355572196628342381749469902228186964481169388544101837995704867699916325644183381591440932004852898368509124317599408554857276167695113327536070840387627359718124526104278066096295726703908292517252291249973480434952910015445409087463788834694523948331594868927602949766786746465306939269879616911682062041613718301966815301424982583769442932450338191651483643185243335151333855047906473041274612959094884562649727855894238826925946474516864228216284097019859414382758554941834100661947588422351547894656808000607795271302951939479890143675562181746448906507185440932639809693587738816254544765141247295322423724258135174422957225650449859593979307971723741771039161790103868769194929763077447025043330588974175279283292549061418888763389390569060280389358722834946624188208096539246394755784600957398326048640128798779193635527067235468434122249197633991272024981262638409188268640871645287608216717068841364787410703188333279958375038110876546093699986051375444759972362103090286152537671921035898737256313317070310172822285042310982699115839558031249579979377603542050959615829254928261990253515654804308590863030178864366202552241562196779139056960986289172437420308806172684505183081608965470343647731103065989977741520748375928198497435605752647285019491284258158196114050165856966307652250093216523377142176586966503966541682828607133767409104509344830572256707178039889393192136169830074277766084147264702962668153094503887670623643817114359746076847860553788886947799662179473112050298773492216659433095806518492092592265761326479924808526246674321860247456940074485599026804794979047554181148531183083776388484571003808871102117717122858778550245116928329778426616155903634718155290179481493948603921875380376270889538209551126638534824685676111861120598030156301876143207367774382267891230531292158754177590106291541739838062739963031478965325097011930809800781936404092017842476413923883995493729981615471080761334569260747876670507488378143692530398108405895972014949798616386926996774463348789679690387740412611305204823281019800555160778457955585333148752080815776172116177322232995320818780254879148308633310433088207117633786751665492123959017648049964979139338489603414609505193223108141570632980670278428273006283612740686586462021895874990060744509770438015779450843066904001113641829817103742398591515335999752825642337552482919191465742544857355255705166669113148626083125484629033583059676529817824899737767582350327020053046309604463053920627151614693497935088043889300117078716207302004476984995930120635362154064779150469994815568229378016721737998073619487214495621386319018070925894846122399668686948782257323349651270534540160612874828170530437426690138156216877932147128805740983554571606268754923041755962994659230733352147909344554717914215681004874228297929982701133891051373428730829473014352916519151445644828592157728700262505417670547780989379470345893556595662892264956717541266157927493883670623157663326822908288730445591198092364539511963727765474792368848614839244669728059015257086587814750193009090812857517645525403162176029221273786206408618021842444699858824541961890732607733040325347085080262177135779597987980155074346155206467241567661732238926525682767442415902760834902722785664597461334928910732670456835618950442212291139331463651869975195337111347198073542648780757368419895768907331327540733183701319456492265701695825770587678407172558709705457273999640747655499680069370999279821027115697900622152964352130234709399693468131357870585065152762105171537338149981809596801178556539931569778043774907877520939866782442624677761537791138133690214568273625036654033006777349249873529267279732879871344398214544781205892558573815101931272001970769379323277301813102874597617203183667082435151746455893314892499534763850234676021556388506598152429023755269354640260073763332985490521415174567291457125497975162016671783464558417950373847009506845125213452054344238227094619575531881766776405729302727081030931509684835278713342698159901161870398991911176973479770947430224202163662406608829204351356026926234206865051025287235152431419276308297439807333606304498719559542949129039626580071240878848191523107041722205206521011731516176951603630754554608856998383351044069410919147642605428407235204910262736773966542387459229369906543812212753613356394976228011025732905397967090939693872287297155163888185446955483615583180099879310015551585656035135548722544707214600452957973821523375777092808412744508184649705496370425453623243893954170322530565195951240100778401706681064001823901664507109672738926873041095733722366989987022526966357636305363566518455432389050697722821230218800981263072130759287925480579858189866164527420380396252640099302672082278526694858238843275293882640376665856016168863581230043563259407007382556626091407300882110334456473735715393863010286682246327699662402826438386396933171913319089748275414545966713566425780589933993678452818941810599490958494724580197081155627642637369806330538266729526533373167197215103187074140296605170485771804211847021401238466512998740557311240966239210672673056461922829053516719306647307214946640341052960190129465574678733936817847746916946458764622093528641025591247671868848039044272592538702456512296349978720894342260633586835589440586042198985226236398088011617038670689638404720959359401249102961619558848891724736914757307623623865675705287574154203901276253086993933307444617541110098326786401185890685453750357917306853920501208898411691516602891121364367251357530836562727880144812161923773133656502536910521444718793644774232314466789100211461412650385058558006086520096734158960400381994018182805056748996399053855612445431453206715771902559874252354623460020563482669624703335492766126737990650439970903900950123743652398887246048657615944827330376487391494003667464147305693621406229213835769972561507009906335334493087614469801191546454921019843381152371002690249274062511167892108385108886094788352465781183090973144834137474400386420928258446812945982049495849769949133678124611607205800831751516326439865840643889056457346246676263075506030843151656629800623194591052340430900227343179255253900253737671367404627059323420723863131028163952692603477843150173530798614138897861760012544675271584880991986176843114713092288594239113561673474128394096039396972769679147522195010662041102426494631974659551541316905292189181336393405595370173191549511336621680965586962255525570648591638912514440917718062978976143933382258275910647447530458006637693939384043170492537382698526063330290212038737225693503360208211015850658368133311422113464086641491757590516900422858889483489233148258612330670105518562757528365430335572170293800065546656012748014389555817908976884395655045821168626118507074590870552909146542122138012540554946081211797375182755890370275010549116934434315538200256360180106390008864744155230768993005672999758050826854822122745894001821074385003840375873131797995267480126560962878933054181054747226424849352731613326187824503076971991692485233262692521195578268927647178641687413981131914921570962686449353419166355624059320168323383941951106519488832915756063368419994282580361322294285616909895581993262277331535224891419837166125018616204768391304610356564582651290340465285888278456183378268187003666299407949656423436697929887188320577993261543308608520065400273109641245380491795994184334901369685593590126153664869065709319764084840413015323063157625577480375987662172102807263096132161229029789167288010858185268007826507567028725511817630422061189182782127730542263469522652597977397917372615616818977281617114922274297485731142534212106996982459750757816356951523271925854892165224638833261244479345257290446255581788286243630570059797581821812421439946900930099838957391869649256418031728969331445504581648400594508871525651696997442324680055180215607130552161421242673341574378905455886796963580647552905867439430119727312423647463049512958273523075245326990258173124446701147139217605303380821376060543178110491707679860581096546272355501058897209161346855433793840292333493609898666083903406777837232822743634928717999298939590409152166639389559658730951560011959582449807530011548905481075560687455263216346915124272810902143559817735904518886021352240996489854275237853330268718292969107444340882311020379586691589008291935171119544197954139983087834553324024232732482136076263494924545094043574922335352276019521686569632586647878393123126735535216443017170500451716533202423365864850683384405591607969204546939804337018851563324716462858913284475237312981928148160912713430260904437303957548365591144268761814763798939055733662771103361546376267151358470577038233705290665941613926678157126697143222335958371849107760356787784747994654886709257114325611664548475769238709240921204378641706841660717116834038884720609212235042760545634841136808760177505783216830633116827658482717070582882280796575961641966328031864618073040910204362815308207654042885846599015571791096006977569178624190356981851924070914177334750079086089849946769165860435236473587533141674701411089010776479338840078371431872182961476159729798800175310215165321638329627788251155975286914187601571109858145679058196651974218198594522906754583660030846979190075048602027936566436042470177023792438913239386046484244211811298497148320866621383786965404080809731780527044969107867916912026751629213289244869040423541980930617316680231904282771645649686474693924616936224715650596944617881117833443588646407918747939937430941118428541807673058363489843648530279748387140037305492338424396161645933707181489538267597958995787804086008505207709173355893440194192674174830342844295603965930631317898154374670292011322759812192789809894398027311720377103681723391651707447675658275262818728155462526119282120131947275939854429782086619293483162712901465424840789893741890164324919052702790503821918172617362787191554531543830767810784331502891056334752082218781309387748960432587346665222289900061489156409587084556536373193485069799811664701817286842446605633470946906569851849678989678300024289773911227932418269373181032861076045289182027100130238330755026925059995830036579182732053083449472221131784339008711526727467845175580922261402310628715746808766770909096905237835935429706165959956449156074732476116918271152894052384646462262682671690275971505169149028702757696560291658227430534083903989435556282178831042855750551975997773854975090912099866871979305578860951869356494986306987065013494703134619872103037096831189373492852809230406497492575183435132597758891567374008286856628337823186800455229768798494394976593948498994957925295501159792466961265605494211259557522929066200301206363776618938538497974266910326015983717354963799364568293884602303441162789761796087822693457584299316551747872212946940623951428165405360735686390561811390431989403277975757353041678639441690597808534049467304621823809360255397510929035980034612698609370264768141706511053803773184261004555893303309385958373552544172811759614179082816084693667107987303945400595980717382374401984570512545194161332156874453248938405548466793249673042701623265306500275136823363952397054230063002180706915852513041088217703178322637004712862981042153960344669601800694748341197293771169481734780292748873134253339745537613714903025850865781778133519365482886339527524431182692900370886843867049388655472151690840364498626880578212955051080137520002879215298547859115672947055255471219630709837381375364323929384632587707346967449398539005132619061714469292755978462049582306626924531151409325780099911468369510786606856803407251052257335857292966720684607701898413663406914081104819225764508128883313443625843948498478289486716001213653270943057400450462337654708859280841069523373618797515715983733232199360949140970756556472799448157051187609653395137945914200497534638101666371201595295902745419560139012498120338555523201517822263025087497969698282273664463731346749117397744810097242756645613472662222749026654591711393709047710449190027989771436115927182820343559814988735054218252541969297134798638756089466483434878980389010873088660094622555170469532580860384321990641856986970021232963337824374931077460604183091121908736786045122106085258773241198430604185661903765311561362862586943924992230093704542016008886931125160788511724458381217353891808882462911864296420552990493587117376562388168912063410336949470263494521259825544685156021503573796065445504171083119724295771047838011942495090897735359334741726393749762174708977239398260093831027074439308411449073655032103436847367484348941434406133247153186337113358603728448503078330428767979580617813541106044413789500296046772545321315251119948275280665939855049609394832148050835414606669301007824653349630529251164557991796252693366665557280617603852743932529597251583474491224591709691039042414533851516585502138093019364352780621677174616764538837273614232075376401464325342442055999658688084905333372927237992228747804468782852073710031937527779073396627440635294359959845743883650505761692211855219969490231507401947796397339503379025924245384247624743144504965690187247690165167127237383618083858976688203349551298616596154560731047060373343411754499064793642774274738466617250274416013623331193275971241816750262679030415525185697657563760660884220339796786101022768786328160958356802906316645354815121076468495674997195789717990774823263234431644969586809856183435397112025974333732437172688535238046295973589216193423413988992480485053980922004782099571419450960829042527055274690059967307714405957077812378570404750868102591192191491959720652497674690453867683352434071552717671032399057380789379430169023811934194360417457698673217073691719707470410031812137917354085770167122333629822719501955426245448965821830864939906566417506118483263642140338551626076188516552852265922276924073497905556344192837831551896746734046015865061604755912995845588349054535680199222404988368471786875921643967881415899146990619576380301792932568597629328397511746245013259722539311394957903402366229469604762635195863457391429475325053395260542255029729100647847669948962732702634342067860078165962576652547535773374501628038210666686391444478814397133411193350174987733546824142377422642746439267332509002970559260490109439407411794574572171928037377804037906011978400576226749984020701971578242712346440602929514904227719108482595182723117651168242613301938144258473324136321825927330954056639844597908667275649725360628711114153637237035001255868902888541555266855390813847491301133758784790891215865046127181186937672458042680222340339494079062902619074019894493942303675773602991233990738195465571041571259808818775103795042450321285804084360922216724204246577827056895615286217863302699394335833453607645291422272928054355500228019211240863182062291105738609379345923324653458356326342528985914986573619577880729292651016081947660503171726625109907066961406804969446868343561891248429481322353990762997507221618108139664834197954896196467571837173156118437839399152330180991373659620375552524662937870399061429087002651076739856587229224713199835465062458616905449729693960690257583330284907506242946310277830226965704688207183064011731836549653195189853522739840106360736639171637020656693050037531972688251459538887701532906154067897956501556268082153697378434558725142607931392658070534635933079951459712202234642105688621893662001984186362812937625518563298336126000942117993888932458673925723485166027834820258439666294681275779727919009560880517054330385288673252382055123969645749085501299330258601354148795491264777402309372719324986962344501857463750645349328462052252926072219507489842150505912356281893255918944600760478216178567933589125492687697648567381249056552572888928254254533689612254910521569953294169387898846336363515409663595361082954810167877649507438463608247867841889613048019883271752262030662942825564624757865964715911198058355398424081924319700374984378677703266409342032210849227483816169474950269219620418623896289896889740123038285738718325182346017323930541490326847898076055886860516157950306298477619364782477078565726989083218752639698702165138378428027635265916567972634892745257097335681602435857936022746658545143828351141242326255703133603895952078265878936103964454386572845316947784814225063323574455111550886477911413350710592581369377853055197579486532781453124690767454110546535477613694277551028740657773165230530304532613303815813055074111104171210135381568538641458728155982295083852542446143041759591807627456443522194582688664361214166950275568572519121022664832451822468196654363520989835206353929619970018196113504662817623080183951507253722690949092145924827455787898404714029092793015197507599044511501225739090164966162093675481195504758432434350980125967446481356959755036712469492543179956053009216234738105973620961482581161163099738982509564608417538845259644478752589888360933373898729535742017785913204002216485610246919268155038275470841058190612411671229730118041456935671537507284718845115940560560635755287719427021852038313097209363579720879297116924950746453269328177813749386678736581350134885146962956844107124803608085567465640415789356952598049873594259694491952744772102511404567308264377955801325122841495470028965803396006357934420049809168263553770603850560256223456341731869397861260037663134257249129263370291312252532610450471514258689808405227916151272829347471217096969100024707220632212092313133626208874581103314834291259742817964823716090178904678630970237039576008964790246954105698400828948545264983543012993389551168990760347553030179826804532543435583886167409694789626244624381554225542905721664104052775188084763502085976045926513381941033277456759939941409270523925041188714185507613929849416466070872615758839701976459638895800198260280035092883030066578139111010870656509166492960042962855025000637618109493499414360134763305381920110748150631736715993775352096469763992292852013222792919292602837874022838436748466538049140670479460859470814141795849174811522587363532408989707237435618020174777715082551843992051395773607697561975627450980106977779364896587054545459816114590105823859450611873533606171101438353534661084792297944805302609428877243453951321993164431266632192801326524970581406851873946898097725216571287835441288817841608994709030616585775156594419919921845970782479739131998847242324459283964836698049444417397831174590730105502013523889348940968982441369851004754159825447954552649332363148005636185854467975089397089756338226171409305397074314183805939083982018558959983327618391819473368580403866971127556712010118587328069660308829086630182841837984180080227076107412402157676315353480052688596939213020581896725611338141430655701803271475440733810728296052758777635236387136030863030802317090415190684825552688879995487019929491078251503429319767114690820925267544952841128436467323309880427716809559907798942216850068048947695008475379872071546346279255002638490330249394032508872192001917883127159317810724914351288223239748114551912505862877491979440727799008605072948629536809713722453057624554932687655397794930953435148801189787682495746856817697116320138916835653092887424530472245906361960852606990484552459292429410527617534107877665694239519447068025139931930480912104004037063460301771492566982138926789088357351253186661996454617692788478075431902635387557214232771534377995682495322686250056253766334556100219909056334601689609652910368441571001326598662009570714345264890489001041806611537815139249611542623721844077991359547839048406836780681803395329053767034442327596000690287208862272174166814800529106536761646062297656537068777159202972597126279883375068952865323296272284339684589689945828871019929738308372277600020107176680475876468478846052898586926898076434856671106522714713784431479176730417547705691445182363005680384086927182156337533020057026194730317590313326879200861374368079776598270933011505298859820307404712053801344902684069911948160281484969522756810222553464469743738380774422071745084131462992930524086222099388748855054680992265074127546045801369162624380459046864856921591281803768940291052513995364434931682717980237255271375747823034104613001661658172036135936692984939539054302179416275284558231813906275671269924300456032286907827792528446682992168623821380336061669407359479930520154386138395195486495178625004000161871071384175037880667866890093724583240897512222740766705041659399441151000705152265372355830559681383009125817071782090465894237655146790828549538238488060817296304322784195460954456462399272534681655617500931274934599886567874565690387211056506730360714512997210620648944773484426899262401224286191950085223850434867257337640155237815238696635450110530720972228664210563939078493379706443181633846701892607177168881792761869469001001756481227024345366465539906423464148472223021007621991814493993323727671561942872252131843553724534570461784605787539911398415419070771849409352702159086776637315336583721733409384097955325741864792522239827574770375868038698177231691045765675943330778725700719416474963135899255960045633486181066276824016118447681061610114879725881216754317548413346253216146872228375999223732457438649708788933020476069332160636322518414632003837706185158164288024872515556735097642057995992242825660203716275833945347159510513685370523097465252410857456224340613427896553802146280382541469666881124367999056865733554740678469786238216723093689800286101622634600835549722329387528105005906729347334913389177254464525264111236885829731597712040999237928802095152031448870643612011055133122380110190217234387857422824416971075984060531686525253504355566658524158975625306294383726269447772205703260749528748013348922144622986399293557527022726925222613653709841608428940864679752087809748539192053125177653621873207009443925415271470791267639094877893770326973021849785819970979888009073635777450499740033006463436860166978086340341386851123842943332283959070531003292275424744604145104371269783546109417594199888890250962119046263864350822331388609678142339966868387371153171058932909137868419337197558801888657383557580745963403969386374528788540486318619249708183746475597980269058260150110641516551655729458376119038300903225648290352037920255112901459694800666663959584276150239989035323096539908478173681460295889148177430124438509942206280199101013517620810470080685873364164405731433176081599362465349057391777653538464258324835598809160464088528857509992075919907988320482403782893190426759951785473087883649658916210578999068617561138538118818106022574667399517863959625868820575570632344755128953911399381561409682967656437698217772130002813526573969498021912563209141460855221724217257810953666406246048190111596930331764465272661167225354546707434274862900497916406882234221647606928197141147341863280695493189961946860020443496930236068617993742489023849537933056125445345118752709521730582388739338697446244727370562783415988845496753780285230187664876115195120364670880933701754822731489505557973901484624838594786198340098560791432037701089104698743404112763265192491532862110967769825325983732803018318787474605654577378426532225295661372788985031097028662031274381130253709679823722439076633355650843836363605310837115761798322092774848420609591601408637481791164938881706567870341830475427290173313763597108456866900591641300143433940576808798217502899284673798164723438771875831339797871607504997810583970898921081975517200452732405123864679254964873244215526475645177407581467645652592296625764500480843277621957040126534422913857620304497330243564003984724948330261208251602174074519308156292468910487147529271775284841722368559443549942162287450243573237408823296741445142753307284489079405935699857232127681559726588059783195111717639696211141230885094461519220029929025252228582358347167533934833906260395383775847111874250182776226656741801689017004320258648811591915681550422155019172454770176684103896621282486552501051263145688088661922955135810583172386851925674291519262347395155317078870745433440011974604756421886812147756923481170827794996516341452817234555585796009247204786106861486330200719277662263296454278423787977819295515402880452691578995518558295087507188609705618569103180917232388141859944818062837723256055063759043578073008504004466523219926737013085318611716671698891157841818482721289255652062604443162042319911463027851767214650480135446962425754377796669772624489383705783209131945389041475392723206427317572222725226112968297386526013199129573832465577407460464384811273583274559981430350864700984257753416802362842914757320237319784552338743042514469133234706653250420405821162618073391514979238894664979274485837196089503025006117204433053565037914525887857210695799208292233701280111514532854876811885411508354300274243643501071512034575353819190136178629170412630953997576971711343370222294888605613168704754283828287225724853668018990508268774683291026851097435031055889841977682702995981517051473852901914180417483501617880717366013745682200468660025703238149276767515562445536979562643423761972964854518525380600733471290889914344779688982566174358715323317473311652464176239483681740690967947729852891218503768782534407964252444775603928765425342206431137830928768687429283239328427264010939811972176171493082755960222829500160194643983117126555110075044103733417253068963569971140917789017729771239127141852389163699729525133919612278865509156957744745454212673558844563841060602899166941311688233133627069120889370538304406638096345468840232935874960223090430844930754610528930777173267122102051110542605649858037186731322110529932116885089572337078932340320366996617743660263068209532113579765873459064301998033017799003209580059069631072407850864442967002389114521957854377769920973293584311497900630952286117173534138690250662660919004660486335349780990887847627400207987579708553272647137535772967524272848886016123765806186263984948208821799031064198417554205260661491905981774123960523166402461041722001471725225632625272155134252444381377379564797664489275536060535166297268496629793044373785561992826951172781027511811345365478818026569134434287449835471803936251043324037498365043480259253266200188807126736335844258528658756342536939648311178940901940152071629081074657834794078061857453415389532595085189086135434756603816566678962931470401147307033612917667513973355908208418659105259445977027659685760760158149881182847620336746996736966970704528855941106779136266471977868593378762335774477904509040336655221101712322584203893964664364080488768201696457863601447381717609004797659166059908821618230040741421206090595760903874153044900820897491075818206610983700763293643325557035897353939779937363214963714451371470276038886538402535810368132532157877806136808067783709184812618222515362834051228584663750283094402972564067858107834078862476290339886637345230206625049158222927500863061215643851903175921763902133766670423676286968384860979609506582483604672643911190431294432937453174198410139541021915050974898543089188691139404687201086661597035878260491732459749019274298333139577774419675382569175152883484332651356238732294560569404885238354384055081976470287990937492659476053629958299124957992364003509615612873040555454657777313961935283905549463622761934701963484602777133159858412825699468233488914985603438761001350869582461726246574403789956411237859924245069782434671057861835473497066036441589097183419295316853836970781159562311651352844692541464098692418769071722133598934474036861393691611823941649309906442685508357202033568678309949701138202067087648729677558800431055052870691509890347060963129516419363836330576961920734208914888802589313362671307256306221348932382298152624152606094908087598148654976688838962860031117171292219287641939648850614306564818122405465629592106860361871273461772499371128200214549846470801621275704545524615968656341764669178976558205304180576327334337727841955060841456194721409197999464829077511870716472723309896721486528786816472783607107126755059025752619252220868170027500989305396636670437306528822653459501327929697038233044366456654005289125571139670983371950704972396021447552744525470573991185263116276848048232334285055724604227584829639033072572704079147246187894653077255222092818428736529521256866974205559700347018538578545099101965047251069849591082129728542870892599003914987114681480489651005049304969975484122120262349283033255968787680682451217223832052779813542287746614777519524162894616188395714493996259648003343916392854724775116902607956345160135648837838681886381255775941819335571187366126178031008223160625861981495788022109187786114841509174349624663594476263434727061843109086240311917758441918400340173046934697670920283055065876723653686276503135483368208383633654036212462872997337058223119481203753086587720183232610003766686818243581655852173175183305726598981883573454158952050616188478393024374759023358570430238376265031562535916273666574987550286357586571831286204089727849915320031562782561865512711195936592489296409013985325110906197428951133522826495566025742482657763892720948447823144514119852403217308744048791473538191925811415363284166940253459896636633018013901549734235521885540094422443903402329484770930964799988442252417667320544774558185463056984967943039531223410572548857188994086988068504598646975079600720566284477884478643773737766292184809367153527668798544935783717501229319871151203782796182253022529798588034244759624623340075700859221479892244471333391546006045397458717443550412537629381004710584991974794868135562930269273181245742797008167515834014034472946409366429538646608534497616314725391391843247861432123741367323052129027701487040931177388907404659667450379840054375292280176501860449932659013835096722126043045526103225018007627532974473830336853061777609004075536525095604801479716594844951803249899868295073644557827724469334424437471430661596256528957726122241968390494207794957924141151584542156344614902021096263427356794294447649073743249686777025600958635489030865965481801648723919654570418603781501778164641123432665570585737029316523905670098679400963286299381017516023367800390087934754720637877932634079871357636910062280638486810022656649014885762004120447964367292667156128370011753785349868222405503867212004148516718201474151497181887045927594501442248041745107103551541761249958351906785228160143521861390535445384562625314067951021632617483890571510828481666508430097091237985567539727077614702308299757456959005976065066253444340615809381795482969096267021913425919085084086629147925840956107061094898841306445823966585611181289357314192383307577900215229718949546241271510790772146997015662772564641447220807505800781346923446512655397092055165373995022450717929468712037857599066082568009138461186294938744029683572166863621589175488527028220601678015023436618670736857187535574938445013943938797232291041069564369776329148915796476069207306224079239710733934154971064536696958234452071642961240521691019692870991802949444948628684623815366008510238170173176343488814113285190454029191601209247849931553877959053080651939521520515496419438380255827110136620735344164798253856561359245105614688489736522167201976784032403619389878973460991992243778098670926544374288793744121610092836533043829456488077395970033417713171180485149814265864961898063488723108800459783981965589183121511497418841733596495873862940322775549093267705764760307735781842579668011980968050206908179541435948878906551018392956910290575812715149970992951835146788313897719616993607485465899382915766421902922502246230074429133848084643062311309580347507773746336512366039804969583127032947893195512666113648029476852666436655580893668843896877340683463278588602070313094046800027973717009607537854044468236135848253542759020439725279849701555810690923945979167803580773835044437009680960925381307618085160893403243436154161841140947800850696070455078812775672340697525745995988150481198988313021834916971371373313010923712894081189974489838207597441651678045877202712972210218257570932207968802306498941063880772797448638211065705244184052091018070148625012644771901954250793356650500437431663620968893458992125509630092261786594427400029883895689546389549038434890521832208788686016954232392827006994317085466431740337280361393711750333013709692356232682675276153380833132386581343258276364947430675593941942533465140919472542747018621111769256449251941510603885031801604479562664624931410334278981962634009104433455223417233726681294583354697366884014501404955355823444628018518730608721545753014091500454930647966178350232950099595412520381408818496152537314785871973669874391082684271004852611614762118135541843719745594388440039802462687589002189093634679791909525431632651100821058080391965167181778632843188873928388916426316824210360046461934013170559788816868265085159777275276210601460058725034379592124553155902629577924847530636162115494182386538800885299763130202996247085205138604068206679911830366314692471466994155802104626107274260672225622795522708206490588074864015429429177150342822017140590326305294139174330715704388378456747718733737510786867995629342137639829845828175351369830268734006286450545856006899877008342398831902319182888542481842131033681160268774825204757759577336240362897436034392811077228236522456439712772208765772094810770908062914208520415341684678190524859222943656250376675082585069729279107206847353283951432769456233873025706953022145163427563600967465789548041885493658743532613213731433567505427835508527723107012810244423941014442643303656417986430613470432500950182249657513809812041654849294564024681673546719407753201000387449536999779910478111144262123412024676265196304618079136705457492550038376231150688536910188673978455257985124756476268491150881885371036277462904180025422059607488911174214749826333072191718072987441711319199210895861737503397139467437308094948223933808589076556051635424049566510823973348151041384307130731101830353002514815843964258413186003026884192156162700429400776632718812099169894465609132973631865237850766182025114653787281462326287399330716076844735959889164259427650628715023506708407875349993080821273853693086866175283553938515768940313541838816936455498688620015598417899352793016496274688917354146284979093232129679570445212685068146784932462778229311985003010288409483194411152498527202349612071136102393394546010018259397364869591539173206031426517675174537644938448336521214007710127059767623523948084828759938369676377507484253823434269614086165160555848425144319295918579410477150704166371167281566087532602273228653513003563731690877573934535835021572183758140848794767521107844973463173091054325214773544260761722784011115257922004422296305376169528102100330763711212014143776061910809982895715577640727038307164829104806529214729916989507821588308290509993447182835238814246027414918466641236198668440733951432385061706197064175418950743975486763003127437645419510093854637562296611547866845052708558503580218261176503223622173983486941656258704754728335511689528824197546600774651424940850255060018299035017289940031768744819001279065411670474171445496240363552021577867408183724648552719350494130055770286380408742930621038342351730565937507550043303440414117506062763253492679803777292274810401212963138547586286394808054999056721169712502230517886543818954150285640032190741910797223280362853949292718893281669560257962846039491666303982787430525101741886711614087272260973543560660975169127021057385904806393915303905892552247612177975403309685148371441852987368966792994529453049718652884724813989558081312197360257066532981415772890221812039648019491921595076842540572501729563377798859979316352202762667703181332463020199417208506428706072372837551352601248774120739219015030821200120743900322642520054556996260881457355437804954452741188920588747029136045328140248070981191917998930079162151155178105585134959330089876497915166941791486307707285800208656902977446645496293704688791957728196182034576270834946494226648563716267614070511621754565786199453827502419631664291146462481782115590383944788505409072110035608189473784080328998060593158473705548593417502942903858319902301030529989982512081825479428503311492376873655038932498316305930835004905558724891270346052242419152164704781885197501480090607005969080656050912026672922364501508502855551373165760652103886156626893020181002607641184640405320018372167528185081913249166461052570090916951875794159787294723713128097946635570469787155870088777821808936939678266890796618531086099844065286381710345818462985595353055801261038433610105563661241543279941146298581965857411318439630077583573973151117311029175390504243438286571491403344549127934965193917166454240695077204860575718658134816310520281477662656297438812006367598651319915775259253177429402253367339073018367471698139245655603036472815864847257856286515286587590768035377883405503888537130975478094553516308643586321608709100338512278969275201074435318646978904935058629841898229712592699207452746451285875462805454594172949272622328069414253300849629452747447112938128152363615409641086376098184698294915655336027259735928334896707195995503444631424358142827033152105801580947900464919208246162288268155546361676908029662402678645047717326511488453604336583338221865006124171702916499898812215190540687399112654938088665783612839857153213617477959263090710212700718520625042563874362597549432292251683560234134584564081859266293776842030535645947827882713445541746315358257962035929137604625950039913010998646996869517432073707446227154215791885721382128391122016367011725580935943269461005664155984060810514259059294585715662434821743454334445279808741435626038865167696687984930120069146084529847810005102199868034077955350871118120867220890207374358360689032739259534844709307002731616348092570983138963957280041221388807062497765703917573695360819004566377102084324596698913881867359973894584091238592686646859830046517827594276248819830375618302396588368337693060603725496354060944132919973227302435432847949502235308213366826826168655142768140408387540971769374046587048013394934096316738394769572628170217647151597841465068765497242746164582801688200701306189910130782094534703876896232287936385083418288217379843754870670128526581898155548143500052622031401424736191373952885076007688872414363396895613859686045904078377559001106496898910421714142711504710880862449510497466770873977217024669434508852222655863704296414147574674358885997807300693151024399435233319598468296493392595735748712400325842541392186865481287201894738391375657541474094030094113702106950283838857524267818021645078218014611742565742741062649215526109762191775530474176139415405304274769063484304927182692965665947839909570840557369405826393904893830772445511122196809875176512495037805200896819790834334064397934322203921379926232887305696894940240220169916180179141038232919371933119851770536014432034939646564910562623399680242428367375431176357496163379289729080266943708021601121334050112963248450464747702146394984473200386427160875656462292123772621838371358967743185924895773035113299002935750544432444072888776961929174908523652530762947920836886653433705344040005270537609956551473563337483742383931841702035941833915126915585342637387043823788921939850690992310935641899186940809099446607150754722753103264557438855060096575516339266211461948683403194849743249193058725772911678600170680982197882025407810588906640012009612557930942645440617424304536659503908627434158758991271538694472968391796006474500419046458881360222635804427566860441945448192849351149449320051906834683299815345799048155035824707611014378738879662850686503120632962460733012477586414074386987961853943820305794028425276675430832483322152241432824756362702826791791360989825854637488473082567537865679032798411025909127175396975668468104414791688453277029172645459496379182917297313311555053779538507220721468035673245998058666061243557840206255489514443837319278452251457096636160434494302649472525446302384342792048502618877987692389024067444622681304555360448386264693082918741146090348326928829517929536892219868358503538260415515283070220427172820722869342218326380513464320022781109446957446791514288470228098696346815382948968137591423462943997317594089972580970548780243096162933991953338167852901780822812905586577818964230503453072573829448380655233817967726554327399921542715211900272176180830938430292202692364020007264549755883937689330242238968471350873879961625398382925883602425743637143133018211543405415035431910466412709179897368252668884381599781926220435246627732878361357385703479294245986733000931135924642125640226154433438072651341467577054956343805585605129627521694631153628428148787999282355440583570877768727205591331233892942158640478458267330966198434391872169097556447338383180753870442507233044736130812400990617824967522844603357407336643803808025978709895597412521211922177113621340663695182494200313596584706370242681218993963540130513365583934448313675464656204515011935353733215116204893321210632522747753968563423538051732728095166580908118293602965671886927291333968694846771848139128872603402381646790937152861995827599282908204733579864592849822910880627488668976028054093820530527471379003616194706576544278913065110786967982257246968596725665898703016920518084252863501760912965727695568800299927180665181622804861062217714524684877308092606060896153695175106240729756481919124966271755323851800106429416505926085881397564147607204296696763245388611453430209343060672751461950620446860641126146284770799598771406890803838948776881865262351656726171722456975362619088094678607920903562623077112806970300135352395865903535970980387189970122056225695237606731643890567873690843763619730922360277153677546973806946234007278448768191575889079518219158217931405386335578682682376574390096417011779313632260467835849562380298902833941770383632047324042074692005606159636049978930091715684688890571237726611707630789207043067489673535732729280885319402926775434368241186264236481688282008321771811706092999081462738631458445068068255171990067371644672912032365279326130333754920450028990829770953967298950515990526291769307681905731780955176989285166011348878784261577636703983680720305474875428451260224641764396083004623598147261510172347789429666897912259521161553926291345450198056428934448247384387434164097479191093665879939338057602085123781171944981253928401373913898341195973501921925384128669331808068322767627108815509878214164699643108041935629765961063513709385468027604560097673033416676958004585501575475475025644505899687545897647068558627583705851624762657773923388562436176106201484860911279200369065155343034155213622972973388234979365568861469118886445166435973688995216445261693440597780935286364925776606417332866536232739795309117740396577364173064636025565176852847175106702703436361795920105036070968472635612959499968190449826499498796873921908839312392921701735098056622189292185246576599789580440023348319152658192702692231794885268289525391911854045493263121457143972952884533404247771356488232623443639060084939374790559076173944022125555231391826796152073893709019477157819564537330593439338359889959854702132351764999111289471917139678052045234537580085180711349708359595793805568482455308764076884904053100310422508586911940779177124482167002900368475666884080579829915306699149239818674864625154560339933965041781957594828783797003473773945822376867912218283415907435358606324365436430486980452030327915485304475324920752047700283504950140353559840347782280602555903860154772865741151602251870557307897558578042622918151237277126964821234119363876511993804309254073725197443689459732268219215443149790277563628146788611638484161626747469877380223107985549304363444067063788950090185151119733155410281012041840738360463089276082196506272132205606370451139059837923416682308276181417971334006271916801854928257637609920546285955038027329162009551775400484384014396531465340604634190539603517211891843478287444142684117359139163730263260046315197765292456083200062660973074351280604730335617545513159120714503698560708025107720012998630309699899221576252704780170170609278976701043616908316279531663203048047329564571873881328603787108469817817362782249308302619124504944342090255323314882016320720556829989344014497962443529472340768925402285507793019803311188264191499836274903617361564166282014293283971721725006591457286224605545688098738583105562266416971771257940644458010207560075014834078406194445557283505559156773268554102241808854331201840921275860008790370592230519465467554502107379885913302271103571774114627113830628171616366322915541895027302033527901632697716478703700083881120565322078493720986532039654621906676927415596319838613640814648256985817509259244592750458683422616263644745945478865602064788700406984745173243310785300934310764467268029653285885491294467824882602519890416293695181583519359971731686200035110647942165927449710046781897910968517607311422875874413495099944160168026721929851364907753713168043382376313609500981838587273778852907117073296946283712564860883320066689642548345966114221874944539606926881588476250241515611434878491150844962202890243106699418469336169328279790063265350810171536167039681188943763475954170041800403071909696787907217499867373716085488197521717468546826013592195694720995959569301126884536189676208486804525568082077043108494802719053932109467138048279164367377394477594522645691208036145437713502464405573596486915383705347504021657850090745927875545737644475814483058154703797218811895375823596902354306664553639089523694294123209304541464924678846931949373091395724632362508156984405103186796377677016066775589306676664446778317198973831645756993804447577724076725437038662825398915300024070059288558989569222884832702610474017253670367697826669848832598332114134613986842153363347585728488540048980074722447810406907396844101779151187470434364697189190536035984391766831210679538488164274772852774662898060939302983175222224758826215503021298508348473144620307296709599155452069118409761587279425107369942345164311414756386629335180910847976008720689456877385674526284417411114182752020894343553658463157448636259807168814859183572943007364540055734397888215030843950441408928812657431475925020184315158708146580023773256711400563510020558070050541014095633756540767402945549729792669177748636870337502581363314463405702856912952739108795915327207886140426557270960886596221740943831727387653770523210584915049382003630554042825526987020687312894559419203113896558104544328318321011112783502915494143359971297140789023375261251608093063651125689241918035098283928829564453431117114803574792518878795541053959455044937999993426765836221938904464289813053687565759871314100153552538196514104332776855540919921971620284172550775644101841820168032914453813483068431574426492018380022666891110713404740282287407419426911444955297593121718153121291904857898085816977610435417521459230472133868588601910417054631530208271013297039180602286595283133295761729685384224754984880121986391692218329511128771502444619996693301275560646614602201209960300257061035846967396084450465562119895016250614758839542509206310346669904341434472971384339627654994183086189451965997934683380760112369912621178794711203859292978206585686619111031266696307220279454009668903131299963222513480093049711309207772057530913601441309673522698976412790799126998801400772401854217322539696099927652011751103143328054267786279909577349585437081889304712194268110820150810530342302963451134355673704778487502233189899395895996977602552078975551119381847509702589852616283599702108732827869909817234094623765535148532560938304377874225159589959336026665133292298932662030643859921981008266135459120000796505570690005622576315686042401602662381903290652088269128451474470129108887314108272770270960353282068492808914201133785495689135081594987126807446374728904820035329057847744345606049595775988105529865160426429490721888451108692180998150260282940574601712900711532327316455778103355082413979021525763799250826791591321231527070087958480915499479596592104112151505242666380558672879005239246682593402716147393702490710916516562615771453774538754919325430022599706642353238218232265324382119358450916282301568356724319164478726659268787111084721065928385078976782074771180398121648200523675697509671093150988854046342952837834621030012266060348853667660775038909534796500324532832278021313841591412148991587473313533981012572944212073268700643182487153063907088871985453924520821867934613958875418606034530141853100560770053244855588462689661915280476417145322900998388906143831498641804865237940306209131898853562616905914435267387805377911495661468273270111856778065361811677794862876521809083033642635163157261287832680928546120473202955225290648907992262105141366501231851965957998625947918792558428758250942819098398945025868319382753166497561735041050613058547515490023362265967924497869043703847543545553824697632803800184507642282052005200413473255052858340575666198112054227821543889832367450495240657689353245752630278450190643798932941375128950853623180033832843640494347562521335808664938101704519864026854499271524282233500712623335673977701445156510261290728586298011380382966150847958976391334456601647873911542756342450657297615917842434475492395772362505332571112337736801823139737954478286278971677554274001668795168432679930089374489683004008755299007547033505177076092047173881418399506350778952327663512488309148851573975106401085414212198386203331342096173567699514498582528578742283716542762568309866404875324364751853000614360681202716357552223396911130675502306085063972848325618033797304350447712339603971866534367848168402584997569689486484207876480048268264891909353089994341961474518830812701061594698543903742393186501271714156540544915483448716142522726210280238565775221325855588568917375491210045301647698722610409118654528188834899667218215367819302139690464411060246685109230697091231172841107335759426211342481571978425008221107033864710184708022919082596281248862762847967837570278995708190724686844606912448214522829636293472823299706438345062928969778674871028460433321979656440333414919025035982629704109020261366963932480052956379618884536441675473724871310481125450733958738380973471042358017654085533727177433638131598568173983684308364550063008080550997919141056195043276790044013338452956478814610116888739075791696364434760977268548911279727177365231605141952921240693299649716453621820147886997422076037395142383075453302828805425250345776802134318672494855016365477571013250553605871157163052715660092783838548595668996335322474695808640549925972224044394794863456780262331815333381290418494229252590653655528306354754110370655199896814603722212337584967527653498127405235550666764155885302209262513635230306573606787712862534313604861574624783920036778979315192379955460426359478834623633985061395876341351211309222089510349771708308878406230039993449138808362297733516240240586383676880040209494077985580181951269222882732866026617406814134293945823323650969821883195204601495827369227837462231793142765005891681145207478563028851527704417928092162919268764184642693081389461602670564515789862228958848252127435220161982434740346711782247095713274421751768630477308045491097071713729420132163105945235088724375024481262109529291354985627208708137553291114113983338148793703497373975939907317376276579419371461945805341579023668474692227216001881214305323162973206383436958335993966293804380282185503929462524721153192033608839382567747751053703186036190945144056506989146535377911530172399386898716926695767836676733165618132681931231829680307084903460480544626142678200362091156811870174518379529270108783506951435527777304638115398651313057734096084286264029120174798785161368441778235251205345138132247997545979201464882827040469108098839896323768505978205757100858796761795269918525383231764725885727163106168168723783513343255390160811743156259222003455814415126638808397280637323849101848248014908290163861743228808809385740921354840277161977576256197046645030032292651607450776907658443109113443861687519421273038674941563822130386489003529393397209291013070084287176203111085188783059251028281257183406105746307543119760013940633440312711596578785444041348133530886008056393588193824284043164533748569037332074374837526921577683501235648648556327542021768702424238502212391737750796872267450326897270071035589920544223313211877165727585831934397589525068744653658712059822850705168703152400346817838849279457046798776703287546199095734970891934488043875214377133494694460862114991124542393326595841689770150925225770327656393259475179455812594297867512212938820930838494943190666907556993473694096470518354896289030103998693739818008342061277253713132924007348429160634038281318900428325914760737897619364628641020208075187373859572634268541909449342165690186624414717315497079037977714831233718185898041560165652146552205977288819618124852980728457493794426452457641112580855873860670468900092660479667715595756865071092903331808471030223329859119096992688244606358956410525265999517404169027615714237491081233731604157267062090698620326153071081986214065821645235948026047396868364558853232376847070709239287693060012303019826063932767888780613101595356947631188969624349077104027990838991044994819335813606201316000291892611480803947120426762700176191075337070477677474814243732892330035495920516076003240304578162888011876654468983570869655311234465235688625584176398707916718954948323621061761832172354981021463069892479040201208497496812171004824335157335842253021921548961714901880778828884377521048970653653349169218264917059029563014400528987849075037693513974536401612797060425634701806029912040073766427189942830895222313292825107706258857128539447196451029247042870168650976934023547434126462551115481170238994004494521897233867826128192034979405598188073111257986616591528753416979901995686730135975719063247458270693430740774455213737700513258370436712671760207723404283846135117632639691689029274496687456558241692963001105403723138256856609364098125059731930012718450211632082885825076010547419193567066684354807979592467567792930846002923181904003358190315650365213349549943823627453404737235489969266822545636842852784706198014579667417622818942547777908845862585575649891992250648953744919996253961058122487260968587848212168700863342487175645373230364415895708777397138660079985938634019539263688350337392182491671579543779880617354771112924963778355243561292604060318677763742794189521159539825383522650764950385471482649877604692918208208681362973619483180719274880704148879204768548647658558928655603386932922418168179464879528245493991615048431124826359867257166575806238972085681960729040193066158334935717743126337013167975804877019246446812761347826774067089919911761444160310323448362695954718470602577958366974986823423699573842628286150313520718591999093591407507751119050398059692650573577692183295181206033509876614730864826335717616144026111960670896350468673371729659727416351493813270224435743917498652752172021657325892185628308858910456134550354692977809561994913534159701717677580105672337385929646446385205598286086931699028508277109052189498788550284412560323029704933752826847770979039561323761029347520114158190653451424514167739423133564841349193614776803622484097017428546875761318235283395634897749788393191231775227352659769641866164051581468645097444310923313771976726319425777242064683387216492209345235244597652951687254342521292730640061359958409225196972483615314119551067862755123313647958435531405218765966807419371329660340074023183502366580290316284250434436468274025928099275332235606776655962729546467127412516319131728736567262114959342254935845608716321778453244027776862975611066303562769153666909896439297509695343937566575381062863625086874562843042575919448459846993337765949973032479013608884837438491578246970735869940525114867336809826848114276006357674113567155874173689546138367622808095737256011653545195101778374920020798660804121170013251314404007826151494306773023345533053484160638101656197121369541527167071022803118933739534559827211086414497329600469388744366877446949464298146245500768679326072256979487937139034917752729436598819711034659986848502871423792748276300889519839574064457172499219758770462973525794493705326020783849418257347850485125585796099115377747534317464451282628062094655774244424459839577896568540053153176896807916770125266735030167679705505708995999283142221122475721868862393439868449265744050475238297589545907354811817878933902856020507549132436564092826564895195130518092462579461794495292938314225359513960096498117257838585744453717217892873972049894181250371528613546223880532361795200926450040195575095251664745306198838091669430123201455642536499383912919267354465599354429092380121946040932690738655027926512308676516698060510305238516390404374186567355002151499390925976600976736800442141933147271218109069177431793493661738075266595010397605107635742931788056916968015216854262161386415898274959888776996359304123442802050371005972329219265971101750216784550943873695193229681780879424134613350367511927565859959164119744097468765840042505759611117063451338843308653755761638659566928996144064290734363105940331940302890553302803076210798118053083939309430723942647296395051647520595738351428370660930047160044104258749841843645323068052750492174294347731090530809142035083089019080098906556673552288100830959409566456559163892940319655314632626710980809760683711838391547149920306977413024992314456484392244015567988786855294511426432330417164155584482966064698187147045134924071748896825861604584517691709714948730512399226504598392798034142260364012664053659231695933176333366494638642885499616747913501648134833247626828437393140495002658491463611604797114730796784375276266772231847599016332102794282119981244003210566714677971608050042668904794069908196660234720153904406254762284629243201687352441638491452060277820315372504869205521898926395385363994062535446770998338666252089786283159561134677303334733283641220426111871045123136077377840261911991183215099915464647316969677186129398524754582562066486433813997198248286350941820719157201937828851192046904672199470374368157590674795976637282941905796396311471331738477174900376326160003977516686632877607428944766639472118290656561249563596296620838254327358407987414922262064337002185115182047659699700312453424430634058751302727703950363119606320680451159392278856842752140503917648152328003620022475343094921440968502224551488931194638302618034217909397585918344976096957095513995258511227479945441270483375724572002193827157113379613727241933729061499197351257488204256265032729623556074365852438516014240091158958973848650470489196740384529727482869337442664705269849996435783540103590078960504542546476796159144707280804482218885478296405712972060864782557289808775713446836814754775998056933191944045890507917218923650148682036001075742772125508349151615358742073836230375070469013601692143629483472745033806443383924026534356267255184264801193972265698925886840394900600890991497555848670812065896596147396127765404464240247281680901546350021584564516992134034113046838403033465058520227488605661989724081324886790282209073768182906988354114071485597139933164124589803166788862669694732019465471786445802697436306448750558617906878092188275373795720086134706558021248381601421506446675494314459387762561283134314327387742902488055335413729400700340255864520626023321253330455823008747007605633224064114767391050560913178262694530842658970291717250109494890856477374401075857410422959134823734284836325530535878352202814846622488785544022274219335644581361333243850987497727799725390713546598714225526553732159042135146192672129890672960756514592462708857584977442480900302966120879982272279282953084102846178729677317015976768764593529961399628945229528057928330179656416923954103991584803578304327949629905019124277932638440638925592684515420812822364973801320024021103938893901842026767106616748885287012348257193219675562677522089477389497365516535937331234175789543414402421496765766887998463689756298234623115586037978575888266503711207999058378415689504577706643540323506867403068990526453438989109361304039267061699987960695970520648680036504868829154912339037949584076238631255287887607738684949866724595839904487653198485425591895135475598570663170261291312927859707731021149285641804050349612289634509350075986257386161257021752884121265415504507938442222971615566132610915624961965712811264629565417517553308165686024574040624693335772307775958711896651558077568788897601491375948297046152857015343606394335885290630450757974477007197645672478489135240076620706762847723819476153665103803345245918181852933806947053567033582479507066486545794775151936365114842090100859338571272051080336955671616708157830363110384347942211257326001513004069118914695597868306779832106422732089153770006763198429026112869535378810016821333933480207387390620785838939660508425598875775260317777086386157160512375854296086696974898317998455536608946753195010219035539679613601676102852749014330391463908723364104789615866630895212492159024063637642632567419305434068368565005124207380144546744382801304726368609541351627421513268171538623840667946175230808980963789951376691003180639336997350892562398008823054915997329570807666416992785640216860219526694245249847197006212199765915127945402646095816775599285217653165914815168510773471763223620581827963425910801265030385475475179751092613713007632859435295033771045441701472970976234660219165648085918001810870620594572801253667686595938863318056289523936277807538190285746861547983116077774038679757095284120832582561547007457012608833456350386542055140331073726131398124733101818510788178510751289296357736596024950713655357531154274274474453885157186699800276585964524510551275545090378789527825765330294556526249534814949634308367353978392547415276481449579336145804108146683359898020277444210638622946155483358526565193264231909328509615009214922341239829535311158591732256617664739735308892930470525620938324098180902920594438094513859932439031340095140062721288270923028261466272627472696506391012451077710704224355772179330759251443296049654990763313650503204189505915113329693493163832537017974383381223803712155662277032630559893637781232885263246378507838516197405557713400325038459450914435497769702664296501912387058624537528276331187125742924322256890481862685096232725891241315412617650359203034550142252473736795440511997849094063400505191001211154608698167667192771198416564667899563232744381723827132139484643183360851686786898011943301276343516180551397774344986505013035831006888680365902139258399117734426687943131891436075246656634922667098231282435910000560320308715623744630850299782906384761072276299255736439423356079879648646262940488838650898218426987676743422727328384210602898717298160710451919058699215169828137192887826178959021108454736551792061155469629449746654962975648217925431266178430325374332967869636464547898050560638367902297512292370865831075741282797067186284300366520123760276513657324579944898449025846880942470090142385965007952704048351973877729984486191260534264868839063409551469071531368442129414146531833195010672841478004618242653971032050309387447803432592312511625471093463629988542622667103762174611871173487075700891941548536197093677630830331504179917513941935224465432009922664730665770271798629447075715970142142281491022918092777221742762715135315883680353152871850427861681100659277411965757622236588114175235212559765318635111769865482796545615724683468953903631474419036411012764610746307244517259100279496720003135872995468645922382264388910071765359158775680442833341754137225091978476396878547493026709431237444794594295432566124501795163957775888693995554019420337463695818886569403356724367650524743977179907645818347013125840470925277095942957173277729524629570261088220804560482230665490446639368236697006926580321512534684152003660954237274117481447614315796692963293202547078643613210845930684876632765109551721318409436799708908320268881094408775821216567737564508255610992367634724118945706398841178092517245556783278626676421641657403789562970350804352345037343010013326165958830343671416761294347368734078148322275005113335697707700744679822639937053652714619088242908874400914591695874409194913707221216126555898914391071806350061086585233814008510702063680103785583861579609200637378805231282088058822556311091665179535134599370030526615855137725068730339254528908270491735191572461692801492756522953832082891400820872614892051200004673555778642461938610051728617725830362384816160748432774212836922400705070411496603616841921573188389766306105018549742408453318458143828745958521047894676674472669280334203391430873252514906957365668466266000272221780112849748085438849562547666667217716894463689281845668083848807101395885239344397533111716054154969941603044911651691757032569814176844008043353375768939927158485047155761445443381677071311460118484742401863807606453717368327216072085857545930075331489965885564347742855384288318829571056991849501712920746794700782267820020375120889896110151644287268227542301116430485872021317138184123452999411659259991072273488274360038835521463094803002669666133055784754157074966265616089652409154348662228269169373300992107006635511773390946831516142052732803097898102901391708165434426097566766286234520063407106071895134069457867953461054107234686724037139434557149148928301391104288036841356723706370506576408509367216655861234664156276149823477359439267982952764827619094725192002851781278491297138503033648962687543595171911706492221181036397982481109193509846552669663634088510889275199074024797399026470491989417376176083510282543715579045836545708535717622800097581220380185553728359464346511735991214973022910825406015299396075413379705244411778859948359605265097393275072796309444087263117001253929325266975185193964224599204807814060734970361802875141491426427174298011239249699746339359319775071058420568619492049632526144851834139733953703969818409245239140654775779302535491498225356152200491293548484291985291191364988996761653996658927166572233887237775548557775663207310238077930562189089162652847761331883006830572574869913366058995971752859305941289723399535940348117808969469899257038909890126626963666361755155190402217471869354253053892886861103052203385053928749675681079594671652683087031442560407137875119985276304398313448434255246389255421302082903555808461316836028995815310535724232746574596143041631999593006958397352345223911952607718609966610153504419699049985808328077135777183016245451154241032659551006417138800192752014687482695885443047261295432833358643054518418532553388159468770685425210756174515295233385471920553717715050257262148257651389550761309911771104259290978196362110032830026775250590966981033088635665557504472295586520185461522002243926645022899985155757824467003600910857896146839871709898586512207597980631470722756121656206898915994668008280447972557759755061441786076664631555954265497101569269520404182188462596734714552563538542808959136595470368310519956939149880483233512731197722548490480183098816435959542784467637831401391055195538321754254016198561253628189562868268540827453956760078791077449607704138094000187383145237542321884639236916974720626397258253987518476443670765549566653902905132080322310131738646838281396163543894180475415230002369273913088751324824526736314670285066931845796958328660413414454398774786334845823666876010560564313036828542866282721049781830973600196068512488626859493902181557480982045018186989289886316062714667663780772247943832701111536735394951244957602872612272061338784069736907316857246823706439518211815822711807613090897744774132086636173538392860013328796391652615937521896250396284378940288112855385723609140562255449454282941480648015888001157310983819554067113095982316759980814128497390765516206337179637011977239582452401793435861588312791456233856301960958639084920717679611062919997951944851671435780398856241091478981113854491722323577009428792172134056391430386648444600508393765902745767566703378273557102084724701403032197573166318834950493540288597082404763499903198310667420969596880500056718467983838099043893266755017652297184193340484402461663789903768083360074551268716269545508502421284847740163298406155154577600301354506724539183960190122580251917025618566288062620592730220693378050519993998545087040366415957279873138271550983766213149109846184579808255351099795715710367599955279908458242121551711489696412465383008254892595233400727883258569433232702464998659259166524455707871560026195293743821773259895166287079560883085084544617002159061825669477326746709220913436499892656918781264980949298942495231656667195190925806734122111004056644107037748206838857624410894215628983659199908624277756854537433419021907259159843808646113845330116639592320840734523085888547556861727842337758584684734655040675781119501335292791717064628212087965762304489134895386728366196182435697272694801942304056737614059420944084871505230035891904169896126864925535497978966956943301247873645327202228908431253727612717669967394839138319019646676881128384692166550326279090547266465812251184908172137534893395773338318450860613061291963844272774643814440261061748864291035802923578265288021875244016932624563648219703652948508634236121943039749347027220655640687309456224999512451508845087294291174237751856847179666342264906453750432715306113620205521169243002946496539909118031288942552906240912517173615738299614911583293023056944896146130817044702850025973483851848536359671945815634620326159240851621811261709430670139545109989416929737843864855132578355965933087690052604481964225499878761288584644548536070515767831278617277475896059875230217168847685491288408482826289729279653792008557580354374373479136088748591789915785398849869607459261738303491485060494178574484376616412856688158851081935414318923581432126264608435310788774823866567528988215822774462666799780194583937575865963515269025070543955180828044497417424077527859570918878980601014229899072659370860499298186466260026624974301424219408378716652091614568980674817680786189756010042470612728433229853737464776878225179543763370636206043884267054542591104686141480004032897645874355049812889163353006189222395720706121134059330207256263798130548840595131922769602583958310629171104758466235696193816998819014809233932375286261208319385623500833394791873774748737843919839635889028278612164702059756057898040027948326668821149861806712461609206302023084030570868132276530423935418705216159661846019896013652884149734480021734547077204397805458703479337013883700287956079476724355320780950786739813701803944826545758186521333166371087720406342876562742797866866409201823542734903348677325407520203686787376155634106088119950643693531950772324418611241489064587849238237372038539039213853458950756165656711624707114053716774320212561850290352939206321832882741857740716995170503343529282941843668625864885994440222138077377219942335457138254306908195143411000649344225481663528715288477995904851208829025865561910587995623954633825046811029418151573152731310972723979444394793250776376630263816439775154933457800796577624647569901027134257661956832740186554094806199363698685583607575778558712195298035138400117379717871877243880619982283969800061634615929077220813324598059877245234614002247300696197961038535677937421846376498560052258442650542403475570296873503970568444136393858070804753747922519889708383504616515115032397325437825568871175613177632932880103064663736758701373762378895160902110720440689231983494221039144073373062340795476713621864039777405568913341191527559834663546240689763140498695294553662757161997604814112358747550144594957864678089867077183766811897095969939460975160599266521580548639543851563296098240168895672726766238268171902539845688829970506482411766492964860675361489634915213138265657101458837847449690733152238440115303715244821995312895558206680558771384681452903078407951994695248933496494847114476608213366365153774824108216526415971628930121741781947751145843912632710669599019943613810001558277485402494393374939018988549695829565262435788962540897639678279441909239124550642308683754302422808794200325168546970760372311135070612824441652555366075542216695681124628781080717552693479657293098364239527588811144468140356557669459744289034263741269725002596410744283791358466333777492399455297744229197912556239893644333803432558167941263268599814454588946716090209839709598980561831958341834150619280706814457441331820401201451052739105321912317900827666890559740022044205687542702148241101433014178205992686631553664212530427912129090701157108540496665430752003046101344667672151364416185165593371456122748954080775285561937497954844211710900270730450955458198093481947163671879045487030759723920203608668666317660907248440479323098045410978170459347932696191182014043149297507717270626296300748674537669691770020737625166904314721832588547086532044529466474089388197953088930172513504601159579788985222971009361267104450699857672393009489576581921702499892425237034975927400795759353252067015152289446355893669725698847729015931753511713141091148029602990993898097804521524040758808499364708393350699024265738483477525198716972726234811830141155708705220837657327923393586981240025217787166071610578727054595390342648195696917200050490934522395806152019328435483449191959109895769384110256508628156362836645728934688297699082429330088581440917774844997771448867003057092257041063153705330534906466429668897969008231152364725619895034778403486079304146578140395659208281548345383232152720493514939599642716652291665233837948013018516927881045909140391897671961418695733413578429909328093970115375682542533427598789339858983653696834878188709213824327107555309008605557238903638043398998187372307881983233819795436548244473749298202111916836000410857154474850419125279903411855387093953116230826706057100207416804796134464794664724945237334236507587801839419341734090616233966358914838408256538974694927578898278902148906334547577382926581477850407832393852051017748921371669936124034845816084831651409376521787069270272995671089236879899169649566683029868422093413645743423756168445466353317344476462502991156813022716345520349760444438880187175569893643893301798680704773643299632065083959907928346372680807510537768642890501057713991631845363548498680486714700862795542274679941846732889671889697481256576004833844477691066643460985266385074096117932488074845150741690691101820083114182531002333241006770674881086489534997070786113788239213721772544799400342336071375482285758227412438886339984844165361632104541597506122082628716448862707860719716471193181597786958363213210611213343495170789849371626206340494695288087618847735334737338874178776790037978628562048760132742483316778698904567647839747737895637413766598424219696084009682837748861514143397647653018921658862987143133895522130222487950792219566242978024656912908378233472076974450352605164969762549260685280159364202013345010284338058565463841612844568022489376949453676941227257903934733820674379446685988747828351076784342409808641761333976100947107544708770852741480164245551038986462239609810386435679693817350112721433353809118497013521361387025920340563524594583655576075232950824609580549435854907406195843592424277238034340178608341233384838746467326939985732650415181452842475581977527012807343558309481100219855496099948969089233778265042025972816124895250237188670016545135095505445820105011785098412924967139046457034413716513031916921779993854415589697776119031903841483613771471411056136693482865125007535162886281687519743758783909542523810429314114696560013265168070362949488171247132158314784530134351299751702738751187917398166534058974035388394140280420677010273172721745450216670309087230272095652461654561191200348177222802765455800533003389270293524710647488259711593837121345880647187830256749121390733856610398002183391737499771088265178204306621111942198584567734545836899491048481862111064829161787150435285062062059064807628547090273609796573101994898517396209666624006166225983317374161237904431225615601582110952192932743618177461132135501205734816017423691038946954844804507330178391654967516063679870976860476544837865814178568121326298911229860550732300449105868817466393036140677633718230931602723986332905944121144638381624356757551981932096087738186402018456771568849626840982402564884398187106936405790450288460745412963823357113543830710833992534285984526659622193827736328587089658034606272130190934408759107893074076632262916491353254258065759491136628034670994110414432565569718804116652109606726443072260760142364996590153315677611630894463138004409810842086964935234823136414911657438783865835182017673034948521269498033029130620539285373789333146991507106992928525252844191960441156551618790534457620673398784211396576699835880190255738222341770976130228460461701524415882086235514052638328709183423002795069768914648837341238961055444769842477769814322739957519722295311453767485991447466756695931132957591331724258104130827072752662881351051977670939114121803632960403846605491905870046243100772182298224319826134136313131860599351353918701612777731485274412124030396697925804826494413892968679437102977438175740935200151834327599994437110758999103870936336246803277937579626200096354254262714169815806658031528061252637054400661660658734925213185223319822991921861183742311642136270047453010796421754361836358065721899924420389651114424983437114023308111896860356859261732564486594375462879857514821551168198610647885841892019250191619157814162245052705211323245729792283391047046440611593316735142621169174488993293588699020640871203665070422984360625542183812107578415875169160796999919765898472856736159364003995978684792297817695940192977779579862590992474444072329788120912527800609647336782400997623458164218936154819238302343239221406563098235464179763574374844048142607834058374573467212089426497204665489775815545118611508105720105535646045213768580323413610736886196993772469507397161170299914063667312363200468645733949385255044039561068766171954896116807575203203065336112777570854209926815579162468496960947488359331573805911278027777647184382778362359645747547177086360255271421372643381830737215395266311510336205329294454142263089685267268009937361670854683923514426262539213450669508068315396912612896494067483526039929933082936071990911248101967914208011398676071276774848503876640468750973778827944972249593536861119961405160885954839113596643595670493014558709142803698761428268547422789802904954306831612622754419243344946709768416436909740822541309733428448424411155308617015339654248226477065784606065968239078366836130992090701586704680878878567753967259602149658162534642309886215570761463862016352495484007789952306522119450183186638006381598473045281047981483025628490644881351831314048771096766659178620847130294630862733625248494679785618466992535153587638470448171805296655128054685996202400772009816302526108860189301035735037646110411629856711138434242354464076140424571218150908373147542915408386660568262575793009521787511960936734226275874995973215466026844688401390642153659597293014630732972532138663805335573278221891519948733668081707772837345690159401062267098489297949360216695219894075579553438703751884038207455387446490375814929082579696353278481281837352635629756672729881609283365113439455206139293567473867880413534063030248695350079046659991773624088593834526907597116516265462450703355541383561033157408444040014131908945817598935119738075311271255693513950116890030307311416520025726295729959010615493782998958548089436101960362470247358999555298865103532156879404616922299177888888045180239085312889275078691555045662828222688974256260574307525541354879535569549809983937365674407143446349311304517681068745195949563420802134480420644403401992063499210817842884373006396245947768230450993219955023694410177731129782326135737760025447467437292350018983519277901217451760947421265434289378041684428251511093321891307008279638459928043851714952376335133813343301831063119337782965300803809649270578588181841656878766055239935318956348556315810282859686805876908240173046737717157439106308900677956603222765761071436327296667407323869945700837608670212460315174549064664572581697536357946508522726735802798052999344077670516362952287235071690624395163507650739170345473290974129284731933601888671232758792647161116880105256511321586052538615054477245065684218969278187305585169933043966962209551726786771913334146958965452924717437990657750407272969263547383573669280887361188891413304188009520943319002145249688257177002380662796647571656624217501716657382899619527455492491577691116948169154457091890135754358067708815075105906468158925470595594757992528979008557592079076132473882054050537994761010904606007637248443066676555814124180909379128549286090507749342734659917386922662715666862103286247828521867285403069727266644822167342283335006219816719457988133429672691254263871526156647094414881211556249503365195902722568626796521679679685983803179143432539984239837718204361022267469531690789738162673108115331757515505818389990163882933139230971946807922963042133174962657274951688624617494688619257253378968383147041828889419459068371174379631833662663988804480973238803578251006861371690309607145664462538773749138985460702251025254256230801136538754505184999389013586898020435502069561592440174008708600973556082600077902913828842661030507449395340226859647821128942653729191333330770437439208408456030280091348349824383260936832345574839956205094762627398248599545350907103123687516591068502971252669318101784366413422318554840109281930384189039062897236524174558593757096238438015677566141269619283645805271738211873000516055384639954038946428811783559733974058633926224350607552423601119772370562378101969672431224078527616527421046887998127093153226108011505440617585383259236870458227668805263835501057098302446816802381916316801959183412757363272991329447158409837177908159450217755102982715382581925149587530385946007261139199774289282359514843625036225641042405130672879824829590512731492863356923064026837569439050798100470461594916869309278046585690767380603240745765313747625425335718696687102529406281564919446180477024446505829753503928581006200332276849211149118819761504541706538466122161222305682342791265950311287422382679305952538435662173128728697612871448149332933137267300478622165267817585544854314206555703320187764635635326784558648886576870176562042317476259654016626332871604632171411888253078437691819501723586671433304445667290367355173225883984887115047555241995711301311230301393443203716783170223463940217184929004014257430439635799505928032064314871663181085058861239827143191535415834524105781177157637359623848294522151859276403300597464130847769825125456944812734591785238510524232473880480478529912532665632374866769546266889537869370995082696603021029944832921116902337477263671730085123535797286561269558634095265584323569831571239170989260870999091005058804103772269369676004310752240591074673818922984355821024519805489585894124018378773843976502494142486580710393902944442827786816015158709556845417002269001733841474605070882656011718733462977969902288022719443227071566133045147068122936008245988189206000032544011529206187491873227558058712054978132803550082011805157082564843976773688443122644308305628147003306983148102756436579127248297128372952422868363912581583545310141833636638752847420264606037434294518926904997311373520524922498712432527346006983390029114855921591733576692281444159640548731322962152636010583478099688519748581960009933367884421527185721990436893449367338124234429942625269446636362683461625435267248756008366567753978165895420961584349825111586681399257301545135046701582377781630262285874156270339042356840154570326408954410622736892302011816740833591292170731991068770561699947742099324984603147153247550552201244224664743909361299179408581295343387109883287551572239239977857137697811942970441091523576083694879680250040499225798887692078355986104494184688932681551790816191821183541935750705760535686675961150626608918285416480848802139030034925638396546014144547973504594597890490333006679186364225838631433679233649394731948406983058691335530892322253825796380436687365585635521443411035635572626165012384928815539203164628375781230453344113533292348207576385186778381941071705419888010348295531891712833619496899084871015247472407974396553512369340211835414068069847832151583050204575670505311976171810313645206283483696213949097386793300616394297541249783712895524643290549735031419999202031585468577652876446393362354764045596622937314486515608400152355959619056782750009084227374817390500805740722487131967688182212151767895247539759493346652120790368389584529769857739702135947257242859375070052114376222723803915848997137591321630519211924219939214504884812739914046958893094849806895330217224034940294646204720635998665257567972829743156895607345832972555185735802634321173292784134284521250858343866858360139949204951667444560055298108686785112739052258777627468139232703020841467878166969716008436861626107478128419626397623413904360845115767844785432195027344431277739092432636763707953235596952925993978488967642022680614585962223493779003633845053233552569437403933235209496259991326345792856013533719207997632511773589956143189318592939972341048831339624098652136232396523756869197907860279245618571948603669878754246632674191779774294786281327134288358692504291488523417980387748767720298553486088866538398819280955954039782430530114254542368589117778620596670902716934339582168650949676880466036942992060871116607465361120229442600051105067188313890609442235504681445816624338990485917556680791462685019621512823814845088489577527058729267332208712253669475755000768685396437440250102408948170406871015599414762388414223872298138288108903131126806655711255274266105017580839694042228486923093730503786304950640105402953777497925809712274259502820840249752002440030129386445528677557975259784520903075178328596693754125487259760479044672827474365098590903267719655375530419507008648763975793762352769138529059341341170456400652261818714140569145383312221222860975529767816526816458283884450231859232367792063781396455858888733601771221889166204099609915569405264710059082485159219864911153158572298775083227394280508373612703216986586701366189671982635415075556334905468692020214947865408171715900270386066513425945265787237768211633178096905253118600714792906859101434634792591544504809464686305981503471210366508295915411551317345940432803743688190965139843567582155705788109667092239594786161057754177019382457448742655734113072052735355819179112764370756440149751704891199734011607811324630560260901346895640143624773399060548085555708400062720960798325496230127244651587462298534153234753698403097633557134910420789723123590438168981692768460271377586063956309855384152690747840051583571384760472401053726305266590581100043456847969763785564969610927727449345404864559508496671908982437330108176177238426277125554130803109306760773696248104482305122610917048585858718875747779783568462275714470797342981598755220765740812684158808130226326637675126755275170989700933520514891537394659890991502231633741433610885385817830307050881463916062220658108770899893604901910103531230070261417525312783517697180604063660850064346928386441064523298450862119098685282875884070024037064768514507126448017673624197493946044385177527437552770408845095423066422351126369863850704970121301980149000439075298535893722894452006877389131733524360256850820466175337852299557248849629526083377688179328181617989665329765744566900428338932614250447436645011211537341354786169681672292601315675757972504758380008983649281859568211381884328434263273897365092781847324589502754806622663815529499435238541598197796513151295624461414006183141928710225079502404754811276604859201656039504723950582522750721515376155799207648708659077416570856192243662442871199979902837519549268060703363943670409101550638059841359309620719820014921040445101946501560748956644888535687559749732517379199810682666043454003187340149289800436493824739381038750346026781435452280519429656861196513894195374950296699332012584779170002903078020321510007893547270591977663113611913597569850398276460997915580883811325160536952550389446343119143449804142707418484085758049664382383360848858705166888004739784712060636490279144964997403396351615071504045390525752065230420108703738726930557612175648084248406188369720988402005811705094611781323530971577154369303308169049881147878290518366232991127716265143186114728366518862417856386037943019871968747002494460702393576446764640291392824723724025258284989029821776813358229075832047606461104945265495939586690136977269440814707433505349667761474919191553277014088698373745054582937923864979068891648777980061918934119596433024075356770092947378078311392561129971859451838882419427874508617719934784045890669713568721316109935538939093975985081507609447920935655391843328838886190259112873342934775576174171649061570200831594326918075997174408973481703882208294176435690206885262235592740412327476503784812116560902226651773500179481777574305559380797324589692813728511228483237160824122679069185725793168913487448143410603392877068805358260881931980315417839932503742223672695866155298512246043084984613924131337462740129851813101180899039897157115275761114001559312006491709632413367769712935606231340833119125956781084094387195316742151889386070782729679270551974243431487514226396960646909674173625408136097593094805400981573348213083355825184727432649843065994097486512789365782924459972054740088458864580796929387146125059518612360942600813449580849859171402145334109146765082427015963965365095586775348555530156964273355104069215815220960532279678075985610273716759901759527276279378045905980864044993347352891356035920787520932027533317957909312437863797605848010083663531934977076308592008563668402013716506224000727250140357420082014573549545167446615775156906710538866229590449712952308865535317536043948520430005659214096741349286039434090380418931806847879004221822573240035775413262208256062815769960966301592561936414191140875463821575847151069315397372410237760150068416603578625340866591473409148787722513117932088509059420132670583928893696137726884993853696002713280760539647019967775942249514032183779302375116301983751553401511651843138216867540059349422020890856347212121046532790941989105594523330245843949950558265349184682160357672485386323070286966504725966518022336669144280101084175383434954735715990131244366833880412745838066213834786510176518193406261390369765484185179771926458733779454115582139916662952000046512944641370137144284470101824306993370739206325117627012279765232382122982169894382070554204958951680906078536866409988964251393807094479517927374055004718836552477435725844110298485638698621303759805634142497609534056126987429966836650364286503266312966144712624836225951693755670140765114857281666187772183687367731482208620187189083073750441541644808441897171328039261494396608990470593240074276945737265920946098519279775330909672556528893780920547921004449950494399427406742641223814413703926663037883550842720555063143270184156560351088288884415168681748814127414052857914248370240400699673659540675932785707834573110309881418367916323702768454140886861620996299889181357802699742911727154450905284192017754844688016780998120341246430587520501445989049251970613234621780451848186271638598944606003166376810184179760927438126632135294899934645543222995706137041844968358827541326574111964499483615148395176701713843774162470159155189038642049785762205727382018570541934563635752002437416043252417335203949758834261826112330540365217060410574880501137125792996593713063730541323506824849309743106588697861270044434961417780113568949025171166983600733269069583665710907108343738497745700836102764616470253195602082769493273545251176962848585774644682497279815367307111096184591307946164253942455875330927372069526079375071705556414384889413157655997247390462877264013160935145944726980212930399005551839049745404174163927865738685690906398705624634957281892742955530832110170607602737980280604497537441210208852123068813530281286924102674707132086498139130618249621964752058159732599372774389455163088678145836742792263609568860048416699385493528858983634277544300172826633411535993510272054171218974646309065133127355041368307472866633019455649288750804054028441878518007337511617596507773371072323446951930241322717690204729850765543845580072557693971766069433934623489455797483444183600589868890775216633017476527885760773390928098677953459728956737741863318787205842889472687283933416683588992072734189151380619790995192881223537254109354525248968233971706963040940080595828940306016538273346253076519901658550791039833436539087956076568457477090784414303469392405981002821114436721625778989575070952507355227695196866054000183103736276361910234345253223492427454252041349809221695378321747187803777885394002217788548108422033454739074827662641904028557243541457917164020352297050762983830558802155495442126577710571510957038648891269157776546420745709586402871480608439236116344516073933032253614190059155540742866833071692020795544943602030733281032083127355143934486739147169399512180202653359976802078980740944552077177751349607372435415450791418131743138699538611365907241692267281320937009617372338110102721750472150463497828046529620384142744653374872733112547594631027924487494925248815918034818335990537468729804823282715697338359624436587055535526881505147622013223149063306039466150553869152204181578573432352922927546059803338768275750929244286224178747004476796084558885386987132864762537347676813202679992194300786874089632388830477454560901804808050241251202891135010761103319871026940138323748507592261113359691464426963097242296573175851933215079223630008472011101089098151917150232544264229125274450594660962917258397266218647061804932942091148352177735574575472671535204172411952850686410503890795765699793560491715316070168529442254689481723425230388043362055170041822876699620275892301968812026891429570267163152831590964871591690618852255024943734862071728529006881675897432937180202004601188521188458933195703940005537246267658581751584217265931129282237525771483376051584740353966107708302654811085619520400904843260803380406646152308098291864868918367526350861902110526765731814676222218452344718474187936883793739283325586382305392051873519336416237637130125638892818456323650469415048389056629559267830737334145625779289495116416796113469249148309788508760882675674362585237750854747478269100053113570422848172742198605109886338231766388693080904395880598008219319596073748850994052511757749586070687279309474020603442467602816840905203279962562105417084741254835079538622914054090829254850019205668892536774532436411055591900693132569239947322735209328817207647915841120627726478971407333447005408569719369925753743582345267382680845140616400050312963770577211305926826236986187123970521419573450784337850224324225691754220979554094546499154674456608061206994796893491030609207108691875347789543010494027156220685247847568641643489571072701425225933371076902737582604388463075446442404185080059463802370916776866253650573858865179594525694089630916196859180588054955130565979550856068467561309524159995497350775442916487740802144105774755166950769084218925480911775905738330361497821581089347281408710547421045188369565041455427159994095088638759440887085040147185135430869551012373585514814127477688449262860771769993889687648671254244985417355055682562369669605708169510118153504703024206901464117017400988337195269554769642517049267263649998615942609262930469632608576525606866754341320345232601225415980315306371011654603040210152130416002930845532601624701292457110491049366800372248399294257203654932421161618203374246905350295180821325311446102897954215927776538294711055217658151454310214230495072467030743559158492700783833400846817299757096441691432281172261588918799837016457912056597843274313752688187343830759373496227076173848321418341960352518773355455613944663477561600346086843890674410650429456082097148303363638564999656063455563371256546005126618904282274581408585774988402303950310952439291324504886212718911175284402370444727819830221263824764306859648168426858450086701885989517383212714169958265483340812240612862427118393906962696856872928017541632994855282561474083451303100537508712561313369924344037396125294397841577750122139965461253634452049542154761007451727753418377186683839325600683805778302791072554849870001413505546227350642157661848978908932500728877365079685311821574035927190896612888492859701122031919977308606070515768131644999528936926497977907749421076872137171726128645088267231554465816288136434222040466998813503552332165679523340873084681957016548119529495059779310312391075906576193858408434355044750765515349506043330810149846496389672317758202328753250917872924807144703550720774484919772073481757499842943182174473783125855660940903544028595459213608201263098051363932675485938250266294286891580059802088170673681451002948679787023467830699599179835957744281502839963981454679045899382769738505350011628641937748775080527596014416535920493400120107810382562784954549991188957151476596756126752692250019842726737992412316535888778363654976148650522946902193556111430093233116519427827819411905598599140459383283688528754722566120114784455535794489298170251115826022992148848632081888414343271789733173790688737919716482257097965632808015638651940780615803784708691897173219216961861322090568292167347315055172742879635261081112562146633948491169401274103403457961840382605956667250550395450571324833234323710611402768377384767124798711097335360847851538897368360453015748465571378264922708547376592643126893396789127594295656549246128558780082645456538463418666348256771403453529684816570928283788047725438202765712854961349056697963544212510963814570746081817168839801260999560968603232376233997826603932327011288883375110780046698115060260742350854135653508833903165773847181266661782186715739558785388543402273255140875778237277620739103209580370399794398516546653645409727600204030022102734603247219538600112893795944919351566199765447341364922253561585755989702489808779349433352576316466924553771783424168852498337416875528034847499568113496810782002832023170730362961913855250129212817680562055662303585301658674369067117987480623164925677351526932343819478013514730889528033575141915616139000962846721013513684543791136551894823879691827313758045952932338898229413038198908899562865187459013942881943670136826792467170821255050461156251439847864473380030215454750852611626903488675927897237858079990243111659905093440021211250655860565826407456651987270365417534396840220663762932371389951545554624965035969614708192305192481247602078089351239690417240579516288997357332100417444870553509058603969752343971842939132267454292751111806001860352166370090108734049011736631423416873820120345088369252880437939665795197395648274556123686426290619433592954918795487482929931405270925491966190410434538671578670704021519202648783142008449644182394334432455441863312640144609939832642951224586851539896869579233490179841867455070980647829345841048931823277237465055060508142132351097755969308968000166259084389892540761665244573438700001404221948449717853738490383600812559107864903940618377714019610745821522711600657406692845560195391240325162682464410196709304093128885631213225080066300850829118563008803689266690116656150985407160832031230690021992103813984391345440605235859024069468548002082890694317716043169722327613982616397359534523673248663004757328195745722498257507555310965653405406578362533403777593886387371267925593813933866288321731789952784523282602483872697096280034017396183553698702922929055880618029180995782148034151845650826376185541914015889498777040811402674402798374466981941785413049695213932706009821888628367587463116727335174782839626135809429409351479430059761117771798629574049176180451821562436180490496392268815157825196443835146759466970430016787456278194066846232945933454443275446643697617912120095974804294436784719453517564345048580696789374643449457154681266953009718477026194360393695664279271528490429231346175164901268820510368782699350733060762440101316033435120671188384088993318381338485838604057028378077313320619864707680927371761030206989719256644380865566983190160862406386829569074898275610334281577989900656568839255688249928551041363489299254666454707095885714083143744968573080436515559091265845981676991957435530680590989211839851284168531352919196272907020221141290951695556170160583659811809003480652160276364717090235976724917997051848687444517184111263991249624807485074160250778439997713898828113190150229782919235903108829824708466429667290239358614426030578794927691146789774178030865858455604700190387630162155941523875988570792125414313948126967773213246223218090854750319224391899426828517448878742746358121757249337719652329340903930561397519812781861547917072450919184897628927223766407644955766148916708677172450596951654049036484287757200381669984416023443050536412366408440215490101015102129198741002425511320310048964085976670204403076852780144762555806655108546862211951800734187888216886538000213355483796052605233604762132688874933139530542989694939562863572569943250957439902301626058462305566468083775717048684577465419615609506359665032518580841666023735793720474383861194798236550709316362459367124244376448393275351161377537736503143292965523484510833048727775979492541905502824436528887525936188556934112093846092457918616149449887297487164427729636507089808259795714070561380032462462187058437725620815099110098676946946667692013654085781112307303698035855599314701388385253486954133419616191521673011509342635825850315486942634345707680436089783465292672882032646702102834859304712020675216474398860427591803907471806947757789764794285571035573630890586554693568075331422262633613403889082838904861636322655007196192893869281657755887635216709666277201397567239080127003652710514883699978583646800779321810766728819248277834270102622715624785167014462012307697068945583457385754234386855223778996147346942130978365647754698200400696244880909423184279452931745047844663837306040774540823596038087046409565802012440497588353780555563795729259157191666648954018158182392915998453638260965555997313598450214845870118078980491006694999911890474186476832791932579779553921563670552258695891721268825168828634330231039721370654219338275462900421036312088681118858259693818722204078789573925865895359977428881878835444957444989843288309277281520602144391983280705181943344995994311942330900961199590385320466554517550355024056657129894650127482432329967680362237014191318269773259668713108223609260222446559386451215969488134532517405890000425073603497421579261444356202776047042742332729759437968803027716326054855790265868398166960929134289696306852329916757870196330346052182709411400368459420526746122752359789296004336090391969000499053385247156949133034077989485719848876350245958346297524188776294062839348903826881542972662881663364640509865108904753573854556441021776150306901216114386333646725742944399361751015069512351528294646845604021674572868208957894326655949268884862811598009668130343624571543084772714294174004097859382876127869305728066996401485638597622035060832242896764913302743135206765204382332814991767588051586494529599074003105205147582810139748472918732541080909852836503921664243342810377358180886365000706442740986123597926376427752461187080213295111760322296525543735715459439966322583663921601712327771757085734183657646729557984510860275547542495016478750903379008680527068391559523406976706731750809244949714014340115813214355698037434009184409459082422680478288192227921190727771418346499756312437168087748600246073050459972275388081988128623726024476362233758466280370680940076110506124226843193897493510328593815539582271643278109105250397894506524111738416019156315899287493785947998515480880984430648274810133603039466835474947701060271197042091518878757124098485615173375055473732404449129891579419095878170380011580966405076067274713785629108133581681597322221031499458672976988095345603489119389803088035923294168196017418017939280624262665454640604387850101290719034525233514300333640075763120736547520760335305013423779322650102300295929266258901287601689620969552509176174718021887566760375517814025717569026864331948301931530008708784709826919044856244741291846916800465730796744884212257975271359640446281153533310617722629904861556852587177464782610928730544684593575079455523749831803773013952497771817705252615882423008466215240965160890771073877187580387866571806002898407238425582504729871678392452279219468037470008942430043105083906740704433804144702611163542256173080629972351371599092409597321256316223292230551094814002644401229798294797268279706687928058016400998710317747178160442565307837819203511401943124711957821245766177579458121604249505382710332922177764906573016296641133304664598411026836183479572127717454039121975132857223936948996884444456039249291896647311820277189085908406259950695033076800435720661352803592286871540206271320118526932470512319338683763961621178722504346420799312680989747084850627140822929599322029771111758081915784949718341426023371172368722745384603659051992670327184816509969771322418031388357597327357816339112492439425854246856871435457331209659609566268877363212103228759780734303379615838822742832501959029903383438108922606184926151988128218047316534784325130672602795789166959139983371701517076387448240266155990306767622677635601197008665005723852895295684441888754242588860276853405761303094252678743098556898556329691120717686103268480218186237676760685654760056101240478290842684929537517370779324328985687925905341117977213090156843692743831888156592326169192472864866861389242431303844412100401991292518665361986859064461464913671598850181216679321176393571409135757834372607524330947190835461012884804472084998063597722485969643803799856665954562305093397232018366407578673181495407005244951014583041258428127988081138243563654571900686911147914556371477250735083681629737840871639227047025223712146893946399224573856585568521508275752249282998964713396711160799271082802359194002496839561214045489518564795786301865265922246732455457463423227369145456587895031667477283883012477556055959510941822026467852999254418864928138751864189826173723997271706190974468743404971304616449819452617274370416693740115155440430898544504096597112991627536566301754559244276682436028514376090677524601292718500927373039295215629030193072669588705719320690078143369031154541661888796929453841323891254858966338574549400169141541627830942629872449109552876585523476304760158357536465276197295156008740995252186036293983115439663888963733633957773287893488116798628913370338315874686920651774435135283779422600021601150465597438435014167591081355234664794943815516176828300167885074211313362605827259228514290668162886519567820602948137607178418770032322079170318021761995796147552364825715787876747611255820743801806972535576974995446117551445835073796407288898539339555297902161765900236752154468601630649110590801402421554266665231692562935569447388721360437577400660045921914710796569775186454898911238851737992734575119411947911859764969647772393638109675384888170897458436762045364394027231361562795489078799696744846534950447148131413965653497631875651893394968548676217356307055464037558479332411130074222409678732075124015496676567129308312974316978896846690120384288228431501745983476209243188012572285599134853490029599616068223977653624121519200211344504860854637116057373723688520410479295386465690283249519555333174471004430006703628923508563355405553141741040162719989144983825372779477900124569567494782710839268882584414628529104824411856316178353404890968232413559854734076690480167982883876205232911282510095490029540274661540344089976476403425329488693839749673436320389732139662617032611978874812207319859074735544409443125901239434872956846325472450171399943353445723697999020822088213119535711378324562266237009945715147739725865568663823158120145229955235719656700964924418205724055270303584291046388869099844729463669894907395342633066395530999219528972092688528189433665831863278995382491430107877952248296834450426802306175830564169567576519269069757843863614207035831510169100146462851879477706406870254938231825878691633562522647642566540818390682905898864407488998679840480515592595362989641997821365640293914311740484495132232758035058684727096990625730763963588462673499100981332536858576706327831373953698607488329411852736682804715226851035287659452411419268568686802847459370903622066311203658408105994760610503132169022795834465186194845972901921367221166592374642582493835642783992469450898921406782945677356112534806853088468791155045649327823778026908004654893164875862600344139313546341222040766172769252076060425026341067983546820297623877359010721026451613468404600998677560791581625547232534529836836073902883209602294607157236916236839507895847756510143058248419263521192051831537834941419625534771099601542987905503270861752862382451493577433270041117804767629021654455781652852112542186257761059809649491436962351177586962584317496587666876059650486343599969796104054735617082465883276442285433481979801305474114394575268302566814286579538824446078240415620872253610947741147364683873774294885555337336177622586506701531769914249458922437450977569786296216498011175597673854110773118878293887166987412940001831505246067586130080564147533818963899776870578373602390637728742110490732988563453465170232698927374072069601095097282550709566859710791849084786584828240613644562961545814305040149755272912674030143732570757566669439187377792242633171306976388586596512792827702275843279191079177692037076981284899154707365756411961292885613034422853923294901153836767263350324844739927948984451854822461761328968403412417239275892672003744844564702185728252004005793009654099875466112922612541583090789327889625433502410482010373860975587897793573982233315848518438870758206435386051504965656811600724371662704183951591643664307646798798458960588318564162382863330151478176158256091370526935391587096407557585853312349066555686456239656931265133458716500293481010951994383007131423513953187551809498282940191502007274236825839049552010870927161981714655291466941981553970256204392560029764222635549336692375752214123810918447586301168881227730643469171888086802190694329385795404377522610931961139068677531743199624649079021469943384241759763418076046007781541958261804990110606813104116364607727300038112118008592260064174691305225782583102513310248756714165692303493971757525346892634875360868906285252221912173965251115152385477338330189468159912165415439419935538122150234526993559229491775463492300542976131471141372288782548508621015060723708117037703343735675700111198129016325734173864062774639747889920840700198165317547874621407819456071041106615985254871934167728180984432103651878873951970568771766044904292943479340493796112733706926728214408272152386709107853925224494750176383666985497574820361353886111014568232971080871037717738431176625818832806182741720498828267096648090365823761281763997778252790623996959896509619089830105913068798801565174382900463388967057739161082006806302487614623873474881282504591790878572456456071804609612209659545403861552110376317044805725392519578520955216897396419010998113354024977904300769669234175356231503761831320878107992759433629437386667563407251386395004552943786330331889884245335452576683381424293968340749468400699783517137316481517761548700367633987051528879575326523182291365513980772241338645632239420716547405830115841966110381899023837351288945986432371617714748547856805645068194957475625387621077826906737102741611018978818116854824100257441066690782564211917169467939773790921100693166493179299135880972990760784590099907772347545866820551146196976491919455627446717495096879668663652819341659977225185981412474593842761379048020215218196728683267173585972755979269546345423542242039931970942219459230679589307110152746860700197496423817235377566295402105269052005255161481352631568503173534073430661026254332463206859370718998003642399237260424569512086341360200811801944665698443784914927310575141823424663495053450014146685066019112924684088440617312001819961541361285988897256017385640615904121876196915961644541000739933358709519919302863443642731318086226537414905927904795381424191183382008159979858017835571494482187915815456442550008940779932217828530173368326385817431793913643182054332811583740171264181677544223226587085464338365595367360644021096387973644443069514927428598874215223650538409818514140617767736173093801510165517077577590185177999120347161237743729900707923531108235359453746224322923935314008550246736645625778019006759113405155824783411581216280252285625744033468960007172942416146519396429585747724825617773885479375134848088005052022508818351827601226425594679839405490659290786824933789104118388841203584240477391061598799193483840190928389547949439678780384144097882728162658821156676481887681171797008612735081735542241542761862940491843001881020556816846500000646976616660768543150147321873950908927035274953026391388678511317034660598756682868677472309569303189410353778467242660228413425444478245763331992007443678916860105712053148066845655431831974411930528333333857735927042923709403890251308537853931185024071972403355459275806173576445351980212929999282445642217772443092260369717654479602649505706126071577382827177680456496458050640764576206099837209408628010414165220420452957814588705486721475293611062667015786038319453548747778308661379790595439961550842689299678927499051970499241315385303828998631021757151334897149452510606085935086861484069184012055231349103742672785574581796460244522797858494400224872220006335083538074067942771569110168542153147625010227869758337301609819873582843250569292292075089719876171532178726820112636176409643433231525381406932539396243080421427664513889145353002396941064211649928022742102875853041106558625356540604979020756714889616314106746711554660149897015431586393828272195962502820801341326027924820216444528293856067892653926059363920556947318494126189250744805985147647027299239830315851202566699399215747665134463956365400431953004676908498027326864511553048866922058797570117184433861833462521321268275442189417238515415766789043745775835354024487841746646711039847141535971627980172387031060359000764392229244888692044748160872039575503042394302957144158431594352862708343772688826301668908256184496321008540470395289496948518210016485388533846523182841399343856099975553534437891052214403050461165485289647905053798701062806912407956472543437716782940941859289782131014267308298054206942917471923529132338036245104713299834148064595056299060293478783458597474443323534471466129904895831411092221507792663707752708709057785946382008764955212126967666457787846689414398419968750125739313068087029999545985157071484809054228101720408348970120146231125215789934161553948230477181954491099327105366337165982483334568509818373052401590617768488142462950223970920258111586866428526079068645644487919566968093024322113184186899372731287114248757401606802594812246250550034123432660150891473896670421220610090003408262869599260303181311023218001837117370824315418293346698592569900226587631273621177651232263316752435101154607721659702577682671905141453529808601950022222504393461175361580298542202340222730369441622282879244526545486548974068200685145710932373613913689040519356434313599374117247208329105656202752336514176012440466985715399718001962439900341271038577587303579811441437214837486223033575396352285385422625026905627257597264811759121310068474129472960134012777290727180270435353227715722785136414292127614071235819571697644027644118493108912506380103094879846553817577085073716622060951353433980416221798081002686008887757657720664690537622844067650385295325529917811743595185734602850073344293467904949457509961169806598698504603121705263323650126640110152086702340367219083010465948906401777649827880649443910167253718644504363083377560557034445825607021772162934712324491469141531224406284388087578619435110157039377866095664897858991643561217272031279059525361457204434756213970454632787502940387739868016477053027536173695035329120858149127692718266202585373645145527671279550752628671830093666284295754237620845986314021586961127469333193602111745806053508087842108240324139705742468728566395943172260874548787535488409862904529684122645781858154380622450756831591991453968531240836024534830871885614482542690325144310209144978602227005554397386690249342847073369879928343384377975078634690552954404464092777395655150921440471342221091081026145058561865554080785313700140744683670220861183986604313335371187638465698039638042446885121587188420861802433904163522566959233119677411427399190274272005997216026404199335343418336082856368640872630219799057246511972803987147752879509920735011254892991108802049354662041529254357836263051351767325246048220104034724533296097574662041548319288667415102744137675823651617785594323804485725781404256776945354970415893807338018404497927744606066962949196735890145952825934236417530760885577179018315622923627401812119074835273237873822550391048667655074568956792223204791437578757567317834945402803221549337867621784513255558517673103905457833589583353333712090927443571754140523431255488325135403958086633369964447609835298570193770127981777353985114398301879739186038467286508314007023757218234702950793303576999818187587066821252359249641721730546072064871687783747442471555154612320843216390614277969069425277867389581024174402343160539880540383263630461042005743000552061074679059401164773351647921811687788378085971165564554963805907315768064312037550982100342708054622420671924067040571719413372238089672033775734683723788498873251587506332133534372992057730868901826355157589038793518163428552019178040340438966037162886219489953640671070823844591784496816197312936344048205653675479203971735477048179951300163941582479129551043311418629648491223969261608254180420108359894986229129391366168003691317694576627323063674666411322013444408190631461982635233268060552706200201324396112988836174736159784462105549534400954311664842330368249199667702143085164375587177055160867571008454953689840602618870175183130436660383684249764587431434624680021056510597837485284458164898538016782600121554352025243083271413520905911376715344386455526056611057658523930393491687433306689441408753237186314910037941298872962366205634997545478902308945419055123210940214029826018841099301381896479000284267013192231193502505924331766192825123179646680011354967372993886647840463960807776383396390656961962822537582158939882101233748389130342012095654867064715521986184016077470353367620088898599448727540642525519643936239875853673023375979115095674383569208487657071633506823572607336786220322761838975132440112877795896086391333853973593025453485645046232012172203765979278497411150616904106370333299522811175299385272036218090032912201946500481523035083974156002082973051726847807938076166033079613074300969428233248701019035178943242322846215020074006113777467543234856424101261060959857397938940664623348351748286411256194515184357160783980353647186962369968100798590150194597365260188063919058161026635520303741958718931800270660655757309585613356447129849025465856404299417561493991456463762218456980907114928119337115728931641617182676157732076530629069799427839732092368631104271149621667216863261053941750596531308246978962168388530045963386818414382931927896615508125190544444918641464817406723870510714915373480114474054523383541950996064443376010922765422534987367511062922617413607705862733446722954632171581727678485173324650258788541886405773543577153307197020821646140262708109858926210675600021272345722722289464174362835379347466004692810024821068915902534780503853594313384249342762081682152519894593613433158000370125113791780585624678892669956189141032668753516460149931897740223009603016330656968189322961029512433631489217001210881219811810032365501860867652802684473548460683138954702369341954720287988621230858463792656129945123746049187438680847430004899776624059181984648350349772108021214875086256326893229781090668251184479670428185137481567214525218512771181686792964844887631185268695140299792072704919498860076597210394241780597455666116487536337862048733970217498958671369895392696413796473523533194584096298383722039519000259180283598902347685989153687738863199395974855574178639207936020444149087422244317411682407567898543350629080634384475149780642193865907773131077712035272908540922624647604459944120503603214164175549426731071111193530007283930876716416991805510677619935197321208130553357773684395162165412445345599315446269718951859024364669712650842960503568164871220531386132797676647639278182740811627451907867500962398620153956209802178619525228211894208599939650539037311225206480916959754311252836377417156875860468940028215090318184549152929335929132311982116546080216944522422993429749621016515528955873364417108432395093800501244789261785758237528872727867204892783109144807848862468046535343145608673493191374826525263272592898078135442377171390022105517464505202416173908192793962993673452671612990486523955655700836372783976654617793473457281726446392693924786944569665460231804602444050069877944471042552636893861865059776990195532802983957826712681441019994739170566061516951361745363216797366346671635800594572123887812739364778441414112373657522418308342173274756292544160400408725567876616351980914060025015452070725647468135988207248457161955890095853640233301040260739162709546966405902365557214788557747775177506812527672201844082675092710947447536563295004309110472555520814843589156076580189907349357670004030496333102130399180037612520260320261849234502871571510473936073948200382351166052908985371474729052902841865656036690523502307415538228381105877094697804343654600718618248254441226522596264085494322013428802993675825221103355901690419240824786807080348628318751465528909955745314740355160366143482148080547888191929655651976584534891420131482041425616108896934076873369712786402323135001713926624195258648814677165048179131873840722603710049230583498190169328022295271911573317192050843020813825837669244782023930688762184982979336322753504230067479522643673083316516502870243760152028775521200581566429851294754243653282283307544606551259943731384747987266291135565081929530007395236931344283635208374669818780400518305169896120617995696665510842401732424026166982700784220458159904357433974151288695457434911698696061669044828080818213774857056442856615291250588246097553688882805437109718925800353572766768276380822848848687183874813946009826250822850522537556893545135255771547425111967282701144680865807877038992177538172017674451683384796581404050669683046157574849424960356588911802697181263862526465434210135354564890382200456490755863093152386361010489888596924663853104866201721000898313875440471169383003843672166254560024783502505890040414365194946228922523451823212823712105309112085433288996032386014553471143706987186625681781026547291690217308258678434413698283663216444380291539872786486293284649244116403682822298621754605918980122672871251316653878452113829267859626749488669737511385515108126272031145061938701913670645550187372420869805644590218677575945480230618152996492236670008547862715720201324462387515767180370663528757326434681166714771582650824096664714724978077526315760100842072762446967262326532202507199353215780870375462709392670675639462488084229590359560828428566255596118899459357890848390611922398527176033761559054856933479661971435541211781056798801292756239538792539192093019346607034949445635790713097647772257634664185838411273822725531386408821214282986872055556117141650617324937368288413977285373749591879111240750136376946964924002941208969785241639136678914883074637242678888906389788417630987297919754854983446694510363004818603370460262708367324253134653703033381390323052462201131768765078155535629631214649804642849798871098350240736107057666400886844914258781292536968598476935578435757570392674201602113894262177079055133437290473890780067172633998048079197457498172233940754691976965999279213406135270624362574598323813228793923748654689972957089410998546163609962080920034260957495725531099861072423860800272524094967094445641256092527415608785198999833650369686030656725789806693428308353446981619892976802127633300400565217502788017342394047082234182932593957611083470843717798553556981167898760062186369754653211340961033361119375506720083476492035178268869135461893101564709472566988228711883592005733458034128415049284714786028314366913095904007317566834733902952473880527770024880163712571839727799988334494455740406926064638117884750150819822985594531380484299813618621409977852429460085481221144720053424592432280815417079191291946221085039162062808377479562493379568811750155068918987155885255615339438050311960123813065511219767974005744493536405573822710595509036997801445105785791712833137044450779985637991180645287087513450496748817127585941073801509597701461399480785518615487992541239096465515785281073691206734383102613407375147733997776266555364931219385213199383612786428765308677590417448382994416727431176330640163466059212596270680454401197243264052816849596693669757487433821000037258792006621072128874563331109975977467851635150604665545234132293666300188779439498064772049337192208290768285495765650298677059535297291925554253105897210654608846472098836627676447415860170558599899054265217831152568963812677796743488859201493537510545793297194824751754675796818468406868282088689358309111811689813279732598615174089020037759807789948999691253386300705272296101696063647976539563550507973115584261631022701078727823810998795951653510746480757803260258080025675584461716213013375032684670955176666162542235034559259615254589824166655890390202421301148780117582953558264996144760901910365377698115585726788853575989194113755974779986506056634057496905451625224355057998142513969458093890331833435450650169795995909812124742162095123888476831825770056198157599531504121071207224629524290174209039551484600994065210135041847059071989169054687894960655937037445173643384418973304149871989555361499706504243045436442687760323338097324988005714775814253858207438798370009598309508129644222991701044594740178928004611963703206964450433672893704613894185394179100557357820514804193428907105324388078404144906491539889491307428681532879022716270677221990804127161084913027801173002084795785993054542252335201390907809909917717521363244365867731053977148831730225937140416707035759062345629480182384022783230732745052295106680917296075819944548431183767758754936222773787635326077909104068377605329823122208003655556937104847495705012497846598545036680567776810636697499549379792626763302442219465583028554524214789152552099204411984413678284572873292234246002313930692169664450948228227790291172833752850324943423031101674913333382421660333707479796813611255574717631857829335548452151969637870840747129820863928673007326202497232576081938297043421096452633197152409785565892129779185361549936301869277921216844341756806927724418996393428708030217004955796138097252042634785037946352668486598144983955245277599601811405912210603023177602290130002366344468076539891033912653581699481697257442820905321235670838179097258913151474900414125216965786615527870421236554793874408007174441266408549855478770522835960798124490212066373011076706583901777925157947926162351922209332490959088000834637824604328683531904651440767189385731259290156684360023218670677631223762497497820581862690370995515722141137552719289063000338323505038008951885157611827662966023700644276906786952547194705510598625674770230630219986441387181064175696884991003087773814263976300415996780062962658546817757268548843708178363118641320307484900417177149457780545816730364437280184968794122515292247982707174098150970834511894030972450046586426590847162903593322117624782154478617644563981209030691758431676836406706389207524006676437962768122962791021730691212532492463070571216869288590970043893097542817313337605452000994276551911232597082149695493844381286333084516953319097570328177414011940159446009366992806859232141732279321717469761932676686249312965261270109199411255764090997790364887304793915198310389801470522335559124257551402053296133806291880794439541269747252025287249244269588730077215538239628586126630809115877643845855566111723283092664966606848479869812711923824923055055642314831410044690569913384941322556474375271677620395535381889818799696674025138170995646816392263515315926151148523519855017265307425037721017998249106383690822937980445444151568255119359136279598096725471006130048368151194034523444128776658749994328961980106666628195209213794889581751947437413085491865000224378791175488711225291631817418186139168305023042880230242471653337545955628365282872534227411765207149657200227236720156692721535912433998277085820667046540240100004369101330854605018531882336271531155363710128641582919539993553703517017113961196768681504393578291116658185557187455338291086205621377363878318627876588082083081929928948476745032983450802227437249894362155001934740620785415278217198719155034023930879316710512547018503162932366896208810266008476368986616196998909851288263142345589187093578836643113109541609428059157251786288074400437771184332765116267696502284338858531238866478582264667945212234321842415777617306870153760707603422403513077743217324375635857850162688543095542452734910664164052891621724493014584479058360813036779227783832815926967055190957252294004718449082688912299936949213656530124164714364499402193857770707620041620822854388011948372790908383909413578470224249907214528002300979691166757877780494765344614611539904755031363564502575957757513230967460185682889692988635574923998677720897453156663745834638806689918060880658522576034058733859919449057248667400911140282433985457615726074133738674722346858544350478691203870539921680237098478954255535108278313576247747594666857111220740766267239358019891133421042586198113336939510026173036228486227693349834270015994999643112830373049552910881391021589492040643568488255239938624703051230129312514967657689388628291751511073831799750281769899174877435662723921094282944277619071537549345249710316861098075817854117059726211211823989159367198226321788516383623512821740689030560562637444791937060692073616609214208533307787473030850600900872150921084570050732920947137949134155928958637239158749622461195377698608491494022588113876914495908828716201938450433250466916369968731739482542345801384637166441285915895540512954590693114102930579376664076002593442844330298367190110445882982797329164358422882733930704359519017818065746931593606867084688994832783560316514346163612518732967655218552614633763187425441961171711665977843838182973269626992220898330634460129073792663115372917582646077805924378555988610637158677300412362563783610661151383170824706178259032514176521614130963256398892770675416892572909109062128375589022919662404028649963764968175738042990903486696595346006879969845592340154662308640068175788477793107495456914143404453349261353885037543553171895657199855192967665961025319846481604466742892986180005413112612190314196513793989558794475118004416155106384830374299159680847051524570780616395439168526473689562121437941390031925895215860404055950140384038957431189702742358120832030550323315899970112216844457861732172854951365790296816644128732662006061648960540799855480659003299729184036513567966847845344002988631886631419487129761720334807289568671573025240888801673525393109120437963395917689155526260536378437305086738783097198082566654084055096340009749416635132842919783802281833016458235443451763476824260481256359089817469109391952662212574832133847952649622338178030968931502587049923860520497586227264667128096509862172044028675637945945105379675151066416944343841338321772726462314119241134470257345135839046753664434659601781761336945988998824391336257204214624219847598398778309634406908066375965724174490274835080238147227330014508613981822710600530488956741332732524686509436545550036114137671681171689519281048229809558279807842287340197310775320918320831875072851101264492118528096472987907202975900613362889227737215457416082933294195122823196406995457998569230201255654826350822385171398107152887272368710670698365339177704334237839517615677671307286069158306617023332678924502318858392598804644549537898375485328540301400404167410441317255654279944012307244832380119573680754024882450412008515373194361700634050876640457023706170160458882877843692092022522484657341531950553599207387520779114379028102894619339819310248412409079133789095399752521163660905488854219663645614317396301104937678439269902137485218234279325572644831259365870214637100092675224740942244699439574578577477858022684107279320102450710270710549131857501859433559269620611603663480400799818216426035754507435351714905281860081047861411762952115731796714465464110246554093083762993225914855804622396491253898810227608551600753955737727049726209901850299180577880385682470348546458173249244556207693135839302426725214456188931497086578629255811771439403319068986797721790129337344556651461016030779200971496242288929160584377456764214647473898382144883396408068641274590270754788235626141379075865135177062253836691991022760022068878084343618583657868413613753052424095833863716564385251467417051334402129338400724609747671578998300965263795210449086442157798429883363360365469842863505198954656655143396873294214772241987055675775668650068981578200046805987431433298363929612491433305848314738301137796810929995541905541513643609873844463583930534917599015213226688569296882351758389688323042070865842561624974993012684483868389459952535002049771627524992456260259992344499400682903281096541796280142926183180202537907834910532615704257235985910293465669450852874631841413348617741727026912239803396177293466536390469046020059368670486894833347038567119924444138747658739665000114000289977939728549898720340074327486253142870575106108618165076371473201893030708525037876480970466049355996372862688323362157248182847717651505547695690892801984641548808888687080446662637319140339518621353495791223852465512959110022543476946245962495842657830897680578928931210818252122380414628543577513221744790563092834591609790084450021657193333928934273219102589838981353677974664641696411124484126702486328688653352045574090497466623580234639461649546862543168025679003082769993657509251729689460310344598384825481518030154540764455949822326012650852592395648845246192584042539418208525245395226900987215768186913588787199797973948919748982573317384469101980388884307974561521899549802413747038537341281883663587948461469535942032553825016823089972870502018663707139272227260067993927315577971450365871119773893419069426735258841168916204120291851853263858138540574016047244195795428923094737616259362041510288622377909975339817156610793055619184042864841615276151381102834536859679766443829248256692904127424408311373287405325991821639811012145617285925783978104061364781311021995189452233408921057477737747252688792974956729231079313342994676010944179288749724739494942929145297715866400374783631690589430977603376766572667444103244739393575286490897015610230599277512560963631707789230945398612522362702774833748135443319697047040894049326327112103598050077645708271395583663682014809362222311314941673165174639577086037410878802287018925064377307997197124686496754850736777566088719545976768267217554998222350777983792027834892590924768133334588120334143262089738609873704132246745910353417290174686547176386857343293978961659252553703157913405221230714915806190986250019375497303253248876777053530720419867833285996020389572902187830675228960876561938847092125165486922999017536873058761542678823204814239140664849048920648944118253768396933146368222956587071443156699347531706156848776876148956750183469562875767762149252242029776068553760549395012244377096605910658152072065153889861815554419752813867361113200124387133998035132164635054452134972850262062280164728385409001398057727171627916821544922227839770174045898129575246741339817311474614043385663589588821752372697087009518323895155310893671567698752652825737946647614525001509383527920304857170389351753294192335723097118120415276729360220223564222423781012122112213827965934486478705434710351242808392896368528282761527028042237318776286366120367262829595402550519896109291249184064000733348776818312281915177811240396125939631832081205687569068786596755869282293315864103641255543551724991264954391257063616635802257587926644744989079512638301918715829056638440387611069826398574470939323645408206431829161716192697370536118102778709733199960200782821255551166770225147306521754763634110912771233351832430237997209159828336710069461997071641194193844281142157284143172917894254390395270305441688266590874513162889799283764212717931061824521645075707197318730297242436582941867711738392905111070164149828303312605972904727409139888094284577843446085867986881039344305234686532594583018578640985608062579093355520051978894866963817153551258798583537822923743118315166732861219891569622220181337318201307200844440161602632161300988433928635576356345770931727550062304872066620665464909240664462963229235635129274015012380832426954795978729117489208509791936116412029738959522658859681240544399234357700974635093994132766427447569974466895603240828484784695337663278809592769711863669279511904910943009817667594949599266740552700419984117980803975473469930933628201461524467711163859389016422953321162798107360515232494564472073958453085168223108479311276284081345754735065569284643506382084276764496389709583194573582706968123010521716555594995920579083792851960008673612678927386951516834784492390411249539888556459698453827478835472052964706905973612550681937993351428937443715437008719308339938888278982444060335021175562624546128033173024315807544883750088811733575759139679417441963677263251446506289961533828758205120581180587845123554447055238982867275068216692621328622670323500952675154758221197443653186669042004366957120250048874812769374049557589210867067611982874148399503410720911706176148351406563667211376914215925345097538360284303698503601745378048475619160463956429502281988803676288144092259005013620585023220384166052786371959008376066833270649106699842999783643267864488831938680793140924525178727559789730811620046529132695520547762375152429073805079596558859384899239217764401911982746112848716343750670988467403651177342132747225422772911915469767566817636577506244224036548045887402651896437187889010111057011704447278400752315896463306618998004403167838452062091513807150374751248931333353655381388231481648721725593664428556544292709830132688050471807748834009745489516364485433465736340320513722017001281360685050625233908673383859067374660545064799592252287175973297341987706282722912991458270008508070579913889719658719170885009833932958988104276436792088811020995309768618961424333758747649337338541147361148331929812428364684974073651071041428055502794429280015171848564845153943664349055922477804115168689833414900122839845466779165777085490348449146979284772078635280239160972453092750882478669956815783368620259036111504048507748118268631959198103674225969696024045595065648695991817351923067503916390517266066348104458534795530753929455981294874405191124803508952883007918162863936830746633422557100299290910682278403266237079377073313582417822433795985601281477888500699478846486356573663469746501588740374109023171276648830778496504274060877149170371464670666254448459062806821270088873935636569174776344517545555483160032492385759509821278322469043172651220622347836233757421538984564125428278560887867311269551763231323875374837315077977890570752869009547582593213156712288403915156790946237383091426245169265967168233054898260967918988317791802669941392719235493818740079127571622049271504980374799074802222522298695762757926612424727767589452805085873155533496983336095278757922266664596375030274798729344303901856797254414014898713987074530899853808096496857840524269488831485212981348071421390103757219622205302370256937955606056000252943498114995199911312417421887718929829219872525131478962144302457216299957490243542533581119818412094522754145080223432063289308749476649638433353638434388311994742204702804869472280126303516997637540944428167634903813530612240945648437344949754105748414351012664468607136493930324530047020606058540139949868281077861885039793684819802820398184427802988053973649781079887287901413172896978152018787434542966833963171250710553286872758381302833600685076836032938006732587773269405136669315117329547810077068007750396004198766181007201775842520576073017663411850609224980959562870589129581345350263097020885087308036166299082920201038558140635301107909300821559126522346095325804153711002585222949208201567305630268972216256356219135012716398268747687175146405936000995064919653998105298965257935071127902975542842347699403787463736125913559823624397317537339094774964221826773496413639814672644669487110742426629283166306860025356894562543348489295659884788667963808442192439063469865836737617671341623174205382270773287442566117386602958305793861223603286775551552097554239737574104007029265374627345868334022224416604920953744567526889792816165005868590572270694445836006392717930454476386365842027911330441413341048235632611016309373377756240272319230231279426560332984226154236838174277854057164427176366022759262724936779508539528462869227211048994015523828598422044481457477173863898370781329449824615795920987805753818184870019959645561962772482873253994700096001573196957189810278343905401277362890708608777760892356453058711680387046156703861263212418951774300378644080944244820625095082866233408145555079395312771641812540515354695796525670814290688986946303596614610464958823349979788767506244402339368887631523852527839246363986494056619466413710642806945557577587165599167608600378038270956131194997944845251640265502199935023662877623327864061223803353802468173407179539519435121178365209294257721914114594957430417187143693748563200385544717164725682098911118931283910081772887955100901949125001810433623910431748917147003564954605639286101804925443415929249091680534461043745330529741654431577849463323202155133599230985536870982626761177940821417511111301809537647171290891651333796547042643378984031179301365369101711946590676141821593382897716611162392933556017016365083768896991922504401909434318288767073603624627432323381451612434490508800696192747721545371342535138592001733301249008952083160688938045119063879124143631703517964354743736538473892621035986705428496168755693012439336807668353163823444258329813652213888550682475659524986926659226840221058418285032875321322396162960032622554638949440076892112252548696722286519618428677938482923450910920234675671322036760855960799534526954285791698828898780256940100871569199621856325996004081401755339346756274443649506557744106706381968520130630570792944459095680753845509907255311948414597915050773536336880655213465071477394802635570672459730042462119673181615349218435888630000202891696480845493865241279477989956755111845439864844604726101449482695162214019433879982075083521620716808712880342160761434806978097191339467846842617533490483178448048600258035267313261711496474068754166625074955032907574992401226240162233769312263158444520020260286189676107332330346844437867764661195126839190962040960057768191634325020590109460939199122263243150648480140090721289643085444371815951711315527635670489820302218241101350222321105670374388142996114127401401143499449879231297846353357008417897998037169238070819350781131266834437129975610259205469513470721310115253055334866628530035916559854904220182953878413831772230502470576407999734448365457481835752395051768280774048434682434610714606653093721563518899484918484358427798359173329415228747030651205861219708788160565416064240647858972646086905515427320425631952025757205921023726261649424739973649268513869848374281897232680405508906066731263346053641027324166044719634603245227931218012193985426087580165954958121418457350517238609756241542925564116612083571928657926934008625021930625828256322623383050394586632222047222930255142279106825164824817650862796588805333797946771388928074013908845074497560278540730207711847501451553944379482044104831921570818394026660547405462745385975747066585599283756837555668080896665033959902085432213688611322891990085593172408560005531452770325474137555738890022972308104372728741859251523495785877386857693892167758311746497808264385342494631478127858902258815300678211855906078809630323653049602707709171970382219398063118202414394821275110419628182242768378160315966078190090966343552365227676705334582662454131076216345024162114322609922163965065885686671984342643403561130795311697400429976985217943878426138781834420728349354314900664816565107180423392052549622969486801378604539487545833038128998421146312997308526842864049353407240933905120365651720012685351337549564914540426204323108441351707630333379422835671077606792568156573643083857924173944080775124837444505263242597709315871351252502332042443130261952559122374111203899451608486783366371129870389007929386242441120649247383062981317972441580762969798519576645596427718329573648577456502440206731194148374942766845995814020081744274609872587480406676681976621012341026214064429810689158830663095892044295993581630538589432338976341651578343012791953431568592825356636519519920671561233132392721610708981497788741049897935306216896011884637338162293777830531597721936179186459977453421289470983687464792830251777299452042799364737009514584551994566660099953276388417189098952495135727154130222420637775995880121281105070202311641115966447836369949080890808938136086216051608898356480982358795231445211978646178964194711394024628228412853868291197104213118636915197384944040298149312711387429386986830907451724758241373994237672096495146291481987294848617084308432647273238732154228091609868548120486613836158187378981658855084382040713143589874706652721137505297167153486933670680887115852852108706377660590658537971212671540228114436054724002505254683402977229785936886958218650401782106856725828083562904718442992778600335460523799309756042199118677014169809572101426589717802030417756755481882304249600758805224679638060305318746333851812574195006082683600344578204028004236843326736412278746890284739352310780627418867173899258970385000916083436558956401314682409724014865681467974210204142502937056379653098125285359171097186974416672975507919665233169848012625481312117216097867030584562565120690836842199191222888116857730409279004712691008985241391843474327244153377071219552577228589152911752797093977849950873146977918645918674012977569389534055202901758100132612896171201669331942561198556647573890668238734440304997290888270914146458330974668741400786307107328335682270230060013954342045197614266269956734059727431118070565569204711732698329139627977450308857848170698443707824538172270320808504648422615084515388859291224082695201978464131241732241357308710603148128095597872861529551905941806592334865259507525677785930733546064212948410606629744625561913558577098151623898337564986721579938070760122303578253652673586604387692950987522088018100741561356925751540302879138158724420613533405212290470000118145873587022931043744151566293101463762117952184015290313593906927422800590308006600829427738583968290086013588445841964879965845717595057499709627294013466134295349212783059430163281035260470659782546618606544989860593190703191285782526439169897324379382715618576229111440223952560515433217230727668764754361426124177575396923949472552510715388527007046745213168185689147201857905547358993001423395978701074772478184292121771514948149631221059131848092574026848501774053756491111302327025832287871293122533686959018414189697403782930558996807797232016336879653090757310837124381490090409115838571985816989384257917797691747242551648821998395674872002445992609306223289300938157409489984081110122373633885121261820624472344682934527966388846014035068826174936309049019611509003661637417051581825788490806760731231477337118993609210195484411031163671274725589478181317736205391524472124923543161680918691735587663825404389671974195453235379799927796866363003489576650415244556751639266698372977044917061268701301763990964627406661079015526446780408290805971899224851430048269923525258758542045585790821754439680141909726439980191725808670099744597513794513840671784640858134474657641998769088817774030712307497200851128901357673544873667669075135703294613815190844948788167376624789724517324564992671726755411442923577518809444506635703387791073748710104791279556521743827670601238555858446696970623912849627964785729305399209276019281251676298829920059162702923962762743908068400440005664063334255588533897805785093415701115526532914788327128249413525407838246959032319071925171619825386367754236385190983299557438561855405945213585843733103822036249720651644353839387725987835008454457890776365596959087997931563677358512707687468392958290693321361394912045924584520652497171749055340170186558366298250953006288709259480544690747651701627456927285689197786991320170340049648226045655763446587139028319976088286688011957381292751482002805641631776701974688698675393040631564100211419963702074891055699687413774804788903031147286585720361598044119136295973404216535650994404896844602965708928542432622660178970499101783648455416293373521918170052121147548574705183270887170664200392927477073154329576469183200508682764098205209373709179103684033311975104905110945972223650326590266911800225437177022316816013795404525936539123049798237205915725324485366819060803925309252775581743890694355945411641094169591843514147018032984428650272441519443429330627233275973969540474485133346540345081128644396993656440464558788786643238416841759900795912550963163178334667543623980393126905185877510865949903703677230167921198389059071440654819245410385180001645667378469794370347433135851004266736753763104887476278685321661174667783710056096218421998999212235784454494368842136125354507231323907026614824275894717623365210862297702693717904161368665453768451703739447315028362001253328843891363203690623724883961534441314391541487060153422859881694699496648304640452372346312285388051872512530849312647898819667452242539969450990776984254634179630140426094800850438280186713758267352498190586381707377487507260379275481887442277768577844521275051462189208587440369388509066033490281354276285529011081759271983921962383615494164691458402727956737620313676948097138620379672274093116448148408276446686104808349564861848875818645333915303776810813847573899102250007345408408182272182399303037805713902078397371149445667633184764995331392898904633930394680101532507088991759265605652759287301370844524839991310221535265295931945587686017157309670742964700103015713810880497268457752860383704387014502658938049940316315576586803025949661327723303964870124869932750166182261132489007131891455885314497653611020829142806987644581833591945026344763248726666761342165119931033535929492436239319129446244819812440790376145068799171595270745046678671868487430375830859001356097472860171410216409537878250928082580108908945066567974675755343970762886629232681436147506187852038465097761519385182208283258162899148762346643053944625264026872363975462236947405549256929740730129188980044231034831117731774068514707155108010449728990605416071078322372287247546322780425109106049490620528412927168757695992010164069185818288818352907737281291605740045428375892512795442281062538945735916828318284859234364156491576972284433768963630162823594507706295384540071743388016721180243631429537356583571083415992093234073803366264641372029033738891111465029224036615775561089008045357500815075547147865465940286054027282930567732393658958280656360814454202978928934777054698430113047743928603552956147745008259297879480989515588948176213600551398596384078527232692290360183572911575410670347751749239543125496837889641351208915917942910601570570417500019292662520415759987594768221195631855738273350907449651519825115089987471005428203067298817748433656760898880782876854900093126604969241669401750882568805048271126630140211744389240130199929747698108908086159684737253112539067324336641660364220641771878164445414516072001972366444994253737558141293373759829506231334660711357306176398872440514586122096114631743605436961731494598297180437763253633799315778322390615885601952777041921856183731358601690371638787975640859829160341703027805280374933556065413900555761365938325767750547684934916524638266867359852774747681936576821147141240032476827935279069960528454441799911646693918941613885075419245764229005031178014935918623348773621747081653240096651089238385717980603531632995287500114243436648419474478979142631005308704401000612404560551622814329382002817610867236907659618461887747240517478683156284147340847593899361257282150651912092468138253673882446492349796306458603913891158211418260006296685800936296128647135361251690260329764023657599451939950456585545157493269452333677374422251429694043473389711740937516276878273187078094471658337864661519645283824629605505316949852207525325115267699758819593598556042393084722418305212577604064280727303566641999961282261898893323012464357269248603419905168402020193281935339886340507056646555040828504530156733593047951002326953484738401090467561670528121252732282951949977112592469366426482579606934767902935134016365685892221785256364110991575516898303254250046742137555596791942039225253761365029789361393687328586971488306610314728206448328945364666902684257354306837960983785779164141068386326522608636249019606248045718964585433699936593462366332225045349723855210516641269779204187304033212981107736834170795226359981810230976624079764222658179817416454289496443622278965346201603441924831929427422115846885045187090371309388279355321065922797846706963747460987804268478374839973185827600906542792636629484198602350599964597492239993806647380821404977187455227659895443612919627883674465486690366207637694319761054062366206585264432269882806030725584526644676537496663471810400278978323641451634295037689545079666146204588934492526680677811493358896104920524402779737469216117515196552449880053012604894514677514207625383966639758186134006143938963235693308735340038929246464758468713963111352674114476616998031413541306934084798468127966812706068210813835219179546791339127880665387095688877600242398153411867489063103875119231644237965998143816301271898086578126059693420983793682243279265329464872745585653719247285754116448181468117445639541000012475941034456745526974692404872151747701829382222695801401633895295473796665111805114533879021508167231869312169601655171773764396630624064690987761111038107843006088022973894648883710620971064552859218340655130956036242644287580516210979276058750036882706196605454261510884236161560062928519417568504000169524580885643701177035561185584419171323595332140679438439068959738075033337399582030187740212937736742434514677260431234476835655609323321137770537259966092713607732859721964789149814275978074995354553149279254709538493921077666008000309005043992641415547341964206140700392108985111536640301733386720387346707250415032790291598291328468249085892184763778393765907608554499892637880467153100895806874884341086579214372094230803027756044865357167714599972207830982884972907712005424269236957230620766250535879296444409299646766985972218661150557241526204025768080200246215677011842802671184702030591444684586508393314089352687004884068090156165672356010140522478818029231239328857323879537493460805761090561076151012823886460687995601592426778923802245798976738322427889994878229610232652871287366482788978137580788059347330919095221326598195370184764875645573089121393272920721780912564859850755610432405934984897956369794325361589701946486319307451364031027671102337537215564865370158115292140170653130542177328215567748306900024931260545826906668085711796861410615256860415478517784615586084335206125170578918312958409771723071635137234551151825468631475543976195140078980453664303385409670636211235964855004906443479177950455512590819163993974729630368667852051651989103741105377710237385102665503860374994362995967881278108643507995473542407105470067444271401514097030425568693278836718369565039899961832073140337339505862652440222599334920116907104893999197758118647255597106366150028208166992816908644831309306117991627523620472907402202785124690188598532132362503817232601802046935743945008396937762810957177852443445329487125459141041711331357848241335174285410074109748717182039804689719203008079573165005655166464068708672256643980239140761023047885729059152813263598836212384996911981786158529010075469337445360982192558874134539415361550053129846730719892842001929605427428020222171049855727378865914693944082115958214882284488597252913490235727492617831362208528776496273233285425228652119815033445617911206742946506129729342356661942641132549836610302548827949836893556069610427172763329945571741985912640934334771637324902123894394041920024782984112522598843428792387589800827464163314240376832893028775432599391058247682994760901720204702955112206704310636185470191497887866327611961789051154722391759716355532723796501516228525253265887946400374106289077324797206352966770854281239486151519538850686552952022632315882897445257544364180678748233402016101923371098303705099818532679611274272127522449469406882219224653978318433986909977847295830297509950647527823878663657053249615329459427056046543379990557432498609687970394031634191487018406173306469241565533821532340064037333797853557234992807148434523364467541226947827696084414071555987067977928705001821411318776961965547147741101597775370313333474225355347276520408853369073395632872094264291260481224946247962521260732526161028858798503916710549445234850162860060432474009302411114742368986785908330380274965538787405985011827015235734919467201139072825187379605246249615491345479572662951265251564351024845209389021603797016458474888593757391262817835741051371096584180257905176773892663685093054865112575394199340684848586086065106575654254370343523673981951334228614977843118581866870697076810896959875248384049734777074635261673908835129313194032460569742420778547385680554066218147771637033928430999412887020334758996911474860447903951789626673682637155151075919231799932860591567557087967613511917480020991221152488659784319516271284007764763598962837127870997427045140368449871049754672549485761888292019844341979213149307559363912742060235370907592579336235995306027751933829813519070665646798215601899403939578373781796012496354201593842690374473899776778881819820841873174172315328173005948903223355541453656533565594156994899835969546181167550836667486018011479216682463952002322543107149489207796605818551597481321001666895724966639882091093820885148003586355109539135429369353313552390522778591746376890272768962209352067169253519164123864431766312814288330670711638497215053582824373285016491494609832938457740143454149686236941319729585221972578916423084983802653401162421633337545165281254989353021428774080271504133949840989783939314117883346250899710156706148011191572833919014368214809511095586399965516142557437593016970483140583208735402800600209537569618391661168041427104827127783428032852337615870574951773536332590696152651273673177380620402356163009557994656748859834275879827453199551948582563403088422825701131757590934827870323681487902009925400237967290914727179812011857974315361016734819808292151743480765329342445688670474165222943703855564899036800984284952469593929125534865292341673514770917465355687380759530726910480537882608423220002420635629350603365544819268328146501830637279369897078633248526679966665339740865553040324338120042746552678551796238431391548799905357401099626807985043891144816782169762048184041359334472439750060180370744993219996856099908918217552347223701277649670650530012386475817083732798596881743176817367536063448975553529649753105273626681508033386362915607297041560834585110079038542053311255108981252222622505370114278187585982725253054201064198421043701317978272634701436202899325013454173508931618631582513957000613491553828870556867364543690953820853828908193229357610984067396286052830318072769328992219099548556818076895009352656469799498607327395792003360539532460366047597505697435912785500481634725000932642434445929637945955307802281504821482091363025481262435849862791130738979984480927132330118370430752743234309090549556332841188953783558061807755203867914362136163978158004561474202583802920370227629779073796509520538850566414679898726598194030452900784592156282781819540005700243889921047234334136677593419613152103672767948062811205453798039853825660609227558884446027582797393326883646794464526857808176860208363271063146911872635885796587957646395024472661726340699440890007683871506715548738631582299020536656966264619622162529324649262260731333225637216835981563585120830171014741500872248855748524186562528343052799730572238672101078919974648983819457001125999127939295800306326901526751617447389466409924453144381418746642683175451529236324301979920163986114780791370558284354830793389363900940948487279080010867657603328453519712900886651944537364505808051593936672376806059433875458713589787420980719175210264964794225970862540039692295448551242926348070278376184040463084019846210514841574698547583784759305149904276470513301745289951213006542691900076732863177678958435891549983772126828004386349834858808927423199502453655472699290632369323919193916227216503754017138904385568815835760013437442621643609570813568549418500285708672802179697374155051762763744315110305083967302635455818000851393345159322417240024866503285259296460820921888497870844205666067063792917135256166887594745959996637826996621785287470441688237898289860627057053343060633768578477144988476444231539238543080270150048863866771922721430399972645808855632923807036363765266232649676314515912163771739105430326320729770061525843882539120878639230071278691985579987574932406197900569271986683029983185192732185907470617564379078390265510424725602256356124063927590253192052537799933289707207959366440304085997320359000685796629284050404874872119877133417326185311333991138188325011408905042329787490909880667478647826123048579901191491170839174005419011906532812084900072355178279118037850846051781786687210378822815755728056330113852953112499283899052984569155463066082020152810795386122334774149648198869886810383146609860643847054380354627228520032454410851903237872618628666597221990268488742828308565433504743012288160241793182115057971925243424164081890760117118790485846823957662295223113661935655083559427588991652727495014481865209805895599680386374530256524318946306837703925651524698293553408964331533828181592990561112019010798315436057453525863983369334265078104391474126878418420814254364774391123193606002885294003462076219955968503228466963275315726844242108138629546036297262946424305686557502353282388406044470963274400171309117740522535179947387102537432194594160600292723037066122827324288292458755126952707253291496025381593563363550794479757952256148367257260628503336163304176843649684462500752673913285079887396514249803476291820736187781279578637758546426835212535222347056645198757456916603637896763189510779433693134701899533033669243981993503657618160101104296327315497161095528498958185431044411936300139985833063833482253315108768656232901889500773149838900599361942179534932964633149489152023171204090727601199360292708140863553276585749321534542609581799003163465556239763456757110491458981937914410366593493926395065254228041143879747414173172189846757538838526275217482427221781893122181194290275948816283488568418827699928681817724880158514919818715134808771119227847279865175548886862582840280576839530021367036210213140899814058749354127410282246798760094594258462793492893753444469342075388652630384265444163958458231471919684408079739470342497390198002932324627892140706006214159084581065176384048295523292937924872472614211217351725214453619069918156293529676266678347512591976285438489017090993848587746915017979131822047156350294920386922838010525542190107049721062352083568108612243749836492925369822424881911424142764383748574991186122265194254626774846107342278277755973394434766952384436727753520434128998646211497802235655539744718664687248763524661317412194354117072340519742232407172652385335850981131368659701447446684542310406492314382939840028850115572801656819694179493582757164040740456362149419800229121447176846776845081301638423557214955743242118867248920245586114933972752821094218741747868439738802243109009158364496778371020158016630525466922715338917608489074172511290840117861312802947106984405843264380576477081711517542737806777865302898956754972735322602946366161927283774008055615188557979708605882264810318728655944161862324147295773415805590281782479850771470676032372866232854564839479961429149348135544810605032187903065056016120060955831284913403459754228079668083229635607523206439240034530390976614568902946611131613564854121778580086117445929442340005962245707820950728759273152542733331862605646777652567860235489101615019431872763829922006699283577361259896247967053441847659302908890269670582274081093710179765780086781703792743793501393647998133648980065252722596977191045630964642031939482967348825095557680526978235560677934308140885785110309408685496428700602434253923344619523495438776311393586300622630711452209483791344241957247275307941808632464884735041700915003495637947070000843925010254944145503342800240601472746957355944802838086545377716494123263475460118915609113340015348913189312595192076761542140175580085643417896702527991543501061561454384810647276528258242231589948745647452893913882345022817393542616137821195817543051858420235934283674340833367229275821272453982639632852388518959440480929406989606531404127104144637374993390264967849245544949280267776299596670632900379449053550883398748225324582772335607280806441775732468028120912165280581748267672750646817164746855149681723172679844209491404529301467309114728211295363853471454872504820492246676632878868906274034062594559457910383262751259330378066424817564457775542820349928024960469545067497415780107710224264535332160879257457316139776589886308813416427799393124880809894337144939796805640369984300850105006100321322936032972665517221932288065875199951909711419011304893818572282182068902547659694366585178873607176593212679365679687119186570181013143168614123137200415334378398565571963220643647410257545402191317743781679695402971381817827781887587997055691105504631386779362007362720904527420409712525864235801458003104615292022158719397920944209797731779589349691678410412219731128364137774968053429903992065185520776068985030241887525936175225042939140330608125580513963871960684481455666061718431388738918710118664513339025698499180615652633781853171708426837291117606668431913851401751539853328392682971940280575284212182560532157850551841370694453132562389297814785982413562779630783407520059636362517500584934685302136826055713440877783626038946724500072680441917615006103956032354917443762978293767476945726734152864968794102468304382721148776233215768944598640934000678163275076117597130811144772684925790769145983528349440600027209838453938877995030219601640238268770726426501942774640048447916041453734602218422665091695907165750654420585438608863662219011354023299042142992756607505940772430329999250302620796806794111156587797948397749439307572199916041547785219149638666581481686370074946551449662113669882243863448761819556014698117452072152275825684831488759741307993022689225058299305048664392365774775029049726210252096583274900045553146908850878852498342964425412855927390601873573954550626405427986179254220402072223095987463520456636416822653896447248129057328879601849204018889620491797488541619093087454768046868623473536039789896879958843352007977643157165594975174706145222113460370759573625241428798464340451969304665294099442485254577988102250914062852490769306713277644145683359593497508088930786567836727616493962667981894097685639040147617023725589554015621740895480362347970160269161100958773309324379957872226280037762003003602978376414691267466079337225605596360124562943927969503116673237784106932762557177170562127971817766351573111262368536653847680991660586020629882918307616334851977411848223223694541090772155095025666419198907486044602137376414048310454508612073252061658454142373914206995750416398011996624246989660044927156459780901234949651597784837177071923657061383074932991947472754489318894988408480879359780099173929383811225574753970970428475616330239150478274150769463267489239418716493439779509494560898733334295567812619404808604356709958592857158686480654649374541242156741246740389236887471538832326614218903793430435253804966974624539634141800337817675644613817843070023047754682422961401074301727898100815427912043455400024933000867148068513835927993960401234528416746696215096704289363221471652581090498060116153157041220866514934562425872074989826947531162309579788413673958777999096179251399823971429130913559108337806217812135493927596550369639148826556816425025313859159937662152211956224729854838463084859417268060195836229651959368343283213771273327886979842622461423815677140553331754781948001068381843633669613649999554534399286218455131019911475569519029211613962150190618128492433939055481313948264953509007323478622210617002179627416671959266041002958954852354979503087960831440015835889640531552398122538590361419508776012280381601329308789306888088696808958549158613890380223789280287522625360617568314068277009351680301533816856377926466709400568739075871450959823121206495187471879496743584400787970827463736509113215919741462889177383442868585686776346862041948319709680352567653130471404323510381366098194091552220798728492853088163312205304377267400799454998944478530160045647774138936136067069357593408534994936789034724189831166407183207861624000067967422823157880579046160027716314938272547374265095916290662862213747132329234069608419291524089059319975266148887929924109957432022411180727588793105941279717897568950685753945150108113014965026762538261998767611341390970258511913511314073152586535448390142246708761722377644326815464100981942318015377049672170371815659844405424256468956597063804343036899625344279149679624046315144052783164779514580036845272330697583639841130153028305802192288201209200206378046169879724836172081463965924737822177695691721158673349309977378022637815826342242057560446556646220715613152272463396370670743378837814298644650027555175502979313542126096003645320356397880206859149861552352696494470804415447292720975417716826786514012876480303316799830031426876198699422549077751839494103617526714226296595488994146796275184740008455956870039978808303206788214442551814696262221113882725186782390784614017486309501581777443328872028940603588454513853463778177330819725895843011792527552752572332215454710303787318790467214580358538443376413449972186368967048899167572794530309626150967360761132430267163773880225235652732112259184820493044925089658795708125717959692572122714012586365230762971990645469132894782046576582171824183922884529035426802209281421726612903267557996899030553652552883742128289659533558266300786286657437925680681144442535525808186711889686231621528079976523272835101286952140492221030164052777946698225214500635229012236409914527776135850800244673685320355965144490788035827792845842118116255780689696289315085137711794574588767568268630894588763507090611899128537123954427819673204514754684142127481637120008726779456788294518159788245825316831958527565650749255677072703999348199416544962390679431612116531472006947851163139672453777456105471229310248347918203711225172046427475689449031602508636354643919415427880703794091666295246118845770920456379011410687832549625903698683405259692198889485295183642377446944700005278674592363225415001750448253262849245288811178891268298189139689636498982028507350339924570809751714612267333229335182353698082549798808125043787416739986159436907201901813030327330023881748373703014975780992963537275937839473689706643845775803185968006353198692842180375017928757921350343259400710231396032648233401681081171518590638220374611067209675166268844398202466981731855548649082987583211988358015635684442697881383079980497907114875903369815554074808484712187737019065366785605097136103212117827033206866204121069565751708845909997311081456758921522148729698335144695120858417302990789124119146568278726635983046302409605290631330192324376067359208839927897196257343507205770203828420452816206246195069441978598123816586201318429463310715470098271941168242879794037065033852703675638086354862106083551027696535608012836256012866675656381131303729830820356708357166846528833817188463285521945369956097329235358138519037794034079326721267343140581154523552782148302316721895721451691270505834459096431488601552297896915356278549659544829997644477817251575196801097436761176297900779802044494341124885440621080436817334493900783126400691746922047215586947255856265280149524027320918393795678416140385785438192572555618200950438463621895312048833952479063071013396474004216430435961929988910335271699461027346914883319399464358373035982200487229775878981917169176443934080810159923279473183591658340195681827043105275961568224553106709173708519033222959015506955555573754184046502687689572852531400189608182021659005107978185190856614846084143200841783773205510973180660332805562701109435254171996795728269116575357632110325214167759798706562925852257482904779381189101969259732345729533443717990810945143516586324760597049993703990456476120476408517189074905999756369907221749339657105362635281272238771338330149679937066093385168140247028176596896650466109899306183700712609201396429984809247456785916335490265313538061704741099893122468109349139554021908244309626834935122848897439778181269118861763758598159405227696522215761282561590565079845178874866875553833915285736658212104043278228353830796164595035701385127649462184356952352758235805586870436613806503135762268326211003720208919648109293410084746009372292109186489018960352734759525585989778180609726352976488463954674293501336738433502490691452539929473234622433667096898125651624695919569344092040642873612181175870835206668378253781775019817411571673452146184619844644690444501489983109302395776673685786983522270341207648989828713388399543300390159628137087172384144190945211594989281980813359965611799039866016861000818390017276398368423747830456615015951198981301964610162993232579402182664831545552411021371321630696698394677362902531911212597939110973503673708658412762036386911686936012548735871782359946846153815310468113325094136914849226760449797220946990264096155717083017683237115284987677192033847276552151428059949460324345370019480252552092130945877130102474824462212523026804904286455840042493864234201106058952751169298559778449852360592467755843237345874427472514519922564681261627421421033074801907570637802018243078420996724748622647077372678500351272260467052840197652294262932194635373068138086368023938559643630734537201346017657434335078124191838102786614382750287762890181161757940386109144650181447331874142165703614581957525339142726564069106522321006022619149119967418986541888643422387266883603690747956193068301699716957230426749582281711650803523741054237052532248123127191008122512589981868456124467462507193025521849212522524846615793432393930728842645762126014919053951492209812112618515094326781495374522376733748093623493061376252381295900919593362197565150675446609240543262404444656088581387683096491518900415440537671561548927073788973789953093116655640115457135441255113383509649597730422951887781287073736166510783640364328771221219566312110475324453730880026520101038325829424837286642304929592898966468821644190696736735016783632273147673182758969367663090350133704788171785757307585907356442152197038397502145746230189904725558284170106257281491235479766385262173615488131496656869264665550970181587988705708647700919363061332804132764463309929471835114274665584942151636904655288846486836225002330934540072527116915902966306897097371343222028264848345840666573153397835419625298546381414189547365077078984418946695169285996759293841088798263054406709026131678404677986900843323389751254798785374565702798024545527267178256309574444472516826818802776166581150450567798327375667814697930112738388810948639669225855028848749905764262754020706336773987374460085637058104592868497288139473254290726541703623455214859208235418940729777620527385635594402938506894930141787969824292419154542734724866389099013771757725096154245466312826726770218569039241422690410400300714655216474465795585773001176388279036146279217723353229604459258388307088590828461226162390413159147265067912377061394606005106895012766315115940085353606795168948334526921348314791025415153064509758362960369112510209800121749558992513862168361704151087264109168663928752799931203333463079674029946063654792141718861874802763300393220497868005518017215793011233619708145753515011532791842651344646235439563984486553998245239896891899708900193922153480103441085383428450257057853423510115941320131803242098814881202549744847456675013867518227961528610155683487487340054888532984916208916094200769881495609728152651402855622522630715518852723477521413731575631359164531685598305274319704564246031653486904281452601629338527610072311071358028821340505298305895775509788174534881422236827815711674006979104642755793037558750079251111664643884904484711783676798309082042512748531394873508936738643421796479535257622563013691118226288030712000497247489540602510848953939598786849321472465890086920311816177600081013555024769900807759754516920525501210463509069164585040770809131206358767799915051906960321207363725460337413116380190565774417986797399240899095798843249344850252233683084614410127844090255890985326618114445451319964002284199443509649424280482429582968971446962176240425550093159374969426096841581463399213578938909064313845447415887218659664894357231318084921361228552505861330444279996611921729079981580741368954186777149394184541603596595325265483600060274071776989680273384412687357038382547206213262951420149704344440376310297569182442267265649706273689570488568183229616880970117264291210964170080364070884627986980317770716851594782287448406311321955593411099617830028897844065555517749292112862898511151964010060405313910646491672232262768643516289447077690106802543171904078008263500888041688936099161517063733066366244279417618826631296169704251717986493309223175303066348978514991168605616307801980932891444551926821621010227013023936088692871117489131639448679531700056040633917846414403418555551992871835817370192350673653060406612350516780807066466233537574925450368746676959875672271098226437734218105357020955485211655645637692440693072636354335008220141105038505195528464253105758243423752067103392511827074738333040054756321940789103807499904396349103928189192364136018293023181562115405996384347063015405173115881199594760184357695059000399032934870950990325477087804743527720784990277594814001994822792505383844685999392369878836328899277820448339214804979587707661565013460151668449192853758255022936980269277369782642730660038013714719420280507679612389608110855478213881590898967916320311748445530384504338114236620551916262654414383340677952624683749972665725310337927286777786568845929736801217349193985380304406751782477992489208074180546295362259108780822330190023210596388935115073236829935197590306767214705759425837646186561236813605597413443756819916683905309084044825273379833434753430302826065244379276589226350520201492606705918174014944205247370705017227557093921094260940380432116762432097560768946588845554683498023031152596714292175503255309755974042081399611150208733620111059229941569621191472120355255697291130416929259302203797064696729032912254528662555270944957857418259429895392390311924464407489406254867185353166207236179427963814058298738832876945073099806264691451652512344869396441407646501332413154541319613628559509601888300761938784890834881430962857415191930283277809335925039026888919355534831421305792899370937750664513168304039163307082639531669592320090180856709291004870356793477839017122232778829045451332851988921528073671889748110000654945013597602862734684917219083026118005790183126232166071833182741876861296871952802381910501373924481959752527779668989156211960741871474120032482349130784878666673966308704086010366273515122738106124638847413740711112230358537496982796062832384488833850002973106301828786738094914991690346466267217359679185409406484518251721536684581707493550995181211768329461671850848846922944450373871212842651316917911663981204433645220344750985842326097098511678095156306059833641252793990879713693538133880868474623629354166632514272672750554648429458999499016456181606110976946422080656826381376275874381310087822512618754619950319336181028338091835316355424334793536816484520254218273630963054165424366499984205711820234162800113816223468805640577216485860922392332544258076306127171912168963331369536910641507477433244841243062525552353841095373331717884451475339662322391473679979779084426084457677606881366130618096111966868589085115643864137172787473048258738924543708213826184244949713719883856440010976448938374855703237220712275759524805504623387931926582356711852107274799594398020424257950055852363631912172815692598077404669094670731782571080523255370451436664485982947459839737411648374801104335104847263104658060712551544131344276458089065452422591722885225700912952251474443615317175610770737369266082318809908120783688899958152400856368775431825721264731217836704395018823214671385699590652954465059881297025251376711400175173377025382449158068261410939741170016826316341140309845207354374588943551501967553603268645043084236198539689953933605996242563644119798260204886252249455166132716152132694282920331661311560757098376692406954913173724596010094458333061397192178937979221100563100686111177275759165098599588262679837666893351899472370875929226677856409608275181572859261855067984707038966566716507003513078035616613134144689415697600168295609591383814958547048955964744449190460221343369083432957472866893023038290880576940672206098393744096739249238306828805754424415800716013293535298535367920669081245829979737614598116491400371186594592104079934459955191731061294676852858119594317054877987612924743391991685680592147566874805472539934611949032173884446995331117719678392043502023513467416710273666998386492356461824759446562211048870842644463950703777326433681312099576076517176345004345903348257336671386426717787563161916040062540744661559079781551089446449309915970399155239985894776843504863330968793600127840126644227938824161226441785806118100410369711384691130100209120956630674453798242629094035792530569671159556110968166436912958028842378756954335497508142051588753236552200303599904705584501017529902536777110317086418815316227834097708475989567304488213375332428102235172558217387749927547725237913087146917358631835122500535814263154807063680007823825032697838221292531100984638040283091224141271080829889413184625660145580944115814564967616937784938077585161305021101736839332446801876505811990381463920579248981829476252647977562121240053834012078143348407333597780968804150073256664494854517232883032292714501984267877410181389928748548681150967359046848016979476668472445355250041757890748462668792811045771077973723032706320607900062183859437866046180653270552223228117949222449639288068529113457025431179081942974706241642776393330779180271305356695186897695710551456658137225551722703646774654465685707456009971621560054805026972643982150215248408832045129519435460594528899196185721374634244855307385210618307921521338222795204361601840222840122518582573431896171794132240647239505391649440043039520326912062059246473124608791501524225236622712161016573598870509174242884022364047053274225594172448748271697949144276545073578444249704983583961826563833085424964262476136851338275839159555665624008465543348786682633849705000075607931246976784177797602875642492176106082682081797565467335067285968935412898996016395740565910347955626853015523175897865081608814571264970108142020454101062370334963152962838965900626514724928583042584327034734072481067023008834065422158116772838068723245725096459788084405897031164828452556453338954019120440162118307261819367298651096745279802395866273420670741691412655268308444103164047261823876102925916180554289526209239748935764841048003450619808213428674625319594472865574162353105582620465618895570901252654398156531398241246065976153463865107112905603746864063934252565887046500405950204943276071826038917206911890627559805310556508060636120019538906796121323251326784839560416450084442575378148868057290179146295854503926889868985275208751168302932583343200907444662409900646838227355039040597153258764119934574024748415670617549158872779890645857267943924125769485818561040533169124896577769825999106518478757224913221540593343271404141943088431503363263782819101168271560699349783591767046375114004793035501763365391849325215762342374471688197973525788345850249077247955344295727576556356618359336296496977099710864536817807672852230596778454996411360711988845095759648311358522124951304474478683006220725654501534646661193922996137887503213719778314481800811201197266844962815789375859278838523854013248963671328561461214356746203385671080900345756912153359263820475506550551942001035469632083605687953447561985756993991392176239048932335147217251583646208294258948307185864709312791353065568934915450642384353108203678980303062836960558153808766841713031912743994322659027283663547468907183716641376133138517381231281757489061606171023569600692394455727912294217186931454073026356843825645543285717182750151011772739154675119909965514046496345649903693232276796495113341363898087516860090245916202596466784516423971759288135101617442037296076733702803688508442619136859794105790458690700176206368505667373254210358107798068665710492050391314609530983911750924072272228510737999982566326203486167533909902830751848613336174094141232062595372043090544804683403794348962196860212740517700881022748388618104753567436410764090504184653095590591887590603706547194344832047176101087285443548712575427871528667690986879120278928518540652595689824810410540504541635857619332579106963014283887138789894973708180620343517102655179610806780740381137277300793530921684500330159347185246027939914246734567038147793630259250142370073392231418802168135521591133023218657683391916533579963598160372062110541021820799053663215443145367735893956589349336373381308578832379484985923769565733328349848545961283687991080682327751021667516398145000291473796412949434198692296640453328836265111641503424279316381010882485143368993229316494028700880682206971876485169758025989369767391486294781339022556572790113881211728949044831681161693848207447729290422846609861363906912894716621979501492321977646939331363626455190417881897157078040980037082412487263638980380502734964354133520401328744546079578250726479247214043041216391843248655793298863402588598672232295520770370258531560466358164037772868491692009212022423129189344358090500758362516056190861201339156855003225517073948672077582502847802346005310982143929652138248361128481824055101968796239498918416674972379636900179062642478908733441887931353813368730376011128293788987102247503251306959226187278912914033230997503772887365422614380098916432644329158583689222345281368059446597744740627563629240188477462978118197346366612282121668166429129137880332507328723480317032454452627352697119713333118842241122060136591319398510135708045583122551507160237203780120575787598934923978972340273227362476044739473684801225222583168299405673880741805913030630715028038830423175738918753210311934523146784361731057777439374201634900144708287626832859015401793042551200586511582863835044474426249873246142841079323147421157374776092215940938413528341157446920561046694203523976099427025987400372056517235984718725795047644631543324539438884121415709472238943659158584794326471640102980050491090332589480721888710181419090636267095562167182588787445875051172541965481494147414708268041784966686828717042993779547258989937840565585087356597698471518141740764108994605996567901399258632180310198841054085931115459712677736073403774319048989315740756307378928805781456587592033213458483751555279381003980459561683602495582754281329079982930781158158623728088711375231153992809613206017506153928883671291954326216552477212073435229577806907118196251151192553761914499455943901985448046376827911929991730900166338322730821275101502697720539163627035812005833142388537535315842799681627692115063736459153669980732701668947840051288918382989664000426739173947465175061608249121202280790275770032640631643212761797190816970928919486351376789898295737503921375126677978951424284690952277711117321490416195684641966330991987233320224604254049441247295826876188610323822399810387692236694173651142383331917927910787195332965584265763404178239120268004862521162794943054737992655018188495134766616809540371581265232267956326979690346134229147137082325399988086781794674151172927816381969593678014224773578600000361653396127845754498742672918749458831081910142164923252920057162023370889610423200234933302490296133077257531951908231961972014101327173460419228493528148779329263105938460213654483611478579089145802922292965225911023672642180093014464387525376653002535034126340910130026721148532178062521131109425870093589365359530982058537452924494128445894416066319642985793286361370857084087923220636871875550222105252803102232533621230470379555748952646105249123825050680767041993224984280670983219577317819433860949504483192105662753038173365248774050111752580853092409636497495331385086074082886546522092004171137702160848577498573623024922845560402628825382659991131941825810297514616490405503612816131260107416660072931575160470223034588496312571463447553705355613696226743184017530677251343742256705064013957072133335171708684237657098991322162415611498559382631949427012080344443726001925513250109084666945853246190139591547291397525217475346712570829407281922630081757970404604084345898366335509871688774126292050944159213717414354721442065337863173679629129689113124755217576952074248819300762630488520625809111223505536734487033830106989161263040673973276764603320883611457166679034673988516378934261190820303590685582661361543559829174730058515871477550245998306182772265484192048304991514991539346705351018595932316485341488947858418066109223785324003536044239702068218711854118766493899673831051794942693357822679233672693205461326276683216878630788997758867978484966536899213200713918628472903978487384714454876823468859098081515499480945120821573169678223483777879046834253551865161330512004309797112868658088735444088813445610611533923956062317475102880141613577223463139186345392302901377205221235296289749755213576568995401170870676263057901830534392630967398574455136343543272595082294518417142071219312395161839886713046713567930020935572099951944602946771696929258616739254911518259243679878799426170057220186251107951112055697134360451305159650583118792727564990654384782367336957540481332670661292243389044458669314117221994601928715466710287594252904514105608969146677555003526221922294818983158452909486521647945323291951058553305166892364977068717888718732486380745767221198183495033272601928173532081512267822979650931244106333327934281736394682214176814577046309288389505761855715843574023403966496283865356423996677282447720605035135331114216294868751169543972071254255936648478011951199758200514781688527291125695098690011690020257655897922609249991129757143706513540648773775208646864145592513346118050031230052732031054887574283481716334478732213644717465541607740036489460945763140308678046243111161428227476868280878304588217868004546608481611253121469599510847400711382025243756351290906614163742351151788428922248782901372381867795374964733657513300378724262355741415761098754374718865043847757201883209758546399512760641679332105976231411475951526110173186026110561282942014341321995216633020621367306388172312134718687182670645010980276359964473643928494765876602339694048091093265264733984885988343894396259208629172557934468827419035815379439082739242108119573780856450134937773332032151297339563913882874417691031403645647826105735965806437980336336335700476350931811756092668086726814053518814544291740975325754888322104476353367160503491823294280090342115302079469862995923362462316987954172771433135978620281027619233402591216921456476389257001389281584803415851653953608377203687466737874855701190622482361403150449832733049828575454342986956306215110182610608507741450803982309795625212000197059728696205962123231111220585767197486755713545073003968078448783852902213502227003079109230633325246711965484012605926138378381259855122984957332778069582701951398031700616444088830722923323794542749841824334972103365086987515006636732048989060348405729018538695192183657542433668227950202059078915824141014834383606113378108641802395547547520978704179754481216297641136952882917966257468168047690809778700605017276626538450042978093409689972974629523254640967727222852752453923900009843385731764900935808472037799590970322792364650536982481666734651486160310077267487894980661776183657940583408598733907690923511858572813295757820470065086919913509752681362241789310864485332775835626165004328198392834211878807142947632161023771676535719620889262317794349181119758288829580628968188881071028570609053812794970805871467794055227607754407717206968919753221339911565541125867217931194800804622781286729050687609110409728617460045597700254730143553990626493027509893735705364011110597570832192138048593781097482038388310689636071234837616248595531133845998553092314628267946151995847927441135808404006983715133817169574837419820273271511165957011139462786248534600457142416290804630059125884686034223909984759674652483866766904973100518537000775556364768303637445844557085166811674967444652055807674138119293937890970897011962426066825463412633446962719094613465920927824669229115331314290698772344823426678937969094350446820076800421617954059067085719775867539616855477537569938460068613370479397716980026004829066990050073406630881147447277390984818770715953337909501918914199531417523539672501474026091501007379321321362804063293965537045479179033726843687674379485376513271855263695363166065273752122842472852561385655007993898240006430902481473464100470033468204150767682876795950012635220630926682766985073191386961907393011717168999768439377570663468640146764818064578524280362862702099121454946155907614462611057181026205405936229051481522699764927720436420341135170850001583530989986102260589596926323290427026687430034872952843220532266925676402687234881929763915939897826146934843848359389249666362283271832644994014710980877871672013494046153205302694184182531282329086553772648301406559043043022065597832130924125539462432159577936559025231273489156175792197965597435466315577081284459078867463830279365500266001371297900692100699490635635057193199746649260931266688024320298903566447402704180549034553195992603910134436887667442955330574895722656781575100712786782788855884540826220944818972126589335715100802984179161835891653413775788492798939444163751704943430809749462039413888238480611950757848743585962148606429590244461070346583677511387195583093015273000450985881535114288402881009212965237755459401069239725167010059426834970669456451939848578611949621888067802861433663797259416854563711305909776757621765950009283001226247764565478543523476532212881066793916819002920351613257808904853608750093419222609777264831040551459751985672786979687022595747630979987327212703401038673455580543202358228750140403681093985070826677373090896416662639370241517491718024454281251861901840920438712214591232746935202344739829423379775538226396219940401343250069449914856300597751328828886756671730745794163188184616309048056175954172240200442294484727332539614086660916561214423639238916678715693539904535385006328773221464163870665558938867470093840749549732737560791474855651198501392241464050348711739811767862099906004753384175675166944487537241132154904516203153726388860974943375088916110889703560247090011519910664147616094987857633856272528600588553534388805285227666788056549105794319426145474534306997914757287936067048100314793888486493668849494894000959387952024931682732605419781914559136241937551572848150657062727673075518527858180798892176715784456950502129257056959973812610004291718304427062300956101645482889126759463380657649732134635377246040220365734013114147774947647678955943048585633871759473466781773451686621054962434575706407028409747845311749261097753545402167728134974208179932067675329295508666011325672701688891761785280263298125752324963759493857093592195645202143762635232597496318181397305289863673577327922110848627283062113531253783577841425607439604199372406495552201480265747682387436247229931649307544580436566148704784929427777028549057454303836239677692936389709363663495317282566568601897325693241126208228096561101371259658748489931802781486830927564859169352475986010392502112418488542774299965835011607777417951297257833371463960308299449509117680111127959261156380375155381230597776604918512197834668606870059362844117513072403090356531398977081434880944333963693863915080212753279415522892196526533539559510632726500870976810037621320818132804028143104759689825051609691765377034930908085044443700283234829745460875852612934018059898887999168397587939421630106799315972358719005668222878265328431055349687872731522149908051947043203004154902224362056993320402146782103267586385127547427687185451778456342201572625022720262688043742121853605423165009468481099317819649053221237199199010570491439060883298758837646638940202683405445876880914680647424254727001982249352031193141515715139956318772663239553483528744986948522686732143486517647462811805411418770493369693841255928146217894552793329618013984811956551724349582995842039126002988148351668728106255453043374908440463629055903405466756345487316918248854241644652067084045150701101501179301513759543450498792337837256849511581600046550827977532257804103343963075665190349384624954721109172269098943741054900626247739895201167597989110790454738028681361983712518239768775766768990373296533169431515298558523452683973804706454332406474258015183219023556168131264463900589666055630835935080668584903980221369137801011932903958816166927310136023617001727625981387375643917558229614553162749450585780362537556126818088354569004498510299195014951971810990423216250958559972697758070131709548266028127298933799952808167450078106706548177953396354889872251113227289230765118766599011056294570267806644567848260045906928552577848540047028481682680538217459289293500697414729093473077984625168825406261184785299768190555601207425569368788396430413954823192353899422483455334110930447643271858393003514910859079368275181747649937678604741329122906641124805223390749893396274146949258937243496936719724615441278849728848352732850757796042957159193220234665647368998088499152154612156235740762686940736743478523993971994169174331625257380278769576205032804388151148122640618909736263960872387725135078994087316554001089883293728819446864480655194920295477269390749245933873648286917912887214763237371335398693924343519333565170644192496889381537448922907646064582436970970100057809058080519128354840529464673602927894960524013471005883871538971565888249348107060138246792929476326870698727325866871365381894483649476636306095907334084548048924176766984055377424276941695229897057713594861544331485806720291557803163746394677423977466890865293951533453344494553416644815742770346747892769186673300883050811800842414592349147100420824401928503183589729547425549550251098820286640504175624841198603533653699541569516643908680579444585524359264081173252754239442220513365240486100448710976330056134736601243635303129651876092664836154717877437410824986609995952037394581668412692373367739958667599035045500658929922855462400545124799087822907229327742867327871961605628315597227498708157831169888651951789514275623390692635954822078485578037756211074157502333844058010635503337920087314082900153714104697435844300155961977432283119615426294856934642072202567804228827332631132119464240641406606264105426777394057478671688157129776087032066162785423020641911112935908984784620820187185548267404813734751340308203871064882326248475139614895018906559718996410209071900837361168065009625049876226862562985077482017393885526762099440134070420221788107188908472413505462953020601968964215709886964207725769358978476647135048484868863486284612414277986880086492111512796526242473035069337749238332251736162759258713097326321359041553390614520255352617069477490567720979876873418782976354047810109195559855706239121197556680935027466044206364308943048996598152764150270651707693735124706582352546404989498872067044614435601789064532835789127193661476673553168862569247350170543290851043459126148047446319550839205394450321753726084853874710673650866737695174183219896045145158073578248657925141067460699882051681434465236965516369503144891703405415061578964051165772324501542143998900212231730147237163262940762240710430598223986459838439481963552825103264528752152428493555825648735606643392996484346364022381858027486871729646848820926484325543280065742998971918327741404957036042206347175493295726178797957149952275834293708256529089126191735828148631052484317228908615320830238710027515323095198370898049832353713748912801782880792886985019043375758022568809645099659766909162548634621250500440182873400773712792695456940876949311546632233995738874981628123637333319995983451747986715902563904733508909253411533089585662717928605691136370209972363361115876869806119561289892436764029667562107677015506586529437159812525934011356317158503376837299919279439251040229272987555926495572227966363900802993624279067733993121744010193813947608932781034182399515877566137710177771392069051884647740417119216042710002193130164446371848601070252438807167101816080069985435250985980129021570397725591795734551619020504933643522795730003156107438634421844932886589844658382772334542038592707952319500756792963104662140475802070917466421836463985762789176607187503618394567532468323288318718097884342735854441809220423349670413783756667620132651791526021708450669384417503157634255886226147705354418974065999361761605436034349481578158726979337648816488662658618856938878976859063573158298615082788224944016545216291829450348360605232038190041845783735397515243478609192942076776323506251632898734579047981174046253177420380255507054096234903781276262521721142104574948406034694857226932252099515633088551695053947067849116873952228883855910792854203113357718827065347075517724040475718053276856336357896021088716746715416066617665872443237465661667172512105883062732549383602786669619632000907116138999238828956895898410929950727886913535751134556126058560528940671804581223941471678466300064497139427860787195741654833250760273053532651568612858893986914044066038603676724456898344877065441980335688127845818306264963340361822441263568559386211401580688217645071830230392842562826178413602367904534340322473466878308333963294354598474748672480703952406998861368852132918111686084189693412989698967512723438122073327694790137369443495292839343320746403418595424353474199273709404061205764053394571315956358018875927781888408952967133910764346594374864040065166971862340033008280829922516917397259434101346205490354438323470215204832988551563466746409929190380262751626898521427306165486284604078362438239118937299137766549300092888228951820384823589504987090356834340388121297334026859483429564579458934048685645106513978768428074077843437541277918796477286388380955374522727087620259625588501954376665419761132435823646822773913316349267184919346747746998322170933722849281957464639571148234326911795456379276651658538412957913496502976640691612316814916970016089829303795466617489961678414021163250508642635022993252952342367255136091555043963438371796738112012857467516980360597128341887201345750594192605764191588305497972877590706144179609289534660180168107001754346194460960875713714076608104272572357327815934093866427974598751076775259732671246816343486775104351144944867531075307317604723183950616670907068089179445357471897681463933974470048306692203269957528645783014719676053008032800375528601755238191639519457312595802704108281700053074889854456086695943064080476665671382035691731506323345138223150881997949849556627324916804065053328470640539788506283099484816412628504931537187682426951903104327445554309745238550353269540335669025315248098216475807381491353009315012909436175644214729134030186727666609961815421782907007399066773860897283034120227167211834069067896395379357798368781922725438215770920885351421830796143251384730040855942863934714202391961144080842672460790218484405674914357534991441110927710950439346732789794848644478817146205416280377307598500365642081954475640891014319033504433427933354428053622168534317266658894838305847563680719650025468508384873238083581927890158281269214725176770168784176696242832583863567398195664786890289532626665906781241953512555064523595410519575738801388036415254372938351524744136399891540843451900808134047338261853639873615457741184849750147158770548925593610859768097370277874213905861577584033735009097025402930560088450879017482011781742652037522867065427235155099425624783855591480067061138405186015891306603012638078990137314791125709323322197225988618646018472904119134175643273198602717517436895672240510948101838555301594581466232408632804981450270254229564908079057730434578207795284046023169996126746105672115957285529349788157340149385175574631374996926625909693280491900392922407507279136602770928543010158633410220808196814338011272984692133233210672650583021896089066534927204995459443666746854193692156859880321591807947465050170134804338963989912480985856205621077819121410531878871680657876525832951442792588496842754594856303596400539736785163949007088681534632608114325625023343774701186442143029052606131890682855976781415044927385169357078073573259498437851134412483838123877300600696468638052844463073247082977100975199236885937339723384149765424406809047801891548464745259914786780410655689042642609346569358841538317644047899115269304363290627180020089540271494746959558408377830818321186217245759136253446892111878165332196721879217399402364660196209067652677280537627342344222609940043338752528030397718005277742380213208936164768119490413153578774424354721151223662680261007476793213306491686844572896782610554355268406045041755323397400228856601679100602740233850153569978377090877197248173977490479277075008535127915443249307965349130543741213063958674357405887219187788473900289669849849373016138247099116984513876616607526301320007219136032133235571126643320672114576491941120403677436395410090628874879775336684114454110549083890450728073373242956331652051874438927637363173878867323120180435727413865000482749477581008503578282605823957846752489350625490205389579421730639132672274557404846102717073876831567309426180780170362222622596840132152706403633318121889000931397620472825661777912993424016321416587879102857718836615658993471995007554381668943396915938742897076495961276802589806815621759873819883314463982531941903414509237861002570558411517848599857178905127292397312295639550273763280267453022309746701350571290341403443700346191075112036823288507668465790706801734445036007618594241057329614180596343736233226509539878255601995079582126297788257666383801889963991730397255756445884174244928448422405876012576251565414373071458115715893814253619855694249120682310752028156114768286557725841380897412733878169993321271951417643784104263533126138580182816352171103757395682062588864398653101194986611513815954025558861130519293022001101184765713402739318378896181163901988978216879462221225066674887743447931664014471330081897170449721531106648345100692512970208879591707105929443185096323080814345796199563015938131952595744116397417372089409120615510851181760745957620622219183993372950737625967943198909733263687204161586694677249844089093479114223975562183333609338829731926945605449045129078433339122598881507642133578917865084058016262423670854837598495301075608602286409120820190336783754311245076477843096952247867430523809930063811859234174288582919337540787376055927649150557701793420086960003521924081742307104665128201975161013680221771619005300208432064521814002969453074998961289587479530144603308561777461585233133363322807581574461991388272343807761689202077504721802044416613351641072930318436275900455038306384719468236835697853492836905784937504816294646808489447699511627744953240321258840838004836370059578699684880353332165046652549733360300309370635761235240792722733522528013388845371070053914191731172001354403619288333351626489855364741449457281610070287189550906769696097446977994834138636192945213488429881403522303902036924843533572019484506729615170124003293549162955251730209401339295152813073976509916834303291157570095790237092230025916578495348203336390694718664825726449484439333996822725045577281573788018193396557822506495017856232563523317849582249198323424281930146594620428985937844547983410658171156085041950328360264693574490626273844947934117189818650569524088144672362008284367190431123982765753263562499049841799606568442155429771415252575295919131129595407734336222758249702021041812923785805802299842810558827166419271722445661169111865819839683225604839552380965538940331710935363986572952495045532660056682055024638198402566550764422003538612572648634852726125369433314064861733585762541090352128788687473653130106337479482205483430439879614123764505703655712815117032945417049212887183171779556928816557274995924815126971298729211550673343010588334708553028549201482558432211770427509092965150869531875466881515732380321932000264645438434848424722109583997354329918163504149354305094418478310695088645970611406123278701336163424101757975906297644402350413078068084533753096590143577910404884112960275708091431840714894907529349132932854905401439050309691068571524455723140379008211603810604726516936247538652487629851591494419886080154159492410932101169764215549405479325812186640477309279647802949400289064923075622656328196040138604835557021657113675788930698295077435702165143733969905174111875973669776877566384111931582009016006257774998951523841940691614020501810350572333670427403923887890390230116584568112829566510014327733011224832593755751647918162803987629692472251200518466865116011754153637031545907965080310625331363079113418003503139211960084480452510375407934806560914684151337277438018362808879044027989485183657496419080118540139658545577510967520180865570060911018373428615854930776035443178951890439827735816143324315555212401345421622175198537247374016535518215280405507742363114861322183160679036650642892259028632722941252718441412116689519384691757140971747615255622787248155929455573222192902593815268990687241327668194494168325251909131876391063954482814252386674909779836946473031461051682025887663654583787882683937153207478598425235421221853576775807986290244998549059585929286543479181848357829541500155818573423601140719956641530627398856164758625393621904954475681313918190357565696466169528897011890201808104622062526655833519730619331770177272229944234091476451815225907271283503838869766954576063781627278605994347433127572448546026541365672276668158239436042709997107289838544015960021736461484017978126359077924655742528494428310185657454760037978389044370144906139362730728914184055200827130325374134684114853531122923596053545801899172491900399031654541359941872188115530194462433121087107209165212418861606487473579012150722822920634592227530947128774317776321762432163302950937774991547609581991601251365397642232053323087547009355378022928489135603841291581347884740582428078584832889821069022573401557229289317360761081584525814727422874591495102864706244600508451677522359426040594149337099551572887740689726308084582975165912819981053551889125075010168688887333424250194941353939597888323803797889388472204411116111918417234558835148903112543028383390670894458645825903430983475626115594625045407660673397626735973403879112091735120578390181997880485948473906247518884233633845625276918192536189185412524583067238333279926023871218450192197381162158911227566827193304776678905353724495821602202964041455624478175245903569261757318118601236455334896470366266127419994646958150224546482002503599405391828495671073307829793446220443650123485163809615694291993944162988634484696702468477688252977249458378332092984339921703656292450354256065887134168194568533116088977348462298028019552481134630468036441378833508399419513713741633140027977135210609558064360303860191861562963226025277686569976519085969273403248355837552767250904570020562162946701602624566178724160132366328668672055402079323824746377715202274102810695375605353172591665031392955535994393465460750730908521003378399887415742415883715532739435879504902073473117387246750525012104522251747551869577984940741814707456167569165898971144949404778373487265875639696064711638427424276798379384602746092972382911498170884991461921048058404033732284428083033264714115836407922714856119963559300258804040140267910840112821246023016253608961558924492968063632553165542380264188687378444100354544087572710609190216161116145329122718320254165145045782895838987495801455228077688885771755184138251958113325549187628211474063782858504527441270060048795565120358730393285002210221747306022948560492134458455724248758438769077948094237660832362467360434571283771606079981168108493493348964593203479562504297184635792596254223159189210576131676981713999275374690978717523340984616453811715598306378951385538915150247524885592858221210497002039855324429768123654207671158692442973862296956539506649255175801528338117606167347363770506506053941370368311100053776697509858683214535420123917792060035245656145386525056527930880736014438911424074744222574102725899299643737684756260598914734683776238825021492534623354342900976467013322204177666666137142966084887849909772056995748553727410834074105493559421114470295823008905456987449051989402847219566026161547585215365819192727391711713635744323255600981377363114485143213284659331277187321360398071976073836526215708314434456429726582253984648547583048846208158402566411966576978698373640333621518395177079986630584806495271725870011849263020943898205724529369824951036265782413845138468445820713473778214909227573319249836323816703336838573130465690158159394233891885948608987404652483091928792752574265768004822908922493113693525094811190490908556063870463992411930232416019740742134662914188010564594779292497298964825389824955964098341398637380804331749141364105336422361894742031895471434038067611782663739658435246651395838431641622449928248218381687589872755304658378525237597186695952516994282978282874997074305833660784228714987726757048970555098483034223291017752643984573281721270113435928057476879293195957629998701942352695931594769034628273672708750627635918142688355545202522326740767342462570663625658118380489446207691267697027124525243950462940897863391446392137287032018850075584317975525184063507494680448961254882969485148208876753191628376460141917287960508552864523679007658773009636768274043676814135619071436198944345566536759477049024012151533551818600806046543718185395743488140147901598049144487198324373084951218105356708806104523583100205900969205208925646454201083047252256543698890804739257364849072133080875477808365864476671566533359809484502158846802017890123084633369317616413220035579544439405121922495999307186784924877517160775601215388605966511681882518935954167893705917425248196666891880575604729755647342507255319591701351023781956214332143509668260707370354064157356156451259938466022171892104431663301782155930763552928380035666597685494537040072106665654803525247229674050253221532937851824371912104219368190752144758594532147138953479492482419877736692116248617471611240366909723865672784296466852723777508584393767419279572251954303567058252745643923612266366779481311041999994566146734495463017808211808611791121832008157958243046748667244863892097630742214645146113031005525181436147335579413016403365888238184099801870600451829798107736788414464625344430669226558393161247159995483429146623681428708279043556158447396944926458207662560956154415433590932563800767923234069499494631759022842057376257997945994873383088871458608929761821546137112655102979344187643176155629409574278778016746528902593611124225100849780056313273628081184780386761011007244690946633595436935216332506316805487657507324739818437095870074803442639872453002881762196566269043268314818287689491347557980253979577389671774120827739966305772640805119343750819523400907840151552353823632297845720946241044503495669304211249843389834549777656918589137412888494365299534402205253467283531894617798139744628164488234226462223577529558233125512047797045215602809943848051982163695786692414055002449349688407927095806918117722449676590387969038836627349672416273589482381492746146048862688306898541327188776701171824952868389968653176391350024902038570000643856769314765235064179342943720141830766915536133143360724810043930074370394302873557884451933677443954258489840038251335381266232677123458270089057726091837549196372485574991126861899764164478329018901065316487524241275890376164242446305881030634636300877792399324979445547071703430905290963671007448281728434857291352749685101735164163272374899994558167622699585719492820789405043892021845989567964601611904278180751961013847652129057127353572907762662534064963533377157569340596227309434652022299734742186820293463833868638225047455823997621228601487393355869086825960381686262258041228887326413389890177686317699714238896490244393643904689466043547831250020699692263525549771507996138956084492805869376545102506706775738890310364710314988792202534171610397136280724869983502592188596667308669170768710518615841376874630398944650271775573436806444158022909751501494932884373020899353937933038882311982825725078837913352985509861503090292119950445908958486439257761536424216862226396860627618093552970425544724870282782637716372718985278241272863261767576727350573508280861889570349059938684100668636687396400253027928375551086397392159586604548553853277483392709025705298707909078800968179418964704190138785894991528869000913445886654574920804696997429532526323177918890454208837245267887080913306711224477869858401557191555685789967792292614935951711327202590003316682012607410770405588487883082075488328414208351386851022143767296576373264134071161862073433957550086726380835184529013753527248944253997748591976841995869977855310873807746616821831448148074263928635332933206806132889587040126902017493460075039971925933885086356530005498888471337697545675717682341445409147441026461963988745453289573560082672856847752281299795242740425828465242180118624038445525472490050180046841074290021656150702851725979343958807735245657438077771092796601845639269049234248416364156055897347973505046576360924481443279580533716283285286159576922496117572890389008411455348938590741295931434166087425628038719900194613423384294954830414280372863173636316475943891948125884721130981185396514987261226145559787352640800032811656028153030327548502492472182918173047761322176792652834747902841164422848028664284039208510709252861472740741129868219724404015655438290242733282584024311593700394110910922738352006792109706803237382740220949008454040969185078392494274860712668934845319051516065794731003296658935391698383505891378352825352936647775970051182748851262175690779159213989636074463822020040017112677165960221284818979865336626661357274218674369678329139841223057491441675323325382240658632394456022584803713503400634487651510086014788718781623606320368301068196467796780165387872309975176528495402649826890886515178720293125580360699873438085605369693956819249290031649469384315736517454649711079292701773386531010191033271594223574048302372159271052536337033217318014682099628463508175587716968641797554793128918123443347193048119007801187690871870009489221440257043329944200166505624304480300283292900322418376868310374638791763673838464134153087615469108973053780904460119677252491207634817706237800014449218767920143742716535697181335429336663012966612957168221971689047826711773963566916160829841993963818107968698406217924820198163540852777990500317033085664340135704529399577002596476198064396061793396895434884754414010310539202875694294871279590392637582845678785013373959421657063142410830991991655563493187309313216089440135956227358461603477769099902561466817628455641552335354269155330154374512807040154939675169221924900308344645238014348284939095722016040221606223619668944607503410400862812967952881176765016425868009843276474315656578366013975533585960921162676806956072232777437480407700389472420015632552529653791732872607550274238565742573904819109380781482431781292186666957954245974962858653324842154927046294873636944819164012308101246665883238199233646675373832991873191861332332621974344247824526554278822052612597081484828904862341664922067383073973348792502531484697946858458918812782395801849571174830244128165876681703870661148901665556221459616725711106994460207596199334368309642175857474113802547821621596874699418854519135224576255518265803295197860327616971603805425193297065439728535829039538555208698229226726286946493741906005315932694791889774520457499239000177888206320471577036955780864888576951211404910760027898400008915262265160256177057850149129874016970041786256386679413692456925706070895856438515958968732884772156818020077613121476105799548006413606997918014062104726446735901233115946491207492938452431721030725016801566972321224260212045254671485139009165060581404538014189618450564254982797076997726876743240729161438146913377985524189803591440878669782198925482837059740893367567096978405221090808157386993572995183268158975902486463768474033321459441019572954006263393515091358478455938802560541216192381377237638362423174830515834512737244935427420502481382084655068879318913021259578886770679676653794797132517018323019297756673300539214286878169529828135433283077673158916558812722817266079455181321316833469597569681715146911246449867430626370095032004355744360098579432547181693277568469864175025342363561464697884595268412485615167224068839777910655789895496032713867226449544422971689948857831241883218148177561882030322019829864076965147299438342736582385724887974363266872151570488410153220614241326659370552918624508488646485505771966048911892350603281339654431388210376873492275312375345051426318627456985699927488405767087479215888797110529384013944174295199215111402089932720120104497660418416168383689694127863908883634906788554926000304004841097251399720918852648275346133249374556887796573077677406769880605401733613263487523086201152002064205365072181779021468283302617523231686286796152057044523354235061983765007908813881142538638116300990907008779686041589425782791496594590868891889761968971271241865325353881305684515428542071701973992403678800233811550590915246109251167058124509558460933610469516959203454449657203035435658382449988421662338435222994600455003069056981468376625681157905696613774913359054813980173863210176835021238156893215301837106671236235762996272796347093020072010174612709789330204305795748496711726516928165498001611460261408668230687315170628583798715027485062732878964607575550114803161216201147082715780777978517474179526745583766316007430865834044136660761929860611325287184498449257210755338968072642297877137396865760529133723317476010032632924426427380840524993977040695999939797893311920843627346306295658647717018749910562157248346788173911726454754924018271883145644557321234196316872366920130657841399961290974974525621015387169580806028376288906759674058142687394891719013039922028989694730446105933935142965284067865987093868722694900691482188379746104226421688512344009628417022143712996838635269687983071444267596168555887205636971168355626014786391960860880913404812161903295082249241266296986250815660346911692603526146695329679281755613500078373236165966143185261506642593196909931788363065980637795226025485395544590347114191608245766512063193896783516816387763885754023956790533164153335984127782051678761576764705303203329256796887313286964615123507019141647960694043465178998422995941241678150675109052644446676994138561555534133301245806118400462437251826268946907482443056137767673058769704082231600324615818557620204881563088386369021293303832022942771366467860266175045337337115465958594586887040878756598549318076584820046428597656672048392234672828547553319526903396729815767829789905266812624920970077054336626290227622533726389365939674012875143290095083278768465290803882745818466720478702883729781718471876729121536856293248911614728025954071337410765648955347644574739663834844882563193463321105155795397822623205592698751777328470617141322972181308151221182993990485741295899017190134918923513021285448678409770212078644500163827673075169103832165953788393325407838553843811313408333368178196807683335475511250323186510961831125843586543271542492319597942967550697154969005302824557431614271509391769521637117552966798263534363226392184500517940505419837478362751613995474499251782676126493818514637541837737284445752064690479448682219508470431130439838557119049886423349098553283703207032754446880100652749144038424546523735038325038316305590852559752430500558665591745481211100294476410307906570565356830439707360150176263855260514168864719278424459975030818310654333294319331545373862196690169159149118993675830183547622533080595286222078819718408560073991421847012353529202416810614825742510627485369433225111179805185753193603943640592234925363921476693600985848976594604097181169127395158334198577434511751562259708563324067665179489895678585840913991996894388147831732048435545999330866708438983794792728650693229489677031208718039605663447132859450469626513311964401136128238197479855058185128910076301689736173666170158386042915418217819767550464232360381921027611889905176465487600997122099780305942867827604641186439342173664501294452029957935338153312300377451835751260728100814822045737081996683782633332130201855270138048418015794908169191144719020736832244348443302037867649005873511424507607433297533316900461503417495385486679266636612524977900208093217452272928902861264382434941263193656158721090435833208654224782326695129804570964314643232703968209647132829789913123491550318625244134417840477539415372838584058442060928543756455181137778260360944320394413401918715832552985863999744778737794636140550239304615864005267590024953493767545919379693435329140129137835606375958635750287085756334942410712258770814468311060975592248414673029066614721434876902682799949032136472888467351081251201982450322908782150877093510208116682080845347488514466623749823249883930309934120333835775419548511010720624907981517562016641148341899054885117269593551771013934766495810055338560784033043207946970857586717860115556866810483046969977482370198863954259546932784203356580545690210535966518587071121214037368709514965780324708784699316611915215453296265263992088075227602741857440142526927214624491030446032454472619396989896505045292407371823165451501843155936853857004960988101265721011380871655829721261246005127507006924050353049423690837123671096065128412310884922200746584006264184862232179440947529962518387524723670923668416698849104807349882226130624255813111231163868448298565433834742824133270434215530976496303961985070391152612297361545814775810492530325325838737584354337137800318161450647640831497189159720566003621088050787959018358201659904003760316152308859072754723005655298076472900680362852204906010005600882572263480245527024721603757838647650598853541545959275034424296418389744043104681267240847824322658877539441855242447123131316860345052317376540440486235078779730319792134769710085437803402923475507921144894132317866933903140153289199518327343419828087878448351635351911452167601345312001470638148615687084255315256039429709725916428680105939842533192185194827639660523217410014397572072880936594354289241764701138645159929304002363783266195612336562315054015936566920336498144437970106999648928489783010709879980585312760111869945735542555741154370472235382624339836796006387691268598010223304696388661818857822033321485840108333424934821108143174182279079489794227921832376653003502469290990392963335235557849596631415020606101831651863032318054254489016446957171340243089233543759894706368630317496977317217893314548656857036797315444814604204543169576579466360778885934287163387994645432556090579930094840894580983348743705846766359838469084629098960443147751861112263243077770915588121659700472235771862326062384226440018058770620127700073719098290629857918753432765143358373938766937129811286549928847176132993291379720900131511042085328491865587966624738184844162503928514755641784547837609702924821266785696036597491023226557133879725156829078081245369033404367751139343307515930895861249712051507501816736310636219502385482755809733952297143907700082597267617385197002251471166580647123956500270285838520637525933082902963857217210205769190606271464175600501889664768885206701409636089769038096789863155197465326194352053557566946160175496440669471063619016878987154671572450179050684890619550317363505594748594523106954473976176014743365418836726717899158600797225083902725911902922064292466550549248052146316367485563273644666726763108576652065707303287131958344619843237337066287759075464133002393066746779731225114697099974568922227411861972501496338770043452118440749261873238038385729026264343980294972596003822135876141079946430684221596439722049575679725949851059595773180127303376273124553919299757394408862680832438258440852399139550936907622589879787253532755344360853299182286836518138009203180551480230659647751250588297586822467139275000538995148884646731133551314046131188724271034563936531342330180512564876073033901673950311580257772190070576074569627037406117353022307112224623154922556070464131577961293398677273522405865331451904386310720441435475781218605230379157976973454281086613817871324840911615775798270985612186570064273198713634276167310694541595699856256994675388164128149770831302365386456903694876524744343733901418792251685933094313324120709523405523584924709802999696047374025679138575145884718234909180176609266520400479497963111232429191707462931166466309677778750311102320198222106190654065096612938240888571674494490315279404277878011248785874362093934847709960776642113282252956846783554260168990380537807621731536601174158644132594824906657510326253339433455401760094379094592874045069034420510994415563822828197768792835181363088440635564268144136953819394281039618113941370938057218061509573045722634243023466253291587323980522544803589642281960174231968302697716643942596035117760323372795732124950150567388905352040761882455365052521903231230334584028495370682074011982136864334430820531379864029217116483768708030561965721308893387838285950887106433093252306775791896121420719459181191270402360086120433674979041044454099551206520081764836068853663576892001000869150527406848968396004817834648656386171218986657074506468411476323499479253617182525648113439262418839031217547320324427516550326466972704911403360343612037807430137191511181231347715922433930740555103422610449645813050206816674496673428667860746204032011306446773589244886000472545278283329434901194733310288583927762844043403664072212874688915261381741626163967883037366626952611630219985036272634588555874915091701194331292572864278505539583031763019454440713980265437103285126082397567008406495663345480161513222290838187261078874963853186127418230212069722882105486087054548121412608984169608624175502667777252054776481124467545620634577723726328557781658242230934595062324152068631994178812035674972089899680448056108584963468197522598474448877689953655889771154746842151421191013578348948332140568656601466520525046121770182768415723486534499924255270325514566853880619912960964867376231099448392920759644375291140276617739373512153675061903496965250375278770177908468178479954195279293167690318617675427672584285876352583972656751690700032781144824107751495135997424519086417695445445409025158461571525526876700856467468752900929454712771984493706703791948885722230783983081008581018981179540156563599478423703306339624709070405430168743596535612455540285881226356690467756181749258001051681764101691850688339988875008527423109408233176669865288648832251786021401080638784042464034686276186295523251381147623333410186802389070726858595430733328213307018458684165882360809408221366739286609537709519834461657625222890093187241462664247477126016411716829490979331209613441284829281615166395924196325425211819007252088750746928485303800181948877851124355427142871338571644203617988420459877884450465232881314260944011115869970062215540476690096757889122226406836240354619443530880878469495138328252151184350785145778490537485188474814051166584795883686733243402065877543689521993061703391206159622564118809832096666880881257285858307190377621581283645404284159426546813693672629830514373559180047739377918307294980996217819186568182058146534143546663647052246225347470428550551129228797754904111894497262084739298171628063946481860467615250997983550618653316382458087124625780998475229235879695322220975719763187242457865980229826331368758875119038308389144973458251629099397857133388020061209744931132584912423656242821714093325371296712572603290055424496745027318179807686688154472990857042303206385945850446233446947932222380215642222301687252448795423258783917775120511473040208888177919308918295379790097185146695349145849661148977461531626392174683521884025271864229561680350961881074273866906318087863962779416435104668322398259053575134955998862741778212309843216849571807254659761714856287923062572162243443132959272707938488171452454998443981103593796771816598245435126823475923865541164362728759127905614054835548526060405816961945686046230762818605861271303665042004932703236794409416896466420048534318384900774840091586999130289197887436433346974474929903495281874460510144062253072843448203539954347920079830566364301679156214562245236482800476808592859112513341387914509560941180697091188839468347515549453113753525140269993432821476308824079408554530602711364615828958880612871603739993228029823157413281446371105095725561152188607138608986451856897082093657109511965501279501969577195605506330276273106124951457533422256546232729712492621370011622100260295589853947882625687256288204612463848310242348802585414296266788488050964753998675158867266294532720417393739834821413333084111131646740753137389780038996518545979998947313191519470691954712702982524969235818002665905464196829049812287370178233447380132863144486979769667830584941146860455232941601671994640716478832916248244965256260543969000775307936470419229017357331464549732326812037032953777396891838468233606855621898956882970466390689876140055617215420176428658969755852710209285866390711847938533688574718645531591151401468364273635307865421785123304338313283099356146505036348637805838794782082044819989688318166448800114268162803873256526664508870581833111679190973638955833963021467650316254926771732521699037129559834673962755513972802338554043987899752267149636136563509598047999740747463128105938782802176898933648071109792073371853278108781245084689888018235349499517965778471773369766384368112549190697655931940078896184590979278738723707912954374395909588357379253790077974581330244285357513880022153930864493996445732327022718752576817580989623435111519456329001906402401845690063107846813321678507677175924754168331961586358537237959105759614247095711070597136843187815194892276978198622058623681501522808686503175461019797635399444423979693074212134038841519256557810181227062104764631212353683942390920981428889803873742614780214788536748535881924048149813675206709745063503105465770869380001071650050326192858421071082105746932739863047323637340068815449527182090709089458081595151377047662022759570972271320967431207376310383810592381790836533241851753278577870885825247293969498842314738187322217028263310347035797757364224978718607743511780651064361224348182992183914136886195087244969788395892982431309605437772893813526307506038691285189234858751154349096113858931752487103206170891408775405566980274384355844882785170455317501999110213988366271371390372815958413308959131195733807301078509844305091467841148814448017905669356182953192605493667833603934716443088759188700983132096258790268231251413450801453734707554039195224131167952461934718157285898297784514684676597809652892214665817177208578287891578290698755267653220420955557928003158215749195699104237817474987534047467043297061020287859037667208685788727881937710090568168702598406674343986968486263481404929565974775132708519996368135318952661418776167859182257887772499115676637670756530154618043352111094250657799082941431239817941951883045048380207706227668490707064295717328239538428440999515300740061079711680522769162296356452591152756289844856084217612855450970965947066462561039021487779767380713451822008332128336570186383816395793978798077976332957108979199751678200843496600551523991112474985791172616675658439251379002700210263400231808070340792248166660418699796448748107741291666112954707211285913652098797068096989095483689555916283637986516539361911511604122667585215383868968685879394368910549176694917101745873004853429185871656155434875228964361654313657742785206520867016983239209808033271538244035879688882947661265980171535075516381408525904983505986590289199443800359204438093990165685263051775343772981028714933174532179129348604928017343623145060381269231293386062276157719617760774460613592224155803011844472644947819899719709102626350728601533757973535471317723815517272198629517878744745996455547151019944241871509632272613487016802331199171988011995787926267877323971893513200268223928008874878238764565612679312536184724169996818647783025624407872144764155869835964918352533998311379739502625296413356853334110498610607527482611790280859049509285867901207982921937121381770667194871117872796920667832536705120635097555058039461817242988026846737212111046187099637168160077039260741074856023630360642262755397474265216171202107076727971535329257068536995152142736368785202636637716054295097167327337733281092552133899779964876908086002884808356340514780256127714311409797033364742900191755550810652195927332693030309689546270141358972747563352316295049826441316102980459498554882834500182716554487111737266775336217436443090772869443534620854600061537916642829781778688272508525357990428752104590253117640219956254865011198708502196522057413863046444192988588812041969894920673763908087260047077597382980034461485095083854746330886971752520612835819392224149867208162251710201623274262956312456343549133146336046920495180173250818655921067896957381656016853247961062482162627694016231890935822029610618034263144632550353314381408709110238556899549150015071373039483223208196854011796037416207770047154598446002705233396188588542340630715970287798889826409912936139379916300522303920895333152405357347274004159950580690234463032126632212352379764348476088887285946172095204150774853695138507760965720935954350546951360351863618365121292559195648727933737514792768283472249466503687330669906414052945275670141537565561493438968401086479507798518107833532546589500854797467204449440962651325266543255544506560604477449497353961225025039757739660456750544903421517884350102453038665744043328422944563096636881425164607213733984354746008919560092843373769418118118369472234145306568482525638303430537491652552824289663829364759435960984170940269326130830991928503791077556917716808809130154071273317190380346308489349612766213733766175022790868028821582413910468049509840208226198514670850121461592592561480407773407249331206495098275542430046440365092868772078701111510190966047757236099790611588887015348258199836024862026627646712514565045884467057382242713544661657475590434966064313660985869285775690935677416010136370448206353460254309718206862637915760565997917232039660995972142570908089880080392219501283971506034229271947299538032541841710459542067293593708341436196918220937892082463173315784861986702017229025414247992486044588941131900159646101952955656147464503774846490656945377305995259386392800875657673136638246247712411279070039140853955568012348270588222202315565949239868977964411769852655914289746207587213915469641547727568304050385351824657065440021770554545859726288457366832585863473478475496145882214090872624940397606420828479705464101574017784459289254056739583710412072281449681116003803219912109416444795370970078755977654873696844492222031609494104786150278402336300082179010619270750272778500186238018854628182967525839891993345078392517474266393112786885002722423464509308591995935877510023351241608258536053044875383318241734884830016158961508975078687515247980540107136020510300886327630676088460310128593912279292508838051009894368728313312833408467154226316865458802643680124845314649652270246024607398227334351417721918729385835691886194629426100847498888900746063492800700536792250388532349760102471605472431091467050753135544738270072545679178388027898888859779127644643953983687061271893572938470607289558690226788749679495871848222602237910419312795976146284448222287662297688975745826560875958969766622428760323422444498391679592976312615555294054600823514198804335888068800709542374665203462167732467176182424661468049387011696161949385826661203508429762464860488668092601705135461615109171188255547806893029084280415507396948933718362083776233997493473206224435781891597021412916438548702834599533047487526618340346810520600295746951739709694004236738799334880659928538983563873416932364568993821886384499450833847822672189985164981833628149685432699341734218669386775871718071743187320722918607244017992732977255557413035988339961828828539793080194909985355320778994390280423400845154394944852694719632312957030314201020546427571027861990445578493192831625732846943677852699706862069324612726147495792594046834326048576945543625238725551455898890612863291628770197427099810882171328747132297464902929778544926819703103801821594297664205771610390307635492541017526677195792751540666795998466271324597295937333736184870650936870048193150086458085989158058332883639595214980971093350283795460252079229532372465755186326116482981325549378142874094718508629201809960407793754104229425658241035425119640946799866836394584423526639447008832627760049795255025639861815566598702650187338338744195414625918369264096259530871635119084164819501293465512724161464879221287932686685223012809213864857168559363397622049217216161269819737165899051570153906277154980132798116225777941563320324222887969964116629083612177075844715609955518160978547602440840092402731126656693087929964377755674002284903663692394657540560747970152396149271162581550413787848120538350351459260606404083943711451101063145337170656761979437164604481098617703479823448264711923706661826885760921696046974240019362443943838446332186646380220566467702517487826675130168253109191716173788789768637687787709725078576675861603746262404920208133306548069455512171678789630657800367991231353429593503897831380385169592347189288447372015561184113008232229564965766104753108309081116958017508956130771607127788261323496573063748509637721888888339306019448127389302062025526787833010663954482648802547490947285034982286609675395516497968950640986303992819533743410000913808619304148672430652554550900053016351064610523815308163133583264191549505173737972374237296081092147154215182558758395907856589043833015945975551917699940390458675589484729148998760000655961622928407222489105508833205462154408696768837677337810675089595905057840827465774393104596873233839684538094568796031144088756776767983318702082589351220734416176009916351451626353991536840078716935207593188479939926999157105047934715537560275954938232648684326975048236828114872480587128756139050201168957071464379775239256345360076315470509516071584301335847951532127304434673502542668637368999620696274927419389558826265456996906317710163082470322914064933647570602236570283473185607077947777818043969117261122148564901531755995863473275201585718219303092486871904552090232166608680007307203718657115586092458363393868056275745643362295781655512996351870487504181469617489247443400702078008917028611977459157486418213302236560178381108269520108579553914915749659604469810326815535733962053987568609663959555863379287925803929784742897680653348212163830022267772028899551562071986675376426691508335498251421677762610636999833305443665873183284337785503390336794571482238969680148729476577862835289883465643669029162244890230378851172639137490632793836346507733228791286007321827200484625799771873108294692256215386045548260789457177552205953822074446260853160793247596989079122276317450510774371370160432830246050194470892040506203043979832919824406175164961092516707713979888379739140551664839750705966945998367016254277970815215999608623333334774786732098832899366521399902846085416480187561434819364521520242264351995052373290583182816687915676365515847819165661309527659999617284083310942324306284272054545472660549452500230323713005378108767928029965217932062323864195841954459342625294024900975131231073896455355998459791014117929962582863011906504548466519272064780487060956461233616116981057806304205523331453279393599189433218489043140842235733831571070801920145739544479565986604154039765507063585190623214261049465276888668392550577227515972095780922012382608222928953403689239710395498659710369208326149419792498226758975904714348940826130787562848372934961931854176055207506769612394824217101260190768052903639046527699384094762864053698094903340539535090020873382145728764705260381403474601852174730792740868971345746149105554604605885549545239683957423511941222448551240950961465768953349216286562934954911151496862274301535970303048458061415667320061199978641751758889495085813511292810928651110167700363989278511930419085679612662474457667808947978308981843675242789471097168844393440201553724355048118574713883547837118848866978147330083590973177291629093463995530074546315811358478321160283223269896651346638258545381492615817940452493987915900436807869431146799563719729729091713953317771401681449301709070586883301007397292056572553036911805994409591698137359386834633676954709557722385093166665184878104960238231392733657187003166328025215660213758981137620767421876630609622351437821586578703913882617529215530433986814584744149176487829974501516473090332398315336630643031210927302897872765176350626550622916535590168581337968770695450075929629003856071037216660122547946702183293956863400636503968781782285013488693866559518911509342298983589113722878331520409421494749227608297897382428914200266825369530002454349936347378855499848329386669060665339979091959103715626756748054351457275422042140065371423841504445270255764287080843360324873110298880048286945403728125613750293352133253420939329492516520100925151040773561180991249689203255946391282047195139347711513211138540918742749444057765887652132745930188695353073159052570028462582186276329237583289058192195278507604379449230394760423739823849316390997476902038139693640986728520215844192930255053371697773135600731422880933976540639553082730645610765922131827531451236722735525210900765460559922990603612740628529936056912516955886942962755220506598046269841636039711468900720760964641631768041780325170603278406913840225929483359972280049573895970925420132448109572465158744622266246687105418582002858395696141630154886082568317259253854092689296815947734297146981940282408506862566497716342256554574322398275829047413497126664793723358734741554114458290470569416573410254264466281544930419901179269144380042980983648381069892344751769344133960200751824946975008672074974645632008936209075786881532059239063373893889654764378985325207564273695214446887768642680593952906554231296551535134138826281300493879465218124125034270408644031952308547457564363611080058564247877091377498664601083346598831722596246755344417765386293697213560211468138805786521176992277560323020107235380914698304367349086971968288804047266372233107523640073466298851275856358970284581359064693639317403436536672318835780730751478123671939609908439470759275531524187677097044643255435526183092675951788582897047175801773447138834671545551641797327153855029926781859991470418368708268532969303224576506605653304821870027924774064019550957852073782384636126484110883369535599572074352762149364381012184663190413160497277852741879581206528705739946837478772387210573930260819824028067198934036124807359286380415304894237635526893140801828665566836181879938969972312953213067745398745750376869878448549339825417626574531581036943252592178203635977116833100274665771502300886807440269650517608042656515456369858455138443445099065378360927321177653472030952720342239392376584255500488753771771950669707134791103429145888508651334697692035331431630400363373379866565078458874196557463172155301824227943709716763517108575508885727743755355834285734867751311176498067931333699362193571641463495910301049672658179933630172976123301130582741598289080077901559924022982960993444056664068681805788466929964832417157512840482166525650788960632401577193341514222546186414428935542119519900972989961226707105151864723621549943491790489377363796681429868755603824444130647257379886449548086042006276963610784973173017145622113765671050679280843930479411036819413741131574328513866622057592634535691890825935092885653145246044194113442573055360481817411815029821576658956100726589482810161146242208057082372138688627584525852980666608551500057743864832781790011107620441215647533356588622232361403964822801469907435330851239922991648664153198971911086140308997395173577042757948716545660184856954155667659145248688538235339402183685046499285498094374433879459155513409775941816697505698994367692656630598262164064001012600954966560111103829860580210411017405932387732768838695334526747152068003048613701958218787786128901509980425290071279939456272784129840714618395400481986658490162525429784100664900778453457311013643489114321144809942803170195852824546006738886903675158318004357691301212854611478080219833856875172917403621537824905990759024821272662838031120592263257752197036318337543770613173264986892101567798883484363655027240530292101228159275420650525706750372619713008971121955358914150887158128477673384314808048172123658100153548169483019827790304777732746839392351302603867968901669071825167640880015575275985717205724025126952732131636345845851290985742861117426134646914985285210629094759171403755923421684773257121098075329622012661271592382924103122916027870840286931158174262374890608196328774747597416752734320033332603289483911323935994526800442310317076033381639080983553088655427145024743860100977871345053010904793943546524139521107326588948317031095517951203353102884883973597596690917754328849521112698639789610813677851613702890313669678176860008555261158136936032471912468498241819111281398355182573345698361969702684034977175571608675998076732361542601735232223838101369051771907540610930009714595189399271592308456354471625496987108385141707749347916156116631265201366814468039763509225670651023956128372325930804822855765894149111267751374427579732617601714508191458381906819511600940225986067014085215237144400244011050884747712652638703102910365672407408472885520003034781537059404390706467401752222487041004245879361151015344824889138638515464962580135717655949437365549903919259872631093210366982453129557674656347177660880137714443802658242393738400840142901220637072596771345556335541643095679317022921558436935406646321637472882735648058884014582982620651207333058543188449121641066143199008125316604673035112937460549817208491406195990095920094232543469707566077402941570899697084555159969553364677718698951096586464559816847144492462364953652770379310331680142255996678036347323995332967976528761641243806432080114594304217946577728210025025847104760291066685571182951181334719708038391410632531945000068740069407345544407643984589236435832898931730553708464813367691865932842133516110744092609595652218400838959258899695044914625249899110744633732888385641974254787736158669852419154009272070803553968278294395314697894793828086713583217860546211212164163603378762737290147138531110163240611441904324431277849473615633640148490607834860478047518432892321590414436102588665422470718589405525371127963714570446648126985173547878344078145693274583404539370578107561531070987051831870962241585608880499257280320866249717280884864135103962232376619110897520865822355169796712358077963291933547793690608728777679738195193690413985206451808537321470511463618894044933247009259425449613210096074184203644340102935679623375601639626623412007304550755184759853292165174943356417510915111504187482298374995135115385731185916133112881614500224178128548195271168177242745071813096322111864892422940662597071379036191901023872132763958953178307199411545377987653308696684713270926919907468583169332785195307630059684759333094378867276627508407166347578825670811387856724305424270640368946835287273506439289860500111309079650195362621236667835718142302866088195380575218304638026996176380058025701967550695870653021932151694637774773130541591499249964314482399572707522932782322525574996324044518887743185950892264369900092533866855954075864798827057482204201877706436361338955290076173879414603946945896548352000681257424113703363336747427953749843981420200867925363589874207788146169717681640262504523372826358028333077319678304766392730295005990406631477531366760610259227681742894498737631485888404185328264084994756054952691063461028492327405946011260152655865488101030207046436375040739896002580049792229804425888790747250088505838102624472141820317352455676208101733100267964694301656201005570491811717874844389001127444311901997542987717440285206258573871141000846303274781635000384426673218072516554137988967911389585063204879220414302207731302202200351960547082409837255249357624175752082677604160648059516726630412286862964707834298035185157892650650828592537595980172564860459670615364853385305215958206238696276745437507461578473106518139934221595158257003798444513411534107893501771571012814378865838980968216267793973260463245964652045795034349137511088555789004791800456271457906540990976477813059272881930820366760969878645867133206260698138897982055946400414157978698380849536793426286066855540907615253191345982360054196745033071976832238466544611936561729630978728637289313685574357218083201452967392347329470220622275497805543460591862803367651711640399012064619084465645547407218458830341364013404967754638656214140115335109526936632607784757557831101263480330034823297541732773467019705214392627566196754138544400220753156173171713951061951477270616090554748004638908277556487379466245136819470433592496421476070595221998119013976031515383792633647430440920060337672077525528665225904548773062458010956727243170757279411853096331526786005700470079447000264253144138252064574498971137074503685850739001256236095413503641829620634398807890973832608448765856065504439362731651059261259327267073458360220314148304622414100206544882941784028071793358354847487608835647613637115642043546998766076152950756372365344381602178915255477895983268485726254404039452801597952884009812733341880950554277999846620155881862187107812785233533890362952811794215497370232470434157150242435121062847644532396327034733316959119366483683928909274319806553956452425592536340349146866750866034172975994532298246250954416467895049992170435455102333273754053610589958216512860184218617533297867758901952570047000470352349445844351476552704759754226954793110985360903865950650174490173620934512638952719296213209653604291383151736885751195014111944696753916141396635275016952379946296417756856886033607430637506409426366316817250052113774570799291777293755233414814657380180946560136120764995243457262542420158010708951450516671927649904066433686580757885173747919993427905601768254118642964382224216048292235027734199839234594872150921050766728794759053924985525249438321249785970645775809982247597426439974836099383924237388933997054998186115133708890393184377712394122611701151350127118671943002799068264786606598069418879277426713523741566566020820530648230621287647427447125006509585744066156602893840921789010626088336715855413159563362252153224399082262685594200341036523025307700334814912678360585582859249181289341436441103627235945557669792505497757638059544149280053684498782353785908004330164632724507916745124616189864781783767063304330425300060510378984635972541530451513759664620259687685669494074255592487506425781133241641081082787376742843377167986078637525191121738916878531018153012968021381111288261982134588362784764667371285684065658114239367667661150476405930114910416740778000203467119016876467305964351397988280148796118203689818915505317907925750621049485217910016236968396354742552578222343135420196661096318496687651253867094609861988886056427297683350448091797883020270211793179269418541106322075176271200418672417656500433088111199689634985494814690550002067603892541258238256569309284139173818485683746906739438443890730782223794078903403607673617526884127315975188015784936439553759108064761039538128365846710711133159571869368263874025406351034176672123419165008041719679598077161609889386425804014831764459592128843121526959076857826370752024600450761044851587374901814061218897287789316632057064580071364966534699337205220614992278497337244560952154992449789200671778863488146656147660265962937193736332717126844027922345491798886438101639410736006928758893313901233387493631441797920460047489102223000720219531169796114871710950456242758195492144485124372955709049738091557157408555483812444280127859687242067085561667726270746636583880624051328483490157045992089108090771300181342335131941917841704669049967380170254097411813684501672518081489301466947206501331604230174960195661545469252654245228439849564372219492805128413531198591370234649055917739072957344357050291124623938074185684265374635682842024243419846835771581575648084955441252440518071956786836779382883931081594287419516512341350170075271602863979658143432935359869237321284735610018631540068219233879523372893455864876860016555914979853034760491213270897011132526040650066521800947102042318228657290612841095113467440630649290732532711289269503290911064944849728859175388650765867268730724492196011958154943697629607218774915621445768179804649856376372973651756824789385937402363783290704898168666106484604711469302237641919613643507777094000267762530625981241648181543992280472332005813995869013973924232687866554504602648756423848141218760158291102236636137292127693317806737782249215822109937007534357162925286382033501564221576793601213754110735563885338132740311070984697160940063557692235221390644069705941500693898873625223767174502322493106369733822058483142073751348445420809563513498354616054837769706420436654058795138395862261904381623721258985440366679907033299032792942547636178424441098992438436033759977161212363731172498398253254059483786929040842540989997366810876765131612315668975641568847291710175498803594995604487923254799399812575147994272468554682422992087464415291539404120232042113722945270936192448722720028574469556638986478133792123159461894324793206188225765680617129671178832232517570737061291939543841614502629633626139943168054354565693706206431760137026393816035783819565352133033956793363902514317568646201903760039820291127539379176411894737168097814879684210927555189760782643458317464754000801450760980325185296166813923253015660491185397442398907229033981953831540042523836617267807575375139073386696739344752646485021887851013185249956327213193267430186480040468067203024499148016292901514682566179043413190845558115826524844455576646449304162123112566574993152279607179553061034401751797422566861151012413701570489493314191143992281322257221424648299716070594409769356473247269229149338062433837106154453978202146144798582922277466276779647429822980023642092859395801753902085493908231043688910625143084094484477119623132917252224857729374454335944842566800878922153459384091950403590292727176986761538715070763947015142427920537645320983776502648874673180972067701415019956704917426955095001022137652168128518781129853628115582956202128381873006616414782105457457958874191867401418896695697274652049512159799060136770769137129274884223357650040675034731432852713318560996560502906795549947141921690051116787403998859488746417320035954855459612517483623745143685693276336413425218272854218991837940864161937369155544963592402280254169486392244173469841254016572566067290895537441832585922185954243300259834205918675353701812643084675928809946813388749842831432225564426936669493234855449081888526170292832924504969382858014037670730553317196362751483058864470282512092833249119483232562675328146502038573179320384378363744993601044138637731482749729210855088960788803965531445088869336803904828978835859355277416369341840110586231618696940397673825852575195831109433214074458088825951179989681111080755153421913689396498768105183321381210296657373733104379499289131349676646469464530866332449029038877287777739622759588868280685442367459734724065947023893885647872720240963680498938926186522530503082876541249488926188401940546377923393105319416635367115323264532884232665089956647123688673874847523433393464562834322865388604088934209975765223500419118005109945437813513915709743449557684987159558705309258135084201713580749984419306082036122664225005178656473002429623917534796815887675805436482761902864101406772381142414700105982190359963374229898080829009042080761085392966360140232484933543453989348430536786635118766846715646203707027561816770537174480384167162697769030647908783351083227764069350532733745565744960744794675321223178683561280336704854996776870526792925355673343352292247678540929367093017156155886620675739131845560037727785496638614595449315276301039704709975501100750234056767269997034009678428248620087130100035814697521150223859931505225593911551451554397065258494179507685009114741863311816278481107007524391158166645924750150125742495587230533051387369974892330201174204953630399269349557066418047317134115294070955473311599554276404874822936018535448464889914536653851315150517362919698855726665480231097103244490426468620527904576019408622202670949865642455735724817524884148768369328016428988788506468514588246335755002706316154661657559809777299204799952475664467036539059547666709656754429755470624712213031623962353594840314686663188040761035302190284365483634187690929301621507902016479148687615861265881966963072142077227558019755288322615295380214141371264420878244365636329641443896032632518267800965064040665955975893490678284441157588053932377798958125310385076372490757342827537928704796681131659019632561668743369007751675713269737834548007453867794013974121425716930396716057750777869106123811081726394064763569400892620964091970396235790910727356400733428939950074959388663336519340788871353195793093098081824336478619197102518825188638696459181816141099713610437731547588168002234680469287709387328568512027187367497728064475361811618538766746898231338746484280305804118032328593223119828931733177619925843421197078171676355157879845151438283568931742474902809232946739536809563554409122341246683625805746590616669670352125513521456324781749823971403742597528226796551186748625678000379152317742655313101150205786757896888205433268145068735181549038640882694040310708892339767516344029650504070495879462840720360889982220633701503237477562239074742480936768320574076085776103760589735085541428557473259276038300008846911520530470445145836921999732057433665057308233435880535851878475168099127565813481330241769361924356766421924101333917316730198395604525985728682009077177895697352045723582101745044897464875313654899116854713641994448964337165145579623042476137158822605094526182325058154594239431688962362423340455383384736543377887725685708723521562338117021626214750038358383475576198706841139064628700729403755708303726190266643091593507825980765414554609544107794662066602587954038426377262104770327706081322864362255787320544288161351507762318911922477259980937645071024757169377808589164058093313003787423358380500460557091541318305113317737897805795913016170797997925455644594161405761519707393749532651819639843537169875717359569922605345908001661562147236311737612640192918642879536503071738318992716535352844311323431433081943188839659791666363919614535623264139149150198222970665172036934029184075665731014653022687585288061594009171962073304041822339986192153184186551286551753284951009408877733725283883856628885362820508507989600656785407282900154791628326736714257246852389159309265053793673032035448523528036269944672287991876532939719355632486976218814422237810420951590763540590643351118842458688069748899513969280015179679207334510073610732704486078474316311220378091162862633942019045778029009253878161159990961340631938766808197257455539500537427233485594985305828862593599112828723321933829252959139948464181130548925772164924979669199250146980427139593691538547109931971793816623072823558151744831001995486546823055786894123677348415797832130238930524510125862353174366008239978496351514216438591190877944607294128172171722144146293024116245234578018581452647007419326721699968537796581893170216471410032650364892787517229564951621395737355919584697746830777337346562969078018304653810144987922732186475817661033488908045575991495628652068035993814107754802122833589466140177596558846302158850338125773627657840308685653279143338491105381175097823735762516278553741246446122621424275541482675666873538380354994308305470737597299263022678317929034130629732847428368400578038343836971788587665786468932103820414741497229888736291588504037673546006875332089328633150222887221798142538046644790909982542824000872601107088635868373260183432843894428885387674092911150774863933488970042056700308760102856871252824597699622280671755294564356130021575072906131345798469167957940191911406172168941839574463274406718698262158136029687197181262831243219014018257996937477470264305447169028901455386833951912052052361949384651294154922161521023764208449889176380502875212592908877421061381646211872522134821018240546822678279042648977137515065913427202267502908396055925997208443605807104590026194856490089711547006593035449757463184217326700234545177091361420122551883006887104477438240646933723032036202429389353133398784434666898761477030563122076553211536827776620227427624153156297329942878698272378800167136823848006615716326599979415671892828334085747959439472107765351259147527548878850912799327006192013417609819616468367333177232705871945686740836083521272505584472026202544989145488003494802787070283906928204644886163312439509180396130712481756610140586809042752594472942141979854727345566459297537295006840230596730920652397212083582791176069615273226023779458769187658032513389247854037206527451344921535506846284451146895075160373441750717147171887225098293408227767293926472524077223647351949417728719828753458348109385870601576505412380187022483911689832311338464893078754403709321517824292274989743706181383002082741235743615624623816075026838738118999190081662865070811066917367321102616899217853601962149068005389586867829039098007694935336693242688353218372490852263566071957861316488415385720550459316628801869739918313048659409107162853236479854921679248381974188609020150402145743395894818801475272960325409244561884551696605959911871220236634585780739569378058464895760520103689516045949343473970959631059582098627835485725060982604420790383264846084133394304624492089519936635549487877645629065177280663478687254098603533573617767780194245569863593483279097140195156758744004618421893223971098939698146385876693161230438987110286162605123856191323076583621787228646637048990908065379217654581336604100734369236427511273085553269941960423401540009233937543924377630834571072053335612668300927306792371190673251124537602012635376076620438970190299614218377912237822602041248047131945624098321101093081993527797749846931374894181410702942595542090606387409820396218249268626985323470950019147461154859300761338821406207802678713809219169672670487143665682281296353504631795756982880209816751505248417260647511335308875483893578407231099906687170487882872391252826663412416992077123430952649198120930792280569688052629764091512659582864160508803185471026889175914820312992844386487333663542797451728597882633771996565410081854673476972268600918701686195731078594950753772240363196403990416697533589896565251360044860565467204659941544742651074073542530184429274121019947347789979741150646239937515947417692979747341901965438063818235602821824681032601322054360713668937066238449933364053005838891111476904821478373454925854187807202106673543321390059241270102834003098599635016011178610293733323797600780484282840644728538384483179122720153473933092906862150158294936805878090237875265640683993358764341270808360477961648152201428857630428767993384491771238391732357620271912299804648284203991605389824727707094565798787509975289471385700777366307657327513928380341343515505263968200343035654033852678796221542854888501850658334322890988766542114110020278590921809138539451706681955768556383757466825288901587476784854428810636192589141894738224301491225110897241017704786694348118849108098892057989867885836369344610376573748443644773745543203534975434358093766484212917719254610433172337173095196968190298290880021656864768121403186879073766285565847913602511687520107068333772778972555316277365998896979143596318341628977566450101197275403944971422639121905459199234318373729195298076480946188252813626101801099689797552189631835999027868490496504661520724124783284668659183233886575100002835227071413055562857485282810332140994581236158883667105964632508242960364683402315034097902095099482903671032990174275617670252342269064597680493550041851677064476779260078045323675318960733395381190304355645754398544944859402479560167699371664405427620692932899586818364697965673152203360517360582333135096713040342184034452876718821469427779846600976826079524144000758765696643715935224414485591864771165001452334176253392354043190792018719673823726871965695061741824253952425051011427078577348536642971578143172753355874049846961767901111500951702364944310474987548433063961636157710855117386379678331342645650950443893833851027739154544010794857517175693006324658513434516643621777394508486618780090725439700232389950310000511619930303582658168231003620889405315973483008918020333834652236339239839208228717530125866605747928069444960174296376347086921589311840220848930260276797033168698138163462902964784016007998506757392248478077772766526723959481130295698519254518181718865747688413000121189988564032551485129382728732604681037865406173178408641510749975170181925485750882712671451683821577096947039410413515390465427332955910511427618689546825171681853997524442277599855711525719418245375648979212162404444553911369766394052795023897666548599802029455340798415344987525307314440476990256176281301701613481048850825019184380868975164045773878889396439921762511089444178352043494016670880674985711458109798932910588625935997819750943725400048525651735698418963959536268895205133340154097429852211817670614343939532363978803408952914479709299653380556522012084953492200793746776068466789777950810836630282408684029323390080685609392005888675733459588689761869339746138605867202746783042259950149873553830019905761356680182639172327975854297410557812466266616813078866264602018540621124901674764035837152512428272251380036471156497822530621735634890642456736470406879443147943265048794254875981843149011304433117691112786385593967948870998935790090803126195049776709596971671239128162157670156775025696496642886600911456811839313930958165162521986147135873518542778357027954248039262424781609808235380022288602084065106056553597743690603699736188580502334523444979852744768519795299252685254087780967334417804945025307893499855089204606824003120993103403700492694022792415393522319818741779753656048243249877439560740044096935737005861747193994963172322887692925855595835544283242828121099897142073099374714964400385942682779706861784370824174819371205710492938255523014028261782326197131059855536791524394683532889281298975454585139346070688655823385418885292796434601073050171206866989094703067616154932329806011772038768052583746597881559186151340591156272243231844061569973736639531247452746833230634794565259258626133712747495416103659761099330847213928222816965664353754726084020125646092499960003757875948400520042781936405945624118997756148922303462660967619543412397471896458407994801570898604710495281321056924223491566736994000770185613084467195292079304589875736078527598478715933055365309973031648609357317864246304950603081162067930911283626168786319027805366852550459676820265398296676220817288128413334467113192385138082246350104388843009120878238849949861622016405877025668941545428840019579989573168556164271438705936950455563045891932965234502926239653534004255102993767254785031335429764025197833985180779792520719048011020235687583921282348156326208654953541904411028357228787856193824042187771788282476710058066685654956991114053007280576902416765544373793346266313332383414089549813401032472938008163301852552302023219557520292343892254873015577157822249958810126692270795752186214708343640359290490252276634969000806384984830453593836042596768184868822582012370039649626504403301520763614477881773887754199170227994883530754073118840851127653609058185641239934121254881064517931581974778127042429232293658121842462071728355360025608142762298356280631729899428025476232537109609247369109859512195284518828227133394293084721244321759549625386320050296076368280408430859977467897271236063296068291545414536869229546791114202039701100575308607501077157283254586634526630008044095609777677883360695098376504854008615820953334863999442777439020795143099915015667779793496441210065911175864609793936704397651341282270398748056287793805290920336489596015203818998836502434898671289960174269042632120447502688236897979694214432343049226339323436862309474458834454137977587777002822852996958506911743810890242244515591250583538445027803879150370090104133882609269975416635864812213166069419444913740914223607399012927664795468301389592254072736624551767560862025883289248198077783952793152127322733795625607950245978950317916096579680574769057612505451240509840858639299839337453138191247844405173278416207543641385489901505245058256452196977945653097405008724860066695041920439122896351383531392727314663760785382397145057895462883417708292717934393606390581235458955638069980284143875986825702600701711646055528010276155803210847919434767335089190972787705304506701379453137666240172972407627663932020572663863332575278213881074400572268566926709240712116071163078708113083765337503359674517552928235688813526998389832852874003860188564276959270957190755053599511662724343435576779806087971502079012314796589485747874242546811280438110716186487949546383436376563513871761614264734990440048337048453362696149292031718952716925728246862210956976614595359053045479882749196747394251271675525523704836239373733764002973992698947212978821950097054414386853053929343927453895780706827486352391623046799422395780413811016247560032739201965174561187717679651985914673066086081443228319668196507626256432923087314468406426138108842031512042704980985834853102464814443179400196570491270230520071392982829760185072735611731047855899287828305733676328043363331293603859342762124043709440049179874628901131826390889764432114391868663222413100453026301481864111150349686078917162893751943225943372145690585831147495545085435059529498667921307350540439080012956489945746580930382055631855186850383918061067659342435606298585577328764923821989267869006172941430253977178302877063084637435205579811501591653530676628219741444193396417560330525293789613086451609739682330444776259416551194326580462180054671129357520307767886297016219593898945552159172705627838234471893243309410496489248538745669182527179386214254875916178432456930978524656664485966496664237521563233019910440774940538915613662668994497098573253985323318631945669310318549764961426535254489784303693306965506323442046306699481210466863150115461486887703437038357818765005475301020941884325331416799848038995929885109399997692532040087885822886470531579167986010124454871553306777076035629661205603504081729463818655445153285808157543428902408742406501854323570376502174762402253738532035503186011639471834530459955050341879923820489004827928368820562007246913174379346067498807620062383463251243714064562315369051940966694951933159841087486634565599288634013238378535776128127600422215287898079159414617819082625721034287205398401099512390360249081384112851366210149871618626575071421339892500927119734473241919317798963053944000093927997319743841756548565777101611251336250095165219740813985626854653000879560327824941371137152759459153124956692153825091515885537118543955781779251061958794216957560962156514218075275991092084476531390676092488918663092917334750498808963356700731090086936961593185968145940408802946457081943120229493087737496396217869826240379072995445320500489740886383344629411304508153293455395731489879489680440562413938983037416930258992894382783704837142443602971039261198715223543293860152960327957538682941350516694285036032029274276714853746846531073522527589145064250968392997204224522236309586462834529240001538439954255103854843861666881339657543798503071340458171614341341081352047465953580022408546503866855492775698737443547076536240521599555820817207509971218434728219159810233566394123097541547155984435377976916054188047874226241280560860473018102048494043363678231289217491902831369398595039691398198119763728197276038762937414020348569594923273025364066095730605586200596126804913643357637995396480393500416742822031793001274698448247757266535262610730340284304151099929737553235387618127572997773433265114693019152818094077565277883892622203689300834543353167182004788060919407161478087889740631407648641354712890653619913951973921559930322264410807496151190648600305310492627209982955560859163865850147650957474711675135193168107165025092594835722279346234720776694982603722347540134592640676365885972535949533389995578732069758561708798481422714854574914132625330116599665367491145349440797961941411437600284195313202569932871424740781901559996095991981741645861826100131586699929529354807926238588798814234256373543105763999455297273177784363832870254560232467903380049101684886258189223228470487615120119905643673044931227362912772456633163592457081312897713023263214612410210661182665463177441761025473670938214513458659044955919771359697390310905368993982478879961369502164016575176012269660821471819723418158096928283140080563597291649256494265616136151321580932404192950866889786185295807223766809776831212985719225027762408710337289859281339089895912453961472018055650895612221112858479667701302717618420547160499877752719219066699572643481098111771872024862114907224733261096723602321483990029755930406424170057477939013692260825642821309339423960978614925414719956400445822569711552691830082267330585360734791644119502648295246707936330366715905823187965267044797737850587680410557840038579416366747798627968288849561897330169642974324814117616519701809522949409486543898766529184170921657917360034714606157764733468233777338888093143725002315057155168239059822497152708609506533031862916014679769294243993416373952285485422255190771836939322505243115453420972140973202868891270609754757659786686873979332002196913964714997873535407319244232102249632890729036990862492449081925907070730174695270739509965329865324704432714501378133049599020985065903119927695428278142948282907407444946666039175896571353710308897438004793477880022117385451045177493268182099875440982122864079034544202336054406200596874543751592860133128005403919929047602780992169513593292483947028332411094041363937051139006555025045615961701599286196336852415129907513811247244379122419703686010952251641643676774448810501907833331259421978647134110566078448858631140529317692175810799377564932859358292017197731057636814686275510905953071027244565592499879680582607934596857638094488574242842428372641381327799768054352465261305373698865539938475572097107229911663983717397209973533477752118755525105861939335509337403649888250787181555869892837592908745609511609563830711458215946301308730563746982786709195409855868573911762600444439200832585550403872888782965027708073654179001148329839435549413508030702953510286224777593082692609747158580041251573687588647662111481870578584640703755738958310464749285121163076147860696629653716978126547041488092561721232400282797969685855102355140170994073374905742396671521375207425933367979804554623616709458424518213177931488245801353361886805631027771608500036037475078581638265201567753894519462460176804747929438701340757064456862669820324897868572671157162143180626509117860655600827625874774832020641493272204544883086826838438881505106851385803458780782084550264541172849189152666265107675251966110912082844690472562810971759180933428535998948542860724761935770813168507688349173474778649715887563642795627315029205823775056996761378874053233499995338812032722689043117598103547705774432644118859234041141469941314009615783852460271188018824221663822531097026121562298711504813225380449695536071203576750989308331218433159347132732130265552080903579228461960618445379903084467355553280800142627102154375630201673792016367306768292080187365490396458802025358880741702096295245436214797061600032436160346737591139588317084380919970616514375640867676649725295767873975530872164846638558963099745117896178921118374890016795904360585741158554051188558538897093669485148559678456757618978643772952187578134390777682342079117727593575929780354095938043696718067620539019716622520252274049700417585845522511378369130408400597800462476281903404922440156151098522947911311018171624226801282199791150796955068541191350888061240599667284199503006212868477925413818794955520072394313711723441211084733666096953282398435377418836813691101792343463286904996753744678179682773600449329075411239933956532764705835735317221581658134014263707870950172004823042269718222606596465349113761441574393179535960501337798709306658975945751244823513600069273485934630658457070215516761793380531211329975866197439064054579826675893351028853822526584884812505312030239755127138957162568104552795411223206656924994877061445368769560297346134347796864139651896886464403636816957135782226721032045842828581164689926061261164122870176587687722552236429323415240298906055141744690176987363374908922076433043448426290869153608330056960865917873946796765576097029366464842847910062545483060666923802638967652066806579473155713504546517243488859822546475747173086677981008155945595768616320546710057914588118184866184124298766380336204241343092530357205984934845015104975528652502606546453035729129060088632733577665692522994751639812020240222727824861444195705879076372574503162364168242714564090803023963653875868497472361865933413020052395022811459645616357631877067174591759755050869195521880629692808769975890049971667125779423867314509073135454828979984824799531589434937817079067673748728205027214878868266539523776300764274604487139652545464976339747157441214108059120379639214254657951330027009746239488858558127654753846496798233333029454571903142227869649767956705906111633974950114108418729200433647522494106367890517556129343779511893470152310471665403475391494800089651617226002353893229242801086954255667279576432090759923387961439594479285960918572924358263244314238431905398015778588184381184923463028766518663939735059798895633879993901981512060806352718296303163236051066724471421193191137592568460755075049294848678319064220055539212776487107911223329003551556288370615800106065915683753814276367637539519666209866016166122588212637338873176225806993287319894339502086257465364763665660920486420947403974472861360356823306168049160476856082375038169842830586748110027051746811566431592575153809583607301396522557223644916214013395806188099092954536834759065744087167025823280671489904631640964970465642660023158386711335986961101149599401183364648623179885761504849271110873569230346692815810280742458922486024309718528015224312382595993140103447605088508115996621976483592445488525236848584600560586623062899437399110814109887560283238230840778256199076212725541699434056747247270489822117118379496820132159418271643296962560779277793344818861814091641174433148450647303926243230382637053849823170269057789906162878257393883752682577080690477006384852959435105119581346422245846265097173703307979037234657274211910027973252679322309578974569219640882129847738056512837967121371532176204588651551943437190602935780446258869571391426809112536177737820646208272289105981964764452496111386967658724041937753458074360623002562946394140186554255900548967801405425424558336914505793203636645373272532384043913283809878451404231438736383924245045005115409171743538981290623377820033641216680003435322447293064274140655244615109277736953369787299137617825064567051136799030423312474764001912903098861239559120519611440778364038148434523897770638998842747702597231650991352856887729031387124241296759427420102054844601469173108779704525380203758779352045455563040990891481680714766917406420467564330625079164107493594451576051725377423968871965007163889171560894401495661318269637920684056655359060069344938702811245324555790179569807848651680283017973907050313360758677211971972169933350489992156685576960334723530517376438442489754234975620133480683984079083500871342865134654165308799133661821903371154686453069947139292713411345722426614159599465841083324227787235992114484283867045686421199295638022496392087791158780786711127949246905790913455958767752755967405734393531711243770312010681676098428147033826549631378730773135796680012437640941510231360861528678383131969147250697102301141731550494468383310794156753825404242398437478947473692406696336267484428045744646043783940976709178655572432733152504983949554453869068428271776723273921786790990501792164766406060943666325414169993844719513405650208646780873335308825119970119745904170561977179709007173127446898147819253707006562412376869145471327826267017371691872939596472313838161005762450994161494537229793807408941624815959475977812550586049535303859172063198837622184331127310865213890999097008565662017612193406972968381137856101812914825933411212696586256931317224015451286214084330760664191442079471252888948089297833788337679475480807417001268424658976368406712101703138083534088826593778298107585656988795828761740932685369555459694885145345540959583074244367165007089344707744162260525374415772444236958319414163150620454715435227288568488263667687902172161601571252356872668379648108399221910970556630749382846299947845438114489576899026371492140780509899538592502479426055595235295224068519925479715727259841704409328752980078627116230068436727671002803157997856775438896155566238038497084054829487214124002283512061692701499148260786817510058798676724756593352273690914788803805754331614677902095986128506215704527683454620120954178643176137237492722654603586894281836673809636173275530108884345130843487415731086356750095369673995014331458322076746800430770123933705844540006440242624628534916964498135429574141208814689971632786880877777181668529452351846517789868448175340886712777359703877822955199165843952764242302504785353042649578889872075895224506240851082983271293445627665170393640682435182116684568526303627367409499837631725926649475861468454805457600247016207230702603209691431499449069726572763814095095686582652490834350714657069541009813240995229071340765784294912475963493150191470511545785297220400796061913231107109684305401134786414165496323385211616223779638000996509680323670803608317660406385957797916689201156449096577714486687307302959174730791651323618399682842080759824817231272479524705779211098730288277880078062727713028240678740661075357113457783301393947123634761032691617017661284513014234047363306175390254148921021356565173562724363132318368289835654103449684074338976219632979567912003583285827507155253283202300495281128900517281326185723831581326502574520587882207845441561718294803933318600868405229940663733547204624031284453813588954800554071049673921477733272164738284607707267755824151977851020059715199631217048272746024302654088938661369608634858831537969934847050412148485958847307408364017544170729269483516266221422179260730117612981948302160585470992754764054106189154750433534548866206266526116151693995050291511609934708407891206827220469444893386457209917062782825466772300333643949355743046897574960431535668065960677790880972734002765222307433800681255000329463437920709671976944577772125230286627838870148910105908728317272606108959723809101849970250994304161263748095333019058953238852125851711977617275214760498543907964662864651152940938583282640076809379349440861927964525563192765203152766711712619813601230891309233484733145732048715401697902585843848214948275972846493142164592386270387427166804755860095702356465089885351071201568398802949611787528670694438847647337729964611250332362233612031780816861590453764543156756293830079363796235145437296772186298930723499913389943679248203449415701653952199735892783263037311617083139662877703235337751812482175523586611590561480616020955030323444555196757558654776384167481435479134384589971991925713082321900911835591254729709256210037403573192885978682286135060105752934159986930372667915630298729163417353729246437453634520658040834934249602771608289639345912118486392840115447688409422578840701831083132165606516722061449837068688466818862014804486131686119162285376033165499073705806161902327247457621722319299409026109218629294625458551334746230993950140731707129991068218760446067764729547337504532053136448179055596995776585685216438362207365485926963606174020736813931974576214399698666938872581507904580009426544507081846599047378766805137644462947591097410141421408440639895723739789137713293225621071989250749358024945012151998302596659260894388135746733860018222347944270732513484622765932613147071811219280310780851482582154592426311204983452249329813980410841968263726987203996390708706874964478700701792052879345160823776193354524805707233920000858143540287088418932954727600704472011059347498790396410570859178788166789880349396834941286743143062202783389887402680161361602139677103546590350181928016515820008630753967749010318520044679804422536677254237291531976871848730257985415204028030682760012231040531196713343648613029020017214075377765229780480854443541050583693562849383202325155702864122211396581111090830626648154140489524983697210066459845622038556439238199572037318139991296726517870739501193562423482788423404355631052265553731505323382616014874921317157832569048649449636655185943753696852434638362600275057714040689185106443528746073799567685329967624738059349290513198724929563151642457347521280043949353992444723818858737655297392301625264450972353386410380629338032734343376253447450052566872606542360336921135678655254854657455182357794977774470083090396169367826310584717996921924191263009203392761360107337473001663029135461521053692262037564343357543761891318303834599228898556050601389696456347924611003644594001418277047954369579333946626184236355687010144477390012219076984280738873945844833848476198833855627378081623289536420718498644738347943732949922669323403282877767859969866954165656028366761917607816824027051845310965283264407701513442561809843699776347519076501499667935809784058368832079521038715543753682151095244679831606681346275804082182930143961757186770228537636347754684597341147304178921811665212093872952214018236991875485612924570017639806471996961828483032626753219122206517924716607603754479176594686078026433157234262120042171181449362211905712246086795632857747325526619811795741212968350328310613293338305821643164298210171804590812519781473160640546187446501429235130025764259553396020608171041581148563510089045697366650028298996327180905195504345745849376558700387174860872081009737140310433917555119699082832204643544097782073053394376053119420297225484116799894027944165313078423917993876161444671677493480520189917690719648403374201632408992543936607727237775748169338539983810165784858212778457245772695213307663187784370714365764696286123411597417231682749820219025967637546071382499080367334461635477591155921817676552772001317699015049238816822515252729158375220896548234707053285365328872190424748256794374117711719672454138207047894685987927028616580166460103966342540280759732323331058933794356857532274153005901912990573450316801818504302484420610326856702761549249541255369012442056717190685277154524909808211014422809646772329732090226799106523020450989565049119239576481549783203075683632173095510994503853364960549247813184514685971531925840808825819891124676425929302539231771453266036309192992464826355125932864364074721017088369943810643311104201816576341900667602456816150805767774796777396252679939833640043368325412291435533685862289492585776532955874986214719032490211391369876841412199446118858741851674240395083774889012850036762960075030498348523702130412584409836775478935320961278867971993900807198516187068103949101142855705115338397420781271810768187134824295938997509718090312938707031464814239466749352517982648556691375369562630552033627865595121720561751658576268212622460379911148291431240118909036824870748895217469202534342147464168544783419408323992407812199318909795127118162418628706648682620610856321612536985578802326898842199920680303652646447425046376869201616183277391295395378607083624974043789927554453597905323105609988371618658491143664923939767117709303758662083363166312184188558009499610112058401814186507197307112510344710927445650176641272854680692718302230598621785980395914295407366729835227873228036125102459726079972551529351849816361291630685744598728525867104401934515576101888736787892710357594247629098596034629629336005423297767616151696810244007996244828470058947517571476828166236474490694669976693417960558122842490460014503733815738134910139653231607658867137531423068160192391992843819240200022116047863634510241960986244536024587083807923944990747207534550619755045360042319553560308271666809929157973058877139589877029194739648793122938999401817697002112511366577439677472958918170661944429058466972373432874558875652340214400804344919565303255200503638043061583756213484478310582757912618256831487524175238038493820898492425767051846607850678852631094727669022747816360501319684570888984291115206475563810093383686260318240152912654197670975599245276320331365894014633951414922703979276455640136928806988911855060615035792084499491291938768973130177629154587921959152579249750856148855021604089102194740285654017147056237634450089263600337276619414653541650877908624820394187826396713981928988155524594432771000074452795010731828456893479442739610857579894051678696923414640059374229103523261256019293128052286678926856629644113748511531394627524900230193818510293221826037046847567160631034444004629834031672051526406458744242408643432236870418349747951396841017373909603353328487238685499887962177708816832589578431548713734272546941600586057224236772476002166853846070530052631788189114533596812480461267652721495814445381054398431143594025801098662380483121129939248119063803249911098132831749005475439750591866433330281081759321517109462133026480459463592572621466428411152195770670119766089886957433619665137809659730530070646287841720534145500384729425714163021672396785753499964377795230606730789690848632226962627587639540854116822597607026660805509970964090907812621051199915135964999169993751255588606537121248730302655382676689694713363586432585772327289796472838846059289810254990330859007037954113590612955646479339378355964578254003395405829396838187440754785234205787900839291102608691207652628548828303429596747743872278595861855188504978787256188029464568448339261074630032214511461658398763233700409453595446031748852771201402187422917650202028885686417514937896826730282660270617966754343506430337241815690544822716000560168309782251245624321670603353528412433563346298386419533483360639352237354105987399066042918482320688252205392198457185614025395146760818796546448190068231431893435405875311593370300625841632517325298284215828550901494557863145012105664053647308247159371847280636535391158190504304209506795793005838034507278981651603521854012109272654606313446843044180980144267665422008351037605759703638077343226453477037812641951155358453762500821710792661096077667954662211070770752768009405201948277012668307163665988498761016985330047147716960953735267254829374996496946627575479621352889165876838365039780456287412759129203306714456465824677692641066348763803254401569195832163559547680572563398468652608349021857464363180850094306551247926401174817158975083766983229432685446883745772616939007405794101877802753600467106185732252965454974334739611981201721111958866718274374547411945958395062879792157045169353475801594864666609834425710800189449951373588365933970583128168204073675394045742921391875552755291371040572064594427664311709586774244195236896459080702582573329131339350681506375445709414334872141125347744301578731447466327145108712542528409731751989025494220626151078975930008824383594554274437764284140370428269490055506272472092553450024909231608299122265842736550074215377963793870947037294381742404604736193729439367693220689332009154689702142512228321096972324566779752421692129116217892176287056723053672443956064165322480258105693673828721926782998969757151717399541354952171180100192918595102239275573223212107425759413327482285218747250776977074736789532430453105047448645865525871368735182811658023211907527939446155462839506693407955306193016498104679605907852737959492405502024817059605212421768216367662169942131191123541801715506631262104685505469552689938841280977879368961115152407723396313036707014865697668824628051928237289748010275462533026046110460059491492519194376426739489204012962838802947714055142560005828930158172848245713628970902333833603422361606039719454467074758272049844099273115711644549441758029272528476426399334266393513982031935332844048953131772104125988655636852375285857424089182934661004026892139652918319285048228170654339497843606683767826727244854733500962131020971157364231702342150011270926166610633896229039194573045424270298239550424790211169307880942985795137130702211609928652501862482648327184962351524634427684718318517865622827056452828468088788451238734444153045686216317204576843303220194141656467875048800770186929162997681989195366560466150408012266798174950911547986787611667978711026837565634155366233232339874210068385029381282162000247475195109021343113936895506503467588950434765968010405850921343055808271626379564339064925843394781503868158306587525133271629185783971338511630067231583312196124166987397620371168802213305481174432545396502299573129476851431921152643265497021068777904446283731683562141365708659967781335954899776768116622831857120164840843982849673100159663861275617668974699886788940621708831203649061089670232126518670122435082736398264999899450657726043308898358432051941256647789245385273451210815096776250556517033882280788416355362178638786820478566880470516241243980633113469484033623290859121674379105186792005245022560300107361207678233912307441473622684652025550888925106065806945110341031906715630382414959940175508967355890637423908564967719344688292221736204132249265319504957160111416634988026289379489316258602697081645154910887806645664237359850066260995198775813878713641503652109124145975259217110300285294738967431595056611368277001212122688545633328003906678179199887717558398515643547401694524767832141683326403897431387342317258306839121943663677986315279044267976824433301073132400284345346058873283665929093387237388421305156209722781521587710176177300563081941890778208605585114200176121920799207268970803352595546933394844001795509388078541632427716487935809205905273493676422379240654243072884393567031187016706950274741566881083468404208447134922628492529000134040770203334991703885063093669016070699979416345071670461912544433258700811707830719951187774714283958835715967570229259576782702230354186956775796925729307168564544616953624169773429695876541635147702228787788355459522452702828141294714854285620536871092708320929262144493877609857414270517923676830959801564608411413883738574946596858013613434935476378668700749382755164825760147668589857508530239052383194446904338612901779505281863143908169385414576726367823372896002345486362691825656471771780670525787320755551826503495460640440490258219494191009948427449964364158316926128975778866993883371151070838888329548470376097339437162677790695496693073503282329170451710249050716364946417978606306320923333410558793405438650801079401510294784150918053671135512873988998447921787222529331352041880059059856215017594693433070348838114746032329653401565488162216874225091866666591923792187186687995540047040482418287844005859249406120039238700920113379539787729133769222692560272131022603360117490547644514198950925407346201563048388570210999979460550867607198693507655198645405654126074553786639042367578817548721206722902172802078567188950951003618695552338356217195004498546568941228360391291211945539683201490357920946104723413566975761220039731056372314253347943932951848552983332833723971603329541408280811358955261485967385362707754018552370375996222058899271352660239214670074462728054599966182280261606410751635325550465210352878461142028785428075161658989954438291573500211888626843613692492914121127201750383290611837969352627593536269964781589331203046373914836855146216050504645785321790890359656530708514866354976276913123739236705674902913995478437944596588699089323778338084313107420165245326020420351662255158237995251650081895298150032935247777055818283621311516178240177010643486036682349538270499882640980356437411332938368051124642074861889273558568167544388280325121092242913182317402709321182683152761865252008507499445678507790437006460580159017831542001225642362891018998507065026174456163707657044547475133298318046384464359056195133271944571062247709412077850370166450090751018547985289261569760215329809377286551146571026825627127838400069906992778610935398637678647808397182021487770636285767135224583002821825105892452602639633077750540503794095206903159695798679477431300626303806327446138542194100264117971524027477590341751849756943121397975296853378546322552611360235275888457741417937147268338432969960838044826252474920483819328147812777204190731782974306390980263855269861554948831258865291593694864691805747433320065495636570462044020120391740706992946692716670399904950972910682696279358505635447530542636175739540161508632573155281651955103109016392547077944520506072165095500066175767880546102287506850510831476579573488671941791696861054712831249285941248147477268897242316946135626812428706856148407943164360021577795209595947473857503204044270570305032268196955254123127973993453517644518129755108564257183522639770114458839793770739713483481224804634085881338335589954440320408366672763024128807618376897543380523544139306494066969418404893197857709583313769090238068608222600401847873314183417103641819818092798546984437640716236995410880911533837073392946001675756813520402082169583249125340749553450194653562340227148029982893368562273124247837406574063115317331201576761195006962719440975462631550093889551494568888781158181166990147456207105939156308416964524671678900514264881030199605384355057917635059486889001724182951029478688294778299341144137833158830608503285574508443985889070500549610850795830417195632469508043657512565290566587756384288281652420597266344645796902768308077536900701952726539978805271572925684538814615049221020319230286159687946665405087773621331637183282259435493659039707049646655142638592285292636900198131890521998237618136278337689391272266029581508766251325685555683877177278316714560627356294749646995302467352506386554589770858970355866179872598145090164741294194362734214312258834188882365570063789478680848046318447983973570015553976757493209674405145724862822995308042377679500675964810545744974419899269839981082379639641563831591316930141471721873434138840180631847031354189709470993256146585015392454909092481673627180401891334933551425376207724825275736685637628391049247251549142715015135915842690702784083750173610910514617588817261241798489965678988892303389865068478255777304423421955482659172814876021303592004017207486059566060337308939086163190796631506635454396173502385515527801467018204428025116848631703029746205639740566604254626028715088890572284651883553712284446126248189722149081005809351993879136790621311971173388794128386258564291017844970184379450340593891732350651001028743662783843268240369891011891141222257082024675303541928787036799857841281365122388495191869275718414924640326646658013787800362884792394918917583373663923764110094318302557853090477565827045063476532588065324300660883023545145113898427852270472756038834515105815668836653728227001247234663718885145383188001093584121165942790663345017440637679143466678902223591976345036245542942606066965973685346960320257681490283374988206997147849468457162643338674330348058221433617187016100412147212601701593535543486115927442948066530571951939007759295883834724643734679556616995666301216707441132915110569581154919971641329294096639409693264647415204754390015717920684986635823526982139780425527298081293537108218688101185340447255957977391661995692813466520395435753265095393543327500898385901087526278320976584516412396012998249871488689572843331941626449151934310857679309968111541222458376709343834233879447506739885756929073390933292411546060128774830065891319310817033306284174300245624392061872674975839044308097936223780643091378444633334378326471985998832359744205430674725934731570932686309126300766900845245269975248772253330616951969281963745870623655117389753588488294409188697419386465569339264319760413954839094312386685750583922717855876243832353995917822914079984414209916085386795978897304586524383866789625940968998988669705410770722270167731200547118377731752943673759015315845520938045815348860739450756502509541084450469327300812934179291064953291779025086705089537053234177664646789173425041784482320304951104948446710150684518256360380929624740477230276986175291422434230462045472947668993632292938814118479800625499917649728339843562844936464025114853899952463873958682856867697333676028554481859506046209306051087916457887919951335843882959743437297104474974644342483082278886098578880605174225344453756940564599936617201596174331640857539789865128787439699693307518929873960961747582727231405110960805413073719194314847379236450681489005870610500689569200310666546849063197895454495186510009387970146701634665921055321045710809555492642527843365844478800284199733201441978884537101699785600330441295879930132582833179048922724825578248605593418518752784844407570778781238686813456879077191516926557212712197348634631800729289520639156875446472635879144477865028335057807756779362521509093422071355615008652551271533541001108238760888744122926057557896704440913102036316830986636689799699390831945494372103350406430090269548000078214154752004365621019783874328036253683089896516982172543914812799891334982022243261215665009851275938712720221669930605751150486341279866859377913013248469466893902216053546099842742281076732065404449497517484482882226282781831026289373811381853257297489136048461078460185866399377956235765698735797419864623970908844488063969975897567922543017593724265657684834457211625649829563950503825898708851152695558327210801511237606756032249840580347767491238208501119783139645165035358809853607969284760338968332144851153427896390515176680485652667355934733974102661695213149526514237983429538977589434303439696195637700004643644427024070756038609487364394065856325012422741549639948174803238885815103989641970563801454414189357166155315020819003790849726194621531623937174544233964711559603177577652976999564532063639600948604363365473778709386477417868230830060235049778197967069651093781346039354274513095047270481756098790367945884966247085005642744802806957349646772211367931551363163265681050245375541456557196372536868200437592648323771904663489137947485773793131697584469221349634365006033358108165077793921495232127045772412905615567974189974557104463396750011072405693159802347900131926015046000611356659244603447435496690198091867134296793298214871491684505413939365553676024753126991440927510347074670936220594377934450331841977088159279037013990238588089526654410948560183495370268916084394168905603507101380918764549233420872746927418676238896400595948113949841464887580223771896078243239085112528860298298174084291137772401375695250177513026742387099626153296628599411080852539464415896890101454630001442670644680490165556059249617642613609882193691900093655364632311322329464178720528190080057966468733861610748220234377582194066117829619525970134581072528113015517119648540179906898682548637036780450212124351943401501553904179741445347416540216878132777553188412205933258594591626100244628192994975399329496487994971317975987361426417298719001200009553595537184033318930235977725446580451163735051397106472808852602091636609953046745827426501641962981343786614337076272057749448190708741046991300072410007074080433385921210126404273524613286163398669680798311610385375615706504545131514019193074796031891579246011804372447350850729006854556266372505522332525725066265070589538234264583558081103207767889897885776558205454842026221243531262865878144452585575837103575635545049007125435121572080297665457018131319955957335154650867862940771782156660414777625488313750730064016516552319612535474661700801001587945505664778187477043312602651134796606899022542767571444374791199033080180088722287326353168451263450116861741170965625066112075481342207320119759931427887895382377806322213578696311549004322600032547250932137282257657731583649145161489261837043952553123310881529064291927181729489086144688384327886835370134487663035131669594469614143570239583711149448243099270624865455326903988050450229370581705371117382337607502250815586722485941309926390588068232022635901873869622986016341607065786836162057105459401455637013215981747348041102587886077503479658994257475699183470271244681611706823336297661654855570714661914976097521502355948487425716006357562213102714027985491923625909667368178268637322989698607309071607040100264152941864809302432045191125251970187852956456067914420565503025706446024739757679205438256797700973939572139266377947240537238431988716452475712183749231209104636605796834575701622227983033032105328771346975981591765539929654542780034587234464074885199080104376384125137651587105137974591630198183170127176905455979504602286898231638078214671608730600146416445820923654631658264445520167111390068771439139789619178002373315743525918198626764141043738106411558289344493459392385887164140923861871398323480612262681817627403362443645850019652749307840651044407661157940009511551973266508569964890323092457956325044459814380394621792835464943827074233536725157546261608651947807948183482585593830450053791319854479677715423961526133167906076379563505853173236016743365171614436034262998333160057457330255869612365596294707639850741054137804108157053579557809725266046076719688713131069484494188671170054650131953653868856600521819336700306239710641781877027482104088241220255547298547948713360315938901348659381002741514737641807677217856311567151573764381137180061749409176015261175055864596200537709928183344107826511183085176005650262916017639249490723975025469215153799936824649299926404354316165897325926318888307496799472435419823689646211983797988931280292201510867220799559821279873671079219898768103815141672168650472918201466536188253543233753887704793777565990619619616325388953657973985185926409737598883288995202427840952361852665778142295875191803461447868446330358706900006301465435688456405110205086548955226266347559515190143500658954442797606785369869293859070487778950821591107735923791975023976982449843980206071384343039411698447702269330005965456503206034644381923376428479468361713396192448959210358013948345403806143912537943569940523643099065088069219054425178260189817046631312644601306913432764014853329979085644801602468924511653916584389405384364325212845364597751291727797869420296689227424307857865036136633234316732484784838192871868157641392397918282897048166111773563005505574411819658674965405496266351229678314103541504295709705127278681465394510906856536131279757294815638929953234052638980169849201472768489588213197443049511400925989143801030355152772696546853360268849744240585670215451550032783017987156825981535628231760938271678698409439962143020638380967525616676131208643173399965078218825856671716043016320967231847555667872420402055319445325704863611579336562237736959680921764509550671416715937506703402304967204312090756206479219324785144968901159610932329893924236104344675496645464492778004545878268292206543679755700843858590307943167125621529865806289887047703744104299798593302967209029504936364713417525002884392409531246251891370890568031833791995720984959552212736539091260286024417590642684607473812952479055561781305042620681637956002325060146809643785113471337660247209980486634976200355506594324339889743985532364728363849005022087466103530281548849635625457326820969614280689129746836435497967368474923680397964624785730700383419273656786002655966903823485707503419316728845569176872737481517011694127576561377545130598601927631568209125927334732781936336655919933910069792890768123828073397228889646575303294817301158963341133039509406742278508771274692402710154803767094446681422887057162510114397918847580646971426405178864641997919156452013798893265221625872379917095729638308618662229670223018905104529656915609743855371890048486062773445004110217913279852324006688909057911628359422798457185132733721337686044730676925695695816830070559982016066928913704745323780955193316384364697510134226854680504595590662911416862411578157128366876556388082278315002431693484152737262814310100836551931209366919811743820195059688158827881991962748140490607741798620816427798944868976339783938104730499029194233375133431788586591458747366945268313524092589425191477993056222053448014301636773019651055589889597892092182791945827836354378236153036619641446897666884182422130896977496382163609805791418602180442264880324413522140308838110665854574399334195146589520488931242644020168177649111476327313429402863584657399835009708473132844037487888843583488571999359825512571644330324361420318716409491598079160342750725900857793876311008832047033306596650439895098379877133212552671335381906478872327436036255925299221936666808951666535362531592625466401010815163803318986079686126069745752788719108810025169065857125041820826279622392003669535312912010381120890961297868856109485798301237014404957525732574853505132344715204881167275190493407269383820416562695437513080080430474855545002977740452907162249075260874993582913844662704208512467297612842136747378122988967077921188629627111727674559556445563564578471423495511662091609417917900060152393837842733826245363083119169256651370236405772436771587045136923798597306754178327442500763310355855461001653415354863918590652185098115702042907590994094639017446061082501653869213636840381533058372298977446807118262468584068351116833439526849322933315527457777316618230220777175182774622087761254197030644353799534267692467693731279927586875822108861680104409972432414644244299518722903857318472999306799219497776339732958010248251980476121361786167839534714268495138667953576693381948969591803168149369407791572699482804734605335966853390442352260863756822992857514892360446582756645138486766357805172715528196406072687133181533976072122290075997278614739654576295269914395266525328893726152758015847436894209957837325126268429955798229710724390961563693279922188245066556136739451314449395722262494609162674816593879608150847307175046675143820167662510572864004084990835095278300108039341362352544531783935793451572206512735050467878749354056447168711467886880560515308751262664136179226869782114699642496024840359318056328303340476816308291705065520230413553065083474552664899470265534747659575884976830831213417808790657582955396250141015576707462285157568804101950060983651966856000613328142768983862505712718823003392957989286184228447527567418484614353766188767472732882729236090577418099241672730101106569286031970809038462539156310761252518344363365993417650580453434476482030820091918095987854042396369048398018417581412268694852429061469043275328116849114927335609644312616264835841897849391248315707816459479241174746926351372918547663571155457514408388850927600854425861018675987180623884081040710412642922448610917792611263699729379439649603667714834819139587912893565810829813976885794258156978923408885145161978924765346106155742123229816692237765502063790103579500423042941254653044498704580622154400748569050369500030640533032988332526577116539301536115026702354433388808288457156190112224231821513378074839088704368582566643947931909530620933251204557660944641265611313778340755426283979345928257005389286933770300463341946749015591475524653145376031442684993933755900361182062129687552890572416688577105799180451480075129798671036864912629814327722849821796279692492665290423572813760004292970919861980803051948339779669364464369228905031436080899519446582558614136260774189664404749393027498549636994379878135837124937074258696345731567839261192637076088367642717684343760357968297239360228812709834395182995494149881029842737534991998767282408790364493104761576468366092902337912897836413842295992893682315597573896492079252911788454257206768427719173965886729004088715662977115077080757786175243670062768488485267117041467788714143767631946253399556575433787401052229294360326245461547789217283354041221333939601136617129749847913907304030562113341893058988457820604239615019706602998773928167605716817611423044421626739322631714122561806613458800797641218460396594347119578014792137624523064780767302042398791944125768919838531607893475325852221393568087353341508932808000832107266840466143578969412222169669192793670865948248014843620171404803381081459481791078602491765800639192472337533199995553126333589972671043768425313286455016317254364998541862001498633666384846514705321441820314164368244428592606653671065167675847462144477408465365820833016206266611370744875000356081831226721654023431811616418896022965794343979634251292899241346252273045031636920519956788336356451552868026528394994961165890255287370617789530975442404934772650416223387237301099791348568345573649080152749065358591288570089562000954139694949648009502421328082015819951528630038727916856959798529261923276342226829742050476716910755181719771682602093529408854030502510036719217518212943723375427184730154029037903019977205234335549113419792073127465310413791024045697429753595589098449720698831204885047544614724180249521214143598931700791639241033826006059897274818799943797602652619197434414975014296857635002387165887303705053645045438171613752653397179785610392643384114707550812079307195625272657452286499293386416230512664591233640049704621744011963856375909340779253069342593158588937787933078391192809918121356220670193517442783123439915847831746826472721311492314666644606746620094422404043020269952695053644819041259977381683367803019952812466396183582364983220265211609725646748966608821355012991674742999275715233695726945265461794666371716490611623811834918961839851604690302171123508793329659915509582694282017803755589980673995897565068125750132569507951747308299370473052027044068975608845613072530089329964137461934441102470118167045772335617917621921343475142770689278107454007550334553071786794843799942302186867792164836976472922592454711797426598473661134847221701962432118341021314526788805849618506089941533557188077343711163328222958582046130972359160350088057426241233062190793923291621502546100135711002016683591170979018808148289677377038545654854578930387453584793131291418637308183200934953299531878292860743009745961005691262046946213332700585191390237757442260398058780174360486623846755289354527201232683811357599990636015353269502867372217909105271547989661671158070396572859956417447881099368848644013850498348876095442626175555036882004037021566306754459598501119468795388732367781241807755209482158126327912316376383602731843283789967381157467447477596998491048505498883742426593042783556472550241253445500354943185080013678020033740110004924623221370298074977039205097198099899800209970235621158765491970336113704836683778908868807537005242481948175598857368579771254965112363851244620953672228478028427883657888635258368791563965878684371522589228418613067421114860220265719063681413418286955969183889743246588980500347952889615064369838231830428612513567908286365410389203682232690816466394167036944508894797495932460372828280696644016576405637322931942668124845175637803737288113547519043163502028815533375625345198595341842739243089625297171892239006454287099344828850461963770681606675745567483556340763675007213227556858453004724178072990544930505707469419005813945821690455138409141235868195085957660572791319293095057302222456464483526871251258583827013590539568993465161487866692745165570886910929397283517804100643079393743853765208284105774280161780352014370330530679717940835884541350436901197976986097417441461267803575424121836246397957938055512952903070614626485044521548138041713988345045172910686492330870308135297363250443299575237128651915526841003920465026784748130165184871612941934366095310339264687516892647613137074764318825331286017814578221485128501767579581473230147122322649123209366818579709947516289278403581284192490808726006182201621932247503000093954845868464287881196625799683777816166038689806671230570606733597389191297593741451274225093580556674208181905041415942313078485360489957318886305333941052004758325519780816526713163274875014665030100995201222951229800795645772546501952614585805040046605079856699503414345465886647096414236788453859409218904211321741191872297227405661978507644344034562327448251944138221081268859897993119861642037567870962191360775420796717349597813147550821834701393254321194523260068351257941890289185097195802465329209893723163208826170778556147748397487704057664396927819448856643319518352166218785900068344124965822045707982449054007790959308775160808581294249579059076864409961792886083771746380080926033263096333925968926366448559217622594182435774128114716488351939148901183300756103912847971762781486488644314817057256430683993667581103645912107615729358684954834594068523231009792294918153131192273360925796170840101599810519103677040735934148858905698310260541793407213873184364556346536820539796568517729565236645238373001723854102448442836165862690134575985522119792939908000505769963894487115780129326167344997582577531696380067629615479675097648915304246743901203209583831700501099857251531486313564356692400473344020940251123845625911023847862063513018367203988078181826968899417628812501345370403285094784326343463226001312924568306411719702762736807767833634097129491865280134680203420228438163216034645179335453153012690437280482244043704330048132173725521748936134572795484792618161291783978913451648074454109466918315493028497625384292567408921989524013659926605062687529001641398550791358882072366827157676583327020673135209943179516787329892890850531568049208872033582637711981831607318640556681896594683558233347173008515561960904911345627686634104077945828381935032027559106849380834072466176349591599158841514795443658618275288480765704361746723933394209919833260380415435268958414598765913894048410339119140314790743867305093662895592531195714574565234492271620459027313251663090150296329573824010228828262132110078315097298531566957711818845438224665340788846416855724241726059053976871622058305131479215596458598501478342894586293095338210835352800393399635600943011215751257282811440746989609430738350098608853900824566739755548466769900228137918161661239948808561849988765160426700787441395213568190036564880006792271991328448477862225280273292752097737238310570095453237102611520005494200024690096273943918135668447275062299644370798777254861415776765026568752873168682903020110129722604727972138739500260702479807465159262325677515205029277311475757426036403597498284903420073609864287508315759399983495116711594743520615062920105580423351271321776601060916630800776251795473187940010842163047419787145860542985333088115579130357805891544781054761663659398694294966102958606200306571127316407992980673459326634710431067402053363229716539582168416704290353928614074293470984143719501304162889969618390208557073203478654053032385805782341982650471755683612064743588200177232603986154156614085971133705397780268314198662248937638912638089257143831440967459986771394548169790361562240708869393398334230753641243650457129820443774928461309837124180117781488101667432847020171986804801526328627214421510366774005765758490923072273086494707784033434217481821477903855856329157435202297633488686843459937240748040425162287489478184295617783163822596691117997009601231934064281762943547048814063900278016266009519877369951328089692688051227968579565342312038900494578294146870240818819567216149051795371905979626697199391950000516712599997415110871816993963049443398393275735761030999437445972954487309269771858964093310891605671478685701926952902098662312987537218483390067840837807613162060612119906369133974546281648896372854374428914549701071364108370334656449754896375062904861732651191637298701929121150165855832792791342618499567837449844340229159187416477334626698272897969642707103539792749380408581630771136140286373870352989192807538643516382468680285078965553835706454190584389396490696902058912416486161278438580039118583877420752479978598100172177576919454229470926043929319718375103185431470015862567685725955040288228774625560657198796371492484744030664993791095572162913038957600102438904028887851262787183007801505977122241456751250625672234480857935727815400806249537401437867894855292844006586239267825247332575516225815119841804031300281313150050303889862976977745470844147039290536673224515273951054239029773135005883790198008764688318570963814049332806108754903311425132320688521297172858693271000580093334736475852129479083419989212055238552273342747612219388333917025695434503140712677693612044459638427924129684107378894536187291808619071550980454649250215583106076117063294594780547644455811040900274332040535688286391133425474880379470608499637683270931435876274955796019655700840552302813116241449942711334858859503796088405098300004266415529583822617198021256410970121541012010960520000838353104221084271473174444293792812485908844644692506742840739058445694166528379274867551614147270329409519257899960808242461344760432908921818247978831452090974742431214847389975111618056906978330612153116033036049305389678086892681869826252596014091082842245432091456940110281569432205409119023322719350014038131775598951442292070103805021387984402189733643817707042823108506551916017036367727937410389238386810237786193818741164787547238892071403258886122364431800499401553848480271075343193391845547718491505284185176008576896970346397073057921841750759935295276294303876228947810812953853736134232543471178317035528669509434593634165780268679094624312602764041706647485713490636977333674344181940133819035873371979454279901011985966208455103976781055856080612566548595169034255475824097100058929581491655646329360756343477732390197471030421998692437605863459366872818664880016327532493792805984291578922699438969870192982683357077918421764039904115498277448004166093076438460533584004286763205190255591912988748413717735075645770665929979423874355708923045788475148657056969405822930908529467081037371153663348442244988395542994313462397605817363584678342953077855427320627563308019348000203203865258329358713944173566005066252177682319173433250456343840204185376781283816793066240699799932942134221413867707404381725050267688452743703202650606976174852054291434426458855736806979870834103765337400902601696611151633539573496147942241968191337199134437899723546865334783186612720970903087062658993350381069695461278722740306997016319214507873203563674955278173575209939251073409971873147763445147627057987525262284609154611271625570189033327756060203939776779843848005324303304890151276827158031224818862076586705929210263725555712614039439767905229224590720682806665864251677335463336390587717217528443798538694956520761826960844402933398810705164933786834564263181522793634119643176363219219232621029798666233040312852079948517367619963590767570046243610702811910827473836192698608673644433181332943674123138697691265594918523022413105222949262282884924187476576073077136646736516227602394771110992262457938129783509186105478639534560458752382396572650889684423482596847738688643626952026877350353480077725239747110420222132259054419292137669371293880940050646708323175437251617435279461743009520329788382009798341537108924404564016793989697872156785832687502679175648890987049008636777562747187571705361921082839710643893408655078427448139123308868378830851902283581309439212096512642899578441440254264346078767540834186375220826427032009297473705689039302445318324585174171169986329779550970653291268939367098793904095896126449800815445885804447013368137234610305756243628961246676921239389931459309735345887974214449685590864050568584950522391678002139346518864659811650346751928995680313821809552186402193787097770407442576692571916696127281961737089224368938750328018411487407345565507979491333558733404006653096952448370670131474460817559376785258224955661225660016120693853284291363056230626101308324349053430613551442153915548521124959964326268560803363426524950813743345577136946661769410224647124998691248805014351350997376196142406356899216301677791344252967285773800828062313331013159219313841621011505801636055541825634226453887515515943554566979897125433016558835314816206648800921363245678457702212930378393224032963769162869114146945207883932045407327991272210818191638630915635477378788278266144668411936337594952285603551779833631338931671872574456295170911334179108598034612456678648543388062289155494755508192180688589671287895113489420004684051931970872521040356267353054579791742769078413967628088001904828868798709479478606747098845848746561548280697182064800891075180846502463008173929206992069494498084463849922363356350094515250061045352201923906909809457558488288835726265634550276588098039235116715821649325312739511281354359301515832992157588510776530302018448857382366551792998069345478663360575678133666095687580176567536406392702110037574019698546086386936062109628274863208898712959248591011052002552826145803818738643697770886651318744826339153410010883092838694578263068407827934789725527388115841952461535851577012440205163338915131663445229951130103148526101044763855888330977935182356931829323218825932083330883806859384546311643864845614065310238217022848195404692377125191507393390663447475128103125317593675257172474744958305193899142754900558479422767183418409953052295840627800132372551895343985541963922831526157512279078205137255774444761263346870534740579090545490358002125492771396232745544335952943965088812587976876925582419085335994402039313185901007592822043345023420128258974124765498430415473915294870300333968343507952244657854457498098551676898548579546315275203171507368000995392567409414997753376089751170440427377122948634986086677158601073653655875144838198850104398593952785433420896973739016651569580696706779913918198079159799293315428930960537186458331640789633186884166268067995884212266413730042682782197216194722963873514862481271600074491569263947166977689762615196748106023987656389105998684511190836497626129249170075145936287937369498284830446640492159247377289550139285350046959538007235599463373105216595179849899195863492632406271430494635122640638367964020463158300254302545893604946785669739638985118288949115075697131336566925487034347991373446049000588843990781347950360744852745207009059121231347497500976274569683493495470951422377105788163290915401798620132538878859356902725649504690642885900279523311822225249416731154782965625921315538059913568526456010295538344294777089952803708211238598159298516572289231609161070407538726573959088222950993107949277948741920272018915373009928577422746916336399824230687877354035249742624036451674902185156154674457623141916371632746811200203899689885083701840170029827085596300695400089708208414035656854020543171117880578564501850199121617306879266690323799584037844987685397708640804852443001206798980733057076628174134541299127298101363046392148437482954400945219014740024470129071097048445757963283949990310027327787446195437083051416548407670553784342022936931003300606984043826935931944709379772959482119847887833210131602647312586147690952620117018746051146659609788344621314461797429304926503553998675435464901286806203044682496536917166830592332626324291530142577757485618313386376839054415644585525738165540491357625032062647034555436899439900690781708628180827892327349965006591219358229869337020798294869558692817596197029919950639877427208660746550787425283307964065877856980420865983234085668120419336461256777036858868553952345663960170027400418181829528417314066250287533211549678211652150267033302510749204506088982232177834081298311733939865190337364776685006688485376786008550798644279171526327877597798277515680302393929725187416931802979625515688318581606422174178255038241319561147360290136065233413831844019448263183415578540300983076313116848521131537875693477414737692817247560958247448790662410892407599259117739156382736326502312089671190756728071396741906141986436675497522749513975192139999353135217158725376278459357862466110660850964428783382713080446584840142755052277618934591871418839740737824973194787920558780818162733410447004304984892216937859513476862332306800304819123445283441729692167267310164588642091110428198009370384892831990357133734452806620366559417333810574712406285324687941133706004632886271983362407009256113679296395313783303161404004946058538807687734379710209854092530960671743598696496638194718952521452695399734219987549809213023931156995334617957392772822751661549690215301719674238271481175828033954369684852273323671380260232168028506360612765119225351457168011253297482045050418925788345837903565154368603953298960219974209937136072957752814248059280273312187607680971852030158795170812050910571930911575750924715567962879219401001055281122320421218607133966368139121778121908731681943787981397267602256251749925403625496095183178785926809117032215447162574959068981106578382746799052668343393649979167859419478309213796962778393975119620954886775123433917002575560199363605556786431532305663463956258948783910798883508402422169342239121519944611973227411766627429258167939738584320410280559298109501533572762136445207575837023253574130105779343245564323726966311386831236716189561821596971349616720618727983479520116947114275823064347537157712781294237142613706371414606165344665465311967650635404546186681399204277081054833574707665956882293457059829873359697630609809148978405197614082709688845386418047738240778987382494734949737004015350013537123951404805289475176425010540889972207280177849670863035989478249167328003875385039309597264348799172969163411742640181515870470640982165102710227697536917964121348788528592419314848449602730018030627052849266128147560738560037817992486776748507805144605233826870884020722989496577399623462916943257375273608282882864382728044928462194283392140681645810625740375871229482591050413105923140049806074245881573877221049597344401686039915610876654476535668634311204804650588193461207900911111811507068474475138236356954292922673770940705456215686337137551716705269548542059383046378273134193975546574792381493566733989545244323289339439871772864697217067467434510832042833665664290403404369367805671208226292115836353729530420791914574719700494937730104212628025895997192664664618635646146743277483184025593670058505360394415305682643311116582205886926870630315879595508070418006935525649578551856857343960518886614389119682913743395733717793257798201220850063464924536474892889811814832471438383684930632437840397044131525985828249521410092227246535813125207119395972497350597969522888131607562355921259382793954277874004320624551989074119276643055763102076452109689583100898979465285428206156958411043224278884308104872480614557412566627196557304750314688577520219637298088018383142092421494005838163865536743254519457859267503160560046164389064329141523997056384181399209531873029504186016811031096984564139984421196755194325137151027061332461661611346494274696206965532973519308818022321090969170136882234584344794610878189189826425390014557277515502924460182712104712821849710112120206210496052368727309428866603683715136359779678343130624645208916699301459693779815878572213468616883398022943412452015612732048430644503885643195659724147519265744141710515050682407672051636006228921317379956658149131632364714955646083121157673457773188603231739804305111621918193500658772080795546167220871708987806836413396415910472504256954640950905865745743993529897208919094019201623334308525271772430164239874899933067381462330303147573735824340360823521630895510675078209538011819112796733439114130047911119750188228846208760999933733778344948848063952896133366105427862410788148522412271433197820652188399995248980262348348704224243034754518374203810795760536480848249161961797680840479743965428315332847154411283105367049567894522899626066462957127237846035610323595481981617240173749836557660121552312614693614576572037845927589865868809404008890999675697870565321402272027342345408633921752209011023277920716956619274636322072174892481621072286618145210206899979414956673217250601473442654556942589304354915933986694761735623608931470465721567823108551596467530766258962726114555969428030332628550325596206912763271190216426823631836510092567944446683017372987138011361153772285046698751172993021557851762471586737207497456557543577865722373771637406082755682893221197566580923255548124336041656624100175347385333105543731633967683414759020903711014222041969440700539707021315349463673831148528725779074001987864139638023497707868574511715804793732329153655998200459684502791040145804843088967559074992641046991018793460120077522023442088971919833282160802277640863478723093221976915008664978236605379512220450606622336721746921833161929874596689633998299420711189952117462540608269103007728517761791388584086193373132963207623896172257222983052012202384325285421467317549257605387249645141067507583742373678833519705042621922014275982149234430167606135713287190723097304320979789621203521049698878915935290255391934891065738000066479554906420006297221263922844919883818528590767067614590631290345040036749651434269634338235136206584892031313548760587043956902077366156910257113914750652392037560165840489902135763830805821860347490763390760372880159488469009473671143876095753652989455811628568671670179778958267633837114516330629367948255916550473883472615589236455584209850037198418786361245195350725199379531403087025811918684465407598760042227499308835749854646143868703971828717555895384482186018414433246963442657050413650812499453505926313443510513060470754894398924881643941658336391132906131702314152308725678190160280719397683312402660659197278793087714497396425345729745312946951353662550989352711902632539668349986292969676087718742478619061290174177601660213801754049376302393439542490527488095949637223495789376867982182246796233374855146111503154066812952049723962972323126262115303121296918310294392825876539713157898031367417555045912939340951408054576452695708783977115370433232030935134410097806099123161600640357697751401361689888522353325066666566046468283049353280702649712210155415569513919141993857655481859643121219305648042439355557966230911448946772991837840462904502710936984733822019237826819867221255249381123569598492899116044532879818339844724043324070050016902074089138665342417369817814131459082638255151379437573216434381219639939973074693601364711934299475198110697780078721818251932174680392696015033054099661101489333804973651596518890910398032403771441814544028106100788031051886644117946441401967468865372215675581063779628168631382064049101467337138555159414054590304744089461655256004515824280655414748114969750036286402656881482105773537818527626235925221195727384529681734685207689009423759116466162992572019955177529690099246392887527618320312050199569379922346489202792506376359415474383870467536060526446530941513784943629233842288578400956246112200442805522771628227432398125381357008312115231449271094490366293712634887956579822550225825236523863722175451659473992655571518432109304452550558478243173898121556102712078421771649518911871086771625070670871358789966968150944236149059443400978230579689146612053476063368504890223567853768257858199690252829174597101240065638683969188519954035134236222710279907217898268835832789702034683689792051342409508541454962842325550358209858610223809344863505149007622603209303731020103920378381572198483097350244862856016263023275246076149597824905399559255839698855697157624177455086591537671033627756209519396433732832673476472898490520389609179277160423449687539318668035170748785353575229908350169630435299109023291736877901806958758190220606098681045710867817975308788717960292025045701350384774678305442332926317351660036079863019950756997080681939390557355728669002974554285556147007926451620087738548868999277092808443355443899450139910982718765768037164598347574268748501814333451794198409873335018250981039338079682994103483982680110072124946278622877025204006668093935269260784678236519322634844779302349046607769312265201984750124079323317118435316750027086642028860036580149780419497825520061414378196574542710384957534210021340330326693186411215020289036642907147038654357105933767901395332238392307791813629425691724688567997508271963183337631113412562285559695903766896057156384216433915320566016329098342535646786528311391047224207363068600474480201402481360586089699326588257322056615264525054123197027665825254433782816698628931115494294492700553036940451963852667731237275576445669575729331943705095090607616643405650917217147258448721794985391120537001342579643392150993190162317295037454357433895734519369834552387168435105386658494427558761039361228205837377136622880269917313149697481809958904243517216190464587577493294223385457819341183493650086168113551568496897514133997853633858410898446619112738273765011432066935565936559590730268531028174086141095840206497176489398868958982738665924116138017837123529280547223663065392478247635720327187603775503274805218288979902193078692314983587139341219867708330399632844051460400414528160794066090425937546745208925141313429480218909401232219038487100630155973565141481841046824391354872931812944610704750854621534711418301349656480854299626864209423800904727356665478960932663915641011997778161770291527962717268564406356588012643381219337347423954746717719383201816692588070665530963619812697214080090365984915280517944735063815170718526050510126548535403617087897251259679281796215713971520937868718622075711555922738209728286909650515041536623939702415931065071521005539528148408465938180902597185755954485969437922246784306819730533920807220566939249023165511295811442374660070859484180490135586029582168503217303363063069707677493009346934193252772966268885118070834375577164127307492925472401679014059671952290247707856917940968152553764526952621639661416679719840987708738935712097393724749681174732883995536343529188856516474270543078279471471203245184173073167414793649731382727541515903637161227204764400994079353487464962714120084587008257651484543315975064440004736334688159765792390787008563727448238558110055049590186089889744404888496970879718044596242614650808457272623214600045963065693499343023298340680462216742367911465816269932643034622118712034009805211502444201446148575044790300886568533663927543885531065278250235710498268070471482907427380574327882549344306733130398048633293890632336624111237266357396218002252061854356070147131349775283789747005352411291971460182417323490277978838200378988100203695028366253629348953343078866157730286220128909214577469368536613263197341957689490405613075793936967410080068556703706542798093133370754057275429692989660974124245034626224487737025955820073407212203009862997300206802439683624557348288334390854959797406773146439642525898558119876639108976948380793052011855186329300534703162627930687366588122651909178751919522750372499601547937098921886226009451347544312437468711331691772100970486553464599260472298001668255547840664134427324577897154212061434366066961696082128704796358359658761080909762133254385355760857892463372884361316448094481445779633393489334224849898676338922683249834962012838740980376217359956066915016574602213858651573459744201669295084869551911196941307088225858687847524416559167990885222536035107156025621909644555798610530983832074731991824376223610194054368775874296223380930767393265871273857805625798087334256691974525253295634250087575444189481638358261061345562444759567704872856792122634663470355678709225891433866890443897787921395477783709323838111976218380257201228027321788889606071899085023662918191711032050743098519053324221169662117569162714100676355986638947665766363627779599736608290301576818149338190585927691138088191880851077129804480925157470431040944056689214474733070841267707909889461393728552938126743907408614269511421068617137352329341941332328727373734896690593949108171734261899995558923809751836605765933012675730693643627875503937192757203325833408031129659462362301011658205768995526417720210243382830904055113409581043680007008966986606175511606908566890225967776206987930875639494132458042364121011122905449480681837729715312600962624315800746808889502037422686496109886431600358355752462708960587148633710856419717917454799317416737513238692556085533847165210596428709071267107816725594887280376549567587739517988855473471450051029749270948564332886384617504539886288501062704848899422878431193403283724568020209830911727109666948118347073910466569733770013947730191531736763761170353002537456901964155251132452581418445723856059090002399784893869331303731486229892849375841173879345701499303697759301748932296564448580557850216128473036676874642686251591404874568243470081990791430810516729847077510463832443569591423710380030482842880909076846530760199215127857061995462597188473346869937858778904355459879953337110243383515441056189646964775167058734876045738010364002619563709866107386495719434161362797593144460638309302388137379875675409252751385251355258182773370394019036318013877257291993787905941350165979709161339259516298758546682782948007973749996021984714483364693665884726280387757435817121768699424715488083109365318996449205215668368253457452762785435009942445356241833260345203335534779411053503278974990693311461178751087936119847606068212567906203917818230974658988160721347519697272536480716211351492699361189466263727151107726553410939292310653475409447564057373246391675406175052815276743121562531890673608544711788987061881454665561783468518420153098128494449049898311790594992932604122169702415900804074954398818470150178887420799610403731957651669725362978629426398575691214695279430422884214266637922405750183675633206206056556056746423582024873212527462137388447426907430719872217265853068426866718953792130158064096595407295407559833759730654613648986786395624113647863061421423883105741309606714254166307306025967993364024159096869057910109922312888242401275115445202590682428276578033570064719571272895118253112274280822166518481679904543560364464393830732724783205719028057262573989029976805380384905385262487432403212275783219694006024656867607682238226367612310908956951739568042732323140485403770079659326842732802634228346340494121650281194025667006031317831142418924277619111648814287498574767693027219992779165458610269746426237145743309691529294429029944912193225415810338208022067066601423455300505447416993943643649992546230593530188567057874017521531691082137069307869406990304973953665599619613619750980225285691727760782207512220703502070019454066432237903725705604472029463052054084180021366734675481542709509183157754851374508163016128059827837266058146332399469773872123228788494716386811509088626575822000837790332715398919785177614113298618012083792538958235934928689028968785006996904812470863196029052518985626193635192134511145636872040575022936229196053905914870695199756513515379913370530223659240509885457626494660084195842223915529901610976317188517232956896972726462053679111678313606552656554547625962048812074630870055928224625814975048464148068261990697030121179552251031039992884021664818060396050339618974216505149571853879151040220561629935290425274563826628612887756570624302457730819614465270550739216085000185995595815706011539174029195558675887636792049102959107619826207688265206197945761257544187092304252430836628742035272555515951941660335402828864804197134862684971498967398843474530393388483426985708189027676201328976642044409519931380670421273598724681520996047725520272879036822567543946894858698544734420935290254987003509132439180392431678219251765146368050995912761441108671319607481552729613873256389996982379835324870952222447859101543836644399251469445209241201728869755881703960837052348898944487025945949461716226144886829045246396468035831820452772778766471614166134028889711139791701817752401465002383988188752425797348332637593817908553834766746300077383809885141801876658155037754450629062776665690155854870558256697687607547242114855330165991894009042163154263300143761878591944158841981715987192067033417152205955427938084477858957215806429202149861497331261922257905265426037057833908133454076463291586794649797568647888435754135551103326226307578714686776575634145577736591032703406054174460630650301767169453030352651523222573804613859341983237747313363325680428446679634682110501830052876003799456597152343103140683201264759489255052690450467429493955994651107707173036737913763828494077778247735967182373260832955891114323579246919507200876253811087351863167264427578632409815762906619055785270521225018235763017257220469928089886678845524406945414808415477559657928147615976557519974122619361542441588663312434884465878488150116349795062931741949381056829919000606195834918808302190518291125201100868103636051150165474640922254447158414394575924108460356385002527880684991020938948143443930753713865466238580355451357441555195794360686326380287742589679962216369843643006260193756579246371100362991589843643492589060974989065476432297808591885256239489634058109752656066553885157434698150655438371706648074238659369707541003673652102496681105050688622949987978423998942724250889498794837964382114572116600382806623337729582924630672203996314715237447774041522533394208792027944488137250079257678825007820398710155255322761641401712572802766437328963488903490556531005752830504548921146285375497463537528956298478321130309249736819538666513891643312832497895270811161099614497589416866519228495696220312520384147157653556141059193369027532641329781560894567641541596848693485514892482390100565052303670143749461487253406724745279423139633242155805152458780689385427190607156579272109938677938242427817576874711074179841490580303005688021723296388280658914169617158339180003450922628262775767896814675110827959547026025432723420639209080947846864609357305141468644495455349488441835801022495966818908735546330274338034375296765232278730136377078806160890393401572753710553475393124730062877111117412749979835869237059015637780729765753264217018392909388771965065429724191917981213243697842037680952216135230009495691202981126833005649247771124687115320476126744733649755776666229007046325896292513936910533233013152810109647840719353664677287542445015260670331137008644305572957810566877880700984021811749694655584187253602123662174197786445370065811684905131028965226009366399335523777025403034217665472455284010771979913140075337313603974772118568173108003379062881546463108026199045403335080217466708565809898362817924359238698446106093288070682816403566047265115199093212520104216877607996199303020369824086682054332712592727258565346718631130744129415483752220981921883187388636868421391517753497351167159462510335458097495168818173868541079823870171761225015023475446244553848982845683458408017738615730359987871054148116356985373002433870936617000854271364607851127579692451171106748159983753534395749275088507360526119324664984774364906569784164323598992141327162914308077723331811714766294674842098738436591549656949761811346071985176401493412179210001056135212434666405927988742773952587631683666372193623469997342845647090882601794620286529349508369799944352879473058028362523391772285064760372557931396114605123287931413402400663514313012435984481194687391654704241748842726210486341437632503981131863945339882615940883629363593197673552870983486932598017011482947603507389715212046297275281274050492919266431915009388470915994282330977663836822934478884296039628382003201676533620107385295652752442130210539478713828415770322852398058168664343051887097182330245886586701169798649458092994767603546666062734791273125048400701863530296007347771678115593248324794074213505360943429926752969077108056174624507192699089515015862737799292685387423629860105053320096034503250796564603779266575486291315512715879985432189074276550788598200019533189912106210805560255069275381522861739917842350703993611273286077050025099063726671652387557979397505618195086494137487450683422535634448660705079341513625889897486097107486118895457401461702776807623339349247396368808649380133987807908872519307076552974540294721243241019812234702748817511716526083225009723151485470208422639422865278589159337026272160088436404237156295698881015399653000771927171680345041351350179264813329368946714966270608002525513020067457409657115923882244243304955683158605778258752645127476274009647105731105521316487294399346014290085570139841615207318464482178843019413894248642218026583434640269608198442900090826275905724136478895786169576704813364953941353714299411319676291583189954490446283394211471171869381234311505891507039739272198726363344892072132875214984590482321432506248294348949454949672547501403810084907427983099793558867512944397988735872846454865550104612743988880983611430947988189366708304638178375867723171039557870511871210218660833390613209376484714248916306895826023123468526221032279385327304964653872583645576479937932754644682172137577184298001716695411762797787029142576126885596917435966319434903411561485234722863736221832153320235412980019039292531157960585648333764660915999286967929515808182686699064710501064965196844164561102701524385749994091935365843276077154424030474210772634064956638702105714445056629038329718600557510819347714582983457494574312654581664867521205903581778699605417674197259796838339508748120706618769547366747483194037109925430843294167847898872087552294562898182908829318230440438975998304623280787087331606032296841872101875975098448696905427266727050559894957824931553297152038113973305737116951045883434394816123984895274098390646275320021219373203829502808487105572133919247183504566773334804814534606248162856198466570424733836305883180392516858010718980973551588921034066822267499400003832727212003650377094817749891347021313329234151307113415395249423577407587021991068475498104449762462309148458714174702844601492219664861263460693628845248102315781593890558508670275018090039513359629596965060930300792916414040007506118712864889563832912726816858434995580961188867901693103803165337663879154009019478823931424822103593341313397340091004240841462680471768373821479854303021139730627361593327898956843249241130793371196007718529954802353382833444263921852668356701425952407951320250623695528660789902262079524285765529200232938608482180116115870332505410219219909361818623112574297676614557235061347302929605319681749250953830835662690875989786321720895852341639380915030252057570612811381092943816434943354265972813286014321743263208263200129499336296519288009197685936686336142795757535649440660875848203272393138596496596132933314452239570533781243485003242178667856867860941179311901367242220432955658874767306764965390995992890077665847803523308291351005050805153492371160501656517242368821447474862470241004522228503236189106624637695471090451552265250036212155042408778516877133918652896749432054870229573688659525702936336323999162318105734666662180164060985885002811224244360273774094125758308310963470384573234823312053243544104596918845249682722412272563532385435405084451313770695210282027368938272641308642019939881361769981808910739566588565570179530117527682987844030529697267086449244675457961508915412423588410866027972094621686364335323232229159708491770408775694682282306038518309306803066563454148398767974376132166425598055015127325431493435316191285651504361942786292100978026382771295279759275144812216863694722478582486854485767573289102436631792197603401617206053215937560253330475605882682530922072033087013520430893052971602722164918135128316521941240201801602662651840385895576347548671138353960439194065183458481832294996912967179943887323681543751864105145630475270035046290884168275649512918952529434018338257797648171048697636807329785412084861987030012445250469718880445729106348408151776878749931533526241452576736682327893626976424351493189466329626308032615894896190761246806366106284971682889140715598745094569249622591537530602042234270665180078358123131258300469052424121772118187996731763692485587084447839853976913773294428316371764716954637007959354697921045618223705235050455227113126077065900725762721359399884844896574883879081671859890683917010344161063648874997944234342392812677771981592044948372439621762706080655787456051623403049174127394034884225354695198950028366639494581908916342995513610211958479009935580577384220293581020564697928281344925088501579827439961702476988449217131521930241891227981237224412547069419793694572278159456046132284472565066246402613971142439782975219879194782444803857870014323925787294487509644225790410390459173634230882822605544006766189650398861221022025785407740588588177556062726189559208472898190231542795919187118023595155225124304799364925875506625958094561062382994780189659831952026163412567579831356763936593038867450936001930826446431538848170197364215146967018071915830460509855485212033573914627534392755390853402231697955922524002988820380563469000321661959892085187382404483350782403299092993712841494283981359426284478410143022849326569695428680189263543250885062949664659290896592341697241852798235292596229624060754323763584749529638490079603534405969776458888423243604485307387801897883952330457926618466554908706268912669123582090830933798180610647265294742794406878445256815074486621332644835685056986502518592424063520029116962589413057057359945969903198989959903139521043602191543474227386541877876370960686869513432017234126054920281528059672904487453271730174065492903182144533457831608071289556323506991964060094798695309441197177056904996356883827182772460914989764292153922039360062614459060148942396555749592712980038703984677999402138600208624323091693570454913924308318780456603260110619088214348353563370436234747906538589400481061009600691650745551847442691581847403164641017805886741379138042482908805435577617796295429027002963766489119685232661797396012271516410156562744467575559321757343224569282678717426355442511637547276596866548979275701458743982655949621213437995767187436296624716087669894825007849978838122151871864439734724866191686469542058345152757980035296699942923421709063971431201505898674189623992299455115752695898538832409231393703521538714496262683136614660746868303425605826572108154809432207338214377501631584196552782785904984824173588057552918340625223493272531970443341719804446390153894457823383257481391725657877115469635417773346046497204113060017462955558111657414052865490348753643844396376171500531035599101222392049828477484090118452172433637346675802105125401667789357509406639342046384289177911120665525329368774094418876952058053211420211005148674831772457320834037827723148379448979726400149029597973039997757608184829036699057200011029068789783725062035636728408516491994333894286059206724572773333028255303079539911076229827938694719548795032835174386691653693577101317494397364518016194570478629761783618555156509884694160389252180716738223991502218166256813439954687003718868436354467484645236813385337605757464112015036667830939592005265085012075254989027613264665572082181571880944660069196279187634403008969152495901460596416258129253819599215644828505443644636861212104617058275734511522473282332919128834535686963083152528961288172827695411572450466758388644875706478024178605555261023315609759914891411296266722540337366011839939224969326219216189110556636162520087869655153028840833854876116372932132343485218106622415127862425863883819207605736231355129349350236232174201536578902468105887910327134866884200353529795291267724975952616683719563202348015994241442108795455150425583333152939733351490386622365803216424292645033789434280519024567509451528591384201452911687572637755439985935637893501428349528035616728197934159677017731052085414773123030699316855243508954958645715874807757383869905790578444225637990503245266745200999755430281646935197904326052185759003019622459981476852212739738674316394262917242797847613135300322626155654354914710299824140107379148880294845307578122960551843771028692083299006820735302166126926133567245689854997432653864895923422147127475987652596587346800464718506813768885299136197945116236835480777331281339664281929886840320312572848679056445833378495487562156356016168931686743928265177005225088307866196164833027933954187500109369185089585770811714773382280714200521737328591960246746658923579164548774897438219302163000852203483349888442601923656316490293576524027371991916569292064553272132947173085630878708797403790547657331712944983781772858489591737010203797146223408679678639539959297775777470020179810183420569368905423852273698106328466641278592677196608419940800806608960091268952586212222975546679120258444878437142228718003600584176693105743734758935082535428314887643639069009445999926460840969791280856337914691467882323228127140345138721680933418025938124196777384076059305827495225352683254589111764796431928478893779920155604950632427772911964857503982859809903281223443197918212735291695411820031685597107410796460634947639183532367847670000153123228887100525517065351882678630928914887474151664066385403867650905987025985711449937881349462203265586407204140225700079429434045949009354553709662739721287290539472148476819440088691792762272520724044989895915977469245702238687843649379196583661247089581698472519678940131465162071336672526651634236558072445467349904881477921058952549253795170279778487971262894114502259294819378154364994277315831826639904547384298583147900884914088712948392325061143496384159430239626292762158442462344045155128479715441201323130921561097287369829712246249282975101564897824998482868139405785357149579747327433564404942907136344847328497799012372654672943250864381809374525995854368953352781384994795701667063218182217132192853423090253677242644261716645688068643382823323109655745507045556219936953119616273838903143463450126256754051272260073432621853653541653771435230956373441314612119781581561449782622882658586931908035128035381080270211292255692270023788860477362496755956469612782455059193570920262837581774083382922481656332928753502978018392446854085042129188713383029429448147911587706446818317740182403249936700782526318243375591916871931650950821415750825031164858761468296859336658401276346995130958874152534934750924366302732165201124197992190436191065043390737279318598077766141955176705802406166582875572126825419367272020017423143574212038751192549371082852720354689854191415193830734717512975758028970972097493871771086900807907899561384018208993606496412381105802531855019991056623592161481775931222143380209286509353963061720853699641291279284796895424376612691527154244892449351168900768556000453065456518090127870947263804921607064384148544651271197650658325896110412314607302546307566454680696195175263729026619743658403379038797096413853331305046653435113916515612286941188610324009572298815967768671507677751638935073365916085770581940019727486006996465364341537428638175023034132017374598163731572687505468944044673639717952766078340527920778244310570024382262677735207227124405031078179534614236267763424682786987264922672227196810333475890926663448393631036850151160791458855969592686185220246358111263851260001118013680199296205585403581048779378361566138356649910864184735818258042148245296438650195519608883050474604581825347227772947946409302171544924060868338229648125520619861366738105689926064503653529373993860914512962811483602351172483848574402403373555708932554343619823753071843977109154844528669304232338401939628711014684910585924166609670605259950075328804233244224758541590811406359655804522131617845162971894683260864977253239113414157051663975016294145271508420146721052808176066219499394407587038434603915679786691850856254403815858018869275781399099783047975858575907052060015088891175921621043853529562553528579201767589421024585581403722447862102818975487248292972219094727015114058799907769910048453448182418490813025362540290100392607957133592612644058402917403981778135872826580173305026171119061744558103895342200191427411205821670932953115387614555241056079225684725136061635298735187578221730243224495785779527506039442539651261314499198599638747199562799628763488544247376852492186562878700327518249387565104605942478244191501972550280163735925229691928895730950796493091093354906180428121644477834560531337111901677329941972122772341563954915072147718822825674461551628629442813082418395963413028016012242616853298540315094465377124191833468422590196732469299924700332521966526733628429172934889343022701966919203304088601103839278218542735827847341646280370423092031298529409453071441609467150113655443548280150843198161876535931687041842905827193646383743913631601026372233356943807172811057383655123559068308068507121162475722666235175334693704912604996331033507151885596308967934947644699691333097581296538389081137327767538244369657507951214260736168183874502039330437232643607261592570658657401247477389252270457166886929101232171876718126771937887381989219252550011854882653704268012120786327188211146143876872297841088583201256156132884833068991649471266272642076772551740192326527069815869588822544311355827993298999268835308473041715261859166532945767452889370999741305155991791070738274768448858690963840425873580218578457233714220511147353721494252107088211529978088113938494851724682968125698677352291828635357253449083773902723936787047098865305348286665799283176024872597644759038927888151957906290113258982266583872956292728823639490948656414877805652163159957319308342204328287632938945925001098614335860315290766075164263969172538090977480953896211974537526548504277507357918176796051987680471059859806044295942462247208315268830474977969871974425091915984009257294180244634611858516885084909519377797684418932115735322385579814289719766051433337914373068685866270817834510993327756893021206107346160209301546995952713796591810846381327772443382770311761002158490423457756140065232256833283040238999408493760879803972287150453630537084241482597461786504276805392992586087115230084280216101868528125250466659311363111237336675240028913246554643418987746530426991716571126626106693424994657829187496896789172551458112398810309085384112083386672421926412550729396843372108413728093692018016426356303770285250709569319531106784661749900632776484928824907955910959408000698747101166353889493874981769466420315626345514500506484164230323908452750754967339788428281120331490304166016016375262252281524754906148300125018227894312871502338537795137373798343812104320283715026896968388277354929814630308502531827032346944512402754481486760915316538396346952164325333026965288677255717961009156974324758750334659594574513157867072173263846808449478783285769645227725609872898824376086197454310536730774985852442653338947837675578312906219324794387511081806874756481662172831657948323814657866054584343360726615343379871525460532177841225885079947229489223302663345591321742872423595862626695444900410235660348911711955992705890899867880791208251801129750525880970618390087475681380233061200652492460175843789021232083947447338726499119712638710815205049136689014543244534097773699569639299154173832548323962576161031252277062332502767592852846795158189185439321246130841336750005977072456169139503995220494552707023945339244962763633234182793433647435672066688528074616401210705885540492772860176548610731431840932501418803574469908452981203643390573334603189963266805575389286769792205098007600889108493770370911538730102043732443841931502722566739352414868737615159260032543401232501148232370005705893220359048941298100889120940814457627859891069238075466135813706364089926447251314748069743747843914018485466462423565483626430183399570218904803061047485304806025783281797999884196897199654300494817632855620144094316228233656082327302579511994666545033739052297813518848235761739941642588820104059898196679988268399377901099505400802850049442562361710388650402845422042341926095791761864755913500400510084506673064622167555196550612367881139821669715946888423680915508103471515830052043865394031747626709076469261552552765391222322156540803931319454613022360071005181037366663691133755584476633297457831590034631443240184893987299538172449019909799041536253864872193148866595000694551419091939453051740526685413012604512069882297571364537065971765534892262675151091074773396437394797694934398683323953885067080772089845815504968554245375809963568323262927062488451893029604717512692981361823005100727266856740651239001303713949816658733646203395227025597974987335492056872775654631957983153586932142307162038914229540742090360178286395580462630090165457448488737050511140731950137831134581770250729605992527148471273636281150001807373482685694055793957536798397506234529493714805792480852283065273814949525146601427307412042211921381041511047226784787504175794187304009114113931607182409303912577649965515868435687175268014973306947465295656657747899500089173084553009070291436193354064370592726070055439093531750653310260332272807866460369551687892387002399147035502445989718709766646043878864064964202341279743753903379427079462560425204009985501691030910496005396003901241384503722675672897852814662054475685374807298383737037243972096159242904316515138465771111793662711558797018869183622003534529682875955379804829549247304540091230529852729809125968974410211247264655216049154993327371287721212606687267775253218853522738533088925864291654044974951341783841187751249376667980574165067887087932279614638027633048745006559354790039288667335286938924304846522922145158759194736901140439776219356837336278907213251300488389262051093842284912197930263283877436892068293896966959451614878948754981527133327197089425154426825489892442054273746130195443822604339775384033658356266733991624425863459166174127034342678088047630277368948453655326449936456684247227021337460646299449767103684400694347570309618073812711724170245854473895770067587795833296962249662683948170640260552362182522027756676091275354695811702643512749559563095123982598494602757062416746793311128176768766599878103593708955221097601219967803795744508144233239647015295839304927168609916499669671593009624979185405320318218158109546198965542189016151413641694511695316648469787497425238582932371175547186033156229096041534595099089249553508674972832798691428733851991141467315103247379060637868497721303782940882942793370666823842970058986423976030305368075449703058686818302283539372280277991227032440114670818382528061355025221856016494566579193366763604814014239457318458951435237300753076469347476641006820763226401604045326456402800875115712843465549399253977478174800198602045088700232880810420615942989113990994184969164251224048419759511600138551693257847522586651505768997804185171647831377973752334074537191812736348601525581563066307890566170492773704406147715073677362313915158106587679746646565083793816338022676479856709809168986069389130228510907910934811999885855709598872911460350049330856544444598758626150345499401675997896412920513334364841764249479008369439509724466619265666688056056595935273850202401817432679395127703757283353890198860529009206503451047557492922665652666492526352888589823324638034643256872236473847139383221561098546921768199609732905157765700859716233067447396106383937112084062554962569508803587065583429557255096434189003783671772639561344017909266474863437123009683024398331480636448583334546979285559741054429894273949567023360045926857562266638525359814047344340318536687317631646062452231907489712961886932670609009453095047574376202958286600393670332426850065862436925481986058575584002088161136483686708602974049545178907542736871071792633151401839714539934332031571165790883597342629753715060290141902981830451197472069424840116693231923840481705157922042162026379695178685283624139961461546312498232958327290617306165252721385769437428217997596722475563924129144089784699747399135442054698095490935759446188630730973398340767802434155093796911559368228912677923525290112606416916285175016502066226284883931289741555193035830323895896040720512728856121400103631926370073410319759470122569799455363216782556467855672303262671252237864883666059577328925621062138004026696994152325595395497164957286081221997498163121921929399848323690470760795972707887847888789012423514465850975395498366072734045857877242223683125329392423877841847433786287234499201147231017947641552281382930535435558211667791919439981362955334440426606262706221481084749863723672614548705638582494430996692561280256249350866228283540550858739916964258669347464156561342385938243556346444685035710351390888909905839494441208968321230424990420879122966396042282738147947680984067320689915432684367825292821418473969959553899335472407171074084894657051684314138127452095618797595612702750712268433774960479091824093924889925430269700797536503542425233893198829848126930577162438526950599908118225251987371129139682025848078380489346908123978961074915342984624610920037658715131375304708624177807453682146119484770899653193101698477021619155982767282403553440205392791586045783535859055234669638083877285124937484371653340109822651727286323498464162075513784086673491066189409353725832037765512154553319702291605688944284539718082651859918886870861557279784423459723318246894096552870380250312686351803156756287282747583406533589429169774799649258816504934536363103289003391489066088681131093677916241436470767917358268065911305181217280288538558384447293899546362182351744586558300829373007573869658432729259726021983155141135977567906409610750565362692665569023991213096422590556702327595186687853830468376473218712096177564295895371176473005817729628431792747535118107523812183243199692845549296875795689703792086921082703574718670940875716516778741399630570882957044191194655946823397952873671408395574310031663343709893133200472924029427618397177311214204820524938736844491001101095796588295650949838128881918921951670726692802918990792205665554300358298468677077200543961882436842845138041335928687838618077044716516173869861721241761879665277320435454157219610338537350170830165186865562807033546639578111486029421705260369759665708590621455769766150539071379565676217191308780619976386835105267093207226071772755325605209451281524356655706973544718668177587759756909241119862228584107784330128943334241685222121805613312987757392671854913487957761557532986800507323092638468252688077683609265360287588205005445847765615118147067941426218344956141973247816263513261805761125552175377779701134431742146125816291178700752765300838682184269124733364368329403947410366559496030825399804782085545504334600254207062458484114663765502530716916007687905857355462115746225749351967881423467462461387832031048752246625062074266418475257072924188380857567675664154158446022234968171402866909099012252765783710955666903885983456555796349235837988547032276330636424597072320970830526885138628745175067366726456867662866568350401091255617779187105006061640046950140760060150837456279660572318280873931068809331692736480287504092360052680999811176597186756151382012334134785046816340936951085335346411610098742963481533203206351513768776306396747843445272795124906093790976882818915309175446542420411466815455261619776505651878589058978159680537550578837614966766847197135101115816493297976586690559419566268889237696608041595235453978766021482562045270113774063559152530127433882756714093633447577262443462239194953002630211242399625356296523209937230170544051979369140540898097421988220101943545793818347942804204010595376264753246715080075176025676805620765150248451265792630992707827344489350195666272667431649239494790872770767159003696996905908902647445817005289015260517269774312389971600685919016281449815120449064925729892760361591887322841673014702147886800277650857347965153561817432690310029794987328446207067154058971994408569729724070605462915372058280035498125961931001417305011948150520258684265311040154776137461372972077217058701438564036442018351921287208148970198135276873894592250125679149654965662767918859868888279927300618434806661383112080043302193506131351968281373426309546134975086826323190113379519336593366699583446620701544820127715346966438058983771927639184488262424569775992601855326109445635457013641954638027731423391123802661193240258178110440856764061133948110845114690232198296380328834385555652767572094738373735473960604953444546308568611522749686506823322448752280575316773393500173583039620161584172662767917011475560157372570926452780522471355496008111314678354227407499912463207118551238277558788823268865952098320312141768198107089491997064010968304671872489487903829088695404982337739514442700454216344264665368425603719936696273300203874825556184526283488597430641462477890926627016321908644164243002858242814146580188143822793623609276452694534599816626976727430589617619040806689047699531706456969610823015389985695207512629199971859740669739550455908521020668168994241340357442758441900088333555070618413099874269390127101850190370079821007994775165083567458274736901840909071456254188351477258318798139180878331925239998967548338581445125819483803778196501947410223338987486023653210443012671967447269749892801721481005945764062624016706476649312880893244167584487579085619802127795034560869000285318060034464708243672516960443906293103594085944374357504575690559635456940326653484381662915496858942697912324893980687897666871720214630777160654097962197212842505564268247140499804290171163251516319330919061667312042983446806383797471178457596578247233758548878695941903378123934253765272853425225521668564164826170567215111644870146460922022264676756533567320548329261486411997216127994297922864821965947285380678918367169796355745009061741731087939319353814722701687366822310057872364427086883465007233936862301551463700964856626473281183046997473612009539017673790949905954524332456827470008597087803785115266577173072449719142765223792668071805283686933342881421916731964149708513378326523873255064879995642517015741615839003660918689027862498408373947183303087332905600801178614411982338978811004353112133618697496509949658865366325512408349072926575029845730172213839239268784337842533914928547151776595436172845722954963330007219564569180983596852418526575387600012528302585680922271067518128232634943894746066269228327261056935303651839556200553365761069939916404329800289261113038426502162020285565118802018071849150403161053818104771738099279536550333589948806770079849916317203341379101378761356526572368964971509050274858421934946975355204169440728344287950416520236206777446743776100746696809631429498302907402757139349275700002365302887386796579463161961357429919996821853871453628769872841502298956356015359015427330249544937037147561116070474362971059987567583615590645532287489230162770698496859068433489584581058721787449582905012644432347018446628643188852607425549469365742696534799297067148394998616359297197471797649546372096658564145917406552733369174255195829956447393953710219146407306931555300477835925830965575320000166939494976930491595148009306115169421668383519359536854176024804944912730657169710068631499040517125306978876555344528343429365066836565046983073195172637428301903972971391001257607282738123387850972014881982709838420645821355810865838673856937493533116720278972243758205015705986837524838582686284443454670017099951723320961550006572088788120588726808914759958346145890250762669136100133108989989288552816600084467833156509767064107153774726572975136654856761039689976705283317980862719099118176319742778858073271868276541486560989070724313700957818461257634680700813356520614145463158612480844003105340518054661633418224105132260379718671215559049653426292663381113723478424265008347092735155879757646200256456748994928746399479000773405891043917288614264654952209575716443833308167583860524922636475304026973844573237042774792363623939215025420082157462813685370381957102535789268688011237208548893878218686145335108013321012422984160600650529169200701666643100222634385314334071713257195114570439568424585967336719534323882526423187070607476376496548802246280998349437820163989288314633340802768912601090107538241431430003572411802779768630137730778257869268656959456650915470911215588071344856248287034070879536729438183851020266065648387888288079418740846618891488950491463947116508560244269614639101431524087402855304062001631138106194796408806367868585509869075775364799544345153019831305346133794357183675322622770165010873484399491073903234725767902232063394248044098444419554918178318621604662863684778091866382561159747281089309691099630543251218502134564740165986866844488484214566078975454113281670386872491474853504414007783559683037210464196907047865539660274649684625840198829735678136686044118146980965458401150297625669278248798666159190370897773257643001190592593239068618879392982830967184030416400145741938296908352146737005710475295068892707062559845063009799948725572600857332769897447767015778707269077760257546662085294803028228905545569383813311390907544908873066756329098006238128495398017771789702382267280869436728880819312294719051884920889979283609696193454494797806698168191767502627040634652135413317853535645757006425743146407895884611400293046587798778196153745980057998884598020371259093664975683522509674366309998679696558576886953462329643750323883969649950854544828654941658202618182469413478326283343264394162862171829729903816196714632008275966925270406778522045850527816709942181668893047959236385290216573270449442727726415747236245101349761083123272252178109578941790951663164612088337825254583159562734236413204732794789472766709313433041699171774937822245307707983101319240056814889325042280724231424155666333657870163795241042679561665025878136458942371380407026904019592780760371238149540294285018040881131672613453634961296427032957371579205591228995685717088348914840811699725762722954639080439388325153052284135894780459166527562513979937012234466224397206571825470431613376649693878899426001469396316273159529159348241539232364017933999393993901007081144952334775276685575544873911026299186482233661410534924339254517199364748097925171464557593977331535114295269287533276795509605908869907760804824457134070319999956127137594417117425368247663306168759856819188095206523379489988015416255638193650848305189898198303319986564603944910444779178653718879332808918161931865849435070092033779177072555348547110205893668639107969629403612883274747695442938028001904315883082831117763923460272200644875773780952529869430134894361305776847801652674762654657674697666504523689043704770936546784492062457227711621684099420432891237048560001723520219198992202726302822129882563190755048905178132146148895841156671807128915292076509401641823503472011457306577210220718817049125083918774213096247114375080956954636106961159023632772797676532186248190439520092353440460614234438939998828552609515301752919460182817228022664582600601752525164326620969329148262669603148799966830058452546884378010842905367501513608884915167805732985201120682895850012773909574655983532539089802789445361617307609726325171743485009240728357571978369874581246662816581481351722533904243451835928737969681899930919707380840234702574574096615729876349258008664260337912531183132351300822325587842067732323988533000196691979432082486229050552574905857205072575624890340971367700769935085743075828277574809049406831512724656155590451994163258956113306275484957889280774338187846641251251391098102646832115343985154764459066666992891620079815783150685680394047150746882883264578419497647239821524880107154168872259867283970148989246802808386457863735257730055243159583112377539405007462145511319241636869123921165709247467120721438195726985426421460464961817445662379772907640603758971766919155042382708688670168303606877881754630633867181758460632166142580492120323892411846537944280724909610992105547382357287282656920045818536613588123363492720003752673664389343384086668501599683664612479094949873062010641335257744136760708476068448837004307510071930698473680072281912155117743433356579280515456142658491813548905783430092367235783445867745899938001522439825479644214817554569546432103669908947832864989516671174364338254067402896127839693433537946449545163886851810715647601279414767088310616754317146682733111960970012636087666994850560466781508097885300313212400431433618279932800590892701444797671835639680756855996252007222886089354600129696949058045601429158952491365124302112163179198468580909293673987014035239076663690668442225969940877303904592440833399148470419211638312752698525244887048432411843735307858353358231356889704227279020561452123074601853666110834215317564613563164307215327315748459996626996738463611829777427988225046950198382946050168974569806169022497037870983481180276296867871509080195715130253387625916381627960839299401479064559078098449798100902211405938426179866119331541610952955670206867768007510772804577836750462420518927905983936948131300525666469005072511557218729037398680919879456671200958874977479524176475780110404212713479488058591018558476823196780619352236965614075427342779914070809719007371022716050869278990597189363777316671031114509774067636745032472343384892717305844371604291985048798002213638578924453783329451890303559337454195383405936076475000149973146182067528294092041599674809488088403057973157128347895396742260922248894251038133696715898837647312996160082822033919044895292466223198870198736581768833052049682584172450329679254244885228005326281898615165231256913837609755148142593934337910119369615764239687128338435670649958221339483744607808212944073206442101777672255776762968580309702669881445978055562823872222104792994814956211941317530567355368772176096232544826500361268633074573385879428110810146474578810684978974451710415032660868861410644143938761101061249714899650143627685083670032854573134577156441855892906494365132690772070996680520556766988042395522752541751492160929664005173749083690976505901258441238604404428915576746849866340930764870223916296149155343897065621245066599142571391511034757531479757528485426502786726022272145523875366183912577582074776499732871205414739783858991977439949622972994062736544714170802205131218051755553622229236989075923738162233908763553445477441044331758796333851323958823238967689530611233160870457092480489809426505522885503751950498984858360176534005434094235157131224228995974383376025962744407322130163340360500076570981325053908144467234152728368657235021838587911095799754577940015632138642602391866505494824266465058597101049622608856079351986783626080370187003724477504084336486568323491781029561254062816760558581865902376324772932021853646708362575784226386148906473992754674766158174460203897249248938693051937730646183288963876954954110707925260161104044826447470949060427146627093562869778432500543960259032994628411518505488956411940051032634010010947161954558782976502791773395000459007371789884135229597642004296260019815680424690212211029583162395493395620946357254629024020054512774722156946058568540233275911405223878707355675400342530735009727553898681898393996507346358341371752477671854983522582801774011817071984410702363765833169076828060983003697651085518214612957939879375865864387295631461344040197053858240959513186933857970212917442612924963054287520741551521576258970065054380250451883987742442891868347374163345024859705849296525755738458729220566505669085440418915534741185659800869172070359040730593792644058621781853551514586737891636335261620193015249722388558447719175998632515453831477601136475442946365424587716559784477801384859762339007621172185181472707963081726903362400460398305893523157103711066521183816889263067620683672183148545040829001832490455628193841524351218880445276811207737760580355891471036387003789584204255579147119316043425460473626992835141347212663820751514975297232227417501118314625640937436233870152110619088563687568287352210781842356492850918942850109575741670808690170767316773739251591989519369506420938010806185469420051769549211315261152598041499737408105459950760284810378363631727315232126732449066234472072858652729330231742612599449406634946788704461370514279671947884243801003518647731957812349648415186768168991138691383529550106207472321180346792301714929498125907071653549044886527696758171895407846795115369866605309827843167980125675130940799299105178957335018471268806721848768897866723755419643590539281082521635879119925304837724453955313043120047882530938297918027615264150055944266380460575220774598645401867992244881526512026261870154099235791442407874167500855814536212211537503174459156398608204400311637202160091016300179021731224364341876947889348746688298710624080793030801585581561077403231086462108660097831752186282419103760097255068300746302130614835019885774358085393326671892145361331420910608583576467779248387574719919030115744797020420778109330219054898175759661342063957809115247402169354068959091381304548214185938956136932610559809966301558246924219146813715796276078376321479610085533818536334678029195727861992671316144282853995996129666071169050031778192175962079644914920036801362879378472356216380229787925956411999137763292957022019037123065140338425601691602242682603771936501581521840447743704970104668449422235541278400240259149950716610047463527737010902073608970443342921285346698474473349043064713420036580020960105351023566594241937358161470867151152967928258206906239171654064191877123463771982198999945993783568054441322964370938678121402171869357319781521991261068761460932912579718230430454979052419613370745302437201419778856974757103056676550140374317903888851666076028425499252838481526646800444839304173004624327187832026595577633576379834399772583425568488345976232711443280802320394238598699189600479095032526801526541085367549432214698192810502745603997279801963141394422122781797357575115154708692185580337608636295060501971412792875643661612214849172639499228298494508857147889920835476382650558352397782516997440972307907928930067183229016943192392213790769810457431349488108032526414900330321978540593701347035422846060162762460183582841335792857243553077905202839800565857457678129599958815673089618441585022821656895892073825307747668229743984945868477506153345184292598560768968207228659442475011626686156654603704476057789508478459697799712125876261351928751959985651566856963979916358371010792418892371603255491219826258613118885190246727897980115998299326667606050066488220747976115887678515439009517761975926048012110420092028431550416504493878125284045436664847114807189188886918945010585960856083053735291464960841253304100727386264294384377105728800566855697315917890176819519070411040237403520727247494558900031409102961782692619914661830436118924702450180710734463610997449320041104170798200729125107233839069797848197540173955400705505296739315762161635999963599000002531216988027951175063910047565299410462965305859462706406153955109410956299638526110051561151076727952708422900788149429616262837089602430468471150016608786364417594099193525263864962185080956297115717172134479628540860985231921482591789788087883039948746974047381188746145007134667444005699223756487631753112480431462161145195532489429892955123765309797032722206659217142638776377734611555832987307809835869020098139546999416335552337072433938893044430642361807881439527785440071117045176891674201956671274426921111226440401018191300998223269485516549545314532194919364504367304793552947700268315565632594750892075801246277583426691746543336129747355971551532771762390387215055773963210682596759184836338052674599654271384156447441259287990584046327885184696571423700854681053729216499132369879685839246112035207679627410000092628542467684508875091675915350077454506827048216478633807927369845281428540036423043826984803693529780958743822739146521933817901615336737672839846025012442774727135015699412893651418052770817529700439230550575835959896174786941004842101216906179396940741643482011026864537081356212761936178323071065511049652937951400147653576426618082678134403504570634937282867772591948269205209500705098297436547949194340709027017595668744480760130176039907160745808813159853272004333183563382392134243878568247571542945811340456447754414503335588351590159048973543061391609795480848883181449171309247392560366700952264190889618068330042679480830979662651143186025330752453785968614304030530078460098063606002874193244639787260038269729600086951051966825909630883084341798084852725930009444489990232932360861778368917102321163448771861810422023819295591903560001391896090813881395982066077207327703898616861281752547430505536822868067163384666396470583053756191223807642687364229223319020082339969351752616256360428642313147654764889943353328565180470956283753295935913211181671710637658278572722142920205009697958335672804915232135356611268145088818593473721338356488026203543827570876273515195327405902027830623737161997538833700036894757645636028190046180183864639523829309701072321699433727491819878334861769842213876024279241558487266358953021221117387222547482016153125693958294336082295790593859211920420762880373772892829700666600693789533609684967394124528932959108977456228192898549993538694840360251811003175715840107710042312708798947853920130139106684786183045299925776782452441927942787500792834955980644135364993691372131756692611629005407057398048399188456876555099811042957710249441047212685340991641495205723294706445095914480543415372349770337998518800783493227267791134728367109035845629147912974141693235547541151337970826498849509389430652308013161437884060932080426355282187586302286415534847791803886751289580257954429395007222356757196028844114637612788812962442157389825129755990338615364823187893443486763043640519079743829258829821249050880670817274290490510746683694639745538926916237052608629097980144339718061700427935626721875264201286321495929050434701232392394555309558507668974042414424781080586404404277060003165742773396390862548627224479666620296151725242095494692341734897798510064166320895841067531961572756921868093858919844345309442924577933786513627428006108643177023687842555161652388412037445177242744282739126057822741190351757900656240337191818326002426235276270272988948795011664371702221136598927134856458442972053696250376981066762503049496478700693533942021441862282891138602632559327568850267014547433872952615391201789082288808064943889318864349838949862834852657893567456535902161763437964379821037153597957864733216852712924321024364809727131968999224653531585263322822432238277574266305855977949727943610473336422101722951951574115663296212444149140640096428690219147567525437617075231610609688873829923584937037110679628394539220890197281445096533080496243918399117888634208973904131740510608473750387062381948337240997093201920922789087734953163639133336053652141376801494960569187199131463786741714482662302731047384108396451325456675662970777046814014480929366698019049041735033179836188977029920565551103035572937879521920829681565347964693793894872556655337652445588765532240018065827361454581811121924846508043325445937836029743780202704361799275475921015419117005376969853250845961106623809427864213738282745867853765777661945461476076536526732740240376929011136276653912426530649217962289694460518853284452583997496058766324251372206162411775786644528209790278065436050726374540717278958779099350128752946664561683926383429549443917132837886444372649636092987104580827077357045003101990317767951305097396354980018894319181791979516829424416639739145419842577548718233763597176314033460713109023093944425009884476938412297503733794871865452003472706893995245884869965403653471977298095921261668545279742297444000589581695880962270020929350868970816470952725783883523878332091691535349838793359035058955540496536567782954173671838144869304489922159708074927120108934526546796714088782564958269100493284128283089043719517227984686562565955501772678126761704459068242338663602394063469282844203819516578648524492446314385642729297644218880571782025720355192550361346824339763912713703998057149323688877565933317940522153570760648157088203341018461606864862904973020190088949128126235215944172114491125166501521931321049531510624873673205610968890249788907337552113029651404812010936558433047569542162214189322367562295171928654504235213830106281550885831570189388340493116729019399367739263564592926559505197972756798755066448169522589120609970206668945542091666620661426179436818667254809536284298911831088062547994144294705498974249866013198588795416050329743867561047672425736021704670114945271639452550305405619580444132030940890713939094063729249576534523165609462694918953795079763559863575092051789844006404061033054135979156054721470646717573239292777392757509163195285439400849479580755191039604282675441086792031991293186949639807529413214593409280625518532810757212827150122123695274221020898212584654121761795414237670809583864497660910808031306740499391634045946224710399307990226025886850235169131584172430321729457464811099023195823509522538526280078156733591020270264944591188563936193076560694312127159952991320030708580518047084809562207946113560871348417522209953110562198075260213607768683335110777432901894098077432859373055348705207293594459344871626914400117456443881324013890410346607073755342303347379626693607380305785486683028996204898399960838575685970419766017472622882998218407950894177850582034476049893572380138379458087978122195540006957991287967694508219865985278709829300247433041418002994391443730253574017078084711099160711780517634751926373432644297853922810889827281380728678356664797432646236023851216976949383531775600575287430781121061695446152465227611091833048072894779775601957741837773183891900064816973470020820854242470889687718888351449662251283587404631694036883969290315022626848002346978014671772285341137560809263355536575713513566305415139504379424898025312804165470721448827360270244704548878495908586274623363269787236861117316117115027120597165323124306597258871989822230112381810834338822199286769156139644837161446536941873856716249100033663712431348570719158994080344077367189938575081186882690785071873399020985018263506158961174500339583618167171943907218590325461206695481765946494320523659465671240704558431478051965605615547540842365071535024606726915530850165002930161860177409039648705395438615162168380132784368691728748352087253173981330046210616734079615933789800009686420317723183415922257018708941595802654688785366287849711786352528341742635697150886759730837863629994489793596397285126606332275954620572802830761179453371541096777997505333055973876082302952051751208736481715841343324285157833148929160407515118018600874777069102576378230386892438135885747267512291225646734601161397526151314824077137317892484856812125798766786673809448015952319518296820713493525707095026382452263923569964678113867581520559831075714190918119474426555126367086533960944283143834914068645424429783020170496824120717802880671269720033273067785519057380044599125573443243813116605400935726866970457212651297768121289826294510760298584501233702593763106006049955128478099511649598299232548188725193252020241184071149466478313930784055558727492371765330258018925200913386367861736839711649945778223219202803902478248649650979475228477508195990407171488335736912606134568568243030296795286108017610776998353562604573267680314469671050508315864599465997214168595901765636803419353619849297214061271424461830422846020086985877645786858498588197632444827659819966698321781161997044823044576190698064985226678424330238804356259507177292085753095801946191829634157262610263176564397185809820361750896188804892014896159395091415766590521814789335350256195566123599941709682833836442570195793082422950140073835758008663729576942004721487206146838101944669937247902288967868999220716032980255236488404784299594867178334548171242907034241577385332111286813898931351865642503346367141671578485600899434363826198370425493531499706529992204788856926906156377920560156696198262093740042315346758578549313934219066946420842039178360391466621581466661644407627513768863797049122034941209405138779952956995671209832168180059688336696782040291377427346689477235378590694379996041988651162023009373317566573989852411374294327449364615718655003279849515387870325693249948551567706523816949613609171517747841538187143309951587713028876321891344882991434058659302306428945509179220889234903954973022899736828694512592363483319921643569967089917683825942502254011208584126089016240488586125552502253562526042743436826829879531205307141912786390318943935850882892885586649425591912899263094339355665505329705411790768080509892587212288830409154914926737785170217688367492631509578677916757455293814982215954842820163781467767052601420660245525273093088836223021412491560060155014966293312543340482870842744250810478709432305317679858007049288300439757898765527534017985486135603871693690093771219583768720890451962152585857547887853833699007774320588965686887228473633709953375764243108066819064570713093472990002957113747979878324124162374067985497779389782967482109299340047967266787757485075499109166699061951267883906954031232745820355887611473315684423845324204995904046399369750502896261933726668515790805483581267771906597598036504062027899398317930655813951156741647634461616676195335468601596162624025828740241271415897640633139140261232414003259170284744138164003995857409118267248648082250526899488365122211630823898345943249678868949194122423696320516338206424411467083813275853706955864996262636876349114701025956426945437570663620409159686662226403999258971006933903781312043306330031206681904444456434839916093056473154413707365288321671934566139018586901764049789511302071939207106234333916415573163236591086271342642334410158953928025077201067801730095092694665711904021809351146625728970177036485964855559828300557864109795642656109770221902245608793564421175792962966502765524748003386163026077954869426399154611861149653594826002337441101326458633306403783323889726326012073881464287626422715411110263023113639719785076470245187765946489937775872096502937088217013625064398371711737026863511028627966023931465289435284193857497749356708952017605808286206921333710884634309396177594680311578969555646431684295928439064858072786028618083279559217580385025935057531673848693287254575992307077896714871725228772975202195646038234309749083113017015814540253850490523091463782867382061835742682864152342668825282380518763975765342304165712760128859416525669463144549243946275990623545112289488747088137162756569631146834504450767817715576594431766806868716301529167867182589968767523293758217444704109799613091723513210030688406268241784280469543327829578044035197254154267485901089387074522354904703921425608555969969833068414414477309459537324898023561673246926034680778907163481468927287103159258857698988627788935471804601227219640349746575908391300911421851393329850910643953626999298253940297219518281413466672117885677489959472725430615555845884296936472525943229050750717221563447651904339718342776823444809569220276641999413628063193078080994667424991620106903437288121465807478593949470453575286628680608899960157048047916269365501633982182645733886930460441319533884888332039166188304514819520654086167000228578869030984904636975895555141915666060873172108404307838742065830969622086104988346185633018805533210194931577412620977771651041775356272130884883220523211287112862166592604764785052831205040772966772177459931429736868963986060480958803537860994092412073774838801145816969960829168673257104039915397002324487002426369195278178508901950615745595728268865575099191898946754795975073596336318445502726692489500010643790089936585186379258485653723752399911913049743233013800316722608081666502155929040923778793351068348500590590095362782589626824330973917995756803034888468660359480612835411367844327705589075136003234684759647316219435201187968864171302087935281404566850995454177848022355068000001769156290437659166438603753768310283459156844873805012221947183523158823989583096765870433745145293742592316628549811292957237880691204479858637532937394187467378572605004406345035256795343150114257903484718062755195299684713378499057570748101749194649971084862715791317368906223599816545208432432238003002508404444372032816313790604620657215536147395401519829962710692630231471642392077886905967938669728096731119372499315955574269214807891158214739724798063582556627177760778425909750893997641559946735034787745813974726935156971776281237490920747634075383046919827790190265470494685501605341086397431853446096954683662944786307253915030742586338510967156853433451111917452890814714496586797271926196242584423678109684931072698484935747396897196471110399740116094991925259694478564440418388599199540747825457893717994583884404414627316528903448569654010187634637507946261833544033341405349448262099284621349760057685310140984275127822715404654770981611683651018306343596402142609008778170040595273035025794752658585722727003777297269461741801844799503308722632790131771139821495630996145818852497992439300455774666645021415158190487141416224818166939088971021584451976956031475664827052914145828739083069999237523640263634854313246685265045416686570390698720326578686189210763044048810849527682104989554663599764355454015520967258555984403010746281089856763780678785548650666485386887842164448684055098787154628677785990434715699852877334756447813185857594531536651401003013914412137195056750390708514487611085767920501564487245768086562992504818400300841088576611050640280855038123083456957422262048086949129391080207659506455915783589174286636258494562599741062535590173776237430388198310665094291198678051884525934851402991501714999054108896126510667977728968683700780055453620812929789901024380882293202010049884521021228401198267602742451651110886298056243138588949554559653136065676941707643218816878217680212098975712889175353642834258647685657138468054085716031296429382629757973374038219761679588160533829460157574027940088490791809482498459296218800687074176550672871073368253571566729405115083985962737811014374463077231945828246454152090006132026677769454565058695792821500348072974547493914742303659657870452136995107605675705877113985166831286177902923969806657056923257335261373544690659946207180542290890248863028737571282206205619985523961198296584486462330648409807842964501303487118389840298650949412757115661618584055545692915114962065336606859453716568401938112852093150448052708993032293064759981767331511916600384895195267886173095447720780420991722483053718729485630303357196913302624279895294561259922732048848392783309934093076123683287544394958980935674257674570192165653232654570290394875589512441536201478530650738961835383568329488986716564699233370692204647594000093413662432370281322307982561316830822442986478043190834098695854132293914223843463916472764154197038995941702827286606239359370690629842451945038097078883577742769502677608337422197239564355960011688850174993006700171793667298383538709295636138589359917101157410784301857219188774208796081711452572985810516711803785582542453937030204610735792887646356962124394171135467750272984820700928068361596364749171169523484406688560032300970472281644240347133857432646721867203194434902823556774835660860552049591827946613977033927396347824159671764473071720342137076045100717282403292640731979683066977080367777463583589040917595790097056094707647012194698473778904676787702282640188134807910406921068477860619996714223452841972731815123484228848700872663310749531278681278406997743575711824773093551544240010854123000451795445581538131362256679912505808189028465081752388608289350782002806988283483661931934710972159521489982594967077645947322377139527578595936930571670509973203235252273369627283233121305914413902375463777448584683835704489629177883669635181694544417816806382635274585830374505799862693454678607894070912851929320013444441567596734627359264353493292835917297599893119505640341827657374101559665597099946005983373554835458083822295384528734461434686129755000896706979834967763084376534289579975236631588253073697732004864631051333359543104431838834918706049933105818138288708894148498373220510397122085186234114062491363617019396370956444519610304675242849261266789160896682079866864351181410520307733465083158867248491639034695628386451892347946362917335145237605115943983690630939837836484455715458134183593432592168548646176891523740086617782860968200505096710834942062584213956314462878601101486673928200431713644358282030319535737026208266225622702782064587212518422583756709504726821777054859628510740912441382969676777231106855519946123413642347251626640782844151047624880792392334758009053073348453464451299802278463075562732352496880748728676992646162304468135639892279671078669905952249948684796025989067053374409100247312691275604662325276678335605166201120097766807001316297340843168560893816952204661879779249050185472833969130114702621331065272451083089464790934065903059843662563369794032439478733939678764910642756331899120282159380253614904148772848297853842521718799063504498579439703808193422086165579485691551570251851689764715176906977324185990303067189703908007504584797742309788888040988766537292350108312966561462518018901332812608198200360385691321145762078619121614993576886495870127547346452189158262024354927958343531729872263024744100547111879655856959649649140145942288270427450130283924144112100617553734486940159507104410697113164716726413530245484778752321927123101216353020698143683031950304004622113508316860554643701907454746473105317791336266932967344639471003596977514808737842767232307497564851164799107365416607168244059210659914782301573661994148572295238631757343764976149883525662073939297878566905871548418339316593242632850829489992122281712016593418941589758550843614034152449717813507482937926709969403319255602626129450401829151969910544769636238550041608123889604204390606382214351072382647835891682755945037361457804012569583897765465463997811188866380784353219647885838623269279245041857585968396704358156755266133272780800803145288739602992593485500228290041088529879381319603503349823932142017618144263526275709315398701260402999520000881697433731817881188851281037343856508944203514969085968637891476746892714288256031836272281330427107662038775405056262865120243970993504293176424269694629820750790402709851849854693696344250901420251359360129529748968697808801904623198689911665560065758921808814305114109114407777182044172489877210562184407160642718921441019070819097995699663952448860018125075479977438430874931844288642500383391807919862152899748183492306718710405749640779672427926395936540211738774623034573457983347306131583993627391595753953155022357010279393864788875784688891938178254106768718192150001472323598908928168356302458108515891395869800599860100761961584476680145704246897521968358555732220145857139006386013230238904149162244142304251878611044958654998935507744976598930606177840055607822827422264628220398240910221235186066003068682849001659797813853908599893853797347067149053771616826940232281140113708335111673767350567558670330271497619783442332928482119809714165817319727227457097334241802432023715541919184456179229634486538406131236080864694295609974504669101619082541539648616496779777020549095907260559406016542812792819823450309539418192086317693789185426782099306879419948013696227786845895055386542615675624089562838771630475334672309406547797946580831797446434938269019489196067730287908687191135852554079417986823979551581250076523424754812184895929633118269879533984155797767493574455618103619070064935922359944986141562714997733899480555676435061534010145282206952213011164852214401029349409625340615920627763553065581026951163019607166194737044029455241392522904001043167023810698367997289713211998611038252904502991712131085480384389584445695180033704481086450728400813609304863421199378919820236830091640367370911812279517851507123061277469442487191420331388187448839397401904838128468270074651172517301796016220300614780952807185296827601552159734120277204173096105690504540429622299709271637935064467176184633373980265206513169219105441374446659983758519900184987546284271655575779975036053696490801247620050893813154969550754743826139102804878128684429623803960458207323033270681556134233773626837222817554797880462989355090174673925330810981619207075598387861115902429787851178639400862958902311194629736526571243889231331435162841929505734352331068510130593299641073903307879089152380116934045881139013139295478935213300310168916655708282115923833835424777416866608194971166585849073890634492228141941373761486349436605462954790881318451813770527164949271052640972771355489817688421597202490872717790763256755134951765797949105827088604661421908839069258558591371880106007366788605403275914643186745716115566767605181405709644433100086407299584715546388380558186711553216347986156659689399295574871945123689362011005037211917905766272312467243401955593291578890140527896436183301058706973790730012566967220562799009642774295465300077272779845535231172144331795080920604237111386681736945659028553202125208800053984536922384880076406288711935286755025940028444378615267003391765692347498773580434610223019747019890318173258099046937017729133410937890330181707336107775083325457933093666747336912723948449975584352858854815428479262662991715533723949841638647001033898793375623236649278678087700895633358194194795119484446516481519402262257407283091252463833407824274463976285405326929621079172875371076655747535491396625952485393040922995973256824205540793499929426723589505829833006605150963212793027490925419937287165843708926915274744275043175457520331984540470188760755030066385992899910871239905397383493484730108043575483923468165866668486992702000950639307415406433676535803312064200381807520178233477562685227862550513892209310122415868895410641318211771043060828610169700266627997384606346406685731375191040459100743371046069854947320405797615426230507484656095843571991544610801539243810150508842199239918422810361832832121039767482235609479139710858796061539615244545870258637624061530013738110757139423730668259725433108705531828065280851542554882827799295215224917754902058995229171066626284287098248988279110553834502314022820391949453426151206196878396778445691710832744592143061034234897275956795155615065878577101614546238594101663796992228608081495359914126690432652025874774616850991594287576245432275977307412224343088363273879761601215422495888496091276339129836433144660331852551692979865791161953909102643783436994250499807213478975463939183546873338823755146837759464823089221901029115346012651836436366860873671108061667969368780299206505832654069975230507871304750253156679623299870827517215226754912167671263079975582473685050329042215777103093293163824776640380436685117730337949435642842166602396639277016213032385665722658485590315307334970560947866528234080918847323744996618656659150594920952971035692391047175240354444488450628267629867975075440418817931526601237739180080039456190450157430676696580093199593327330530691212297999558244755226180212544743574649245464422617682686506317162577107530654285475509476095844022807154815720004526623771692673676024162255434628661441855559463706283739283248624069309693598470138832430667306845141929271153401356226065967108168581192969521528325385234974185704032483327741604959107783791560497110595686384858717953663344469976887479042545961222273028865382167676686193357559410839952950609981903283647915383866365415479406441224201582203707208861825358913867078347793924989408487986410088630908370004896477940190684697715420857329471044841182195181258418085752509134462253202585315025359105884737996269129228647448169758508497993457661571692513361569311581277686084273046308570292501935922140525069246650653776744088688216944949599343844715568960508348961643959375174151850919652514661634314273910822432817803640312568702320379915249512155327787312589263878336308773644541806146406176060479584107683481437328352631831834876780606323742809012725052660723342945665891030977001803888871951907188026852956927652469943702573813902761417899473109864519562465782463519806724344633663034082113498852705866787575350046431581046891964021094267767587617634512513467975390598997283325000124292871855487027717121121123904159885365323345729930855370163420365538559912534292658183724173406140479614341764987104571792636482290682426629603070552704563053534004378216667724555419991674301648518866152231765963706832032880885184596622586746443956677411346522592299769211127093925483089550921244029999294393614037114267958342679493067081557307236217779391181557202244454590214722736765016851283993449110180882458060223075533963313911767349802020459216455209266785480707461511141065703306920784036730664417983551246765647147987614190202982187107135049577508907394165608823582555816646373828741395662432339947287861369192511009282897388604970982625298400659195060621507329377063220475237904639750402800800516997995594037996160027818310653935474433188690543719181754534211734524284908924744982512230534525913982028238198218175905530440843883591816833463518053540817052993784595894434732627678981631160934440527447963157892649089233386912849285869557418251343221565671278193464823459069722061752311930158651481196393747641810032527957863931821284339039951194588271652559440610063175349625482258611334843223827965324799645260818067916707228734597782664338203878526939524689275459795639663829025143893817982037493459221754737559144244578692794070132763038851195083827895215069511594379514452267221094131482142677412284403783658566495972989688432448316417183513339711939564448765098250070664714133708093090869698399852213343856073205266043756366282091403041667188856793214416411346619943730368951792728050193515710037655412621936016720630363761340776152431106135768146744457391358102395485074675338558849042673395130494025388881714395728503935672514714278979642431781568781166358914487218378309570335765267000441475165449130073172301450152269225043377763330201562074156567862875902271118150302293644645491893860015318242103018583041126785714211063598207049731874238548353578801753944628097263089245667901379880012900573959923794012327182442844337330806331853114757095894840091315641420514777710811150169314710016398597631363118827318597595844479669894371801676906044138392381052746082139792953652868634259455150308822206175437688752617848661207751953577447582154568567107434329738753270710574702973628496156365402068249850680395361734807682698266688474782765316293485502863226531413400689483313081786804911951606678725770676206896379827510008340682337663221204589012520546307807175115232840423033942377238918196135701965330541790551407530417595092010059687328296537176018319314872135785909584090542033964620508378071005594636467623008792545977921777454402130850807523555197375568409564648296410082894596372727894041210793383341263686332599551498428007998654748517456078598230740123210771106515660335184790322464768293623052244238317802154992827074485515238622888502654106443883932356472991216200939920341505832664285432640627944827642587888271650930697279667481724969718156443225785554160176817622675385482152107782794612017434700943269253033392651620830861765651826172443637428632587919823850587128011877655784722897362823857147284830283844137030280812741742468766649768017763480841971962026993178579201893252618825661232014507879544060100444021812803770114400517670990206978845756353907832759336957942841241486070542550252215969113858237808710492445129440165718619874500880934467654525688798164146850023874198468488792957436702286890242358819131830731338745978613638157985903001157969263704788171801066489326892290134695261698466066071625815485335355210296083645815988810688577957024826160980704829304582002670050918142064221787633256383589074234078187403495564685408278153791471389561156159561213512776619566518333144544506932415554870932625732919542443822084318094057084140333672957602431012601164159383278001843613208144317026300926972208076887665769383813744603263959736154369603044994780299601972751273989406210967975927222310627633000842144946081712589099674995043884309754694548020906237588131678757837124456640412192029139869931085982079677917467311288474295763494478607134085036372029237840640569723230950965146493129815964865410641049804604243828977905457778648044764118253799468418290288095701704480322951495487959722583710124127905774364393350914327693824736895597110654189833683303342222364309276757413533532774440343345517991861241413355808937145998805807481215632302833718916885838916789935542835650102516832591641873698810360519894811956162197756225905671935117024628129051070658624924133911520467892821930178820079029370500935785458321970137539289251732443303121330451553501122259708582404372276834899721332671649998016224176742314403052835091188575584047395339992051774331170061123297029295760231374498074932492218183274517605317539533790520256596935523303963659518501291173322527617693662826072522962562451281234890966516320246865800929578814934007550838113632078104750634504589740348053454939402294723071796483575130180027567306685479470926294851578585747120750451354008207476765820617696801510934452582934366909766216159378536085180730912706289829665984950681619082860009584993926027327978734064262884685862259309431516373401837137239216785579075082412002729681504876259129565772563527094576781341593249035911699957403640005124690183016491252518058850439677056958960171163689415027878376153895227889381113555592672440523962803071044253479986984469985131896697601534122920231447826109677191994407404386929133965948835457138355337103283198610805816476925749319726250662088653638458858238689257525159725020408070532893667692052886402927116309094612314810347119542386838533189795375708494151493722995415367790765679825525111580821895653450259780358796579467183903292923316327354247534688202116759882191906870731475480708006993983158872427815353250723746137945233419568787395627162950992174867477345246394690098423251972666016970694639722961948525148949471162101584647309543209069936293835754187144823207806972476317903719978839103956791831604626928508863539500179670599432504180752328032649593286105455823318620099687447293510931454549477764222223313004610604642907775536024602902551794501915262757760573127038356228413184680977010525384793608761804228722522250953012233467669917819487602212524642749309134926680489501182219737297887851153110731403582946168968585561564055100982851285738631545407127628926825625301801636190959004027185132210097252364568624128978314469863586464536646095158914862989875066206234670956563265459355781978911863023533002677084931897313524457781046695369999662032582755334684158872649313897058503213329736207215212233888553010799350850719708743371289326623787387447962507851720574854264646623397057869798729046022288908441934008228563308432385845480208690407332664893383854788413734490132744039899012582566483772699565207630727713934613977495066830171093836038837889209166840881897139024226547251189611302167607497187001469697068778101733006826405023648864908388692921569986461350554069829666687508644636234913793120177720541526828041153395639954822655070411160791818321667569355681370601878065721878960148280529390040975208012337497421340857651534530056774941273648763124171159274675105433205116411081345923649248570004451274462268830073057167673295189373899020274986315984049562162398981086105630135416579525938167371377130658406013168752221059005350037929888759994773800401878656845291690409868376586936654619603690981412501321039811876618319287387752407334152350791422244174101780527242180848118397903300442367880828568817053366644796734307751724251819537968406008674366565471160337435094474318992382914874878624799206384786092989699072088326114438616124464053081769062575418368446879213467780019682094999680225144324843620943161765085959891899368761436743608754283523849047513603451367309868439593407154599723797618107848120806240745828659717322026879784208956034404893494793034391108942764176734180548191321204866207539187362483077853447807487102805181444535866495483373865214415299881379034708684408347867399770021951143397032554734978860342328976591360254707475135833823619094472823775640129588594977178733692681618901694434532130630604660208836962495220530023975712717590862703561748953529005410633982800739079124879720859650807446567416209892530908988785494775140691762256833633562174697753028739700417550931648450107057326968275397062933407723407421792535623383236467877478377796077807827772275820934597655983275056838145191393838760870491664715239565670669565313262909412995211147082955153157900700493224187261841264091124327538466247993086537825491261071389993355074943552912752179604837833794637716895945959777855271969707241146341583201811788486542730599431385485409476994895070304011314634413048490301151774787920908901662584378843483378622308538407031180232223255650694737551807042988540392344836299852819313848074744878974051414727770650689920778484108961530343379958223547342747256861075763243334410637784309941144327915957580203846513963944797671649018993208966947478759041737308811456732543806561623028888190028010169192529856462126412747508312397876874567696680661146103221959663696853577130258738400257176814752487453776459818229170630707317900731466259142905246288711377541878196922788717829614759303872266520960624925537609077183648371661742853782297225783438800536273035882220909249788602090009719689386998436248730712346668056994338821370089020111935231692253501788944381193081447903026181810674286128631630236224668941085996986055932127460174690215570246458149716161517492343606748721291699370391038995317743424238313477507629774648722457566779337540826334967309014557156258147141492798765967645807049169769428840627405112010414294403462604183407411804981824594931024862156926287420451100070699864736327985955754396477218418178867873424246551080277412059460362364506422563644271268928288457195270616033561125599128460268960893890819529695861434507184755382695517285655191241007149316484748778986935353300191315424388840992376926590215541620935082188853952835151865636728176098856207829094487732172620277370334059433021003366263254286259865582223639513709319613689951257685110065945640294542957281089300197942352249092684183686869256037005584600223169164091629622096375218205597115915016128907659939889580980003928985403242966856631534060580191259629424642274026775188116432637865894136360691333068298067852803016478423225739894105079259750729167181021584130472534678582287521740023857965939663279090934215705723885159133000370770581357332797267798005610796878916565177087188846788456400631176792174154579125448842807564439485928843363085929247638739103469472292820156138130192117223081414018827855122270387941276112160734339673366546532270654361284454929300116556613312810812605345699629400152860750480881619979006702491099787427170689874367923880659293732513243200326061396903695781656393573840049457972789761830906129561305911493081498245635302253207664164890732760394457743677888723555777774892516460681581014771606922398646669866193735852173415822963665186583718812947722353149002742490866668903675653895610426369654993878257454441317972328782495229609872470198314816836178511255287636822882805409127071970395905462522373035803633588678849881568967951126694557854444839587477031100831933078637363911878210348896136510257722139127968729253941735511839381960423037760060393448808802675945794528423422063113160455364245198399964624958969175398572052801522476343759335081869372341609153969201028671769209387194841405284537962622862179567650784959252600145898237743002308001821291819089291129169851955893852783433511054467456508942798102150404386994679447863323915277797887332122767368428100402715195613497593099313066136613174612466858212163319973463635010822150480674505795884026240200885440203070204077507229830054609751546473316361302576613938939207287261481175756566352834532529176347509891694073745703636618639531318808488522365726172694119346030901513121566349072617961802132379633715831157455008133983710083051621255918702932062139931826694076076673098859668778844934934393710125879121920734941408482025074442352568354352648034874041571187964621693267376761273766506188029464203548019014671410871163940042736870230023731124005391472806890541553043248788171858576084880666354931669149551705937576837003559105245744952161553915522603897285477929555881503377392764144568591341028849872810046878744407675107774282750060017392941495769278091746093330145371687301278229607138928479750019184233840443993813362459672348239970514674817027428287496259632361324241232506444101359964725409507379393147493334191676334220612288183208998868700015319690882917924303594552191795818388384291481285229833332535653454845387400232936906441848435773340507645803405182477444627626176198156384448509966688767287137382397197908367135157552293511427282604234282272281581951698351664565438235377887370979138052922520467261838471027577495550691878669724080411996461118125238417142341729892304021107986077129302364572754834302419270168893441148703394885246301905913796511848377856953666822383757736348127862801081835356338586409357470625599728152979930796870833625348723817828040477178391020480580911046673022965396844997770269942186700680817283893288015972778778699328966165270765986746971341017214751469134350923277803465862063901669333912526088388919208852091611799897424958130895106410162155480287107678533401189211731983333013412276464075461272890642358459965104641425808154311989610446066725321830676754520049946695536550931073647349876704629839560281387531236484671349138798706110116718971548681596205635471559878056998003596106007481955446342011461149541060164878351306592761152792098406738429681466798985864867884914792782172420585833526835045624521650674101410282683438826056080426960604752024052771974804711186205884737044065942018406925287405551797325647996230928569609225971744717237151352630743271971253846858208636284251055257604854534105574840511665843757852554123824197685837004639178785595883151773547640633124607338115668510126051573971272159773005233503002889684474443225033637633539272099617553403846886998621289198770666874670419253121089004357981286712898360328424868369153154253437222085241227713258601742041750770732184819709860536649990124180693481974725445782403855309742456862808834980185833383010167405919225885957936903937436905080618395003962827989000134975413610604602457730086523734900370153604593540334403477732184971219974928544244547436892363164273835485933007120224900701622913167639887209102627601644683931697706179311838407674543866273125390299002325225683207343410701637524230230333839923686229920489221090842734747845338519096706300248492296284165957755562926251392812143738377449953281021808796406269183849218577549569878353508014688775794731574566508257569426729784674935451292633003159603846922204383948767226894053566403570292224144781754336989825056998260837628697644458806207485345254801420515815066542322088374174763226912499897636092532804462436069537528754938879291810327429784891584446032719102500110032657731774068079811748224737333933256121475344193162433247134158481525014126766372865954562344218735713660416068353897466051557777542976614589953915875219061229645595178938162291562850159627979583890331325211535572687052684146666470043129368283708250720270459052542947710615515790952219574192816883279094029059177134308850822618568109913234987395392105618897682541301449033203128294499168612126565154181769188832384212928574614861646941782738511931138131125997350236370440177923006378665476196075913659868202565323930599902346328089327173750043501672042803390823420133437134320498199888741071410773088512504734887601240990330640637457579421576875578475646222228353025804155412661069818650606578329307282767838518081234011933342117480658035014679870771448213729275648388079689236653593616762423927607527972526291937031551301719969792580714538012049515191521151806738694244110613617794551837146555457025332818943321120373667986105181234181622606339393002221064761567988349848598365572705349356220202073935680315903224561184828695393038264101886693724466337551954091156238597260626482997548123666523820988160553936816329644800298849068532165463218599556457246398096038551605096778536439223940820940310311474031423522943119798297358540689277347186563315002377551761816329713792205255763591256739786471831369585067206701088278626095115001056029546841665853645692920216850055026901286436540485575437954952170061901541194968059247594084424036911990062548778776946920507206165439767362398023470615118402191106850635472730707785551948724548740214644925026971312040850122432672253549876818024222810504967438891425549541199072963705131968893425069906647573235884372878929739992979619204201160969074488366603437210745769619500634886219188416185324414671272638176287998828988458024784693615135191828176383381423386751865998363465215333868773965643064657879031650772985233728913618389496726002861937197288038989452922267708554472964979464931241418342794350253809733418083406603532966453800065401826761182870699308291320676084535666326779319814791870119585970988194748668198135634875503908212809573546873004414358477663520842755749859855388556563784318544624741853274808954366741132529545213480981223008034881156612657229751997283023720094263955164946180450063204898255508395767744252089695268589271123067103044573997445759352040155533126094366798293303614626309813893297711124765562342737287084679637239899152071064752140091212110798193197178326868642250263214009519080229691046668820816579470723883549531283352342124191531088053250534658857211449050024700364027359808738230085595539283597775092384548772645838575468181861590832388103657596223065880878781906550554714498716941695511078431647601373286110105994708189895792524425123418583281041296008406417880264575900915875947929620713342081458041807474757265413009013887887089270153614183743800489451054392875094188133847743011313434226028365567942792023666037124504462945808182819343284687750037411924507690767181427211116313126460935022120378643968049755224776391537619041138657700872428381933670460222732414972195421385069677407592445045737644948300540581084624740981981087343976612795455488995368657502093195752200388435532032870647804096580608226082790758907198034199875705899700576876899658993590565225441082884232212188162391422984241894514680085163786750705050435997128733813374330410520803917080345125074775324102554064033577117678158002314506562098881853492618322452433250118314526147568726550523998809530737097103322905957219459975311336735655184404377712403352703801410958109952550870447795160517312630140457814554872987402945255153533436772858685740277464755559758284981265332557274938537337435325033150400969299841940873019962870998198094327727014229146925921192364792249959011575813452328159792916877486475078895007023946707788758571421117439774642720478354503342812897032418875322272517226785792550616987084955713241442139075609843764706730427582828150126854626680401061297141890294220996929998927874702862077161486794989359733455059664604773808043048267233296097242690566188732537685252841853888096316374786089469147526675589609418069045706590663034376196878075185203012847240193816689967096784969321001093752451842081413138964251695779618367000197591752068731007220483434060844497450824693065188742462639606000387975980449719033875714040887945160385919040228165766208451049325644605304627991654642328383041191726887260006301595430320595628724246330173194530893465196772160372783422320997446502154517577386242226748690100647874726130638864856148366122837432093851055271413980826799905413976636185838993734127170261157162361822444426566344101333180120668610723259015747681063537693580130238470239890246746416898904651837160946183364146278305292725480829266588207983999604844652538077633330196072989130653417802492524476918505165142518246621603711398175234241409177965782474938605686141305170250127045128964755507776902558827885137884868286329272176900580264310575486244662706575023450329890178982574806644635731258628635471310167241231809452593627690536911991069325863866187219955186685022044886883390185946659784244072465250400716158035496913974966367557826320323160699943313403106451971819251622405621566397598678393969284104303193867266964674279130379447087661120010106696140636300681923577137682079333910711094662341061856152344666137510411277355579452522899659204368284802522616943847463477744209801691849712546377975225506812492995474874694517905680734600310326589464337651870780647302511478167797054419528205623524300153768474649561104137533109638047477842924313710096548431031452555043606787790046741403802220319012361258139005461280045697149897403782062744937510801802930398032571197045633008369464147235117360732442732446497699633358420076404604050457764731836488623870227923748259698784604561511680668336358997783006717643544579793059322651734076000911761108138829693975557556600706542623168115398894955765218023703627383737816440806575675281407051267394010522289336422579491083495134928688646807863685361077000771910551838912144952670952285683110932231037682588328358182708847934587305587835187049969959126245035412779074192691555613559729297354520179529138888497246721439920373212165551809290022444693688189653268248060291144420594659349598348832928174052378671429815592768392548765447822995615942939661260208649683888013977341338168372793349631479317243722256782492731059799291413836208483566158954671878410877908374598111352853062010095895586811567711754202779067175669549307900665883773894494187434610712722331818857245248965611238957288781859141167275753589725920538338663709506606290620229854730864654969736899918629884828465091596465953255312492510566807660830286808065212812931139114743235030708684316279707351172657511613065874426186761374621395041280057746383006130850349918903112085464957870475326251279797960734861195992628532886650269613960245985072142825761509726753548670154032302499965515555624193779526719698773819298938508056021894844634538971561703199903732352194563672016771378159994924755993921400409318654060951102329145651232469858280391674449491706588104886259420011130635358945220400332412981366329544512146250369183000417318723093754204069469677036864475610563582994834966524170944371625026724618070010010429818548133831051290496822749983247571193787560297519847806219326288306589917809719264233937111898370011420399159605356859274820121090621538338820112190608141783739544710417142609085231029764503729028721929096438867614181390719777127346075685283029030873708416503605605074184971156935963659812778478723323053964739283684882203003550111938925631674744980749443541609809870753809409657964181050888965181763910504204409791284901222138688499268806848193981840528691341405036559736911465179642886404656310742861727431284735500040031825284198559792209074119755449610455247326370030442703987485431970643845400236723991764277470859866940840579371327284635866319245250962077879990959903691057919060990084192997627624272377160241017008726184769406543092503001681806262012829679193263286855396399028171778433699146184507857619346611182105900989349625723554544838974203840442615088752443680247680057541134538662078854803685421326535468889541207548572049966176214956864354642528215497176557681616756062419683407276928841950131654924426070583628116384606674975074422105778460907189390323472330125450909457705747184437483094238351560119859168526688968149641530357585521459754514355856890325786900516237897477105539201040353336804083792630859300375382413168299893060700101686783841206128558692004050149859660415644805765894676526553713560176542993606433951716596836490947556362499150569310705273373674149775509470474810369487283576997620432695782358720472053587314281895119297280720296782252229451948594253914960851746934287929554970087053348759987120000612031988812522490160105582224123351460150102678620262739137498004620652280300418939005689669347343428394924825795444921494732211434727029599628932272247978684862109729864868986019604940565770274075336363200221898898990194873933845046712110668867079496229695143712961114426043054667412874354254107796742207190516400463817895430833191263975164413007216960827259740582427380123164571051551249265661567459924842032113798492834231998374630141280189341095357090564514236992048080157411015851379327222927880418665229798246614353286601958031065930315384603856532613928195665763750401663870314176997487228989070604590866459274733577829402233257902274296520855157602721521015736359562322705909450091465673995142671070068884327083453897451733084373749781936191860602516840497874767736253088262120789114381831041925045984405145304488235644267653942657957050684455392334814328665775225420922004258622218431079573213801563474952203274954012335422148219707958609032620531876002390925080934910847153467961267741219436765762325744564361389613895670058383453884528192647285525438535824843371747870109569873598942370477702719147288483763464671801080160414970591653466816668759074084227387506096065196469527297344026860048129096340023916185848938307075983456895600246764416563083093865893633285440747346088358634277216656555472686297469289021559414327521854344136941918308997536746222450398527956906130795787244267650034594712851561528257321989537040339125877195272390345897318781459797517805720790233009065449178877468010173993942541630038925046061584621887719757889015689964716354517447215244465508004611121257527379418637590284006284855728493289336835884790058912548882489119402761559957897684239496135172639645620206956800838736353331365427645149206448560324017147093082876644496744470587118752819306613945701366131171380914400084985883247585315486451572728516361916430620361953840301613379263988145178114436317220451110772520229243034471316176452673697366568794946960815185266902837785075243700220391063089293862822141779746555150661653259333861824414537445491542829425502199667268153155724314868966284479090576356893432174455896783346234072627243034795950552200504930273676608803916766032647277252683045386215577437838753878849249854505806268980085969459878268684909466919114468327617412396740559967647189443288741545704840798432963631913968824963292024717304131246106794355537174430495865215695496912084496691734557089279111416335461066036095283597206900397462243738127069598426096544685009240368198200974493042816678993627162784782883358530848609510845461785397895583867380831257655599323775436523526565799133011518478392921339158572916504173371373062698680632310990512999431784059209641501301249336514980796374798029038647276548339820926483059651367847074428297035657047444400658567229313719529324025213658504783284400550408676966174020255895055818528310167717070746315928808898854354940728357214943724972230734575654504768637351827530960372323889033168321255871246756519391982681174117863736749490041926833106554054586644397744859526264716327285653959258951962693066699308626889114243324758489742733530477904166198906865640027640602097149349485700850563989809340612634329884683933290015713539645010469319289939139133516572514328534503152426827104254641752662062316524834166535671831584435614251026664949239494895616845497317001042393544116430296119374674852589239777319917572646256268358411634796093168641817574663302866579702483909628352439199329417115758903117228607321299712423836689225485555305441969857768687557844786525523483208116418452177456471432901954166230392909929092708292510468087660918842293878861712908521800033856466813265551850680471172390769944410561697144774026460788310740276198493010284918661693955171224746205373319533359841800935983855173684381285799922520396417548145415151044557782180539336169360111412705084232131788705909726883509668385801478741738888005326309141398053387158103023773901942424337553858756776510423179845330070396485450251174320689450454969684884978256457378095291168698986622659475060105191869038481106362670997258010596410617653539224867139865789610474034614477418309726806587723443300654509765036720216778084312423325891577386649661962602287447973792005439360395478779236546997462113358758599572405539857770954934151064102337622152999645516834176092477994982541280917215792199492755433884128164178868936244665187708801717819968239055361527700559462314169756360655918519853876909277018258672149878245951656168826402222261095954365531115352209049942500953439408247013030554435330188604382499782144140289709264338370022892186584335688601968174402389913334147856307346986918702327582950310580964867345711102223391221490637633499890340744874962949926750329570432411472678842456434523706032306050085647361950216117780537001471302671369695113856012596154456197753849677907656833839708872569764926993425643606926536977625830911678378101449181878760308232649659800054959079679457306500216710452180372347537724639979642555343631262077970046321214825907668064257107147181776305306210826364926809415338292422647021185811987533536811950217504444021032854545799559289360245389153249987369303530798121012613642738500543911476662285713742088719967302106584023263692211485306627527472617060258080768659230422905915456398870295499142396828140207858584372213567402668061100902777250061902152089105176773462181052907693203760257853037041521056359696123446915944563479928646003058674012426303083284031388089544500938746503635911919294534918132881641096928223675577997634856149841867888873616694697377135094140798042775018434081289239780696791478226931818156231157450872295669047511364903522471921160740295932630285268029518724853044781733489974580728802426474899567863110301201681817335861260629456878504895812928546906826487743398307593499680206922301393709434774570932803774240318159291508325399171498922330663149108700505398730862152868223159363322503445704266983312842615700598436146067673803149099518388862597419756687750638287156131480643498832535315477647119556762686584267556109842716937234397381805410632197892399087305305880541322188622826784103869376102370143285515111927938819710168577399382216983945831630175736526796830348425606628776409616488102075466990403361969934996472945005310317981122872611169778343819654296433616253057185950850867988984892676824931305404247628673992358649059990512194363547189399715481787527881258841029221803294621337893842413936724181269455389719536126207165425686684149901441730055648956528285063123421383810713460003560566010188068039372478844651979874923709649303631100240961066359683684779882590997845343898645204294551431702969570324728305531869416753881739187444964107727166065631109212329266625742569090280790611523764125926011789842538075688219811621129587297334713399679308948721330469744130995442879111383604174913625824439426583936311667562503364549315389672294417684805213716442131312622427220192029095887984153812424988397812423088302058237140335273829362059289234896483968249350951182884457967970120298159904010025223331643403958922505431052972580838781682776434384159607523445285750894253514310891628454687200076867297817461966259775453802685921346298758586230231110076583055647669707513212276848327496204293494362359568221429215710289224081450441649241512291013093716041580275909946301324001655627807776795043137148069777326502986873584468717281090843622404274123664610078559876179984612699837150445431054925672175004876585017209253328226936151612652632188584193363223989556393448347713980279873448514491123130825186942737971863778215441572437774334232929401653495352124437307637136580587114897034759289022489287839404077590811536891200189185335482744686229704662128350988765346592563916553891421472778147211852670273658547869585500008451647652196177228969272959622312297969804209706559024700303914170776439744860925527891841023011066384222630260313961462720581180449722509472621008511081975218463111621120837970588395841928451899906380383902849939005245337308755200991713384248091231176036740712840844554173693131744988359184610064717504179360185029673100505623452802348341985612946368723583003761212487751599117302068075191364852862377916718855848223937100485946974255861508898195296145453232574645170374152247964232589919385928463457360198846924521654422536388578045852950943567978956341302305199171618917162918343481863354362959758392646956450127053753420539275619410309827492366249879631697324851271168144980189268347435802822556895699762077492606915357372768513451936133566632030680196477859455652297903009068369764268688395480606509434098051815454864944546702127935112889854963885021021485382225773153907649919750603661385900741977452815024832303038372140020931549634597225340290402961446398563556571633416752223782087633586176042227500599259856559577850792599367975598020871136621365421134509541584452212188523965595311285851023866257075813559159893167101733511088578932333086628225406709577333998255311372666188747785457406282174135008012629838686999116225003846340200835848024642074303402999458559051674669207831840807723287812966579293473866155883561853267912081811401516707148983436057333377541426699908986982946522156573464944446650034538233190809656307036749690136380648863127022531786190393011149138921476017640703368819866574182619000058623268218802711681666786716114636429360895379377037229638916698708780813071979420178312538338791544494233497509757152974483917176482334033416426798310780693398488910675737390992177217675597449826543750993909132953312170519408406674065878240005457567995816562663559377930011357129218427053143246491755752232542098591635814986871581760839168077727685786341922662490017232279165300737523404478522930221418470803003625128511544800223161502202857286594952123265823119771988384383543061519923652523745692338349476785753350003134051551961552522423673553734004097018032791265315284590361100953565065297400005565621492238860401920312311731729748247437222357869641946758324892266641508832581043991228659268626586079415986311487217239131989099462976206611097683976279555499445702738041120121994476960449109117506797286387025243961258179620718652858564688486553823659225206984010751156512625721195782279800707133527735702909453229242411828147915671389352964673273087617290107573473811347536319196015837235454434701295510780659339870115084027899063076478003256389368345441719095019792782451720336300555124559906293650392445212124033068290373984382100654770805098088532679103189330569472971895156923058578002276103080319308960203259125705460356968959319003482494884301243118500703665148322012570470451174356007524482048564457272520817311380676676109071579103039733332032695227380009811395984288143964048818556034058878206462369082560619114276981496066491554714345268699829429942850092516368772790814688627104177398550476494851240233786136642319243236204695243570699485998473338298128345031247039210096995047663541014593694516716008055375548801555448003667640479367776039389940901666863254096999351736650938861430938281091397279401137704872986794592001995356264947567683443335382226646734232504185199943515294738990787401994203234289148188841234905552357476961582993455224264965893348266775511185955500245883013097496827940454932038352484575022867040560044101687557150681136722936295534673337106841452751289089974460492407050309858116958288099648531333458776272454054603786423572350280245377256602988444582008518638124354097736743898245976523552869778141224931134879184575302719512482697133340372303974883676277251609506201469163187836480244043193710981079239742028834931541885245365639262713555699532311678419729307939270094912016191325709356197462326637611633904075309140111449008818971722612287356899422996337793801198520898299139337730291008180432363561603662859934173866092586462050513519034442355986223555112973450230801049758661606084930711160525415799796925062258117450258452053253125721475481713800804591654633008699449699947507379612916448493236345253227556391761241620933479329064477005820443397551145831780869840499841209046774609183161145454598118549286879179760748759927344084900541584210528970286210704175525717724274427041980803148790917225060652147006155883693055173501302441073258749833280139338153399228528669167198882020810291364993414738860778672963555160105590536488385556146419393429416852116289848027494956482673541558724794378360149391083709413384693743195135744957437683831984887993772212653511415414322590030234776135723130824411297621839977226286619955315145678372780234663713889927075771433677432180723872470320875642292631518236251945649786830758720262942223583025484351397951467658982817166826230299839766161637654119030667861457820673853831699215988266747567036182917587873052580388915256130958423443045212528843124986086019654032955996940732303680783933574937972909007371917671282504437945171735793217799643691596301307938812305954815019025855118931795600767550132056611760831929885149778329865890500240090755743806411760526692576250106815051978546856678347822548523359684067601199969167688888767903113441850261997277471970693532327625206998472474038934759490206094006106399744246030561397664688409817405021717176710103143580469147804608673757897860856073433946890008005396483719300386737333872682927417662161234164104648741117210503852391545761115739279327199686932213076657216711833100299080818913557827882990462969899368434068145787957977513216937171672257739259958454880669728877259866924028039103490082284187380302332128464463504169634539474723321233415713077976268404815630216960712961911638164455987736394872475822010170517958112906948102229944908873686748797609445698157859524717614682163478078870794968311837017650031501701171251322229804558095687174909993226979742736463549488277552854031484232650549235206639445487133134624067497345913606142565631137298504402640236906644155866329204644165272038252042414408075239060552748929382297083867197472137119638885037409011358337420226926248903551323537714392653110598705828589386590569534591191584535983970869126008819759323149444594344109908336513165175509495770822112468808353288503160000318667055720361682667342287940665335083380377115645700053680081697687419669368775665469787925646766275774188083258002682376937381401334051502399475298586333901218642148665360263258026749187051758607845700565187362875975022006719632444756522258334451052567024526746063813407705083923924845258151615107162786576040707353826172800271698593222051660871758869109885680065810995442381462316940379325562504823763228089965338296939243024859557386640947095716728221798677048154042162159568457300760771533125550772601088412808436498300992459879577606593576825867821460070485606540534124972899804774874755985375104767351167847209369055788755986754745699577097655534683994040198593356034539526577042153653695652214633790237921153898845051081307998720482616792973923063822956861088185342354567919160628784954420957196722814447905171312351730406837100424827067837593624436438603117256181646365515902764467298687478645852900544987453693585359826894718551122800821288000552303368400432720559661419960297042911594177901363799493774557185279347803851654451381120248467997767587310745570979979715888207666682102616662064918379538349725994093313783774641068905461070462918245591793091526946897819188396163081361699804021429765219042531329082266892977710854402537484351905633453187146138340898299044331535072213295741956858226318934444825298729898987386436631196106364000980739141247194192475100336657610378264202023212188063130406528751178055343976678472151738623084217390010742241893320507562034910430191586577477386407335762403519898653440593022058699303991521425926643243701310320536606508395907136537234413137825329359618981509147631817266161542923930798885507701508761015570763134909902299374497132528718927552753188669229371604503033668194054883703926510062245169323627108052510368831090955076929901291566031579648135790695291448910953221427783881986868076052478253763905596761065804491105422298068265581948479581496036073526771067991826387978352845178888146809082266033346744916284503686036205459144659856338536777455513605308649727160071493021433823828401048998652903850281133369079844630922360138518403746367156647014551068439728764563636788450815241500212289715056348745522184045123763854216371222443526974920127715147542952637724031520722164252566638526206549686484691013294328232878847225719690553964786318033087798206464105876151402724713974007546222015752761416264249022720955100898109835276094281256418001290914778787123477308735844292759954629125682146835622811125841881054219127166027072457804646693827852183947715975662326033294768908412063072157889328594456144920451131675758726576401772958845584768561094847029915063569685610699664023650659619442459406592514030019445240845300877223748912745143171757882216044718408420784263681484949581308120953351589998328986767018837482685091518963298288154724987330638149179113419034303536830580464054159941672129480463494399117754692580178619379390522926626278158921090932152312479646998096656491586429086909528578048470488980096108863069967105014921828982340198516502222048344355149448360016371930581752953981249605587312236461575125110817312713178430490406363058631758204743863050199573967560272950829875229837706591002660056756883562095523087776731553095431113946130160618073058738505248007934539468312895852693510620938836261092753261665538960894517976888964557858469898104581328480677110758476070568565168409137329820574540349478855954563587874068352866408650563867502187150669184057404064883694406608041983418788254530927528953073384879009390071229895431527254502890214578009279394168398828809131347936538252823782636732732900936259082674200480211951027164348944250480260456657684732860237246652669244635656893908589874286289685241094085190018843341012085184407594372320193751751251093546515817527611721934987601252449342211967324379710360177427193095007638343504085055986340960790466519518561689586692593841947198987261074800731469179511061524892711029594319299096170466855715122061332152386620680433369785244475224043827479235557126987804825490690972272902575789574811513937018106287991442365776942925796350472519980443359398937771088648451428727572178671667522995469038296216057157217384918563869831609720042649682716787617451860841315322779493840716040701562325811865233389280239104871230551775165970919464731967647210796173723250636305518354692478137150008796334867245013461350029820223977846481585805181982207556686574327302024374131306197210860839882970007503444753233358118675900591701304183105424313074996244319641462294116317521163629504074282154023965187328784616285942956639226818929311164371176590888508164955295940321733293190340866408494262537832685518467727791014464213674638665092666301465181770977921782575379492228809518285774109809047735945085049415095543917218433172073266741215884781551178849684437044553941769604822778720314758235011484846610176441364799777910713092689811996036449704300959736941538147910648926282772476931163624924589943345545247951914626337543504970673019666502837753903586654458261547093114975185973880883902010311013692813882062110220480991040657196044854792484387807412827795475696615788224364256348240209614244601751363577211134855971837472607098223949852713852613236777245886290218414999336305640552180586432226171869515342553960665936502006977261671685070176763483211438783204647957989572577023645269854931999589652238954180689309831691758719881878801116111769557274766966201297784390941325736785475291231367405621398692179991819570216803576210462029052734026481236486485255492643194877098344148570828777162021810694782651903268584140978309476826014868137857104140681275168621094841473463164837411257846330463078370445588842220170979183223329893966002931187026917805398039223975039076727073787915704668482601139122555800626623911909254904783532770603575063689451306533489901953593159359990212114959626051431350682813969828134312083099339813411468545566278508178793173478857490569168043601580149645183599215827409089533614335401456431892616539997842629153199423888946209375350262785361362914419693675692011338180590997029455153536377548026835396042782387839952732217616357269977279313212388082721042296120113404497401968495240044247315049618390012123376667318605798739397640484987734487434195676159441383392684691855481022393629175932762117987176722733186706866726598485247418289287209400983137250134269731731229961802326858515732519118283800700337711129383433010041394361983192707589101443809880872486881060543348160160020224444178070671930294690192753626067189268741659742720518678344264949393611199885109700044954084067243656320144203532289429369177807644761180613215124131472385006041968947428252337475007039605767996293446391065381960955753145727516545010820456551867150740458488051522918081410889735909869836718320497692334089130329825379379071902837814906596302298539770115996142445438344520053650121372313439740501581601765085485499143119530463802803616788087086347508759622545039305342771174705721056688613519887463857514610624238727747589788602111628220334371849565949873215816081744557841827947083227515347277221943387532655863682834304780231153883330117042704058262403487793565809413597984909236068019365512607200170659697353875546118193576547552341168452141275146592393972149684042828066635196251124684919550229172431648177299738839671095052988519783650637773589731153110833335229634145851291115265786542248863608380203687297957575936137057988647902260110659315837820396194239902223513324066900240740339224861759973801257089891116850935134728023985962925085942116025007469941849537688327547766023542180200343026266762575260834058089604074433009297820279585049548338748536712406423044022622038783974444628320274942744050359395729425461054424672412176470560627313204312042599920868612542327905060072128428554724138230036314952898784563608389812930971674155062801278323693858306438940324014229012053916484701102821950123471222001361414694871723595214977888390029870087829204563604903061784792199224870023595913494402907539732942218415407733422957637661871977629202355549033773349787138157975174044423313188044884422919563740101586135672841173464709656780423564552054895558403373500314077013535758128866298157796792933895836713121535890234519263526727397764745184039202260904644052108413268496370444311327943901609956005434124690091359923188248034472455755031753006382188287128742441646342443718596733027606419682394149265180865872571631440045938334178671857890830076496536920353527654235197216472158115516835967682898567779871113677539102569351893264675946115419665560567086815585698953386143878662497351260380932960959381704071164548230803813802287628960695199472126856296282089301327440487793878692956674998211305081974448920835774277531374014638432179519652253106723124251669452983385657865065647315407527801134092769088328277095786905233175195177696230920973234233601916427579572821307605172066535625698181421658853223594936995584525966529682704172209419679703892304630272541220962334780837839883695378330622068730928737792399874119953925295786535718245044470874563522730153782718563045570101429916891171849429456146011472964910354585072070222430278448552744322224807498213543120178519820580293599097421944249692393117743727287843122281634243424261838891371283496302453788865982774191331633200597312914812366326781652120172106092823674926245171938407411594313918038712650094198111787650988958033841267089090348921702138950986785994265946263444556195844375095143826110559094153079064172785324129066535740505177578916762452489175688768170362418727687628645936013200860471742432173418884816010617821132984763654807433553508711519460320056995774476774101344412963595909936339461569358881309937468727745662927986931526830182995085484321895084455920914875308169165643006535831458961921195235936519550259805309343736496488947111324958690625257547838315773172443153996019321315078225399199706606178495008028518493476166028009626418012433563720075461597157411155048534972214450225315319450104407908487384509318561617034249623923226771242426369888888509112690400212299709034583040875737488756093605499273925124390685074827117430224176868744396625438369809245909342511897847813201016789776783948762071302485569239514625040636364034075083382909449951755921958979332437310334666077464848148215810170990697227932700675541960708736680549820324990039334253376525516567998703255518718775674721561138652780203519064699111468119498801610851554048989290434877852594918641521898868649832590336124682294590159836998706691934553094997386564571613103772394043536876391339358220349572084254125839538229108417938853634770861373058054279483349712730952249541628778034456799897249699919878163333668331732345293075179447682390023313072213699424970130458965184080706443628324481505595102525790931380499332330979023957164970587471831440795164443639979548771094656706341213292090794368945476651593302205861185704462960627743627490640077691903571966054393582732540234307491524855483063342791468824404338994808606280818469232400809027919105570797563227489529819842365581027083865855259780828543662153501926277715370854087887970591000676000816933213083410839315965409057851815751735535193686211407687203373902659769466007670299861720190511063919412208544762129648739126912505948395197786754180445506443339604687065027850898662967925633203273253564163600219761236379500139556735510822667080602580523241386721390094993821457501516137306592761790253570954579418935927124375512493512315070825032924699107726475259535756276575036993620737026208078209857522874066553939669542046006378735041276576765570833197775286610919748566182789305315270569917449734719179128019089467942424315467690892581919817211543255013419168092726768784952345707845934977602076995001679908588350635534908387082990787953152608258490316487807284840079200183728476273275277235415405169143963989471267198368660115880698077412053233947879542532366008164626959315556154417616185652590754066430690037334243797181471648114398689196614942846049918934807170693192248869819812164970016819248073672760822594191591957097624678329556580364800352828018002051360523697662074827402591434873918600442354947053491671451815839341997958612869516225796460619697944467932997345403566915101590754144921814606311391673076138471155843776460464850350495739921353333345238939533635227227973271838329811697077609951512458172911680976419485351004387862712794687135874864002696429049526890223262115817625613460518809859392138880408221411334951021331864918359235225559522215440970091665083300201449084582189931831233221701986075928770038342717414225808771447625803761806470812109386764114972878239206727949200235377644094112434502169850733563274296741135611024828491369990629874029134280999988309512555259268592064969812805422508458167847645114144282690624738135111113851066770037608806460208526117325092106298645074880474976043679702003307648155014125373521314824782606467875509803451928750149871508996577448568831576529059641408733315174572258028656874331653130923336053659149699618925529861593693706931116146871501993156429619084455710118706812033670976064647575361038276828454917787734858859870051829948872071271723224967894577048819241238575317628130702145540247345894015435151823438725887089817806320043506385752474441918577589774915692336217026472966989620081377272793227425284975952129817776084888164765033697853674644406850842705708163508387891629185886414532117331509290734745722265926686277769935228185500943575136755673224761593824282735037428642958100416720378824257505531984457269679853652060486094688427964318391081168293309370121897690817704068481503618786890287144204371954754247672224406331076523865614868178966473483414033217732432956835853462693744830688652109898848270952234934905934879355454732932163584419651131267031260847707382496109291602810385168109855506160984660670853615545925465964689407097955237458326769082794771218560976572145416946947865417930584066457575946579184437913487717218347728878933090974680654263863381177435239119909096066027306692753197078261749479588128555840721543221848644346550835774116156652438476084725008986845200746840885291152622605961490079338796872669576947952973462606570658248797147117200908858078741370034929552555456338310554932488994857008519461592968094162259766852972525795716836406139812351004503537700595473133121921361779524663553154484356256710998108106598425915334124328808498739646206102948122251194007869519883477375482892179359201400409127391128478976865625503896192531743689287472722873027527084322320281774847686108366040692292065288811483570800409757432730255857680469679951277498311140727999599215256334137161394045348025150943944423866074675832157295605878698676415267814084960216317164466812192255719612575740628264594343958818344267935707883870234452854565958410997177189887920283576292840615815659704256294552157944716423198216797908969877473875638865612093077088749662292718114275370830135839723672695163184777290339917690839969732679211486387620685055723118209247830615117175328004470187149662744145856417719160098241245238864472905301347103663976338832193234526510794523337671871414838290745479166263619687458689307504113876195816054106845354418244660770624824662451200820341622050788225774631943618246021780775940321732161217990507094532097388942110416260911461438407014019120060567619269162494758472255111675798289010092028868512033579941307723747783687973764042684329866361418645344748498121494488119057699661812813604028719122868247661478011067269267689467098118306967384029044261054556946578899575564507005742677940616171442513349805846508656410516955218896034961526633460404652567680850182368740572425834100328835179850535820677364635859334573971735910893674639056498128763560990917692894979608477998828008079262473780158093755518559600861575369851017617239926285601353866280658310209414974224370621704191412176464967030054543983247866475649353073008596509993664591368102768957399990494423114729576045337320720119774135540249765847153577376315663218919371202441734326874135020789868219022716716507201936691066853991722065336082400662524393620711855450778452134836998317638290031087774828145171914816938053216761913769673067819012748009563470949761097768710990188449958882163874764467388687685472156196489092520548321331511713105115719281522273694754861527982844307057272740479818837961266769850474726027612117087864005514843261165944700792218397681757524745952005144911936952387458001219846522261216057899334930650957405301600629672196962400209297207549428344545526074118167218353416819450828046806222272557592880307858739372549084789248640906932196515490054966075873761246545398944033726430817063421719407522037035152670539762288916161335242691259322859321454632550240166718575486385667282632372383687976460122437857722801628740783483840791987420906617765274246043615830001434558468187770666526409904780039753974166303217255564732197781328214873155828893460157820901169170095072401593204187618078631353596596850371074189359982686640622343840286054549583888524896904941851619809118457542476957130670187381633222418271555575896257409943201485980087896756738893724876291485647656183181713339540093172958837005300459141649908340298744478728693385539262514254008087129727434682955923339550257143331133470377065367629981829364197851646804385159163854776593961384285773057278801486262303079136818521274071864959230434459037521909723658058420990335150164375347345226456842413036784122892345088638222542082930360647227359382681523506945543803936882852192866114697624325948081500411079329316367002193570295856518274023841077651536590371884989856159940956304206840224669187205844428153423487060214620791714189557007654447986857551004194677297776287231800713203883213235188473195101501790401846409264324643560231603802808711244688635626782563432104913799088204532067078163552718916836197500000424628946560347536262487822054267068366895749830332758668499463343179023453633620433089621151329041448238255971205289425862883159397547448526727397322487307632333946893896687112856139264728960181382677851804862679051251135706959701547020236314265461537482164128517056160977745624603109525892472565534303040109657571591035050523812207277077962651652781108686081124394687450330314309946831607544448961747348139729833675053606448154696403532861987965318855778341360974675766098310954841202700464703920028018134084824035092687670398467390275081917803857279896388242449769910441714458225302117662909522838782819096536834983261225814160693030554750951262761783012801369887050441977680119224034433499453633443694841631041443024738347279261014519688094181259727154407993227909565542235729692181126377112590501741153876056708124386432558744121619439626666996790022590893968483865683860767012146810951044314516867654739707646029812285526256297102905419447706936624402200548523664239617889813051889957009560766434952744738082162224974538998116470688280598140720801388020191661213162228281069361449251507802952901145907833288291498238703754874531251017924078879278630865961128637447808689918055704860192493535291783476838455529655786343301978846432148506817341422146820766631661607854251075755632613720441099510165121222238975593115902443881930701990630218581262819549420309360080209911637321414190937727356673255043327344585875926500979437482145987383017750388459049651199868144990049578540232480883655230142695894859855833131440746018915866602872099059474681925319490695093527995181018625104705476154338565259394715259559857811580479390535244316671342133098887118726730403066194876413875247330525114783297050326328966470200472944400787948156987057151967167198482295870272974694399847715295172194259539581857695951359998677731767329910270250074329563882553853389194069634548464542559220512576314268864721060407763209819938125087035038123799889970259992373038852691234665902685659210836706652329536227285915246659324188695279758756149597151505746847264835108158521130784535697301743146415187467256990141838721896130705318950814022883334793779899400459655971065687244733629773293606976087911890612237885698566109202858061571668094853128860035762760040153892163043476446208628691856867326156877702957057836573914129522076686397095847274202212582415711844760329434709337248925597910456773978955352605578470378576594953883176041149224434597459327261318644176647890869739856874301870759264660724033051857356053051611068209949044151151806418888639220975685057581442996823167951492586015525421897704029011211729133524479775148821283838520574293428508240825435800300706421451152926633174097116813230132302629310375039190269983035063187723479518451497200178312788997399301234641958349154889318258742613564034948392705787398197048716937105558556788218857907525414677821061850006369402838235547552871770553017743213622540674151988664807938815912922691584071515080816876021340513535923417066970197026537139836000721707560769469699246834489432949251958271024418221452387495380387434941730286044875524258106468118564036843082687395357743172418697698828686560081775864440182458701196265580511147042740304516041466297536075568575547939776262108912581464533599709909161387581230557085155798112169266536067614604228509856145508515322143252587782185826204267010132492733017003517597123293080554530548582942618407299572404232884591067459929855081184087076465703522144553937263783989043325397206590449173971922837722597069402848671891407267859856800459552605257860336891851756764387066742354931878909022110268073524447172407716163199346722721932064051700045111930854865780227344559891856128561560261159013133572688428269329297685262268324703761181284286310844140089502049345699970548054051795261500985507633761556382611857414164135825464574852045048746358367013416037535556409942478054789024544839805294916778824135497458584258925648579670219548305987905659087012094048613376511158857826130428413275861694300689296478436383778944222923920146144844402700516991496645963740403715183624609497359714152861989791608678827357828874296846091024603576872753644520974123198721011818010058348711691870308551459167027957126381128074115093408953514806911378966476611969139406416625174745429844549134064132798608409540190150479919432557627461519152391168614832432660084377781951619334459039520804745255539448263390590322865117819039174937318047332190206119967377451260088832358236658391979776935829402044725682444080702348350887970575648434860425657788614510181952674431778538290373867222224279661030708933665965960683853631621929742101559262210249595811306020668917329788713848831770999372376070288395689368617513987388172583163442220594195713574736671893121280866106670687016506549701860706618458838621951306784579313549700510573270535584923002394370556738186041025001594452245848587015589464538839807616509888311575033823001764022740095888139481343218091178506424226572804759399675207573689746392141745592538537102329415144221537571860435040758710782128481803647314314045342592774161203187237471746316415040976694448626482180963846046233459363713706377602880325897812833869639501940554236580991579031411885455897762583711691202387248201911374883116933429859724355486702706450429536680999917207859562384951876746012180891147208747113004219452254344209104984020398827160995889438286209963053903494401617968137448726127333711446055625236817884932667683949601752847782507952153670348661396525781658186152529229642095727358317300776325757463336995792017067604039234835086964710384636611505708496116492569037911532127192122396577250290178673923961699552370629843632050813794952603180493194985323129934879092749962253733192111340020606733735816342730034681863554720079524500141210712966641853441040049125841114383887328467719551125134037328203937032565509766945146850890073281560531108383269067172396680078886469978106725177474561890324211888662350815062532888387945704246474604435257227309969949033307353656776638418739456083725789810169118072067758590499986261661653159182067306401413963510328313627695029192400610581896727725666872887849836978053836949929501924835107960519114495466180667044526294514988642006946657271058296493178524939621137833395145945335626011219010521994956779133386396103512744390238342129472601553808749642259661177314937545859922782140542443701875412594530409337574745566550953398868197758553846348215607718942238125919162082794899617382986833382589191144549486560487154678145426747484692164976205090696466768513020393083677402636314771125412725575158659630635369459882740150954096447482181381510776832647450105069140250793083326375018300408080454571364697954531979549393716931828030684003758562995041887327808245152527846483975696711467871616630670012791059282612200297389740888907845320414305775166631326995131130443414585729547525391752712964893160920033306487218388661601109369900398241983117000264368064740078306691082332919710270656387020206987941413767684015204858817258882407617399465273655224332080271861018050393950320432773674622307334508835708633817549460401451575168612192241715417018483433207431071520858777649689680012092975568449531328702198969817299946080872359079638108207411522075310352239059159710790841400809295103839341641158315269305782483702888594782729482761799835385472405789130047124848505114686831584325435903588807878666148543877334777258068183172145390473069909875336137794696256693395917665526010505446432047436188274800502116194328837592934848997193997163367551601336323447634128957056696178941640478572371789503010491515330672358152212589950378220162383914327094878123073751183205347324167504988899396699891604221060436586674254233352268808210178427341612870641674001564664129045749256607179276509788385259897429568505032153178538659001747888693727601095958938680092217154704968586777436158482565590849548332299661134648613964477271658574563823428463499625040968227963072994146418077470725235919517792530070146409722906290261377858454743143632337615295745459496265767971247812260159931123706020803103671306864517871502701755020303301516908517250104201640876722448941620258754552471100267329665098573039750662599944519405057887728947777256683457583612566606315802228190426329226631719309603499228517534656038615906191341687298018778415037287024663682756629342371467531043086088320381832343288095794478298780723832528097446181232368335512836712065054539778112565890974400066457917188022389492609544634769194296994864452726563768570819656274466773408953786225850474117232927927969876799129896811723385022719820427240604960990325147798811898081607887065497291636828339334127895881558593363481168836406369695056815746386964069197848370768569293216706747079488794967805755755418793568744220068628364393911371668670447473173545195026365110037718585179008299787732284142072089904166165096373554304537259514458516347137476719715129988598860614257488864150636307534867961506967045248874406835688505392488174824146706259519634899584365845562879328418359427747464781418491524097663603717900201750097910363365476251575142342184668176831907728317117435798030465512883590984979096432310602488181590631234136297758436733299218264933214215339920001608554352182312325431689066115463243774496470677568252265449883642981515054496540695834041418265065189109930720363277561139374595733792268788669361592230344422436293321459862480231542555085812422485369846101102337716846025992530952313241528834132470905229535359122947560565606584923506705484069745609863122828707320246141106977367293679076317926993765241345384352528758726605947349928949534846554835852171705209742159357272162428197905708621303421527178479243639641508106371792304116047355343456829598345041019743737558782323134676694198749471518688597015285983106064495909703841498873649970427124234196578987822613666105949653681172266721140761393563654585832847692223466788344230753636196862100805047967575557122294349364569975365272851159355193138940813889469267848387720738698600842522816221825391189339592852963273299546609449705779174396732184726607659710245741828790038768496658317855599892361766029300022960586914859289155640708094630563382293574104644171600663494038420692045586882331162620429602640334243959494202124585531097426476893361414062287718656660784523185040287296862665120265059268652736564330286436401013064996277810603968806383965026932100767607179226901311754022258517799740432695371073150776057535613435086642169257468936422519069834519212746721645310912433072711768156807839589920166815376788002015508137326546867814257940773418890746497547159269764701420890978486723200763095002063593773324493122862502167182170902679486611248150659159540155280360332105547857236290554799136943188094076633777653404674270329161013559554062275360928906417674882746269215932741770257443611262381129891070767213752363577250530230194443846331661385296586591890137959254605288056308306080756713413023618944989088514748344580269955736847256946248211924126037753989305240924059665866891890309070449632658161259078725055599193970821412768716970736747314531246955940256590713693116369865286748784076555867656540394567552490699085425001026686220489105179823374686276413145818938210424241582167609522998765668063063982967380034581886351665475711995937226716139920182185966974195285664860085822959901171854298902257272705333785163749176320338156087054101143777912123719005381103861037605566252357538993719408405328839989218175480182477759972217374324102871022718264745141458323618716411698914323288290644190565978822964088888067346372765132000683225758558091037299508991676955279653425837697358587575452667465956275374588283037260321667214266711548928024835208990482807975636280754878968363834751204079390556057829901747431440081265291098858224191835625928137343879170688157684419351899969635046246432445870548263123941490079512213899897849787295274824462265831668250540753930700871145085938580928024656361779558221212806135387138552760185430733312094596169924316880056265488759169046470773746888172650890817996967275677505484165693765789134505579574581442945055802585467725652563813241757935861590857939732267174296284242761381157273445070125206439084743915836767722906700516565484792069836011713642138193213804496526354580017550931250521694438654570659299787878858052401939298436054317786059340954149361275880348482962688258818076564924719814114690627688282648651689255107290872568067724678647560986173948632509537452188341650285711880973763484796666612302478611313232807284186991427388489944576534739716243971084574244643736711654436955277454391807354120480397248706151881949990549425098043069129089060434547326198117288612751857070871135220201385322375702489874965392294987983606584148024592335882213291037666351111290839194579903506531903789821295938596093680340353277170778239363475896101285548780678542771912896066266928870454051491156667294588807018825644388162259822698236632551880031431326781955514650423377569274440465185980741515195253897869910879850942053529159228838720140641191254857221262031997268525652393474375441347228106510715806106096005996038805159329186432600662321392270649312260080262047966396981635271592101200896910733682893911139507498415376876088759020594726281307632160547634392192474652252546800858424303620823548834455161802441981685726190721146660727064566699664126828609378692921832544060844569726168067287685301495045702902214971120877844596443385858646470078774305862129316132937724167950555804313564527877621754018505390001009290133705127121687457529597892618707864632750128470839231520741081907458285055644782208894547006263320968304025856389710791471870614773940229242588257789397800150155868383625028195453438476709883855184986088305298999496742090348927125966397538501908834095925446049231692674227113562094349041828937672930408882276076197369672392619847606423688204674879064471183713026255653551159090480989399094095937864507080221522252540347640763061438890057069131590406739910839373973749601839115856225649624111014393844932744038372936982393438334017657794849166990238096007032467749294707213568716653064393471855891311408640793800962347127074177476354124488155010918143228959584188067004532421889103938300130517940578811231890186478108020963219818110090000343521742278545022343930604815077410270932026006800693248780817773559088194543008743129490561018123159092195472292346781429565847362966097886816127604838545574774786582494557376329700506038747366730994510661535526678594918763277850060126727501276222793914989967330132601819637813743760480003044050332788880650917731627981720018401454316315322310498752474925600015682409973308454819462759207936994474768321266481062178993855283410305364471384496127640862776181012429170955559682068608656566642766789692862613408816141628991859750495921747518371146041843303373504795734628172344960721826062034996504969086270700162890984930874977636767442729712777621218280268073278373208377081137912518957313103055020946168101869428417328877266609354232060739159111647558990144595854146602042789502453645119216681149740804577091095857356275886426268865055454886242130331235823860337433659603213825177244824295742402731585655325187438574832970673738725061559622287393718733612614119329879071707962134419465541103981015781528365593680771233313103295812599937071917191202484177089750616635998154954274390248212611144027878199807672345319608321926349104480611679788326611421890108181056651816148497985296781727152865629477631250319979738420273546795590748140291914852298313325021564150545500059368002088470956625901265826007446359232270987666978423475426306764238798948892339645806178411183185161531620455480384804592904827058677186409738168372106522066801582614114289626944860829809228623628087054406463767706811752561295535716876424496252182564158845759884201566448000250328359829838634362019130422138929496647077621275264549743545959770761669886415789457757838345067763875371963485611417797752211572670359482604747389673498407164003773084541574628136025466012873937677299435197095252990198079807099688311331313793725366350840477696127875332285615483830514417903025078677236510207876312550262233074946093068398103186114252715881003588457894749226499562546859941859221593930826306089702559183436534569347706500064634561632629832250279179596030814201520755873028722744705352933270024445320555934148272848545569280087918596297003383623060612405366434415459638622369918011027671608109735877199410260925858278018063299870396863090841316550349650276628656306926258112254416952829303547920369523239389503541060637336219353904493923154318970979427266245148553854060663588422091256975906647609426218672301335045423275246274558780653453110051224805144082870622622236591291206201668519057013537392333617982000273587419237936446853712991815218909294889611924928049093918802566247355689021364290487650914125532570415498447782375031879958935756424623236558519513327432604395662670796033834948363253764370284302638736195496860543276265121175430548058446839342556527626786608503074244824511752398455938443769172532780598306302075284909568501329972980916210283703321832682449018016296885220040187268209467441679933806235363354434546902293945922515250209399224274371306811406278276649169262544193712398085460279497135398646965577871783093744337019298904528622778243037169053365460965198178525976906212809402863109836159196151717434532333644370214288520202812724802058291438251234130637705898980764814329090760591165069518718938464516331659294371229636470401248584184622462877184331450180433559538154955089216544850264430891705051851557516958130420769454610611181049290974600147674879545967356177858892906993333915277252878036640322135948541761676137286159263995368272256851545827563787316036901522676415783169747939860082857842146756819442466439132140871114114519877424902654852265729925767871880974770020188283638302198861113712106086301554948762178049962190786258124437635582026556276058798416467993619565381795412859939565471897726140052495423997133547191417208595228680684119068471156904352420567047433717019355634610509243468234976856532403330155077494529335070798079149880659582603223292327369097088983876354406806252871717041234004112188641311858116312210374660186785523963668026489943688836893609964783753761030595398353696939616071083158280834014959700050802240220751871463469910644487653398239909033812655737772719823828485085220452459705948339796898567926738500197497149855210125110803346047218008547424871921894776125169463530878904011631785385671051604702138679427222599733310686015596032490587106893487316899548320513470855107226078123802364747300319388566708964276087378838490929153138686425882916569160852082134042634707026256851995283563467706424051653680688614372660528622836378059307777039582651915331822553671483274241498896001657522748049189929715693317941364601015800146479118918013056422608768687945507710662406970486056919230878463839481850793137463069855571202764790912573809471870018741328124031459624471985348116215617717885178825161502214275280051348040806894844641002131414945066991274039324299621390644653928529378664824808051430698755972716650802007352307585112676160721336829347898941561004961316407852814254491922166160427491624616773256956108886508637883708589015645846539413635698026356762371396436450789058684635931424226736982592530002885963997701142755925339365790724165158110507559853832693185425012760194524041429753226739583061122955234855111263159328766030509055548883610911980328716850609867248843164729772843374574876883328153439273074738322620558455696528291037964417465934200447004522807329467998511955907069212724128829781485332340409057574035475554349769531657636933711951047627695777195824443095958811307346749776963154926948237560190538527668015807213638841240628656542451106947467734519373891121322177400327642147070930515500476296841575603232593372985908103507340095039026261448169816541376360839114537925738996681993617313577130262978709422108403826444076386265805539868945572048078621179785500413203874537161126609780148051870959021447087065214122799799528164199686963354195901093693428988233067924257804362687538266182400102588452567400142574149040217788093755404764894128185831197662474003014282126102384053171243024415160654752170257009129870368738670824609541308610593045863168686940191209633686542585769501139519830200152689211760543651471757166571539772158496106461907535673202228546685183296780921558989014513671140671277550702053501004115368671488226548517800784595364421814759736495629473844731441282843127029709736110535405596040930399915686133687273442430735534394636921186418460647135704471949678485488083252239617626535552544615006303881222088432992690840604289182052775271125487622450975784920665692700988535020301044909836530174758790470876897289405395746417432916535606071560976744255808592183698443393779170970310934092635983259083113856640048958239569292457906975261060245117677889852860447713268351916530250691050934263421936399875618729007200227550969252500941559824082190556313187549994189094182628306496000231308924086214759946593495204041281882657238768120163766114379117289200169400241960578104982132898462859674245263280071406354990566750696601324048128697080927616576654602294903052832618462511221910862934761885180235225520574819410364061481623287103283729707085497874872129748432653954202399616539798859549760150334400724191343640570643455471937128568397799838296134629830989367557415299851532122407103283956431319866494608009671691572445189142907149833668638476890401818902630336285690271439860685484930916415380191517800681108207127513597904675419675843533268424309328888944013105850945670927167659812517116419100937858591576564647973642797791168294669936777624210770217232154816752000526214160218840339181399706733395492253325174585894695302308858222300657593644787880011724135639486689025525972844138681291515510255723330397115332447318401732125657566330291799429199834927784759934339506775536546268392343834850034617140843429852550080360630258969562207147121577384283897766516898815414579577574924941337520309166593119992022890571573914296550386112093264475243272260952977706941259953578963328969529684808228978704594770230969133344043410587923580964324224603700297291101068378875031016625488933787678753179875478172779148235025879638730798099262954464844671082193294284467645675836467303036239918386844937206267421204034785853947356397457045737732075939083704890500006669232937937316840225731318117154770223188578161144116151395039230716696568493822547804579899245065537037106304540571686731941534474404289526573049425187835902979944188914765599122332194678939999651535911262664663786369116424207100683658222579340705562783619001312664557049710626560624226331893427245112203257587888091544414320145340569111150462121336934058154110068625108435669956246842681012122233444319027886893068293391295042631631352979764610113803581747345315442411769199525622394148723760514717401027405383221091968206393654547576050571204926792143098216255208930479852374432794577776182071910053310851188563658664223665929256048966487609951994445095865270681855733298178652253833593244557512786248026010002899485395249441540104558554546482130893493592472246608247869583565363493368751483888927409616489894027232656237964125839004284053938070360023025738978541830289909165673844120997509880113994936114297488677344804808570795612122839908173738168099305815347805628869988102558616696398405323041775164427003324415495621980601545192233053133632413739502813401196701063461765698395318058485865400486054374410357893786409299955931731284426008977240096982736398971913898815394759367095684034747587003876758445346789113588832526787402221397448031551733017717200138319517572230802901618117672814690345658401713585089673701496332030887996838073541529914098472436601477791934172547860381783010373007558154392359352004138642248326035132369173876666871477025260163516008261024604174082370758112212710164098730225308868029521244933790343844128647533545532077344115643969505456751552546597807259350110813135665733604710667057884028064430047610291244516674087251557548588608131597321305270937064583354932022871814524067096088663079353114905218091354397647455286726102523649398050716028927268144339417391353460134485661457903835387693935435632722930181096893533046248103908125486342519334687555766110211320522032377875200451475431172715824724533359494294304458728909480044132837268097300677447804867055827221196137337246101453177882821443603331988905635397460708587304859045710160963729993287504623279578081195713618327982593307406764078810017092638694852656762109912731984720972790758992277816622128824842700394055067891533830573088441601816738531858426061784246771993802223388678952244547548804669523050301079556315928754388142384400660288711780803094230213536799648337777858080046872810046374873758332541467369741037708729261538878519224297003058451253513670839591022174049569006488813854106104294663945598654221524196117330608223072366325275034664118790668091647183547420076080229184547288333919067988494254207081710713306590737934251279562588807022469023847974426635198008675278545128211967715815416042602207918392347571772301168624965248878014158052975653092603874810561233581170688013209407058882648121952913188630684755739372455871925139229760739206579364083668155419071241248025334565995777063612111617159777099187230854340404576215339489538372814593073991189735313227060989251184487330892959511832270636862701508029811275976098965062051405309235999357654801361457688639422183191493342234197345292940331576869005508246727365656732108972344547301032830820939925752367946805056983348820807498002991317962414320716943911491898109740349758989596801559396411219438268489325557252973826760022867496075780663945377849700412030464136209586451134207268854595262759797457224927915403698679343605309897228569902271737615382534812588439441368815188010247870026098734531093331995041560662769506438486353535445775405809693354588513113795304175286819722725157879226966233107979967201082560588025330083555802779846789718375390576929829688275533245973675337081687069662983390768435229006499417698224084333817788204767173511807536748867638935028914971074897922008238101722127252560772742175373729972116859001881914126976867341523689903895890670383341213303179039890808694601303428476037581676030482353834477610450356270512444380423556322249192202115346513412870723231713710587503802988462319218339205496855409249007363727832560738548993028397663788775060053532332757361442487950591665038443734777779093990595622444056541289477095770303317009006305282944190973916390710779083180904417153112453587367636448803361676351213013603177888934104319650846550946899630161763495056936390365460216127404919090495321985298515487201767333080755680691935266806012260953427377498738782959433109115555843388260415956014454500043795780885970966315408376646783130341095768031437982467198792270412462713664237457099429659198105975617697600420495993002932948124605559654181043943852317179654758777184526466173237505234826174914019221064843581335964929930093328637094418351422650481988143056156049334456209079170401146888543089523493316522540445372523302518796903608440527309998834764422438280550106223787059920795602995549473488123261150998607026673033826786919771515826729773597149034020340547068385832885311917557758876043113780470216800518549062851164818245061353820672613757714822632041595421475295402269906919669014783704022901151761695653843331266085445651490524453716405629224432826588444311373867098623709236441203552383682460656698868905233157047847967611404355204643683820529298027606045338215446262569599618756496004594988817536826367347114710044413232048019884898988280442989056226883595197752955981232445467435300961680913135917924172878653560558487574303779911221675339500956941153810699418323650673505482165697754347574579146283536548838959588088957083140833169308006367853690113149140879097444546677791210469418988410873173121164754146875873029254869442377740035148102715876080357524984393505179514306167790392995277676450130528606375838925966749208374448434587785366702290343184245623732935516414717886111544336018617013493729247814840875221663297531119524959133648526209912632887625301917565777300427239219774039725828960732762823386539585199829421129056740101191275979751338525798061350728833851495919005778055699984919744436577380354207698184825609794444929470959339989993383011082427055857556092641360114237423823160645250389285560601851196548294974211140900425375280624927002313264073295703265319878427961425867243902242043663413084957708191291423562009744689568558547521818444732017658644516299173407861812195303317524571244715344603936321443459842561943376565779528414239629911997146645854506257228432547404094262401420294898736680124436117914477406390946603928045749819221751106533434581190264399219263766074825458737392348763041784933450144770574562423075568983479879966861291680086841520454363610372329121030858968143040442372747028761357614741313012282407961186757290180543613806363321989975035324117483233741822650833630171389985982672832640202082598788779939769731693776676895676436032045067289316087368358731556193147677304468305523949971690819039415454082535386646502185367303469601369918849959692824235349786486806445335187404266513442709921131234199377003627821325074803777500439776773648998295069584925738536640457305847130052446760241173666253087707382386913704731008968809156162108151359167700392190657639800276948173897078599992219770522851371180697452604341312953979554732592128702841704373590560986100433877639863071839799240297052702815225676661147310973504044598262722673330079129373192481052416291976645402613832524821683921636212876320801451554098671454151335936077219314783303273328949361528774440679875210563994557177246765975220755633208547153360538246115631567446007592899673994422083703715648272273761734825615726290063747214353983775644652013770237875912623633956021258581604363687079426592462406356139969501803603644205714876931348958506173933356909027457165839719175007580088319101827221996445946985710688796656034778941571688128085787290485528799965901343157649696381061094658630114632700076906377485341273542146362173310986271891566282674641945336920786889585573049349100566525157779082740848320796506233139329922577685732331134741406525481671326828269201121779227629900336637442618560947779361513636363518808356274568443532839024638557492900237763725749051796203312236597016988127118053107805085862077398155681677961785604095130656870051584667882757698857158562261223663001648001333463227368256925848720566775118885024324136377595520548677326953670106706069548183356721050607320308548534375694507928750078334312976848123271997426506686369705287035246321050023580192242576297050290062722455878414482747160381799477572528098223588840422569245515297815081816482890214341253342664561315171117407763590796789720885671818662508793303146132827319622874230451635835574062164532303721627240411232492934409104311248723258115948957668074337657986688721300520808099896914530275264914916026278789681790197439424434607884415257823534436274943671024663596990120225549918181727596060661551644638674528387425957206654789865186128525689889006572315586223623948754166491731204758353157866598989074078991050422142625429934699962557423320146155619334019884162313900040100786798127541473011796095850242892191477162340084386782656452315442124704636041555060546485581688947437189193324885173806415754957452515487044418806580328453848321028188933082689818854247845891868793210341965935180817237939829412554311371422257620440250218045237675754667669856081941682993043101067613879439758609520304820551663626889229542176032694383904670797765178127632399000176562536727749884053255263997746811607358379932584634044757374737995765680460622243598981610911241652368254614472472035385648549255945359755168927496655504084440856277195851885395843758170021954583240310541572446795887047761561052151905147751694778389348658204449058113413959114232833223026805505709320345035857350552660981649859409038541922710896615881154522201251890777937584199502607076824818223532184418295639072802316593584759528131329966964666439576004658531149072844812381004187667373360822462769764683547971056835472786765611395702474954506402955446793787247818372742113346401108207183044546231878115209038837828860353160676004971049993272118276721579822358755535006568605863765369307504614637843128238145298875391070792691451841457588200220297415349244229307245498096008280457255314942847808990450306973199910990211353117565501446501350479425465633820221951108150730113748788876790264566881095293595785217267287065545215110336754909119689164520395442098857973831208904971126179981237326716379081803397189383265406549700067749201175768931567643258297136276401153674202275567868277498948305955142945943433980781440226568578155991439192531966365047586440576862513408069473042842553726296211723681292074051641452026126976715955496460649975517016843193088360302435093007765401694208710414954085375886952263822416287896790260782910731207957854516895919678532574305351153744912400044738806732285035917563470898310805178111641404911777609205128219523191571273084972181286329379625526087227461313416005199665375579285141156472533989940044714991038025676273818286996919925272993455240685927582757012421167566652664950352128483293610907733969117361276052411138677067715571502204709531328470988010955219382160714816716808282304497740962935714560619991075480404149436117829022343300258580747658511559971544545127119270603297135712030046580368477475289809156500060145988295071973355325562601578178381864944342423468879385892257772321104337026809984994244179919733389918091004736318187088407923445436920505568163766997683985507541148592844971071015967258335599796915779528076635848063627020024022956578037461696548896890344358285109816183259475928846271869146706735807151079541749837361814159266667121789077539250748309121332432411128126168965075673426710988311254681153399443502963567339029793956707710916868161380310113631617237333390165348923636789272327713207430911348923205229272294486563930465173332407955964687753318804539829837559103256236830542018296186436120380493033057539414786444818567506927898237041476675264368297145561867936352669248685733571401589344670290415882459194894875838608656082682715965418262519415955636269450213002871425583904986052356276154790362139634416053441862618178660649354719426570130532462739235616578461898104886779362486176635737321416343934755150614982220589596630457465751066194539692757775345402208266255666718646846507459520746628734030421596925416568890209968134360316922109157531864378667784385709270355096908717470962470192811399967014625549900576435280915016338711675185970327073554797642635621344980786092335672561146932437989239176459907686059912854221744527209743549986800050084013091465767873298011167720375925053722680407661445154841094724847461840298914391538538628490214104933388714338169607088445309227388297452241941068305144207898668168111408455581297347060127036038654512118540448304778268057114543174741376918835684797406987981382486262750401560651973512817316610451195537360037747061692348692512554301500059018650673802770139893203487385528154645184918495890666078607950483999974414623082511042869948074349058658492383288589166950794110158882887081658612634270014182825083410650681036946856783874767057532337534370154216182005435618988694449838136780765190864736039334051322716295924472776632445409312539746250984345673389060175271672117668510253824530077910824224436280757182902434701995926497359835112080766671592498786437778980960681914544407535533521157122523653362786636079986734236749827247066698927684739302578885106290873126207909056317482730625145793178299813446762333118380880255254354257885545983856567525458681769081719372847751357822233237583461348939106922837599515052292467819586697134675429477541954541466068541260825723632071844170260783382127829457622410053081346801488220103943353570631519183773453495654039965742144020628739655563013359773916380403623697531431671652338026104614227847022159733206706551051934368959051253880614445815715833848815681545939092538872991685247319866001954185486730446647353408596746723851482880540472944696771687069721127116544392617739539662156517797771003020842113525161490474154064161888132436194793200235298555983563149735008887705777926264487350932393086915438470987711863961288114119437750606488923318697324465087893175395928043251989022724538623875121365151104879189972509589193873323493757442364270306298587645566194077213809611253925951911044273688271815931332142403753538193611827061130783687203003548787525178402297933638766101995366555274849007468889440200405900079261173506670834231892211990708184894250413401284589913110166672773877691741066339017793987337127786390121607956301784301070426321289739066535212776961658271890406409554310573533869663247642953915007886791395260628708170310795390442744093817262131986631470114360622701833845530653075935069962004255958832787386629664847145878528402622082531892283442750407928514709103897623084624609293878255147680633239420065487484778975931596839811829606043140757062381578115238927635666912632660500060192796135696158297576343814606485073156878172688398124203919436275534044225437286723115711718407471323747795913496251767386977487741915716122475620407237374539322587839015516843640651198904554842168924857649975204303917929819773874254398120088228291722798173516358387744450622626117302432985365638474598030250879433236143110576045889240603398039495502160183163078362820474596403594448635495061061472707086133247122003324838434451503851873138684045075027420803719858916379482537549508504653298627361265988198860046943424609045729447236295294136199103104284686804479201794609948107046776351190082476015750752805702724382708989168018149365176615104164386778701042377907750827213600529801674061531202704779616648498835202514943847792790763671643912585243081657598341669898557272167427394195270875628201461252062908847379605645323030342828874310506206640986478851304410777284673219482951851404788428482926162247524076043787300077370169492799205470377554835472610662138905375430611536018874307397254743394571945016615932212495561076977021453590435879883712083077035770842625698855749008893866490657805072587529627258675156177456161761856999446238630564174824283995477185780564293714153869563599810929441373147963491802352427743636241549740791399541549010913678770855439664831650963581701601451134372342720379862223088094417209881849015270826714608952061092451190917242832966242620374153478819390616318519974503528330490946091864121707212408286219448557476907366994277637045410842183572866123019597179017260052339156401317109374710539279592692192623918968127780678020620428843085513950505889815527047215932241721060749888502236636582465297386203357402697808213652862463874618813384691255061031233718019989317812529808748718066695576176509739291132620793544557424798488061993239656098065446196321623767744216282265173956001603272169233863981511084653655432170460837568200207128052983180490409174249282969688342771243389788925373165002073059578693553004940037298691445540875725659267878077928012756650114390770345053486262942153142841797007909099942554363787530986673802767579437995406700237463794611315389459869769245443220829317547745995913588600705593500734973270096597375043734045829054202172534908242477915231887941986240064422861443924187963672570021560642436931826298538996776154010496050431919329276556311553314116228982899114808681929657678766257271065906106950927323248854931731095018960046470552672399288443190384591830283529197913449934425916426111895611689360545082696233302993748755002520145888170336261030089959346437264318631278176501723097119355673271335151374820018626442427639920981748853034057931274921896865136872067107257323853309289001081204003343018365629994683105366860985149966556150288122620391713105005225009853382768316202339976965475549269531962593812637053999529884680521929944201799025236475339205129881084090059657085677877828764294379573657634111220668036317889445145963595289915156965470941402727155621888185433987148851879393185505846984164458118927197872056750494991394348398609770893146532957604308825566376561282838906863058322329796284874253348686120970859928937546306661568949220765628479536949761370707508713596981629629308289931493324034782460910495092049443424547435463781337698017849331574137705112441139660028316163071401492036555997205007273688867204693547255194543428703748611448529288539824609342615605668502429075880486091765857343608515753400318622695467037674247661139187536072397147961039805737925795512411975419886851966465328246149448043010475679875134963483033257613856337066609347514093960850422602178677070409006859146212535728799076153233808633840510890982551113542310560880376541917697494404362339946970166716914923452736412611673522454836400443994548658411702733657859240985507232191283450854919693936064384526586622190370263402646345478776298244626690443622167210407312833826066316659058841482232531162699199145859107160056397582526276279035697443930541438814433696080949133951300753597348702638418634300358297920904377281933157742243251357887353984916325130499751259214360863959066952781442965412391724976436311058663297735283499662035988038495234096088872329084387526138419074126119820771910615736392134046140246826266708439533552850512795132407691162852694809476235429010659469185679510190745782602002184579973861579241057138508050218075803890938885313016590064211407635658213561561476110165188779517573158957125139906871744168992425332631995729480685179963437754679986917006408493715868906660167692283575291864136923246564608506201308399297583936922364181659627087933173929040884487384727908050429398400923570689113747829592115287519984822108529130314932469413622123389508993887604540526411943003868857333447161238526081395633868611047339945833576986301128846314272445074984942832113568453637525917024159987235337083497320825744799537331288796874322842555921955030828651286298518460387997334166925112481414318229957193782868029306721238945857742211024921041907282795189252248479414650003573869627252979659658045160696492324262557499897986015927720161502815901391698729306315921336740003139637601355029440175374919273312909782981223796075431737052139201207743032343655554554839330040448774901686204137768513745471681637131229499603656176964490520508076523759366862747151710224354084692527506832116018772803860761313930599528387198465957636727261503523800820029335476798239347765692482091568100902655635057539375316981911282488364587541546363350771391877872024318650729191468007316927120508903354159305464941619215265859053554643498330262460414281921265897877351783254227524268234672496317620320813154816705273287364896419193453333898545263303853557316078846153536298243552991978462556818128353420917865216092885585564415336532679869721004124809978166870309778404227713433151349360520548334577212232320212985278930427567260967351868793706886559215336339174761268528827066410879122746812922119782161881855753372325189528782022665980870402682703790607390640614257219997533926135991021621438494853758194536439184130051576499836576235832817059226843773281668606910650928300743637931473942994000331432126541859195950103473495872673114841235689390646619990003508577850316110420408417548272781596962794294780192071968533057066215810356650140979399536807821989312494634772215826648141152599210653408252035027864532777498076182843929639606596086580583390180443907193918348699897662056711267412886071413457756047859510614161174021783708871816979716227771276953726112371623779443670911143667791468866704018788889088055299479002739868012602745174455486768346440834602874953467325316647051914838003661716009999625065151646591561783529714429892380969203209984581291353870539892708694178581138454653212368204900486151300986622387993847251022190975601052245867375239664504637459438717958257478886958955352625738944382450503242056721828053962727925190368084378668319332087631732327611177615289803644254088594909566250289218607778430734999259311184686954908051255038790976453693126570717437824114472484903040247298454098338900735520684067687519257490147145907305773694213820364075673682085944483102911074046730043754301550078219037909709829396790533300497797244916190879480902604523630774602674022889102827578472116570400440027371654411376459427343187855291754524695265298712077983057275300829719030176953891807698077742831757880538144332538419377593061425774694546133943905027243837012035233480543452468580328087734577848058788082481259212003810209294961052254388672381302353808578291927782151463072474620201728063685690165286995587625637608490946662884971016612883076587942449397140241092536880871751664245235351400035592832162265985154217431682012448358263424638716294774581315769985539971257811806202780857157562028692047750112796590027637018009636968833092883421295989443786905971829011708641901194394107808930192507248428391605042291544538440327253342879360113043747318351170025429289195298322682612860156827549797782497250285798458732072542304398312950693991555260304470651608112800660795320372859737368916621095325677028426956579105374116587731700181307215367546833258376016506067057523785221807017153220800407672158689364057611456229276736154849320782064588836513789695143991178666862624199805455535675894274337526178275790077960502848211148130986031155385400276873813305748552256572909307145204740288358830175035765145023706043274042139628998522078641209756167535653580030540937598195730257915473297931913796896292682062415259165063722248621512245076200786405138730662163228723475179330527731165288049336811926818218850173750645890954801710711219351365039897354915179482041639655717757626409916171026379077453731129412846762276908621925287716000180198332323360441885125694399283453461920105515065208128022086489905031888372421737646110230385379369924347103445943420353778474603545809016708284832344093061332081827169868148987458444296512655409768767588231247398950596318059744296619456202853357654241322691528080376925432814369594090933052331196022995151504823288340787264512719450861786752566543145127540747251969334108285765150406070076544247736388934328264585665320301192565021722216382434793063354655248475611594587195467334799533212934689435751628804929079260982533216396072057128558910833887511613468431163073500359984863892703694254283138737905716036624819393389217081183628110222076331919345190709841126968118875777198340083350273672174673947009162661311802278853913464435462664774208151897623808543263256101210699080372225196077890755346325835627622572795932474566067806918732436526219060863196672480129838240352058040622003785352565581547845806355260400048528258136935297777193528749848293678422508822620072715402993780855030365937959875804336816352011761139859273019162835091186592201021627537448943012889191240873061512423136992757401688479654066977766657078216319660505168052503357926362957416103791556659671705781261881042256283864443582227987909586203105493536770303525412761351983072448353998222896176099134758129711263619606392000680882649013228514262317817391382473675977178323233071624445174531863068796056154894165243325056752307455653384635563795462122057327908045075902429040386386796955498968578460611685042353673932093392047803517834678366273778577836814858560931708346643278857729129269303342212831934925052410405341416932116633883842614450949651176209601643897982495391314591111011567261707267323893657999817073323438121859452780143456066913759243066600800768784526793694883268640444679799919655724050362053070209720859678122210558466353488982360135948554009204655249796954316849854188846773151610222573543207155889589294922666271376391228608047061554999900201377665535524222849804692742249182995010803858044478441624127311662362342722931147197328743584071530154779187454565205481928871653781283251484160459758939455417392546015469324852818615026490346823235992489421146608343283357954040133771598659846192798607429396018022078893507266760967126443145255003337354345414066754654578172559687921376935138414571307830577477356721626926484016333504597457807669627809154170520647344603855423336390330387779649770930784800269090696767450548653728145055350762952758637227387278250764063647101235048978179576120857349263761177306872501617090448247396954424990619473921282266385457926109503482485778583389344425796564339498765268527111913017546370097862520573805949442675212903049811452435287417717341637604733245354904271134802591131989970411190919330116622754841164040145358852787445524228200804890460364340612337431263327028410820828283295781927781622737976079641242679356460363367452979573014433528599738763895971098698567197118175907470194213542814913811219177269275354530785941600692139314746379570479430088270002561435721409426854722903003826764744074507072868659895884126946441247188817037572609207116950286953108967020920665392443268336722195500522136230563210560095280694452515827627939457048673731786440391546866366132112167510352193012166689191130281417735459560064894771810871324932700919445783893018613526274531475421236463604447490453023549264636744131994635969268315209328879965029281609890982252623310216002580935266962137210501858927613925188508466441641932971600409510592805850110234834450674344193918004155093237824511362070351961080072514977325776473833099749279740998421684598520969924789723375532957105200177007569294834722213593415734999840957362268082854209199841078889906600669259790159313186594879162536647065212451047439469686693407302699949258532009183053286230060690608824162701861620313610409244278428596364162293766704717938768669272022511775044350425019505301741523323429214603623660820623856126015764094904089858046310153098043281185647409355356203451652285864010475600597121584272171830754778151590785552535153004242551767392055404630024587769572769978951406785815912070916941887109560500753147627624736404821207022938071658021070375882281373276697447307501514862952625463822044553189817201759945994267655010620529357482780775739212099338338429085253131559509635052732608663189107089106335690114724231555933323563230043302704202079723313446538004906711246146122185948135156483203672194302780714352646738419786818974573319443787233052340191770602413395002052402794312040630652054652474775459273646324223343348973956055845699998612724436697301189247762118864619557035991391089046140277873115019231607873921934024649201747939445703926199344622277531173060370984984167978780458868311330458470839939465836893932221463508939309165664631235769729202396004835693950164314609821993671584826910742945349627314892518698534381894973239137459531727182681869415776584201344554599175225876720929765645671996738880575263737954345878898815680374783490047104170776424020178470057759466993748399409950899049193986597069194559350347987189058429974822713058058600721398882544313078430170645233476136793632987839319353382683309222714399987984241746607663815828349034360340671173793703494871298495348752423103258862465269393318609901979223542809167566925976999533967192434738605239323494677686678481872512040864940784529882511141884579895201324818995749366003210423060763943191082522181386255318459176590576378938948689538336417827777883121532871338983065108021911112536912555843105956143905870018905739270214120181300936616175873683999266534063697848333683767650714678863653871865053535319762893114036307814310782129579618406866181077927139439657004052133847475759429592421378807444422453315785707040580730832682314803882808458018612338655357074236515039633660969375097168768278076242426679018461651283194887391075674247069426676456540419131761712297993890340660614122514196232554798017925259574436067501056886879131405886686911184595584682602361155754865534857213178988192991086674233032777220349936324262142647689629258130867902505025031390750229591876936589017872144625016499257094630370784871613961151966886078686804580798843685669864715722227737085467146644044360801454012096278524043663851556711390724381949422986362605255902815699476056724895199397371094486061746717901252676452821950041140832917313484579836030214097921835557675981062740695323920059121790461027452161353537625830386975997825254934555405638290037167517258090764646903152704870309900038507580894223197418936187439314535585774439791269037626749218928526123580247074309929340936649500976567494958595215352885574271890494676591749161775352875678920379360773256729900924612575405450312164855986266756133078238506017810026306644461128145534891593378811400085027341085393396432450186627018418688422714431762525852399390807160043693066931450652672092774305956674158029838565140207205440203708981979658358897511732966320405068753556301135598804694371698764631439168084789647247830531714652016350174545849161008065216645580270915985839355673115741396412933738151994987013988163280839976227340738882378640742706179156191936086883182370841422396129572281949380212082843199982477677882666772421951832706414534496156789116123411597882502264630171862437956092106612064918226565227283051160446849694829262942642487860317800468216700534018975282869301757473724837198472029441327816201126082487781836981975185089154881933937172142269120105438138789579725765530814459585789257703109329792404623269487763313357130056063497184937394915148162441486845653119174370753010727331202907701133485437238809373398068452220027192379990248780219275698987924538154638620940257428569554522079886855517824476852213133565051696174244144216397483506157766613185552850967942561316311118289442680222781154446769196521663614062348887007956920692968702670744726054426607591309642840859180937181144605404775089885978919867282028880813825020833346575684569033254531444425098974406129218520209487654338431540643659049182876107443533293512304562532103538346984450237238114289881607236274355987064301587415395612102238164558089748604472586270486779819532150029827839758917589724279508733368814013676521677391154044214771294690357107448528798098875294800022067118252402140575978740976851138322109103864896835044032977158483646546616885392055072920965586352795769044244651652963907996851786327144095454346006527364073879152182191098692508514489431054712690086870618745316380753728162683041456684160317518004713623757160730547361211044414287074358310788799511555982757759014923998183836059096294618152925928242521558722949689628648172726257190917092039807322644011048709109722086608517274765802267249920543932009553659795719085501159788149422939785316931359398381008576675421871148630539905687767872422322612592256862314793463505629714029802678266937001837856781614592560806447409991838142636886887055518469187112399396556475977977111117765351642831863832726314253755773559868796719553435627093204355734859841124196578120614673342283583597963631701889224879829061395546529756174693604768510723038406627371202927154379378579734773845875631014043467444731040642699112269718557152560901195905551170929870648293286455377707878125030172380639645826983643302626527929454936250070199566619897442151443540539675606805252969962949558934413422746255190413549234412110887827664842000475647611218697709144665236388827202436920695736343986823774582835286798424127269447092778308760953006816230986157956594482114565841667538764319292059769171824106481838085135794469258421293492033954047690609701981318363989580669033787179643678189657499638197055780416930534033781498735122798600854887856847824881207855693417787265645893187170797717151140776735836794636039093085811575353109063500424455481841905429796126242363309248872794428639755508507088781167948441094078989750454913729495266215098501598895240595450759717774355069444961818021201544124993430164840782004946140591705833118251915180594935755040244913143471630535221368456082035384145818374645692863361937182438721763247655247159407413566989659300085755837315256781960114969402294548173109329259872384636797540204426524526378735214416070891751064141844623315943745502163265241981763203569452238458556851889125312918589407794686851045833121270653944511563570771588030869354004494866861419668022056245806454722881164729902681635751203486185639638086645416388145344760403998516946455874869975931354194742934631637377496843933028731724086379164487689590741954663892974187311392098614984016842369758577589730310953751178527036400978756087765325382671384658264806726735141764759850762753540243717359384719653938038113757804180738178169409124208348220477610579454819146676009335337435701687028988320271621738848243625544490416679852350065573101768392926602324238456746883213348512868920860991545239526982928490104683001724180767045782309737495938163336686884824172272278110517444508598259912176721784401746099721255538193457812738051550713805289259647699546037262772882370387856999560803282436333130670196076448933264097192309608375088943837299605785894723384027259550070951450638467840951502351358620506048635847788400657413390215058710454925528008972704096112144518485662896612749445788892999458004582886590153047543373576005371439813722059246355294978514715885559019737779073343845177904353455534552600518588227129953174400892790350422504934804484962221316363395667166910837900938802004439355320414020544516143327862848402526573850849133027843231498752776787287856800428391507725373277529526612876859084354522772475053973841371996203887624734856388091791631715023985517542498494644664926374781657258013795117038367529434062121144591021478017754495609611486809165650445230396197209861350063633441662442414685836453938816024743128345395960221131796488936241054760317758423305742190947594613710965769215460178576434792639478301716149158559811263821204407241240372929552407732375151235780715780679249158360551320709939192746707066192901453047725145350336971985950360484827551995206072937995389204246820571281922562693762110337293911109818510435285190185279218454325103369302930363320510264215895920416082342040611623489040699050694671579732453847757920177929711301524294977710358718168122884874940040830993465577485183987677013373946892683831247689535257050833351149092532456455973182032444101990693914561595748355748611926726411519005114168635255229927254264853344047306275428712334582040676324499186878661816578146676877835715226936856728647585015727086752307514802714545345196823121558155427432785468888270724492744047270387246879708352282994654770460558700368463098482367476758494656203942938689762386398778863263898729847410536712278840749231845406470773753650099144247203280444939332604270376183457180875892628630005936613536544592617483002136097114777362011681014311330629251460696711839142168061631675714229003713144445240943904392196611251707288335608096746184400490339093917848850909679982639415623202559401188780815782244128982215153891520982373795302318855216486915206176650105293757460680893928679042549426507055213314706270133481191734679250251126812712146202300695521167132618668942109593953238280935958894103914189959157335875066576649988354661976282143165445351951198341091102433274454819304576164909732301451310501241126625785143295079672858470853221909334211895208015051001728785800766153549734150689913855237366069474874733951893261073405679294541585391685725315556636927598817231121269605268425055001319402506221705444807377452444124398202676237269035363458953865967802665031929477178313833245653364483539077016130398943975035252211891288093758017926480218429649106609551109949215146372846180301144441434141647796058792846903522694689295873387027962200430195744710182127063272358557077710183292514959785685970566963403840488634418270621033286588178631698617941619464920305753397044208593220053971160744774493000269983410855946440882757648902345121727712368260562378713652174284010318858049059221338168436342395549369871982836874021418079041259301499037331796257616618893364617426065667273137508136428517146002045740527184018220200578440257778408992521608409967903761758927366992473256529753021848224647995435026587008889846299310132499225643059182383491854130307831334685280995014713383560395967400366630275212242419924465116339503963613462878467108841012808269398081339036565959867332854388154917887136926863143185223777481891598070621570953769169145073733865239245262969031900152448749076699822128765019294982405711369289327943748464941483160170912989015513824652449278083998868170631134471519855363146921062074867903762759209371913528946885753559183234972520180721612530641128193965382582554264286608770805528630462090568939747386377198902110426037022738822653522182912902360223111117216763627232597570586401119393723644773712414078362209912409262458349351424945639683583948544918077007635308879732387606665828288719827279282849067922325660873536674122886898437979944492270037708770988003495660577837675684589816645765135374754738014774025018964484753918465158346539340654425050034249423174897301694875855498452914836639840706651306705807213170883817069682115474054247717262234446612369306945830086619217529164387015382682221971830482286944817936319897775073866214519939148858753240786868851148567926815299256310045066802838916297471594354385714596682946425745707390921067992533342369459556220226247975917446336688070286371832651733107790678536614050751515691157941560391185399566395220751257144682214215945126315251469074699928044488089251672614434410640671905048390861433818804524852200969047970258983192998178583777402166045364677828017020453795286743896240053689072284217902448094840139294590696483606121540365712635095812351785243596003706515345896233323719750577871102592445470159579788195684588042443725216497252539437008906769997634334953337721085016799644006449075201804291209838351861994751435914927575890893711341667373555067249163976073858874249352041287326110727814068089007237163929806779007225550108937883204053981873903433457315180145013078988454685900465796619831516004628743775472755579639482690116829855554103960391186191664993232704056054293767557972026739067671240552652297157273422008982943221834086628933201310343446293492396185187937232145301796035653585879861366695051278967187052488361547756276998393465843282454651696811377266709702400831475053522548367803120277134707077518472169523282534052595556352715082121536505895229527851165355170350069604167981709420642920897468250079050983439287230801507074397154077391356280191277407274677540386535123031833264546223026060213943643368894460717048625468550671831537809208114081933597312851942378585191608725531166541340621359708293993090969840253219752375675065682037351061290895080018370162227763217952350820189212780676933052740120195653494763446378710886041828900836095020073319389884300722159547064158698757938635925626452993497939308595268943059488776613609795693350610184753279878528716068935782791610243381457169579566111729729255120801156745762200286653279462886545392607823910940456498072565829282697032726133826668798483099399424145979864736926147872677680549869257033008781137193113963308190332170116251910727775344211123985313055934826911295000303557030292291414886019135011626831552147241909108976652165432594177921061152961852315852118267588580302735602144881852002890565022392975953614774840437635787511210409516746536298896967832051780559329009732075004279816234662129152557867563048405250723978908199933222766983798309866767897748873977534809630091307413187151084260135806740857872102675544761515974229630898965654354027921876454436169231961026607710689457717185525787646763975222775965845134167252127249210733365311142227975907083703156613888042433169264721070145187624437061264394481366231706252876848704701831535239031150944091054631437440111461461928078919352295872977338028481454525886068059563834364461013363757977159972526631390133443306609241142371405792007975645399548538284058334549360360089262413663525119955795755451693443044505522346540724750179354527964016409758871571116532597702913570622196165929270875913063929211728740749566916908327468998835600021215757100422072115893859938190478133554043042050186335397053765917072510894051933971395529290344546836419908623094302993743674995654360129570341510471317350023660405859642848589800217121616955380976336951048334695297876816226510842328642443791864391249751252175064661217377811398644574825876268191126102550434064891430210111242727388957478916091332776539655438206818920145306980730719941340254735468015422551667323612963417650679277095612605811655491370106656669173165275121973439039943111316847301355503093427455487688049666267531569587166039461976338885524355853527184636833099614477262280634397098957588889235053707507894393431133844949898131731650017116298072338445998124410656323286966879908013732727501889143271264979439921727511571981987977718257032409090326435253601098106037289822545292763135540860417716792031195390266828193689208447345755775691179620743684701257369584459742992439903148517073271629411469272540997380805039546100735160377024241122231446348648711962811962564410904882825411389270070927142741885502513375109448747109225291126522925687427708740835315667545982853155183537100276393688403013215658464570582641200806098432372808219390576643385721231532251359388413879434292950249772401782651410390222645002485635410586495525661471325132618499113170481107809724092249229700392303729309466705054583641409250818636472276939083623541625548635332992924425002633098930457423079493632861600824333851485662514432601490176440383070364753845088291753628740709264731213187823101669749446233508464974055584677954540460790060007115992622695056264109547465149253429674495353723907823886528152931379898716195606113619311041592484534254754522698435794891140239006415429374044836104851601539452025261859247833991420494745397371852388179793551319447692583955446816210297408398242124308078384435112748149666529787989845564077095047873663993977667750839157888967208850663022450472166684026488504030206725044888441457543335502145125066662183813739679452211578390240366243476560375970924130668258320487650129301994433242656335329407202055531576805902611347517309732111529677477043013135924528323283515929193208740272917275541872519115631371420248620150795899916563783640764546778488647027831078730169314472010165370060587081580385550288653308613181234571658738783642600853818522082497263462582436629084126542131160742699027247152661467291286259713444411087244716153090993512056538097715012726395820233057265250927002870694066777529649671542368542648643664526309287542124477926280711797000974350512691556231127267061370669998607811266230036784626042732797259567370437926438036870746213335757270480127592522067408643666524922498021391493750702162507594308545836540748275170353655019169202241310978281461132946525367199632102861561780916173522460824958033964007841008289082704999444390499563131229567476817563603222292390743770941239873974004972029886572504964934361873396752773233108289132963992950183651356993900163273119393507151442655388483598113115431330960436650051648423613075145195276039128426591129034051532776816390709025617801495424724802322258707541561108542201897685289804712449156110528139357030681765078257356203743789299286404195835957707184099736625214980252367365231615928631123591505821989378085005715243992105212000205113630023867119436997125789048888419742122964012417592560151499786503118209896023328021733007738897323747882800671750101613931984629808247705147388156876284681442157328130251361540342161621876680487382434700113112180103396324637918851153103332651629732498457756137331047806197174144139771276892379961240024419502580213639464620859987302025437022116342104617944996845561057544382545442406466990610052651620169962375828805977984394150492179455078342408674653897071590326202381580231885129525986062757618607851088164117965128624613039862374441266447337909204968711104029568982457974099089276811251347668851889045044530264826739931530017270308987785893977789633578078473445861936153247218798102038379025038566365159895600917835980580253972597870311290910043844130409165512704337100639588520650152631574869687445302733480635322420289919723577762527323462510913284896620445929369670690519401985184414818459501788987112795131913419020628557605653026938572154617559266789914373642110828184660053905753871936062779044466206175021843564013339788286274167249146469140918073632690354083714665359330986574120385410119977946217036932606464053015387908429607357753709394970763293644219534071493036597125668517025616246910346262890928098404048843969211575100668464708939548064744485034441608083964855582678660673418654438942658099853343168632145584377291186454413841299942572622420202717909264430982417921225992726844526897693558595180448223037374730006777532240540325840244476713190875315557790871359384939793114541083616678166950576421311441587754575712155818869474919903364136886985284507727334362338924384972232235183850741664851546222734170524871976466547350862178109776682445428829892339385745525025197432108379875990941506597583905059415549578388461250066378115682123345173773543427076086499542484611745452462156613883038239795415613649439155910715795143129711891426771781851947640147478753653458248475778621152867366351089044963936002206220856624429182713146885250650353564710971526805231410342701376865271500330544636182661858368208423286508578558036222396078358729576366750416285258933187063202365673037425138068738041454313479627610172948846149954040049845972895388534504289685584113639354826324387500928363574143015806975643589379263353042983257391540355364477039896587451414579481444344425117033847587985829278762940145729856245353250874364091674583082203214200510917136579186906246140463670175188529490663824809852986203119836827478738329777680590250741098643765127567030363875746641202747086062470711108544812675199159394177948097727064845256615880627606412913206346031315233406447700944999447436979698246295608092118147585248644043909066712479734326299243595928014315580460107751105101869076418187988832667901692806842423534840589627417686202006053310895306109843796471413972099912679421521279109128674381932644126077675011072517619734831599924693296705023166333491340265521040427006324321847717656560783211271714381236616549783380970865074162284138467830025356538967095173573973421479151225276188469817240550509721944524019549390348515514571390543387079376101134714764468258030858956908759543546323717186599475570977012236653380931216741786294835182837138326962220792139746522319629653154053191174561419668765076029817115180877172535298126368563149006202988797671912211993204982709149536839156543218388843185958592444073513014912703879666532918520436294534616165246186985798474671441347886664421583649331459650812384433972448919393449284048953347177079810180235036499438726894606048692973694040488156642497833434236969335792886122672237227668670071559516011343939778633372721433320915387833102871643576785638107300427706903722981340166787365950636578359622262895124515646046231030977719017796474927793931427285215068425388550529165611276135822422170910445949337743653064954295080273549042733504736449999750674400418022220626348772001926802287999431291780626724644608972310444187060284141239653256968922522989112768598809804375976995669317148754544389448303184913545594725831312764153063004644839275938630528193265875806395866053734240585883021233069910581786904167292034412519293488488075107938093553938149969535799426062414219474601022455801748057731601236580453264075339380137433659705527958645036846398119973967879653662111350857445325307152370760769071264796375707813737590917868525523494031098629998753731955625586996228381985025507461622325539920368293934415454750879073040615019653178000763175745011090895929419005666335600069133538632631257881768596731424699078817104932335473791132899079238826452531359766584029944015963353115076942999872399331425410497100853686047803806547728046842794502636587449027768082345730248916548138449264397708333889946831160075997846260233257475169919078638542751288699773429034180039580002436188904071589241666702561943208863727332149166885516742913091746902366826413483513716545723071237922223516657321925274381711442328993861860677662201687233556738451257425626616841300873944801864430948957607538596849516161415888703166251039347693965359629904547165955414556674633409220102433335641569702509204122411764883618874025221195357476031736238648535739841946379985217410630227855141635733812599931132275508690827694834987802534575405880727685138084796196050799672790315752768032372831749781177181519186119905678104082126474323541116083806414422066438138724360654327971294494926478928777565169988070438739148895807291426588980228242830020836590726760930663123721363065324649854008162244873894323491578763866454592280079696703264692250988952639009195032904583928990713425263524255461433532145271831770221199534781058528814478439619593860495805422511830382298323116537447673563825132069411825802742994041183652603030657282507772877419226611483583859732709172842002261388006704979531679604447509072286672077585203789138045034389005019037828826963386772255853149766866167044686433116636856291760430390619762949113931679511034848257009220720562793114536209740289826322289679801281816859653358473004052346841278624254140387693554050583107038459248564553268595370772896640864323949667472178048443300798302935451849035961781968638254403930966852675647595488754944497545891709902572304258391232264486417969855802493251425849674561407055103006212848754609644157768662078439968517302015262059903089883085045226524083437014953122618057129567950971716306486515247931743444665366363024154809320621167265387352084181531045025306990302440529387038026973169849940799144880363668388380893161376817760353414852232484280775944473610132417575888233122197884229259751980546329664019274362247056396627788442235524347174882922055913604499045510113079987348081371984151441120127801231488207124269056934698116312853009692841131821017485541647138878394519557611695967601016205404825949424345457395610991746478089435959426157114715229201234318716646606379018708989184386058333989457069623928034558070387105223236633103271740109153359449125085556359249861739865488749061351988097128496806580659484339116695623314867572112133252170658056646722246691770557084908958550787440409684687359901294243279483840260043484706338589766824226533427042188141458385425206330348358095807589038492701271224167527441639673028853168684195136292327181673032009068449226917102338095280823458656010839889755071939073409729094997167653399774155211895434415222282973902766326606661237840453834774230456589825780816125029854253411293038324565593932642257933946114939778292404302531393089372279279162292084564083091799523115075261698336201576171467316276993123842016618849339217192043138831186059993631578569493592173530023371692210244932516333971129181011501788810760630041898218826393996199738731076844830377987113089654385888384173520088225956733618409812298740917934301925315104836727488325986913994832904333363152406188229872199208377412810901300076008805559139009978785802926920063007095974193098415170997572226324637557923813311119073145391943560450370641117690301592189867991399239513483973428108072893617951322060552102839534985105535109484520258715708395079205810468028030426812351051278787663926419523216297802405819254540286162470480765820711605837534790533221505214359032503117346697982795060667613671500718498339867344604884959739559053766266832961165869205282595808857588064385844660241371964098280237159628445646947137498780688363323962089332063566511153377885241423826430320806946498601086908135180620914818390128175302859386063348460292432720668084596655072561017430647000979160433533304217240623692203915205453922385999949343114585355014368785732869516703104271425805408377774970104854874435307751214849769078945736168701447439190794202070432604681318891467079413326707967350023451307891789376814949287098208071014664071404508282233562801185187215403782750660563154635973990818399812816488854654481266380213337499868817632257212054627562829554263768265800970610523588098268111624554730478996866528912983405982170051994673073775935055391496093804156852121091194650383414419218250727207324024548965404595441465957058528787289504282380007625488631043725049236280486636110282031650775540581626828653196923823553070325662307433062175293927801476517621266427310440894882627092053075005543570128194687454492077371655501704651445908759650760873468353550411777278011848610848990514347038256572611549042640080110451982219996924523838876451338160114542840048284701207899698337359562564257668764649907851960685550611447276172366848622647548954086672888345844026151074774554975174089032269931230684381050173339807466940532018802879822223310127585073379819041665596510684234820349404422313768686335589716217542705807705073283792891956495288417115305976513501391578987624857075206828047737218861777964326063707370444097644000823466203306949777932543695878116271134778498718358008832312735783871069398515756145290708940231687749348852742867482708281172142274211423600754692928668917969190782424034595450406242861708848613503387212345462993280937218251293032675883118377767650500030354386077399604752342931395497084720491215471623450866035036693568047223681941825977243840261440128156665362575047204425024905614166886277124872187658005310690917584135254712719216918865001615677578849489806864661024548672515284753931966163313036183779298287585005676134613490280959542096539782694110005869162425468087252913036284014640447575515638859025063595896257770495591964104374292171673917158644240473432923121465529602728421660824479595107588054139007638547572557564245432445936418148021895453419970064562976166294624114954384177179073963097199504991825546121206232907472210149672327141208263261737150402200863287798304044141439704039053703705100911007719910687635952994765082812179527098275722795781950986507909227937825804806047598780502248759512248754340325900314542286237382313063627555822677038868684619143963348306153078997691227893412588279950190602997628348385718090161682027040012040450649777221673128508181657062105587155548877040663053002668004512811587346304279248859632131690949579883409529857895911642049254398552540742524781501292911641242244037578394418499103074491454503404693139651446612857400634244103454311919907605359372890629404959156542794590003657740079594614391472438503169854776036324011427085495418277919713209772412250368963154810888725328592536146994241743803141693088904467974085903220338065957239728083727063260712550251372816175081251291096634887184322740849176505788941768046166337609238336119537610642812949822026064544906807433974176796880332425078288589316227571589720251393746501986680739288798685881188867683549677371890062244723380607361519671655022016341160147396588659991748677463649258300769638336959296654414651462170341125630161067722555902790883789357182818128731406228350304208907445779464638025868355406223572223779406282132290791301121820406087545444525256265326530918238374170593675525775655712678114562041962512137733589498438899114749376974422965590154674896796249312411849260993266440874369644838124697604164049690708685173285514876671336086260550026573321246074079880062128153081297667449222973368222098540389732018327256105290501184970468354997340033060440779984404350798802169496314296034559570597566577964572611513617760750831762602508731700370821197674764421269383876915212192629363884477555888225093239004427866125739014416754181674788301517565792666636752474581039409857415378596925391277717090192020083937096216685352617165491569264881853235802588273625436655789127501496460340890869387201134966059222263164024836486561657713088439078586957987428626303464757383005320893386406178479217892284611172415625020956243143265221945212251088567945902141814991369113494289758834654860789128706694587005885565998725249486744639938733395989384036603271275362911991084146139093499403012330115908968490175249958503241774513941648175849249283296527317884255084681656356528251878211885155251341018449379290093387414070224124656503534271962122635030483145185338384297936554602479583965107080231425872891010503886804232307784731654651405692358685544730921342007423831087112316227952569195753015976474712061585141951826092257876565791955247597967666494898973140062921938268005528652126924053651335420414286369086344476220711717025304741453721491183313819521695785935387614655423393596657615559854524391486875511374896639845108006822981517065641762510616297439287694255899111582799493976396991739943817601309499206639545214691573096774085012477751507729121340754329813897828128409530580356369733074452845554782296697991197870862587179333206504237938522538151264473835581987301611548587129054199534381134596157566989171048163707185421687563169938378271174355611420548061300905004256338701411069038868038139919188860044791794441352815305879558783088100333938647778741938534520203014721490700658609100749356297241682724280933770220187612904051284716528185209133998752529921695607964046867025150855785396456618999237508631785877855191465640795694920280409689054537349106664565687224443340077291902159647137187423408969251311578609019571835419392159443922473097311347781083054921327930736116179291887460743364528449914122234132844760746114162750938366045707877075017480717927287372903109340878112629617825986648540688487010593855504103166853956276372208719793785312216797389652221490375913350582557706301298801733710407082252554078871544045271431065002135861074824405603077920711835306726044925315232023996288949494816497967162876983754407263807410230261003784835902991698332856062562463962015921509785804125058100365046187034769406676348835640670648075709585738071053162560369412530331816212455034863419065197828498002775657336308609577742333014236920189757138370201055850623166607279232435879519068871539711481557528865116478115362030019578979189894365395617901579713102169201547088092707040978271684140717531175317046955995371312662781139112727999093165292319098979795276119697879436909441534514162694781486655271956497012650539616290968119428812416082564926104133991623350315830436540606367069163390523491831023387142369449547511387003446856701102230558113461286938908766843391152094606175401003785766658886467089268467871793137224982417668544795033601283641625169373771155027941173864737592210757537377447548917394520718421174777321220235402686316344544395574455318672304172928214668991654921532538535193092094043369517679029507342113013562014915813655658801759236065081655378489962450972996759055717845993111267428635072596446602056641955491490118625413036225438206457194191508870311252284514162871530871891750232950809788384544860671745900886812803155741471681406026846498634673081595131689982756537161310635042356883445722399815065253704807045966969370705875427777566518452633251045162964588063165653912202766093500335317221789105845896147267693247002279605974471332651135690637624876619671240670677988489308918798906041578472556424115656444678302891740355838801490833229290806808564039743962568350466283390128619912691677983559811492949195326211093678936658540732721333139652120482920348015486100599696961572484688986383487000987275679699044725175231642783989491852407989775633067828730055000123644198665348864163466702050010762097841136829002953473867435302710384365857009408995114601119355114419406253969388090194960358243307908638779689929272560059992892016544341310603602500776237594255839406272490867008786726341665704732279288617287325076498054956766560132573195116253478793587486086790218919994624418937069022201531854221228275390919705405020338325741004524582909646223295264758478284063116669776888983863621823493441653452406547265172956468024878792665412320124285019788119169986638771973491660392018112835107719566745065647731741920132316495515871870358776354227772697379340012457381122955584823661156651072901314766786124535173655850056729056195640689128060216980593909222995940853823552365936149318231054779389542795605060419358565199914627253527552004741353339069664578358619616667412253788428579852025819802626608484666377760223000123667549149986859322094134063280949266293057708782676452919871731151990339110743142376089966375586523282369079912768770980090331964230991854934424385209490717780833526620526399239360354171162299782095110231200163402211684008330160048283326471800393352325459479579467808360499765461774799826770499936012907176908258725246402159136415380643037240737777457545511380234039907495557739334054542757637752390756834322019112456151318241055936865036470514536132176753739914391896919779920704668691758602984765778451475038564781066150987631253068591034883637451118966542372693970368313055717878745691956452166315840994399485205346204526194658647964449738823479163999112207944592930542476548949979620524308911387888100038709643097962439035187391360688909903920721214698733502679067236091861449766369530453755055339272095085295634708788241412242370742284776566211675063278294726717923172557424521582499488878213258074011577626844274211041192144464784029455626513436128629153131469521043741991511162453767264851471456570703076368368690571857070506883022812597768404279090074901290514502676363898056699007405867851583921070986333894970845189888194775212613408740937691314768761860209071644591963158320783275410602842919368701994900938311200120701194126719877823194619254736960300459485583720801588147980093203042838145210365623321367137863056550076218932556916847718902513462332305486521495037564328550934986947842344741400657767271620860454144571234276067763841314411794475363026555126460535412573970430192601182501143281095448208783385067757527432499311363593049109990577769168088425174538743847140703794850071830076154043020967442908246854177293461977396680588720468322372209398509457629941016318187131611057775469365604773214375407919725152451015865257399730530810490448132085525348843839843250809547641802737244144072890111121142879330902781699586952279135680985597538271606772512510092359223086913217224271145134205888301299889917276990018084938198884592175604027873332676851157640372307151443094252510510265502601411986656024257663956976775082311952307394964019711923333886622432086548500372870104637073853978136988974938038449909784417674333776863139110170810673535105791506739848119911473371642164114087222013944396320427960870440048190243668563096988176738177336889351411801307964262636832178763067661740523184927049649011618805543247058308762783566934871470033334354837763321790613735060951843641851458174877193121940489909482453839450839082621837448612530726413557665622435061826654770701666088377174018460212513703508201216815511149202637439233204380985329222914876718372482807659710041321594655725280262262713806459181075551667253347517380622864197108851231729167924232672016618446043462599629667122602869144866689537066494936277165429828962761512052256558746586925327629977311048897478447043467366286863569252621681371312922104767751866406947769646112293348633021117401252498152779980967457616118089500386302370245991989984892530357413654489405765169160937676802110860771686790581364074956926410820708458859534164776403544761021801721538512732907654829054941381183654468239730500774526838552100648972516624951074371282762335727970105611117678504871757589382684509959392790582547980247400346604812563436779962973596856588343532184779790610393299411570949219919239199575826120359191566456861726910889224547686126373766781718046276116158064540139255113486191901160510742501801202434521424121883711953739191375704020583448744395011659036388852248880110278981684232898569972279744925597284399147076483888006863572892256149499855301341865103992566352273186396434190033267926562922267879463852545053130410741258567325526850397129781473979062867456254198480401907293759659345859852090333818082907521034144629401355765074039608099927460233241385296552931254122521849347389404919980253673055177564956258569808882396390151746197449109159991682542780213732639032863893659606356656548354978259286972177986604152667216299868947494059560074217627644209832543670190961922622189279780695965289414623544078490155577568246620780474750186545574722515127940388395181703956133872496419319572630593874177190380714508768102757520356296160953172856536569327385323975912574958100274645463827214761371935755167055577663482081457104581206335496102823065595366792730614757132639084370311733985870576281753985152031701679308421905647606256855913666421602652158593958759014587065513351381790471628462046094421596533006290174797457758117365046224579752329057960747178415729257791716780196509378668303424219509946634979858455939551738706456826738636210031871067250639369592868066674558781259229015921213901032596601485312173326334580710419897920751071473559487903157968940791830097217893270138968376194032126326708344682368907800219049417050192365051958585546029317335417492021014933858173880391862393423546835960416031602773401520863086289330837167066734762229293078950401492128432319291513022622582789220414442285700754015555491087669171283394993277792422515075651465499444428602362416612313014798435501384570028099142276270622119787692183652325203464348232832424831104997283876185413868419403522318556020678025875546590193252149486468614887178618905472383450606123765472245919530116004974258366098967044365277160578077228527845071756669511627698508410041672668501235356796563078743094832839513261143362189599151002159952132107186173534282321635474019232687566832149309098473788524708793161706912426260534477034378588422219993694277729806672498869688786295036856013335777495709656082600612148462721016183569599396130737403329936032702946717600475264921194768241912763988105415750767410842030891406236588650394796830136560061271795521784208914932990818852279436211819288932194154687801439639394659846111254816462749844674626116469104210901628684436454967605443311724130355563927189177152257074896597611345646711960828809073166321585149601389651899434116730356139185453417482875812895360351848293055376583848398443854454060561302632441955229774324197616796761361008053484148354818622811903925338801881939054859276821939522166060027369684743829847642347555560892872607229760444635988948188633097092003942976498750594319108425094965380744942534256302410986566467707555128563186993703501823344015634514754203147344846920248257086825345518466070413600103158403730706354935500573352137574841093459685788750519773243457976089346503458788885880115412954788930539579560578338315161813297544539852438313915916233156930034650203115999914223525621344165067234449309138662746791375205621705367221395290564037206744912910631784631170379601190285073236175372539064846496786805774213387198189078906376430216341662000436152231501238513042344568462447669108957597210423497073895063458840316819363722659188214616535308629796703654838534789418619335773069145109620186227403137033576295764998541061792732203096700403031694949102429078582400027363855765358064096368665076625264272669108923737840267229505821238539960794626484759401670350345882274671950760358629807992502235532679798106816639813107001295163074305818324664938347228404519335215623879821581041872418900822256118485134922142549097760288347395854208192024656136401191393222426403051362118275768201712813738713991566963099471722166034959449610780821278865375701005543697199086521640542399449320307846628750683760849080947560467907380549561917235071224153773580311597094019616173165043534222553986382113391403605140217236733199008177128010820934905929057453921704477647604203547512339562651068414044855320403202643791341969197225609091388098601109380321183342806318480947277029722839936921454528228184970244202446540121157629537563239451358746546934690241643642976077676199727599955117259224725178101582139126483883750576105241628899821715283823516025427976149084386894338268910593560437463960950767577453021764973865063259295641451342618857750978204703010317685657053571235249523823504056955456971115822049573389296237891665701872677124401650959193432270665427898612471464792313155662892639685062298050492937302433893990987599478994391626988024622865317611484225794979083599953544220853867964544409141270453363362403198344764603855617160193492099543179912332867383751502858096259145359938126486475508741954120196071329244080473953477893771892847885322475735408969192810940403656095004930845862494460592785438199363203972563271845298658251954818797867354669536037568874748316212010993408872596520992883170297476113108780581901793387616730525934133864972417353398700934464912072094145703023276263055243214482176257156448234927875079816227077599504574722584727759482025922804889106714427023394051357847767018788946474849408414549146255300557980950971870836893286519746602495928685471252480319693406709611061773843943366805310530047930598782975941304692779186107208752973666483454964287152337653345606035795977105295656737513107521719708356452571530275285210396341238452093099444659764892696285345106228312146417828553020283454155260959476278435556466765524593023604127190129545476949969072467353853563994538546117563275937550777426572465920884688553414868147511782534061367498630998051762953421223644901960789968133077441879789919144835805139873634647102928356143884737534582134242626467738624724235858006373810159524645208377414962577051349423128761303056674578041629460590060431450969047824626035447780387991364467725544442130652420854326188278337191277243970192490174868260107554812995830634495708396311329089253214780118079605081951328404067914330456675963635465250813329789437140732720831600241169860140111205918377228128584024705623590788387530557028371999952540000330131453850008315618131678099977739624587034360739622117972860738698324259443799723426221669849380050282133272953725182492078810674675908393400050839152382054233027143701513159907743243801792071675276650465073724868874287537029065738481603160876734860891055212065220491798264446125555349825335180412004965962500191499005832773181544954387081520125560060145170548524476969531860163939527631317288989494583762821082844051971096876763918795718208072118875351399511004588717778429894579013223983319152177498654168981120572482303912433445724167584122786152011920506309678567069251275235653918580967590696604892506045745006709015512277504302929248932756610052321115732901488179230357190564420451879578425712388908115711827324253488963569090888035891042269235049761487810994807715013993902179663730254290076758411619542606335093496495135759259934716640951301190017041041434711362652891332411012029823469546312298329107489185242287768072652183837030261406079231490345399449183158281722095661330227871042168557237383083318840190205636064608761007779522865590485926940168152436014959692991523620090174067601711500210551590735185674787939912751470247141613612211812591158102147263281321991878627434608587165270298760678222648238824016777319959959560308273724303215567188583531413300073476182080778790219393881104641295124796602456476873771706890197931127107939444703166541412923154026262766940229716764498864135162872959893807445548927763275250638481490736795173420589826674343895878223863215534605634691146884003621935035204072782427447989152173835432467072231104230007856089990002569383102711929047108619646471515367263685226083068367651356640418667035383586119144848976901197800756579330053121213416419678991065837510543911079880473149018451468697995804449967297669729303762226423058640489380981745745038193541640986717080586049518082225020862770904679043111457744053442822942586049422942626283493016995166830290426894710704997265836579179901169493108177859918283511944001720189256165228296263173962770430031293279171541292934470066637910135488821636458462885572041976869685620689978885592967045403524545674461767910436085431263123356156178676696967525494246618728837172305750737470458065708888651581313488044377778332329891387814960065863930895679705738427889324781114005116023956721363155762250300319553535416209732274312711882239020263239182829238831498593235725557569876143893497232219657829747996679705947624606821353339796990055764839722553254164097664143539454066309193962883400666668854118798584396707064841746532691280419464965925116170758664400775208214320726631556470100906750907434661095894265816616722850139352360774577876017289363925213356066495521130629006262587194771141428033674058581127695315542400910384843659474935955314877007886291365428011507284182006121054015773017549459773170761298629271428842413735094059272077526444166109890603541338931685146952494914201861198046235898463825772216558822780088925413053814757370407995121107373834647640664570256335131193164571284048201960996605077755628812443363624966248474608582210503762639373554713937768580243835173555331912972558164733429117701612973415193587760968279911923450801251033777267630924395371450328122599657709229030910214776933836258889805661818596987606788804537799645368935487753900225875420758425499965533448553585744753578577967432427623784733219880749632962213800649778415094242391340523509028668706234177135284806913926982162509360958120303539896236921204252048073701602076358666963655049011139806099942824082586314996371346415430743397514668407281925159949424704415655719565333213373282553950973674768514214453411673809111024599459588186609499214615706375085080836070801764766390699043252722246643872771802701534070616542901310253469717849144133210469284602922039244657958935687726485470094063160760969765137864374326648906169067371017500853922211405291746430125060107857620032833963452385933534826043368073308615881931348427942486417421844683319343696256939933250544946088135002805209435907380716779701997093054545083521727236950139956202222956527844597441930555917865226504269778297024931302443666496722756102843479541593065329420307877644602143416779424458432298705328936885064073831907223734337956794906540004075855345622040351884436541299700187329778272155441262128123598046179218599270828020046940561652823690456161863950122238634290458048856564683817048257425823775375610735478586326185286925289103071382157934899501854274860620093105252390565727056858408672058025443490199759668873335443294664091194413563735252417363741419549077093177639552339101324860948939995794893169251719079579896958038913363197906576593879211368396716526870859708566480747312639171565422886895064794311462956966602800816855380947009243758676097521200963415031559884275221870050992771967628006254356818824304365645235054256205232103733813455143064593619559114129069099990943952508125817726738975751779937420926814931049784985361308680614949997080175978133506570706013103818457644719718624722834385992155641677749527571680863999056241763962715645558651422568988307646180842132722417049510901153878933653211772113199482779173854702290030578894512653726726694712799394385276519633768437109657612427304890056829949640103451649116904746250416700253209135630054389065002264126256205981156807914752498784431924090923237490219921623557285557336930093768739108114721790238715248146700663358815631581222574241848459247439404379491890646069753474853288234010114771188922432574699137381756200075221944597254858488034177445210135476705973968799042300979848743556213784251887407638671757539133164773583595868415201171443690252918238487754799498377380770347446089865818766063868968578543500268750045835602534205434967154213521456552008101697296779786142875728246864346190989958457345021547464032595136795859696203920960663216883547426408525691292297138367435339296364328123569902959641134882865328255115627559243280666529260795100126254321915606211595497781293728060221543987404344263958229927318349761489695049702777131045180091295952278342597906754956815915643194691976333321563193731780628779206058259682284085984501856949946956428233965125529106730638474388983335460852948118992868083838760478900804926366307497089038229585356732676848455400644709845175910157619161183072023437906988245591397703706349265768013552328586276007174428401506469528042685991830412516626166736900962962648995035662351840402775066195959990063566947210771755574533618604620832631608786601165311458596995784107662672940496796615044719929365167041878842962039466188049566466702960759895068161396451408654020582361237397512010224665457438957968242894766315470023795993848720519830175439167940904623158171285747085887061927523855130077262292954613767470524828649112719344458991680890284393841940820057531579193077002183236466187587377536595450460343074550488297081269054899941100309472336974547235278361943128819856840149411858358811103994057130926540728995939443023656413676371951745986012042637932914196179783579478935401143774005184712802474927275773562786387171587004977254934705445812746202696453122985279852430339610116923758248065854677139703534812690531042367746201182456426975409613420417632491855090221051503976835924583871152436994216128668257922320809194629905968236032342870834581299194875244473240903050280186713181641413807680460119243058702245663524296540906534727977926725045083543311752618150844203189045728302833268865093365869198308114111085600086054110872595211643579645129446215054623020488523532156502993996301936435247523331863709078607610225155540429413724169953690192016981375699967537463507390730163539484748910332940584754551589152702618101147851282837322404708878468308795562847401996979522429359107573395881948882463095114948041004588684932745986839825721274963241254365459152419379833372869081018220208564092100001834022185138362955412136714600223819668379602196614468498242227516718471799561694588616809298234804735377306353707644805296524337612723863934066250663326717333857237447042026336883409316483895290891021329908810005155759991197784551473380529208044845675548924888617311570101619649024662638187563981355489868183452614210747590353229552283803132563079295132362740746652370110244096799055556203773652214475233649229490513670186511353110864129919541826195499892478451601037165325310343761131662347628847762548630870571144985763228989843146598899358324083692506823201100854689658715408147377402563740083326731889604026588576987211139889569060082269266346260951359662017546474248735349234979926633623249253260815133331784655348499266083727367950253905676015033547749861706362840567326986477148128969865495220302784099153081913192477590058930680247366849783692369909207557338002522997398681538881074162203386819236060522482089753088170430381100796691528797681642951983849954542683688161926303715779703715633990698064422990065641416184580905820057826683225584255616786945480477515388548929126288220943364111147339502774693851948548016455273557154937564251032439372254397758692231536156253662868506058225420541587970589795516851052184577121081372878258449802988041326640571552414141384604990698935992677478264252875077046967887365374331760591464462240814632129020032159433703854075774100721201098414040247702584245386036017316777234109163153618795679639266306517209425346300118768452556164189582529274641263439331897468128782152602641505471001303530147970801797721135912423767449064420433071599956165450024874194361219683112588363705190744900756582872004367230257189841047077214763158685836703581886244568616407095300632099765100649542614709117093499299297417210335452957620399484789118572645280160978302246238064516117055710048152715653888269271258449842339517202810299538078526556101477127093038880331492394032395794252965077818215864432740025395595540782949881302635810900626277864859389898802112239259397200752177676503583494552740737362291331753106847332328967516404569075225450228656029445081353923708800900170322385229248205362611193306882363756643126975224330819808671509701952195974977210118555396731085066922591313638903890335106219905001478767366177130320985824858159213060719697163546023537484989749911450711555590047435541665802633245228778603846374649175698219744884139362403703689365531803746495535577871717194533594751526212893697921065609497638506857413435899096834696383560217086973176397493607828807449661214991625583456787340247174649117945356227497375886998002630404638408332876983082290665010892615090710009829454963337702600748274894084702500325652874263680447556622611899444218627191323140333746175592144486496111332060929503581542059235366884981447862567880935170368525530224278528458620263715732502753702088231844082851632994486072821552600194932260858910638183932957306080854333208394026216333652166617061341017059397890695949058969716337827809227250142239810987187498362739819029765147291432598004512162332616469130468694457935038149479032612786689850068023281556867436281944151013654867959015097591379568996310538294938909698021541360421192702745196889220517143515218138761499166374381686576865517923275236659536660990253211909832197589812525542862564654106601736066651998071310204493047526114159449468450784577385490608581193367365395472596002912480473323913395826693909320201111087992516450659910861385249798795354769776812680525526210752016883205109078527651509265442627933491614890966690609698373293870874229732384980688022317781595932710177477518188779458121885506269538503807749877465404177926965470567293855851416621680825521204611432737133581457294481415017844962812136196378931843338849428557897738907555718960824853649892425528301844748595211598017929043544301483343345341607063521564886097752406529710551089227305261399616912444753620707414065692713951568241747322254110266251396800501970491799627060526263473828409568457347941054082942314517682372799456263456270636694033106937587554924416096152446150442181386131460539492787244165468169288137891390263758359171956756254128160273625999305774974643670923634136068540101407499424909884056586273327003609182442520594766308164258393685462295116821012688530977834410103562589440913795360531094038941059357557441835038210818529721902817798740155660820704206525058468959322965610987552600460421330832196771270557801337529943409945785079065387018217842704621525637126512088583346090784770604969206815275852379623708132794538696870964574725155581684376853266077824536860377449007057993187280381287105147422241102005871240397809376158641126859553338380365033888045232981975831930723591043882479324854530760335555819919134311229838064725645468010574675029801252944343749650863066517552140500172576581192343541004935712471220728872537796398509642590938409135125832942606022258709661362318146550972498314046671574840723234182249722022185681559776831276670978149395263408023149360922112756913980712669215039353203848672308774091956253421612327907182354192890297521666763860165672883414166062922281246953784155674687644506709820532432603788878774019901863099073642306022678118105883069676214557384312517564743458390702078997014417815813129539447463490318757615722887047801454554070859498115610990878143616401678655663351315922521303547810326793750585086659305338018698968451897144938244463010572299044075524068598450829424364806058628123218206481689067718246753750558277998010686092421558042431908512999071162905355276198304388073778378539447535391888924843527734097441078911422778873215338918855569188854848507466760733383937400810957704606005363371588665031664720862473628004834304707517870672190637637841208395737559518343977145730259150792158086188129530373558824965854834592125117176469368330888380306594585750983787264348802177229363689695980525157387169282556946989812058092803975714784554984921793650714809233852961567201116293270405455854603962467968232721314565363009512146657437144010244533249860776012331440679070666783658286650100714442441170425023350356614784668672760628014315817071607787309540604209521263659193198808166528939442910581444895385536756435229629860706906532145112975048344711896203159707969399228955905461627338914715135255755229602395206879640746569757993785458731887808126398164664017237232479481541187466398212185599666694436182823981300138756320866764408714375385718018341506739830984305374006038446965585972302580498247541890919018349150545386202422409812436423234755280404899804013048899663076817690054842967789865769256507614846504211478560049123156068803195483171170600905067072575008941399508481912003323863517694173437004876394941584695709749731500683677713429110421684477762253307905869275518421901556621452494991619133591198587720274734552912524583935816491195993952350302775106476122450877683579429733611057708151745871911234439730911330794697816634225758070753341928124272802002287708664991806243841646065293694826820796537528169904806433471592493516016781558303989816227251439170806057082032657054661282458807474948461878936199455198964513040068307567427624992013361771288691035312903288428715290902617282442872113224991246823852721555841054901144147531022410899720909671727152571805507347566110545177138550886042343320853158881160589952537647968306267996576165158405496898984013378897758291773134030516776630780375731012776789945504628435795992595094501412429697661175328985399784550375263435071651111171733348978733539287320141785788080230331113655865419602961475080025406266081258121034735385801072003410121789381154798678742928931379445831673278716064730023546442882999124380252493527877801464716529928316239468887299318419297060031958269687562263663661581294482925981314165526126900881826906103822556851533109443764466163244691594671290570419429724691897507551521555741708454054931786403123644736280144113791067618474853991551623531906986722403709960547462032905389788736581641512264766525569100550345854249573899137347104801793080044734907588160692961091657034231081648284333728755580446584694873246889149586041805807823385105270487291063344750906399209592972070945624661077162706496492370018194191235015978573895908420149827081887405961887474428991658304467562301521767921567184771494133086976921737991176401940497101130913547522207382463077420978398266866452756967192638006942377574201222949413470575957236514386350758784443279011164947545162251648791130372837167594633084160764159219230281879117489892105362272815845091889064101149247380470421454362392486719116041649547621529238810227679478782756964324257618502779886338074825261323587323998851478481936048363392220914878883597802651204454229668520380868294581483087855034933862584871949892078219865847007409538122331393957851650552308683433356640632762749323625507354889346395745442179134379312252243736704280671091034039282652820801664972789577383040712977403394782543998172681421930451066577816475259029167567855232895014665489327538367418251217627706411552820824723195302021192515046106563761060054552686432675078299781846668573859313763636502496789744863940154657433008884950545915327378168558261706512218840979158175597580975929540874148273456815588791927189682230857486094794865894773551349926897628113593020835869830211010815454036663540309313257618138634589382506005956148124891238863187466686036872655755933341685081316075077535805565343904149985179583086866352985996814047725723463559369196756567089219505639493368016153459323146308273012934867345966565937284619181799051208753178564272696991599727948794036912376999851134969155013721082646156552238490037884805621961126687103137686875747608623689066136397594630420814670816628225132700474095779432296042662688298187615515129484750240838572284912078324315471013543731339763796323570717909397972486745130970364136494002554207996707894799815302984729632160721236651938987122156264073218289138070200198941541424472834288475524812361554804462706561352637434908969669671319986141186360687937930054670756251434304597776926893319034564100052879367269502596109974045830203127821679255345071305011163076041938423577997637003241590935963710245221903116097517238506016989531636472926627386008497789200033884111115074789619657326033947992366389235654853429067676796929130257378324629243219674554898139074737991904733902973763181358440382519492963917820207540385155183788277312230721398566749483036471786738942531603490252844897488859410958117996042225755128754839583297773367640926462565492699244018360457970868858916223284422460743992105431753928850578484951513076805827093119601712797535201961587769140725612203212323404693590172398086122913580360360835957169582168285566653865087174344687826464056135611405739664868166287324927929542475417439369345974579791854636302342658303952503567564201478281086667207101676318044364490210410075761054280067902112087818690972212860390228980528158497357010759475563502797606141418120638241877080333735305312942649712734858515917992580588882402884754500954271611539888366006710533171517401870675355859325094065203026117134289909694223918368194801220215507809604123899658437853414638747314799104600902924154344424450014204583679468716536452608512130826057810170695111387366505701241920230721681564052392942302130444965939174065789024201643833127669408517438829863301897845520650985277384314394621643061785934263488034627782828170549118631235994531135195986632148506791740633065812955549544553162303527314855709819234065040389557663597300871633212694835963275911073344423495385307549802075570540454556689674725152525511070122102523126472314934515088160728706076539605436019627377728091756015660223821541455778367531108167816356125631205956262731455962994182327158199474433613527613249571486555415340617382653779137480372087638545334194055886299922020911180036793544269865668654197709575402173140324319629581257851058690501992655311688717031529749416123317383001671364683409353040549969998134525468948057303873085603419289400129420498262617731766131088017084044057251387718999951904813687391016181284219606691117647959649528022536267692276612503235325598718234492655135633720853686079658379143501104568975924160108258322658578257390418029743259038719625963423914958290680685331648226513857055558686241742695160320108840155290758305432217554095990793649207882457785687621344329994220795563255498170030326221508103035457751609183269418286603368326304880680857048729323967870675215146829461321275379077039087006709564650216665133803723922591914429020335436882899925882379999294013628843488849168588081153055580300296428729885612608001069012681635587899643383927517660659811508596254673731343461553981530713061153986607405728010595242203728238974265068600385822215242710730862897378149441987966870698694852824965123956348796186019508798765314219950928953849806396519846492242686631704600157397730787227123544603731639320499741831368950992418742110721587031797537210653664768407429619310366544116036011563430017089700638409575163706238577374443056084857773425074962101786199526412488798941011474864611900340593897662908148995695017602914119486055143143994012849087186009063946829056765058933251306074661373406204108594397302335302324931098729687824012081352023953407715947124203282435790228897589885423029168554077005446236478944352413278107445371791374268348409342423259899223480536159475122566724286275024871191746984684867239121396764206941456066828597863203205937461094782684654550167733268714739475872553003019298379326871111666073119781923507143409169349250119279526780292439426058931995593538620787852286790401508401039598442580974037443417445180974979283586120494239062826867990676098929802539697712551538558445052503882481863020354678542065349199110582856713358510719921753063431265552118411136372415789634210272669331373391977901921138791253091442892493186699239940259308388447833932164368543090683079235219720045556115191733791273592503588629225572804698181474954984669989112153814985030252831934598595070649885692291227364259459748312574201948218836777689149664392164719309477653410186864663595488310547823817657920005685981854249185312554278901228590657102150845771564574396066366730846186926762407777443294509333212390246874786911263636792078692014865335224912767588349326587607095113837179788080317978711262042178300749238593936238761198221700289582882712699376121890348054478668762073137234839123432575880852348610041515459221004810605436350446187067174700550908221754178210629294520224132463132355845190331076298724323480833812021805106850872603695242359152775980432705470342566404177486255910102881666714937108077315220419954446078897348613648736603520609440668060528307023150945359729220917608315188403180804440065288273621000054286945690434146274227329444577724221090294639559191432484863921613935113609746582222808658203739417273948476184250856376302412435746112490249389319097568495619901268261092540848253702091282190108821568015286555091693191986266111034516031234432494005500190428556026245304761882918245389737554191064104353634337773953881566042240946193397388091883329169685467260931678446264412575163823946756733072421434627672839626042847368046519619217622021079577394705127620461902711570017354402062665107691197974929407196545644713476688384153215768451592891064169281322135735001528674385108202367193460330444057483191501494777269605845210811660851897801769619564091854818531879490413399272943178291781830991219784078484988642567463206545142291649872086212570154769716711070727296224185590461935227817211035815394505248359797937911118844681839486096246734200685945617438706012992808505138728801154802700865492415568648559145025532420401885286452930253999327922360418391518406228815787054804280787316220215766381157396739602619611499209800618636238913851609107170252898299024933323587149902590619729768344877445578370804637550582799132703094288518204791559261203701328656266730791782909956781504646777524516760938276999384677161052237435741416037270213160706777181493494465606814136232489159194845625143800825515431846236902368912230527591813128518178573616085635773951709688280799364395583736877666696296347241176282648342989624610215563741076952426750530993666700825772712608653736809665532280079693822589560834660780600390917152055704871513996398416891080232875918723735458074645128852067294133191889128083992055078456487004136809296019190953153252284992469103412132281757917151403996693772793473638605676768878275842865567111277717149324939648333123340832696505343042730226495249814479719600233315933778124728823234305986712079735215113322403354166049323494472519593866880154750296059179919347448646424025594719368753691071462099824475147135334938264276531418725831296120909302012546342865304241583041092124539116218349746663081106300616011538783257667145848021905054537133993808229286325484840131000102387473996890536066336037406494625727884719642761709240352531123369164371330364218907456060249232904974367081867466172756063565195867784587785611714062491970155434875213467737249176492047405387178788037827631710826573385301340969637833743116201342236269688425305653294809189388063412485551662187099921760781770139036636306303825658419144248954750328143936826666594512610577042273199056002551448158497244938574159723333740398646099824262622133491444960064922354849657330655654666787644700365482347310421422009068900360308048369190583169454914268278779841847602563576508496434675117767107792100845231679718169693744918658671026210172333141738632619984049298508359854660112289932126847289220921421825884145313075162817809765015800536957914250950098331907798440455866775173757627950300729121465193985020142966814501732901020716029345075885343690153559002514992958767329709825992842362898274215960958157916813734348400910608683897462385141140004081726626118550618495806423889124060087542457863390454789078531717385870161664096378394446576651728730045550078132188369762390537410967948638663215085800184582458235897756940278546160761698677022398036401316227387287541933167803034054782879917385637634711452791145966094099069777189530999096831212117139296183632430946044928773075049021661728419026907292333171050353095554383105853273447046863719912355207087766114048097648476385871964295732641419210375283542139436044829483006606124394958169508782563027376408643746610093349162705785751490915766506972554919825086813336428681989787019187381711540430726338074669499882837311037216630071371645571307339968630282289873135128456184426165985573678514248495696575743872027225620798271766447341827117749839545125149009736038771729629660199840212022619265054126735573592699669199297629497578382814884733684290498591570774399705356532247626584122164792702767837876932684751886705634713939012413161353043181104118368359281319317711690496533384994653570731691807166709922689339756782485134203034724468624734374749392490461061127872416794589799478921213271804163602658072013617575690394710450126424947262806982299174370664042885897821788625486695124256895297946100410344417536738205065799325105893954975268898667383957739499062661025501750773873562269151794045031965485750514097186985315086119137104038612521243392932745964768257511352720999081067843258481091479668114387516974591123837503083202813595250184288605935200449129289466638966166764169620808970369443152080782466814476005138349658207474528080411502441190055674275984308820859391472669865153427901583954817995812458665251166284771988952628846474883417129868455901162239231463353041909257797641883833137833884265862808466555699013869406481185343222261786384252459175429961979149190122337643397171814013377445902391656646799709301694584733010825156229499903962673300144568640345237283355412708341383023409440936373942655180516001416802274969879117130607433821521347294901385020436158819939839398065719629146238574028078399661363043269078335483336662955182224212400610442001261728901765098065724244774525500616553075145968290381926908479317384814484252865352592312135785986646282304950014894732774780130587807819814964780643912176123745182604294830656596632122682051560771612539744097201766723952290320845519580476644125605987896538823084416073662306120680875433999554345201101003116723960481053694477546970970987350025577386776857434682818018838509648048621146651663847586640555697836927265742783707812655928291156088971379321438747095577063512148830750645433061065907400081129601739896969052123464771177823794394456792851191817476427403870210828413518729634805667255987971954636460164457072656896750143025139095991644768590228347407825657686862973998738358193418894438683145411171183199930066020757721826357584112930375768835149043847521456404981214943423049759043455767350132369543540923659074007347401815075177011024006012024737995355910922016552911605277976351870443450078849122674503070050726228498824023706194721252471617938093987366379790656856637861715038115097326792519984175213530483633599685636118535858383066802883826769841159952288085054288414150370331166029394813349186060812876661764706762890907050229899839008018066475545028880130385530387569811783430640568232218031061148667886034385710544790841686321344961737428165478729915018337237046055800710607911356138597543124765390430771500008851335079701823121718838816309020771463083860200580666573180144682087346179258437130319915341053834696410823370617296798344230648941494049787022809948653220552545994825858166031030799434707856669756243291538327963594720378601574663122488657709493957075554000031529749934801506048156647157944322710813459568011845228725529853381442844879144161343553904828543140338715378052068088537532060820269424054642843989811878678730422044046277494781681678027140783551487378715838699316699615793164567180780543443032878460199299268855738685989783240529008218452922228717755721730394277365736878822576279552885196529930808733544073998377490111995321199270958753360713177240178093490145976148964767339622132890383530226249813099927710968673286322752535106280165591915778091450929273119605767774193824591343531676385672914701331205416905180295588022362190455124741874616830716155076107051429304969477271250089058545154509834116810867230186707558302499798537497988157407249224093929222808516110259051992531819210137816196001016777853291260937086170916992712556465709763776665765338853614581836934872348980138156173756476853826143216765804842336959986950385728335773327012443260739432997354477091748906392598283284545867018743374331563484300323304343092185313615656684901092796794604237504796664972875042068106160622549922621408439408674170934914758942610234950627814564210478320050776646241363934723780515657013708857326935325532017160419660794167906674023230381323372613573976939503559267094495409237925356504431892923569463280005316730007955008294902292073499609714989726762004849838931697190415565154267910366958873235930879764847492684836741896809419503345823637552419324333031526644993593810326400514199799312003145345464609063399751112236237268034584301274229801276804821231987522495428489116884914846655093704196916932414652586106226954037727102620929872226897719086736555046769410624454675467938397259091523204977146102474346333644239209169571736304880619624132163507750037872483773084621256018055652741268602459925014381797711735639949813376972496495414842782347322479646147776418067337430128112704920309138713933880131048667853130489105996762806674398926047705194848668187128368312791215810383021472872102797748214943621283562595042545606389721535635859229406794628290376910039445479370219154062790229504508601859364613786324114278585088906254602438050408853543086264952487120866967889610972849146904265941502411598245943075335818111112178269176735696319105773776421404736812059733420461386558954962489636234027345948656385269254962656782450139727984656215471243290678797367318304418868240017770318271299989397502297137751505416229227583665443079597108855956113201312053820058960852781317220849647716812064376226536415633118279823783312591305923681094624315396478213751476235811361414788440784002708115207473718823831918415115306839585970506357055527746624501901116614529623746414250241241902282957355725366417966875208806825607137720726302063595271687598515942956217321885989579162809118179235874631269734848208247887858887113096803329533186661476052037266004318265084834186237876489204645423173180980276221408599341517622622780991301333093824676662773887430063483288369206473135739047857260301397490512047039950598002995483626869327523215620850482369605573303346026301902105887443004009319116173764166542030091457037963980482551247505020921842675006456123062820977064551232864529197611702626175871509217617663474470591188714972368488052417063163732645564179198017473696932374680629329038444437931048448683353298096654866987734390330599682781449553902955053270138259215488468522301821329983321865296188166463032444768824272328497097324554678041381141927248873411961918508960706540007651546704455683479635983900868198363754331483684894222946932818487875671106981114509663865482244942211932903392985534199080518481677635659072062730946922652636888627191725095136753543399246349753193226277661166974045708721882805630760997399290994633950393443418861711322409430138389373846275406944248326715018818500859674868448010716698718839457849289227924189010471690251645902323544201558974644830797770500361414587501170558598812355241652693579905107984995472249872802774423827503742660923164786496491727977624809574623177051279037064819193088540631045661297836531410746647124772209464747770075307348770953128172891192212344044755932678389966018896881130424986780603212576253677445050628045182099365556698857138126105988833265199050337942700304974710330024567691687901008266431297355791103032260342193371620386450473976883902295317151319124574667266309776400635147870869004648780823587268771319048076017285903967720295630336658034940682212062349095895532905588977029620552742144161282494900224151631700506140364020341718068107783614475417943045923876607370766134535890745900343056414861197839035621984447738513137374806493961366605783823907120629052939862187824246532946577502974844676434672378740568271595643884007545886336233341820990262306583117970916770610085186349373213514036070002616516862059969625926563454657417236780344368151255962952714614731450746004127943021232120783968152574814044598992285678949995909757622560032500744318524792412560837011779444018303412309736278898944318652564277130241897096317919585441178979669836359600876070917600496875516641047130901415478198787022431794567897031789595867109797040048757563145664574496622130758880080283335610502227597977279203352283171457500510575358971711273433626250678840242974648539592216368362810697577544929093618721521985919444149011455531430668059615137963842355308633506174750557147910665676405286411412341386648473534298705965211032930076835415044531765999345389958955837329761805666782710466864434016742632435919969635955923308403664167701178093298703296733783855437015795704105561955917467308031371023549632933013765256559277846945670732298171701820225736359959713757517478979831984845507383241100891868982772506523814492877855953196162415035281908481625337086729126040509842060083221341113778443031959338216596380393276085824789887641698590466324071465075891087847772998464036645601914643890484044422275745659519399266145796200191062900560967478036966801186441687731880065736678272138155470918658804749884563629816365069956538661784907768460426255081873042290170481593373433996704773847197735883792635672252803837842370047049662659871444099845002336286401229329151689438333476003052637767828856630156927757038870046807529138088155070635463087697822750348871842054335753853207055034930146729608655655150724775821460764345754212654464753310378792253202355693405815722372871226928773657898292939033067630379139520484290050631992910942232569237111061962288702127601581667839090448084513111535615712106520250471403732884241876968139341119057317699871878774365435479355350985321183941744911476809356014364487962195694562618220489051866260311941953900389328175741710814665820574056055794769652963608847580751052468020776497784047286637604157581925472546757740529957139870946435426977435651056869624275616530788381783988612682483371726627559360018743676092707571475686832804977105731830348768431422109427735686939281695083447376837988906719347454301342183569286662072968333592485508920965087075580942971252840947941886284931023414203869381504030814465927106279406418416095776364392810093492874463838408123230446241695497495021148740563637119330360683255565066646439545652182076022424511796836935429813873748233824602811712525300141605778865717635344363660158987902249700983283357015731620677752748715260647394562747354360591580446530635315027388654797708891072756264595876787863622443450610980075951388624458838548375740583706221948319798781761598999442530970067876195466331592865323421470051103272195549439926761954613047275101073528390663743314129706664009371009495277127488925935625497930460573444014170174368654255265674965442402025612299467872759835274771381836350810159091791932608530149242059849057817395743285392430672898476835860306271185704860284758993209153669270406567032055666360336337292714173328113614695298978002980173320527162476375529978456712271396456988180645435659159286264291757398354259250273632868285889042589199540431118857278001976365345721367422756765372648069516189327823163495405932133545132580938338366183641838946406786006898287780473992116860711198127120452120348432266652416501713396172486791942178074801346441455323780931962201879778007895354243105935788836609158354211577039407011779254427230919677965626044564369029449637582998385538527158761091802744398154628788103744764614598151919207443707244776463418272866583654332252297073053826290032963368417242005479054126556721371041197307957415106221058913508103414897625955495862133424837994119162957166836789972233808736251886314039236462322883795503790487535224148289827977962314835516439132971177901925216167522558987143319106603670245479838642950515294757176438496136212748368246605992827380202421738157978115697120174306284669960291209363369136251145450383575976389609435323471118610262003289082780516670958055282663121059812618528127758704717025897193259747256394828273842906513692111513549275398511169047376518671857065587448989197770213175437528822860156360067375446773435398260042295710295528166825186998525077623294269260839173645293134203749233540514519050204854089949683906828702650538502002963790551942249489969416325834187584942045713316223697912121549915737668138982170878558684737520528469006113827459293056309907041476887972325277351094992556972283163311377577488378370104848855429203173698407631494168224136951702054978681261550215467790862385086375603611585475987595822126473038765853190959688127975793228061688626479893773303662533347969747040813624689793223036045439159057307260276309650019028984756999387948652821659424524810073650796597513410439849537701763698069718399004682862110587793791164220485239234499610086898541623664636108468150698755877273936902868028820239867680149853813141008487917895630293744910944409088725217436274709026681833131037926730246618759446086097883888212321820602899172152301645825800810517382516248147074813730155798171835928203481005755246286569019723248990597542660823149655279028102748810214623235839613273883161662022266820934166103115490069460031926764713469055196115446083175625811090424875704237835365601234031797816603046094276211819816805270447857622269143634699279776167159659389038999812906126776456907792062304892438819378384107711578258704209851991750471574494616343375090234783612068118780736284066092066886459407333259453652280757160636473241339028743030948984934608628637321710110122066863800577141102451792643001167602661804018015489846227037281379981587392720775213598660438136240121140630118875291017457886456915173584186818625883153072703962232330408389776119368963562501495509327522864862027680206228596597499229250708187272525278392956223936997837727071983274362198322234861612749100858250741505036414248573682298187441874029513121871512439417319663230260452382534094790040268779857077496692807509779383111027741352779885458166706654730889264712760260254029930005987873971420939058522625554942823739327272679904319168659075901038894375143671650508504468859274554831067367489907262431987816124056433215924990912876124789078839873933603182706806819266600820084697925959935229794169760262382742090407610021215468600992289195527225674677233653532150782224554495097256769472655957023667227030096730538859881787812640029589950794593240822250491860580959907755734604975679888599346682773227241644291904797983784120009770784153354264089543284845410104894010834454448521739758999984188211553343057529463061764279469953703115880364327481828388295597962774906729053989974694287209970136687793932689761335599028903549462412533912818530030207818752958174664000149765184867102728879069961546045563918602737105215301323984559459490321986313943697749295652776786983250565565213114999458243598293674930470466899568036743411116647491140761527349169355075613255791796995680152598809845839848831542418850433690445607048808751037227967948237542550504102956405651810659719833949737817073749706626945428980485661374165284767369468006634896496628256940261651237033049630749973154428552730247301491703668937621537616182658179613451790457130474870794617723927204838364903619954521874374200423887948222099851624689016691337944398871252152058566872555150143966778190540197525851383062107865854468887668605496507573093504094077519771519376649447011694604270526822892520815862485035773603601326839316948244094198362042385228961978875054825895228802669702727101036785633903176379860930856183801255007976194912913169376738508436692309365613749557491874906373610826436547877287531750125985101525874353817042922184535798735099978874838131567040324759655766387553104516889857462371492210919089008281023280936810230436714848773949834893735028957070412713391867115114375111305222816315315652338141639592452706272869777743206407730000761533703214623768619324209693416309087920210546684240385029132156318860547556644469407006112399469411243494734136978803791430390152409243313555442906060864008585434745880353269362090199506166886524486859912340962011939650331606122198776752560565905803338642294283303042383759967562262901844381405675384212152984432269910714944008820350717254408992716271192870632792595012302578528350213630649738986430743850611040866256831835380521659167392434488721210426107428870792993226915980272139613650539511248122356383511579087315718037186227728562749300721917358883386763336332806205098625093876350481578667673891219589956904168898915259302722278151169101907863643136161108085147955491159667712429774613005719311480224918931388548681888537044593082358690340361968442257744467546929715188768442678562185288520013771685041660587444560202310952276871605215742403763230102357739014799964790583669041162784088367819761497879054546098270287167078322595620291354576086823825836064756280896431616809531316478767146639451469181317667753776830011617673960746430130216397945234470804941148499491649102258751555248847246831990915403817719262236550246284075898342363022281674846839048033873428057789424243243521285296011559087332146830848844904797160546466001352518242777542452760826805614932969577083373123518320630632142363307106518717046049852911876828118689660569044365662763769775780011759791945851229676853321994784352704971370643671941582184292520737514102284222542102067716742981387826937843099528159005741921197159801016112763930142178794279758492998877935574601966563058680606345254265851349228532445512094323673847630129357268513319645986924086119165623890917040903338078189065171095541416245981679869333934975757208751961847100115500521929730057782693088816431966492439184036159357126449605880275174122501967908671398327148825067447109743314983599648458125233212657679316435898680851197545163829075617896292153960044992749990232975163472910452753616187142482995649770567636288787819467087979073722481667335938017853708144026275428393328348066449308672291695033575726656604453999385214743071697847523286228388793426240101887151170781971751272253374023847920483141225034785487934222309813838386008137087927257747583853853688139786498421178860906375436842506252328177044929720221143580214237887603388782332588560831308275762746248486001242702606621025037635245960024459166723120051388493238996621174641083535211203169577435533655996987655997880160656251796016655403760933206134405701335873113683381986005965289616424067726970832743428948182916486614031722500062460724152259633065591994555819496548950196163905310029096957511625072638586206805096547329043178851058427418691405564882733332223447600221860929056103179251618779984276753249145451728200009706167027512430656521598629809664122711629143509727649368538656379616316087629392133320396137256461264079271482338853543142198220838318026346504316695658895627320291180504148079000351600664054793168031372023697235058589457693393816044109920553299761486379526528473826882144248228652320039645285663955381160975156443476933008600484790151015233830469112650345805768129950822735397797449477580039359319538866719261889504874823276761055975171072840391163890779365728417082743613989786866211436819899551298326498032635514319665557331617321056883766061416108882936093020850591078462953629920014408742418337535842457056649986864556787257569616707622144103296051402115053068338667645144728115199168046122629218839984499555724653631522985373591358002640210341467125585616527775258566098389277823303353087365058433812620514788455807151713520516438879978260587088157021062178097810892061758548141694263333534133226645197727447756368631867825744895687507138068591153282438988760197903306829418874814709786324494501187154551173298554653769918512650407443485980572097687007023635904672695396878206251719049327663035897872077903794004248087436805692168303227026185188120820859769604199435830424072076781950273374356258689174557475381082439967201883133693835558469910780544584954709328703056764441432698423265043134631988639352303777442552941315831124633448640212007008860906890035546060532588529488782635091327737488202361920098048404715021732203399501905493829334865593533138305640989755318890377708022372398652810108784177292665165830884502269665581202890031001249142784790262317620874880736094493670414247262514175756636808652135058367223380028954885217724888279627277807306171762013449641179443888398361646811311530116352806822212888610110355995830547128387487261771927278099111459134932016646626714011180633264246587210546790403179098771566131902735674142007640247678369784766249198808284770680696939645698951122116152203632781224040017728305481161718280946762605766301297544291414674284824307050556335997516165785998855372535913948903951575624164566649001059372887446969436440145324525189479743552209086990756151546149497888729731634385932084513334785307710777014503917743532865925964904241599292307010000457999134173470509573272146740720916783072024488091791256043735762442619349842199220040746829218965897334810785998868136670402082560218227853183790198774918070963043607048073046263142382678329333563033254635085926563108863790149971084270722420078894435799377948827279014663609007762384935029652720885971966653037798828390657184237039419964677191012923562702083921644430342426814398499994396725437818506531773036739525647976363232805344019974644329649491398077206044998979974117365187814188988699873285222215735216777834997148919192111701908396188208258133339065101156183630933518743891097171572758231799780249474379859567895963454388980852290701688605959026976296916550109709220723163435409775802882900528263868837301914618089464999729167541818559241692279493621146636712003874359635427388122335775733783559960779187178019129002610025753976643063643776855691238815788733476464930284654632538868427305256628053719118168990343229731890110157174962818875855748463287544675167979202692028126725568572059193103017111161508220542292226334003032352529379177848392874362489423699644022419111568200912350785187114168118815907553792533253258630722901330942109993556604316883211099460060805986785243847239116705237307252140587650579466197301908081554299497976140556692483199023664291293553297129784176276570765247451964874383394254749804778276743765898858975528102477198543505246211050789043138993858629462483771457511289074848355033320544117468972171053960173672689278308558769493825175166025778841681781485050091383334388209062766772399811388510881167895133456866729689344437310551268764541597662096502858570277153946294339058252454455947826718372899388013868110820737695020154426713743700663385150579615899156223593322055653700088802518928307441030366151556478707291812671741082442561664068620003631291750197040148075494118168784446027701851184356692623377279018591377627596610350866339038292484369318113338865429439072562676893437667667268669676378403032288125022388302062717374819272004528571244188301382347255458697722214729157193925974353871157237179747602469711319520548258799395728829773512765562614165755883511808855771015835832847929487583076987403749033639845604877480045705184874475839867526988068127728026596926616891655201183020503785446990125401760992301667668234276955493953123209539050929277960935338473613005581468960469266478554756197289005214071274276007277866230004882155586485972549734897170162500891749548614966644154322875616764734325206597767201613554044335360282560133429065847898751548506584715241028038855726287143259520261420936535954587230858247251926338202968767353347001398159809141880347799023496534043507678571923883279833077558276844955060131661756528278193517641226518318867256140684868604035539436791552200424910201470632751031480307734948369596474819658924876279026897390993700160358333296787424171661544662784741181249765095647176180792507830355757509017424348507114475990834577222330177558952579787008519115749384452263043358814698424956129000554556497776756473228232914245139012750746816412248642003848108617015128674336771966949051093771320185055907832013838194175574956246491773288626258854881823526290359051216769105088803490594319233269465364537754965039252446032372208351896905652348712487077692809912392754972185182845239810491440515534261057836670868524343488214584693514031111593939939773134306479603555792853151988704781801493672189366187752641357732780783261372092016267641941923359164090299319483398438527900157040274581626333038818926727367849944588880223768301000902944062204451740931777385269218760385978403660819195635382053084253183413494290788294363176556684914288875488613040794018260080562908826622724550590465964272263353701093297470421912011547934607973262064946751199377771637577288063538430328300667444897246919770429965123894098619256204167190602407008852969969740152905187809732308143070059671108155966842548493319209436178883687608346940804842507580465832108195744571940847364247183424595245611733229228264232272795215515211252965849305372940489135228645289807020524794513853931980446259905909464606876612560660084968374693873750850036169010196063226229321516373025059849023638806028230198898330343486137877125458505303897134429489334840777630708481445394301774460063105663048066252885185281076244620979792208453483147782279041851731984034618529919040929552342573316582079244611960367966893424446224457863699110480155882916078022986326122215836427196135860083943735593640261915947829077966248300569703362460722728358306699177758784053302397531411280428199403466043679373074098555684615140184103453265081322869409249823251385704409088023112360133846567128246420038752402571409108828108900778141611393224384206825899083537895319769163926232538367026037841830928616315054093629275043299533800591883772305224679965492878625969288254622462651273545603901571521891967064603231870005579776731759672048857218400790153318045509669603758183246055083357061915101227971389148322409564073668214110811428131406730680628001219784865361184150214996396631405158062487495373427795123834041466307565794664693260874883770691846757768327978880342369657518518458849216081844238694623279120238560079372834093073300029712373070008429096165201539576743457168967473319028265279407075015907568955013900685617672012608038716193310919350471717823323931097895979396283623075053757963169657338011894974633135868708415356215090667059481412797635227927123518790072960386141684530307383712440798813214980524644521649329011259550023145614559364777832749751522846857311818777838922693738566423107532320012183242498185079186352633430070190990081929522802617324655510981383720957667981154503183403632339746706241267324927829854125771507165296888701184177204675938167631624272400023653045068376266287070223525814000076987505310144842419017552332712060022500861920554528524181748463008484239310904576214801359882487498495315147828900727452422246734842712653528037682113003349941617891796025536411827354234309349310436805723395866012220193730523378433813615855985510618253629871234910049654206070108796850170643038348555872788588555476339029191348449891599564686441264127187651838541000689425018721599462316957104159583947122587170115825442615256395125375330470681989815188197397314383325432017013727219246023266091423499442247050375989230494734861062513527479424938937750089906333534052104757931858668564334910344682986809454764587326847531245586844335258141950550246426819404079537594905668753086485967636646054081739343276290469736992053029692767482021529050958515662106633120827706856887580750491203710763609535338271078813438654088380668251377097376957194707165712917882623929079049600562496017598347252903780581163823593487137519549619353779172642638192645380676564122563372115930832959069916826590222971464627493354893372888895922023952198841646333417671332734136255954460028163459043060031704911326245971895306608789211696210306040142816286364282284342186210890578967433410098575306371728840346377223642772985503350308233438252630297849116256057498814776414631789379134109629485989697524116686467582439956580981354592190190291072499934935192850050107931635874284898815684140733081042147085568848118234340444939093288419351621418712114866205067042462998833599960192781187786027022039973523344919159495214374133699052585249927824835269674222011364334950577934531553965444229841917346481150816479523757206139693978281687186131722559773439456716536318151000668969544984457740087833773643052714264282742086155929355314621320707665450938314455023008291285535786762071660111935663598109686736391376253126326840283164084262310367040930389957200682248329331758362302683611573689912726143513025278810202117036719707682189986783537463211202403083569592516835848546097476704436217886382362434923418907210366411444811735522040963795357394084462327188621318942344419502653957478505480436185930254730000149176759135997642153063093175720523587866266722036546550063454857927825893069485031290817434012361043141746351860306970024330361438861532241717982903923554778475985927618572880383748581424052163593221450198222305956678663534278009536890693288111231396173906099236346188813324127736612231114054982544368629196685640011949079398659117709159499041224033075978998895680307418150176859966267816900455802119314739189015027961206399280813044920365768480093197979227901353797713894374932768208872100742811564396279425293467908527360588336843201274356779669309517402215761013990943224775905041400405234938091379869559769821509110766397927681635918212135382561672025024679839567374978568155095875261893896484739647155249661554456026850677737651465325074306346361640245675261714369782805468626852225468571417800877660895495200486758029432629451775721965603954516810091972952956942120490046598273261940708523054187201152165698398980732785336761088017247414319535872003852771513391902600721271102782766221281619189728642940712820200094051362088153923592774870980729707707862298875627881807671366905190298052920325690764922505653101280590334442092985823043770760568585605048355779581262491523104896795313636717976749785224130559980161632080480196677549713034941330294681906649606818343688280843420867935836923132315790109435160944375639585768139414051226181965234542357798843534092360165544627491654300723735843714085955373055044624830468545439787844845431949966700528808266910682490477166716865122647413308835430992868994644638164920672551042564330090112394208629070315718955829983039826740706106353828512500117283452367083765101551580099038683699997140897904988460719073077096248975717319796483742705623017100695639479619099830212819638481196654590302196353252790557137751728755278681575399127277426456315333069037199527100811891622375649722085274125552827466882628462986959691395494912894886505166494993363690122267215302531202262278680641278612989535505542706736529043101076455109291623185832844512522435743340065188119898806754645308911837882400139730076340132310245798677979499617494417328903137099126745770476587495502638409128194866631147888800144692181390783724260075709909217372141727268780188864581734353052209008852051000795576690825636225351158850512363303626150901562840772180006171011113662956074571231866574630910360391156446701915401493354502480437157963521752976751554955640258959204599021258189426787625468205479743013469607051079070583317643285398432959106377956285777175062948167690563189766116398447968418914682160885798954563070076261013011748529621630972859548340902927775284589409265730813055730379038553311024616647811240046131583554884464136826831328463012127909431661377894635445306635199156832795908787101199627381037512930063433295514420800236087955737524183130192432254396461394444348516946742221705996645939192049542064213052335093072832278402315572489500853834777144750063114003157120639691920265466289499205494784138620918736343760008007820813145638991077534895400340183420546611416772267194738040326786508495382829082929028327867334069428171265030190616630416587666437415993659320643276195544205404519877771624080686586844897804732689672596417509612315958124216769449135102200941847641799812377213773623232466977038951200366793001182003042545302924670945656413083876817426108657705637627121595367838250016493903054892200007339384375192488709831737496605834759814444290098291716504735275315926189988267953078264975199015563698826513832823402293224908994948838041436309844464656016281192754319573026768947841057862899820883396392956280055285262685547524963066973552002825720063201914604699700253262834127847185749419217541483012299333566624861770238529044506747709870925375318205179949823977591590993690589245100043425073178973238267606260701866689014269528385466750654074735224600435909595252270700270066104247617705699936467454373421246677429414505137551650108546606257407158631881783756677079814509484035510894581639052912905265124435698363410805861782996780316238476318345211264474873000240106154434763474748782824102872045254220844112417806651738183786888634999339553393036583802383933358370662492287641853806379367507902864135335446150018847761073396219250710903902766976453071296347287782420961578769638083247404774647355552476330835413788118030171595312985496151480759822552093983564261024500533523070432776594224866809781685299572384261360366369838403112071651321589206365015163229755602826593451554987298549409465245718616709893862915218980681175652319842305462215027626936063904929330525129849117549798389842481462632066335351432068967228659505393827062835067839900442284647086904887171842673255942590596666954170677810087322335814547335041860172723847098545537398604648110155145243935342758257027466334552752146416021487479297305177420341447495454788251851769348587472808704571692015220395833648287483729593978127948530818179879047824825204278014576332171417219052518943021250005284400788160933000796191422712108274945392664750159899648124744433232705528598042050396500666147691167521524860156822399108452509211742369782669071554291856718446081789806583524585143832630389839093845054161939312440504469707077237288768202900527689232257000710568224338755715237370913501672328913955767841468715195162330820313042826154927802120460056446998145819791791155796576200485388309382885980360164489287354652477083500461980982943056075075790664325697595904821827928271698703973157777647595220664555425750265616243556444185225266200973378158542308564567769079167137339525429860736781824616386297682700366143857113797243458851909656323170007905903425723240976868477575697210335659179022064628331089417831146760255495990501734777618724442198679705841845371197099147961563317965543012281812556479404631994439097717191537603018801178290288707871216842423637747859360004582917799171336005066024353474630942880732649729685987005044319618972557823633023654998200297680812095034244752557789308019668832254216877820454679589898520314028998758817549157434097397015779859354223356620584147183791906698663509495570661002342934711930117917921031653162878839846683956308800580512909232853917092074717052998964534487306189477259935431889390975268650243260626170202636369163842094953953893856758171476056965807572459859988692496187796784430077632280098734439140755249040825807516535708468552014169434539028342958302723147867905361647339872501845590336958687152509565214947817285306561058642298676979220865851120906181352112208151821903744435094337285604704458184860684317303931566880419702411155962176891345313177243503965903556508934108997618881240385099118718439839740630282118126730616097073024906778212068003753617625256510780372540286908585722542470723104053864464804874091107069075593077409504211787371109238690039180193092669321280445892429763847292904415887462933217701439387979103415097337489309128597270911915560507792051818496899728736983702842980125115086239608016474396989103479200821819088770957994768668263796442462524199158037302753620264102211777892975526236493055493284625956664593441398379294570001697811934164385455674401534711966009538095107148995973712576538752231323800818035588610884082934118166888835545378781522719912939482020948916051988764112440948732623403222488099052249251784948690879322628597808741364724820787837329026336335756622752857685190961931361354244655978568918309146292250159670223765575080934278595861694606646762901287455771533681570024977095321631351097554137654812064391646579209769005007493401580709416790016543437621769123741828405110491365797992204912742485798469757069610899842204668504032877958782436400895812808475477512110430745599368949331628980635695372497217488738967110506942046707681998740733106084676104598609804944566558677493570701510871402613188432185593984354584488567040761992922165291504273758747694976456223733834155390259731947439061458588664236008260022859500637511338614558847807833385893607202235344323633407906418220449416133810539584375570690289774493970939735068809890225302635025227859771001052524474593464793269765991410787432228835912713076408148291868357711160318331482881181548101507896335722844331474659126697484452405428374019354387105705008844979680617125834438234563978198195029314643995995014176387131862571316922710916507413972013183072982023494831047031295235272370570581709531449269151802690049690788195038836097204112824207580520103917904290892995193261102242629080206705632624575480681447234015532330711832765214959720221892528236364309132020098663011506380760244374543092502163369763744226340720681674076803865233542464871060804884774416348488171615266303291206151191044462069903429203406523562491836004023771023351654721591314520456031892292480291794879226427905353201384890658391573950920566114414753436776980455637495453007800767260611442867629669385037589579102734572706545192071400755318811669747846054125250926993174196991245705439278873820858558429211799238708523361516215649863800272220158913900427319594125785064976503386226543238743352582195363643486084368900679515529042491304982433278207719036922622000535488132413899970117575000075776492134376461821802075161623231326997178092585113780739746331872309255422929966267391477741287892739196701148981116725375117536049036350437311772608399296080754126644540497805905198478745162169843742869360226335124067173810050845355925312344028188166060587170708278407374857632492127604471282805689767299769926677408498967864272486711356798064552345826965195425323819133351328929630132700267411785198747657567915110256209620568059406711194277936211877335760221943118800059288304232591551856318461784206262911319073228707836887278794406214125771658998220140915231285942268834275220396103686353692664970686673436824340144269782068363111623762779961664521539984570737682913555428984079038270715185614603142666859430068184200932830109204287993813926117252215853714630336222992305835197602156600850361267488603013775158856637506303014042628825702419153214004153236737935440325843937622254124249822381365312648923060334307733146408622056398144060884453436038861720418862733220375244369438545630555687551717932034412598845787360530357215100027456735754515793140497091821462261025519649735091254272331429986421690195367265969445782690052425420262811179290770435514074767244910822136851246293197017222532834574206570048153705154733627279211746181488747317760522874046612204972463234646407993387814283523727730078704432955517069742725147022344351329302423779531950615074306525763229611752700999901432074042555010867297086969957778764436905008820061970519166663196109444939886851756295914306377272146317510125261291089373442692588623676674755100632772610763126353716219935925555189891726767577738621690240117743132053868600150724340901247747769354057506650639142741573244678778697536982500033188340101243152839512807597986245764427689305483288097745530866583107498337015039164790264682806956904651240933716483119143783269739822870543673708184384418486346545870308195646981286271625216350617359331873308796775074304965615827201252488329363800208140644595062043949028026520564189004304726233698540053286616399447682475362871119894617015635180380259000258389635368969344790735308416873471430289446396333137104600383163714642560382770125799624524167638940423765259490193848867690252709440530683545068727861364146567874225612596784965407528373535308554193772048449739631947723277884920264211264922913084804706328494992511544412648372198813495037544039879925097250235521707202147528265428894831187276611309954115097032345750756319508335831994858702515058056781999778537767284208259835623741155827608475690047361279491384426884763039666895616101452436266029112386479938848457010719487896276793936728668528708234305296515233428018539821798238610072415426485125463296389906889697918341941505152137580980471814587099888690219105518824705934263383516641739049381993543489615278497407830722425119319014823810568794803542160950548099169241419199015764479585485974968301804197982031891878421018269812828083655478625057653776413613298486264250074653433200791073749441743762603714312416866119804160681423583061355045294870060326180650835474067756318317560659762144961134621414899874740982329135340843239942405339144202714810894386942824204307013820149225428513155729762259745659080521763730741068246370017053876888827411922787617208645195328554962358723737018075973412258865117269898819297728986170486058634256412470747414353897256387105998437718049586771477986329632688837999408715747198100064243380106019478527185430730894746934262998660927579958962998225894395839330579961000507072511001176195798939447762755329490207982163090293603217081732383416568578497886642744727037741737966972019032621163569064806578267313172339200915487030567187581358793600115144773747206390779224720008242280535835872224892896004212516910669502945006055388289536009822341028051983388307659882819384658011765833515988105987346368237353882256780732430908669724887291366859890625211434625507632529021032203575970990976210866431095503505459125561748283088926030852125779212730480075969839731753546005178030228697194604377428586102421919162572448528271417852769222451771374931053217067285724106728747150223111046281053566969659584444048120885134303043006879592020338908306145789651388658359774536738794775806296881702330823779378923794054213997582520593745356007777218565474306446101276932994632760664662906550774321688211099070792091810954074770046773829402926410855768704549705097787629574966925682705239869283689600365772417833270511068293339799115355941638858793091966813029341035408209172536209392909801223183244612667646737563627272359118339167238317831183007196148703396164582790116807643403570492794954665287189009790708274910322512585471092364969125224048949430764111919549628786481341892985086430470243178743986817280420214970124883599135747283397678805634663267919989308598174504713788607363894740709496971047144411410057385828195898885592048442001223626729568940617516743559008908289860908967588565744585582108219689329975072897389907988801214406318404056230495505809138981549548785904909982119556228862924910849207521566069959725299313722397353357776980574765253185525759973976884193439597131859423816379972741528531653707540243960579913924733052473534203588666126244867531065919192473373983990903418534349515136183817814744119024167405051119048684305021170319733802326183097679764050988579349403696478143576977433411462676478820160049957574263986303216524207374956493868677745780913034232121131371285182445252566679427403189417934809676097667035017186772264730482367103209685229773031348741275217766395529221332208484307821288030885905746711667483310301806890576811570064006475906218553993685449392900746335591279670617718525886845495592326466120841915776176659221923200508524405586203834491420729265991589738999328601632860644223793907933284474023541616806792599250952023185629154351830553085315554167036106406229068913352837693657545997676964589632047040472498965379616138534554391975620627522721657081958958274243980250856259773892201522849619425094056378910931141816552026410281120907931439801042418461855648256856222514639825336456730282650736863442691595248364873704103772640435591762807888804731345504569251248671719897903965750767057084276692439968199304155839631356113352010802063142465659198789817198896478845490816362678065398627554283674520804490925710281665743003857971345618696976297113230595250286936724047490424086003954644142567268283621358089343015160801147067702777025077043205373969840151871999256413868831479232527353688866506287685991591303503036209629997911223847756790821460402734539241133029937262156448188057005057792264388108997452507563683785454094319565330868345640444836991987100863040737409378815450663876283309717939572357252036462472800796426743800093250566443774172645839713517865826551069129347221272604758046797637432633815858509142983027237952765284993559735853374974706952231355794830778276680550346054962565868925217022226062230850446303286587844078431483655648010147769445674120230404233089605712973985604403611056451197763760721600567351590309534847587949603723747343338851224720357202097331524220899147709982017237320516509742595412379177437869523458104447404119118369645905046075148355415475421870299754721458649158703528306084649596621938684143696792921133377678818431893866245606295279500783202405373551368271361001058195512273433254300437607272056279152065982799944780666075717652029465380799948564529223382702528303170305898993688461566882995705563186958981438217122587982976922410165476533611919344436542424798674092121905633408372709657489487282785968298712404133694223172283251898005861116006321656390758328537322028581909513396319701060091125140221346676997620785559747612741739652995288525087729754210466357586538542268423605838260863553295837935441585560463493589627983246158019833899805729001901938151067663813658113747445320995570991311510200895037240190832359129740492265259802322294799718458720840170276949655963390453061301779464375358554183271718558098780065849812159324823051270967176557910692294710429574143908217020986233163149991425379099317107116489525524895798028218988124407011052652306909013088730246079391566960686811391597925037261877868721429130876933338901536828996554168256390711308306838778310925189232932879760965032032876203814811856284155515863934849857372077750212574655556115649628336558583645644654047195427398375257982946963210997982837410381621804094789339031914569108527984153168998177068208284409418365079021415186253085787223451596276959923588564723104435458122871911660663403994297611243581795830513438585823127262389980673793147542788630202217176780739701922772612757403889686529356354544099718877788461520370078694938961076427428499476985000823983417069933341280591339312589945800998590064255354210146051441757780778170730555111388210472524320162963391954878531099424321735583015355497994466169349096138196019576596895954932532039536837627640151934978175948257336545550777901335682810901407781535652590989820900433620541405205105142842360244802391340257009007141396418985744076938980896694618763605668564334218379750169691193571117888183400992806252868059399230233681308239436161837867039727443352689808737574549891801549508029913538582167862136364439697273596406323759428853917194479390161151378273883289423116303727041311268198368310238552351153300770809634220974070279484049915478408352819807147014508337516080902486912267096145312043489600462154762954353816087283810574430521297809335769080533069830601722270338474221012239172995881797156232249089055021874375724736544465823553257039243774591660202479561141236275702577203456933941794725024786530091996046007713557390725818515244091463091241094795329631068424305007050282706756935420095276261423081877604440008658665840419980448259730858902272891381946755846643625164034978706127700861076640073820007555576793759065365961933844483288315292851944641443737353474128991260171769786744285715630956627758998829382655308466667611157934963828711571992552823593232285546842225556716830369453685424398006422238198989614686294014783280233687084283394935390612753353727596803592247553209884906943143773642011488709787719684853828968573647636380505116848409737034891859795956519870200574841930111181931255467037475951603538660093008432517481905496565557795146581581613660050473018755928531978776110966910656657029329800592668922039391794803645709517022412297640878948445886935029118103688908798239833664320610598494545658994049215557534982103045159422111726959212214006850125899689809417531157496913866683918942285553749310127283163547429509998061174756228982988326638674081739484128386698964839450143886477330291211382506475730766282139350148751662588242106022456530473036370965018968151589660036350324437382978041234825742587519122670406050826744490887225775391686408323488826948143914364703025670067604663836982497861612892049087200251177119666970772305900496216688166198213612152983844717989697517632388500413846310311436549183453577486713389398612727918187256858783569402658325551357564857983447865099429772141487249609769638814639913199572036153566517475223309087871488124996552077844148131375259343348169257226106645584566603351570777336878144843109299496803133248886066528768823280415983896315357066987442112134988735102237825810751793812688108808703897605623983107556644056088581830194879751753311120159260631882875167920432964564261348037655535643155893867893850220165684305012485706615990570179841204959344013857707728926887501319780940946168719899350414278533725016343767831954550931742457212985674125719915271299395506726398328032295644835703334761905460367670849085860018243423043842377555686676666969255348816015347329776799498773471458483006425455955610669561787295949277206756076563133161989364574087961246292172362670558738412861327376257369130287539528626947056673554846967537677266419395595854776335594925248807051225563431581197340824045925016754400253235568637006224754416829279565722360182061545223934573495589588163830301193312717269515765014044917814828266140390470849573372575896790887899906842162153010965034600315716254584667580178531646254761487324325689703416266731413112169904685711725539179669724550640467725309909306029224589924852901538475429654673123129716222294153975573641018612389177450496608878366625996001106232661941035407552623778672192808715688810207993927662436524258338264947684244611113141647232896307828542139444339051704751176805111808544602931154489413629351608433906977280355283623574862736197098195849025559034159704761905864938711362157107500736302689145142159441544251052983859105679119678073293164221895463177693621902860773173748036099051394909346078146924790507772521693999653266524602663524375864496686998424745017040072908575032460928310387277096973321826027129412405930178532439727214580519491124804436067636104163221118106703471450107241291451469567554535693421287718982130574109305078511861199469543738971163274503274279603761250930427963851902824964734895431537547177912536585378792057895098999852968929447973221102085878551486064530165132933058960901531235493648246941865697886848304973066826128401103814593971895120470431657472591263152971785337921350886498888511426898179873143018154723409689296079578457905888393177038392607218540802038653844974457047131758082671453128989997210211898289489310980883716985626562961128098893041004804446324629948323684660428898502680830631474043954407820984066943364999843982194882026566733931580179868159229171801303556020934048621904824264450304667492914602504066360376024620945699295991599094748761194466312271856034043835361877467337590111985887756820945391050885730569439725727769095338644487235331088203586233091244132511575858780746092688070388184596562672025916553342045106978894211427125949996088971523551390581276883421733746459304666214780164186508208712526564081678539842855974188787498678977828068244985744061077252265202429305141751114856319939801380589114021946152745297365211696741459975000888229131591021372675420418761671991570097057567215061507003101504197777055206304770897485833394964762552360512853935338325983545136651284325658269108816240587515627141047797401071087352216347635794572680068273577102634156590925555446568455289152606121797615396371065658466783503153086348547252537875999398909473860917119242186156606971134976097639328266285427971316602409595569498619548027050926260245933179650226433572698864621808154005606432762063757747907128409964705121640116239049650598870976932198578356670563272122712296323168840636878701653089404030194379621254707285198321612809218951050690339459400991672405309669420702452791688423674413856585841624615199941264511230893945784313809683885149940526616783165062526915396851823463644011873749065601754925356677436245337670360729182125129091546616743112915440633669976666626292699927606269633456321246751398148929694688032502144453444269736705787759323690896358653295212053324852627352001394534954325068740132585802040650895447964655599616448519671915507524019355271979822072737114125466050700740642486376287589203958375057200793499247033438252778253152294475979002767389001543380548619461246745619701278100871692851668801169229750007000362170434955581797074773358136174239159646813944521620592998431086992270071152451763265860220706851118765283191895644051773711074997628010648161367852740306614175891066589459682902021213853400547428611107525065581078041852740251637680109913688031795094635855505169447302385488325478492129484362375075001097096090641080345786170042278448851805133154293672886206720553524989132670331384089353824649697020997996536620413240422416673281817078261702102715168879417460431453389094759284037922754704476052243383163910198793733706859648453064558118789152356060696148953063705210844847641218117794452455992451660432042022046625346251621893620391068391227513049125118216220009866864359179511622108175021843182410030681140598997893659600775197848062597275630813883470188637034997181705135815247573446034571450428267202547051331692018386434550582761117130984124617835779106894299993057531560307376593994103569789575997405752201873941704455515512480345257497685002752948501017873441223935548709024417276834792589250376566772125002881904545478454771135947559832365522810374117748612296691381861735564630306643314383274627354915680407200024447000587800645638543128059804912426656269830087157159096059543035355225299351128785897404506981626107425693321927942059734193067167614474774501619502574307670345973348075216355935438991950959178143347844644436058764347343752355242276961505402528433093077614035363920547294446828513560902787295691814661114376968289408525674938785129152168619762754623921270052830064329133073097073304626422308223986478190409659211893927037415988540510778428867530705004907407223960808181797608131753041837090016853936415658280641126244211115900312175989097647870998026117729716563341853777073188118729147155007599781622648027367910039673436060040769276547067106776538088810711040922744935976023588691488314448307166667325990002972784817957833414730666202305525811167129248774902440446417777098809567859179031047490188933775635994181772702342571443123748750126616343600774725851217199362894387570753472902180441736371900452206363582798511786494735062898743726759448450653872511608180258543239782855525911229711949118496949362777595651102837505136828752341098543502732009568197003994469916338497482438446615188696554969149136284706994632534575576498018617242810257208310120962380781535599877412739684230828489030949864995347663313414741409428233660863234002403453221120730600706883812653830923023928051491928068079341617254086701305613698437524608731547902145045843335659446707059727852959626169976063634874711578125346380674446027145024164831264356400590717998473727001648361555483060014301672343473975522437025919042768493745581325254692136493164515110213163380461553223758787638813160946949809713279641611519729601313440245006278625233915680733557583754965770683505438599819543969221114304825211865300536624671472863743866724139400662076899511671088852661394622270854055152617407362061024940497942758811520645090976240569947999809401796197000966505123175219890428502460328883451735425805425771767720599384023499839817636480288892806233647476427646141307332587835160981559973763894460586747830695929622806603288892179752732592831392568016442446506624425158291527573929377370956945571062476517462314872098477419294688306460684185197565838130578959121012269018759178987297945799525119332607790578474574352655036373640430183218964761527185404024523561743497191067883997835298939088239550066326220162594613672975656468172431695465933973910804057709030790619860557356593154403425907939254700202458575884614099790001396822128524339625827913849005368300443132638920493439988322350533475739595951311868851476295078899863114371046288017642625963618330486942106626948771305273185760431625356346677161568063237571757084932722842287561997533656721693159795953647597486614803701939255395084404714291099479561074362711915829014591273837777263308390217678305636005277893299507148976467133458970534685728371077786652722903174648492011296318248071469268751324421511859321119444591014781927907551796618603336266854180745206591974830803696040986073719278530752102355976610834177740174331381404367034181166744472252542121391154636738825180009655994389504084911935773357768196425364172022481460868070565950253119361834386234086521030905791134387024614488364403822582506841764342019601572209917116869399489254488076796023052278567804814055833028332634566251734543715048538994071581497195005570371607224860978119075328252910590349827157311134636749343537761927412998070267099914761107090634723818442866620520042102716455626465944042949902749657960836485696038671438835033591266630704291040329950375454100507581800755745084173328241484136529122710523516287180632979388148276249140162528402557298813053857707178807093867271276540971448320960827775187996194259710973340739318784913220264633538406431308866812025037205102376004560800374549184529858712911682770060582386030640907887123906572841480905775176165319440970266466502786122488292098077342545319385039299090087409315150004474666634927501983308218338223053417509803184139460776215068421165072641578415434119109671297969683252704829694321598097145266030167398760274838603688289994879631493852285365756617844063979563561855696372514745352665430534369651760563842940738788521486977524184863129271336696683416542672934652457050298232709870750655071062899452502282205297577587289304063595347282494193503945661187432291084323870989835508963581069407484499896170624957569145265624645387667280604714891977223452566426835693163718585037852003495067874995269690020100879338232441759356779397266923503943557377272590661982777479550734726004088180104894080447953718747199486881696060537338279083142227077292806320861437775840369172841809681772015116437357926956625857550534274212804754809726331286199346885667700164179250058912615353830892907034576012069293047466851689352659799448504945106819489835346515830851606030623878176227746477905709138009491990731410795813598229647006411678176667207781602130002458523312165504240961339594650578236360277460727487555323122417176269415304599551533691831696735061260295895771820713725893225843175393835951997092717773329420222066183644194210669160587952832627047441855394960208952071031488217227907651126297454195521229012643092051636668744617939004044823399132029375274673149761202810414960410190399214002601795394449282734477621477808149020210024805507583141811470267202604828544844446600898380679152763911943146149344551681313864933731855642893835262590811426485784388631179756039787881740931209299574088654464561615078565961442541572995709459159275488103429669977040821661954509180796281032178692329893701322964699379906593502551431346412872884219381641952205751079003797795530654940401886013425837241714748280232129553641559900626373005403815498042814782158183538035037741921348408059354351963804563461392162898980822982375002850079822118120755197321732735254038374882511444843939143957593274994581761213412565789890391361849795981700011144017321665845779464351725665397122613036784291913262399792109942338283153781142192141743198995045988536930052405218369334305321204412518497899579908530600083284462106440283249007087707357086867323487829356765283756645471286338603549525180727564407491716896529097711054291010610982557503318449656812870718252017672933712649790494765583972501779825269350269014235754740675196580534496542472496060859326676423427962272405032577441824127803271028805361782447590429197327472763441400484443059069274333081014566875690342001986574703533312689574369858325334414036458246744074253690864620864589323626008888934633500270672786393913800164075141757725718349716293573187191265469549037755036386886441282664377922873390441223389857355105656428862135375600570627025947634109886435033959495874800946645529875712025033403713251975156172735424197445045976391200147469629562454016605419615525975827343128668903345997568477673163544520232395402587926044696522662246202185116151329266899665028267707194385725480786832246429154513844448346802457646863009265263374635959457354532817050371534998146271323581612933436653116523720466372658223698694967034994566467151205004987775370855734014568454426185804725513355375888337828338069948858732304822908485640470685952932623701064679489258576899949988151419289304831528277034660391705227834905192855720202713350947417154106021243627174252782998034545600500074493204559961740754172253266993933519768245741286493736328807602935309253641901242317565789528005790652999805501180560234703461947364536479172131716000502181553712972080358908215210072244681765468348341083917713074594444733752714460314344443994102481404870792997999024293337037189364208325916447952756902067770451125063412074665555687535242567264772316485941471443562566756649879849041203307912129245085771602343892063938142526991690135567299122430266356629165125687631703198775928315424789067821498476528759901147227239450172633494533807102322358776375677301851896050591316710440846636671004282390031846117966216289325138132157996177881322496869915350384590718486272028870361714167861646808322886556908152117144818910794873928145891643279950752430888449518684380634163823987615584219204802399467663737444205324054268993469072071348756096368399709542292148607896725991289775127724943975616625058760963783410363502851398439890331339241327662735244879213896320964893037535913603585774617995028594358170340026389270555549380688522098097539598110942266555983011612996504139399646141385871965024962113241319277493954895622862052385833141380848069808481886558543347652690925979506408255170230665054633100034931976254132748988590867966829378737843723755824411848486787067706731756460300739498300579932941145380295024517017116041972552348035051818757753864699814833700497042149429932941125729801539323418943582372470539433199010013267853169837879549758495039217229431544409894645602010878318966370269552247317025869983974816932239313383857447414797107160214301567096864983615362286264916731012061012469229388097787506176466052956049762705841615531903914685596421626676919171173405369305695898924494588201127354121785883519007368560031638492320242478648303887801316790318321802524578486975104946003390480146152140791243386718520852411931817769193861917590272173741994023937194771134233478338849184198067952790011360512154964460138794472877973375480017317078436210793634538973978598515972207538355527273700111167342113136437980965955148950728827031114257355313803878589117360080531330016151258104907408575204674145704406698318599855577721814807495552029272326349532034950095580601468149185143650869765250633984229463079433323485165955166629618547052933868820529584173145424936976102603388106896398766614943380911455288954606692373151773535439949826043791693606371108605257832966308791651624817170306489089196715764812809755843638572300043251950166729712044132661594905503786232427172202706682731984535870069919830488600731634122463353079769610902085234445470203294012806719528124879281364966857815897266653684913502818438414126141679963670435503680959489197511832620605881119492451804230529844385252376809503601689816568233552346851601995194080155492802408837616555130677503111178859032921085433068446237467910008224285024330119976916149577191435257906877284773507779077869120919350709013559823000331610902954363655742503614669166356942097106456359994937141329548298901225155435515724792337452252687244558041364706283671105168142516790167728627491900295756974324200449091909030444806043782320245928584664834848915823746973503497523579037832143454912779177255455004847569334846228538303694720420976839935026612715605476592777340884339442288246114365134287009565988208156804784783752138919912679760770597351227737853508062250613955040032416010512895788018121782035439319160569603234652746848539438867100547266817104462269016981078701546085949488777332080965435870125670350998626406696614885825038116352512535410351613954155775733030539412832728871120331812657376736107364784739278396707183374407943729497798639423708236704934544557924926186457534445393785748550333095463031604209533520952293811476495771865940028487836719384423055978970858587812386400215761830132747361256924587329099076577281879239797577106743750280113499411300201784391952980692801837824534629565046494871309114713948212380708610977093416740929909530807848188934710976899740924613834295408454969509090165088555413631594279473072300014894432099078561279435800899074439875469412089985247329747848676161253348648317793476845963534579227195388465530379388400518123782829528809823600522885826303310551338485413692993189724496902940009143044976778410476741085720694642689564423497005972311410342042597097022814284962118681284638827991187325941689102563250708456988454076511513300862179905836672027444765712387052693294713414889586707440403846731938336240133019996758579225722832626367680014965204553406698848803397068395105234425160649136862156064438232874945553240498196481377194696140037628540923177745628840109347038240813282559769323648791193685122033036848288802691242465006327096481972624192709248431569251933384940101756385225273098593521808017432456884614296076288943832574934402450688645693275533080803998585382435616517645352624693384554844342591297790238167084423488474335939139325359404439501416284545093921519083251241083501608101626275522380750417581306975806524691564206774101662557561866643734792517491947374487416219510270263165883909480544168567426917178542354202481105140798055654196241913816009774011790993867788231945833393373151659144319444754496412073459680542236779925726976241439433425181455167176135711099112919120038594673891838418366692118169784794988296655966258203691219943625409810628400168727053744078343664736271778125264589161499238559437572644141373104543638106920729041207747254452063131212247031696736519972556134177481048884716101921653509125739171548843472368178223676516444945011586721950186124326065764404094209047017073112539715412243498493605800709631044757959705673009488028694689111064762091935486438274426756928600845718925046890000502645861895109253497633243754319432779212498797031372423542073903561063917507987989806039414284769782926348707863741384699213264761105875462890109117114799929756742718187130951931792725222410869167232771570305740365994741329864050714667140375382715931320619018898233170755111014867301247232453894519197899815741933375276899140031597547403935574932290701560322747755711426833493133176010497939060899461096709588720342313775969519415356790505636011607915355421215132711905786832289143294222395677800114632600517335321259109881331591473595128064553127209539146531747857824753984956474227617642361678357635955685195783264372747664755572980476419862373345406650750739132973933751950911627850060380946934221493879222166532295256648131850460437339464801432117613691876038724914687614032530109802018458018615269909892309848828924617689214683867301251055461057654945452136808416681442579517033461533644520937934346800254643769579168773230248845523380717296895549184515500479028479945336547415886884701756927011749546073283900645887969899840191086792159609331175669675644152418775974324612724675647159613802166452654877746463604733756187073074484588740538672470924859373844318055428640656996223247132533088554761358251070041972261964328919665378692449494856830692429731833383937973219232115131648367794134212995345422960927297382901701674459564710821500643407397148569171741850748676548118505049090849755435816564749532283914330164828910909084337233328164196814751676344753404417618276125623400412959704105074935926048403928938515761804176618483511381616344609513009515173061390200078874267246934710181587961213351655750071145737121307400700690462502850600426696627739905575714312998622970389186033792775749639223503007362249802722524260009033477791742772268203330051919095007709169359163558239384912704205362474097245213397329207855764348308428052074886003639274121108282942263455469245239425149531339289917429608412543051672345915142981150522091515705337292496893061803178440577478652113468115279411803253301249953272464918156416668305585202233987457806438273542722239611899614474867371069228178232465066764959265216221450125116163279481541102827822095311825434733420153081009482894085092258977387739123098624086130910036828473016610570657333668590158378649326058004424669484014927333113697462753025543441641432523475796584049074716365468494837592220733739256715180149787023622893618623110711427064230216052494270112024377785281685178198788839446940505620521689835203281946702719193282521971887346367331532712948806006626598660042576580846968832060396831092067813241273345462958058143574113939109417118075151610648747473214021167472880707012107435750158581157700454598015484900286346958569147652848099229035281924639541376890218685051176418718023262273284188057850281909238519432336969161201872018699773839064088421233518598064595043466642099704626401666841597308371019447269904773958737432177466052199255358051912841628654372645973386968355848244432226264304277311257079739391494181743085441824180880712535576484070251204807031050777649330639276067790079468386013550429360510880305601326566265234090231335263521938881581424697485229941504908155545541665080863795001169821549148726344943012494438919212177993818510936474697920266705040924105075613722796080495073561814103905938404291934687777107643024068529659914884356654496982161209688784914984671419700166736780425580763908498861162852923240287344654337694579883463846305054215272549272763024639850414657048778247988259903972322608384941739901314072432303991916523491383395002828668040444102554560587878387092329172463857558032138477849261343539948735519264811480168663549177146695245102235878000021991260334957789025377985918205198261872116468447945692753292472931550499981475747560445145450605301632950553941348952914741886088256875387687627821771557106643080194594437741724592036017888479526061957501804941158702185648142937920967871292374753012809070702773031416257214111575911114661755768580881440108324129308989559399890918143395405424331919295478149369403506936843082429619857542500566799235741288443841897736683960113274911812561670162766090853662931357121489343365772144427998481123499668339765724557569171755031591542158347979473020658978255360001061740333224037231324354885819264097917525959094823987050432348125507800430292002014873069310742264387616551176731832065460851680199126778766031477104278254844808053565643585170446766711409902515511142410975304920729375884197734225446594866563580628192018172550251762465561696676177970930773958453608469672674072120962541959810459414929449033498726398694619391263432055775102736990366266136283481615691636224400679708050482061802112566330103880762941262378950025098001461592124743543073424509861965840832697482831147195706619560745327972546929872775371951091155788836234156442136452588217808821949308864966757636646466940989274884793825985355614777223781713512823712158504413427553837632879274146398590695817691890818361405610599488858878699120063686256741296988250175996156724200139870281161180083832052906972130194831427839311443481168882351624529217951865767082920908926065189727534228884747333489015268198515296338685622290947161764167287045223719979031305221380477388374757349206557062830458509215945139173702804004408908535458339073838012688562993859919664352826077590191696938368755626182652351195635812372849847749434693706670335287636089491690257610779655087324977908356953773200951355954192828345496520488309172274862250406227967972665446680162520635349025216169142876993988165676262669998459397918796684849112097159604684387995864444882545829085746521361039763043103598102182414208378804845923277510097023094185949437651081522493434425025571991956546816479713052070358858613762968887543946478739597277338282323340258904640301382605654662185661712964456089734750094852680068520325580053826146541245671749938420364922617724063908684010579094761182810464189344192244005569207074548110884821944979626101326782657997580301385136219969217502221305882500808478216035684153572305917137820091366722795563191048599636456379966118474122559662795319873742825833971408177154395763070564209083048339568019533357293407565823159494795070722195732036986917921922359730434499949025455589437495185534669664755102682524588335194465088837143565793031283041635675729205656286000725904862485718861103616541358929752654074757731103773574160380473821956283980026549054540289252389269401788132380234601175933856124936914808453623705210564177966865163568254785422646603603730078571882984372778295421704714480315608403099686881505880764442064197527459114309594453468496191174431123761886456796147793937797046537583316014840455421742631586747595510120359281818261523633624401615621308057105158350611876995371169166012952782470755941614107143182038593025066919979670371018124627913007015915113639695654541905524886732482265267060223454977340074542331874408929444656415805123109922657115796488984298052331327864911945021280712884381948686893883823774805465230223379680160207855029046392604690813329707710192575172915846666383369009770624615142495458250234238986974279968462982739388773831833018861423326250156985418852935062395709820219540483723038913140411771268814283209501361061143309730508035709917416037410985753943918612388557623424986635617712237960453421193574971427835932947964049993912068518454284854563188807373523690361516345195308270371179550190094528098207919648868492168655727152913932312436698006593967546022118534811737155594728997006208887125143289408523171032854269106606279117908679235183922837238400745789860165937778788067631468162870198081704228021479319292762683853179942001683369722925205690418035461119029562522152007576905093196938062707546675535953222528137894625663357091725044766273644709488600516575233860565078826197111989856201233417790789364771979193412635936440321389896442872913470254302772677181196758954321427091104612029944030047008067746362827925018460934935796808894415317386361025496115544675421406166174876918262433268232544249774550316254626708850069608152492092448398111861472474317186168810673624845379827664022283980552146757804646316322929639115380583299545734438197881153759262153424796798971905001361349460974745292829071080937437466412990780480885762494759622301234294047146770666199506543953938416074837403270148045694063959573385876674881258784992907522700259762853146856558743248922662018819038618390814309313234590797556451563431791926913033062639943303731823280535202830724498014275587903883371962629603924090674408347792413966591064933249744007822327058667210368455726128129901634387403787632122385776294096712270742782925457936822222169594763029287802615035141925730310803811283098927653480857918270143232527123605697016233339928381823709084476456037599108079099167077187927626303162804312457187376777651758519014305302473239820958659981915598512048318369222728637870623410481671127777531906775896246983682240170690298838638684552330796755306525993029311261442397219907911946821914652792035902135066881668869845926488201976870608241038360350223814575999765296218272946344877531147887141657834023640279908694449640852439712994902233488592359743201921517327874014895953528872009880922050584908756124240951330197329072914256174058188543031775982792147154181877940784873800339441568531230679186052813962940362105452983961393361998633922712371965188949331711564354898273825803667024598620857520368093542728219812845624849657453393491432479295890162041861959252567841422238763313020680032057693623322288849955918950971757708076944201976893793793046465279772694604146920711061276384421531027806175275272497144331007219444402397268737565802550685601155669249259354002316357449925404989542063820175784231185732487377103491744266866729352580271002468709572002420248960750118761316328604319707580005965286815282070466379638039177493581686086303619148061966583010200865187457323284247391236919834612714689693566098829410319073138204807235760849234302136517521700495343435403884116454793940414086738899010573855897159892025552262519631974094007126124214830465695483455805889667398366449777340826714186452352730889923911346431923798479714148279714096129523280863691545593572851265903236129811846559216156109808868889989501860240710662766435078754074317372170237105385458631426016177894452794296258404293645833623175557838995951098327146365555389113127575845158335152270627589092341665871697708732547858795750239990494545992318453297133621893211040316418193549803586883355687765470656074447207499343539789622751015517721882376888477604809424222925787060037617961333877143023786753219697862512129599282992193305196899798940781893744600184236103856968316375612751330686430322664509252376038546724308950909055167362776455663667296746629629996773942700287333071572517949942110731208680478661973828665896120901154618475978308001116101955156530041222687032539300404374033428263712030490538854741668486298255985753820428075503203022251945755328115849199538721844926176654416433548480274052837210180463554411968600805139992752532793956570154206258963886168498449304354810533057284589773121329957931059133019288531333565461619442965204465240161407776494652888016388750989746776008230335010540099662103089721133925928040298542249489192823134087156532210312294828176775428472352647461293833551243835025965379353503306810327442879522269574288816031086178939884070224420347009694622249227230980319110674790182120948566564502567014331195571387589827872232494059050539881489472084675548659179970199908542919088447103106094812292933459080600043611487168188061136884748861321577960930729756318202643362889240557698207019141555090883161794245958220905585793742352910747316904317353687348535263493410803857776969965202041346018034047484702376252870010104689533271974730873069101010659290957298204281980471158674525820284757815414516540044689079633002130036058383856227071793217080482887792704013435322596049884793703583475838040303286438953833694404546286107911175733065453015173998700849618827303422541768405817700042394434371089687775505715627261021037814896332817535368945815801940805949085145781976831413228577972541074436979004844198493891450195587359983290330659897524909370240875093004441372704594844983432171171365309635194184685630692734970490559941533504838279432565952345478365724210909824817325214559736224144279504727544597715304027436790157167445733037833118537991377849848482623174889804209991245060694028890720945382949486953979285246422694013122304579710961151182971398169534929129104402452987706173187697576756533378152583346875035451009300382883719641329865622884992474393924977790354429530389955101395197217375890173184932871163613611350674227402829288409607312588334424436146739624358926363783050262679077173627105799480544408645639119137529776466219462418336890096284888937458289643502622048757905919731890577376542525889514667328214281246774092267805783530719290442444406054910680486368416876840908647969032966356451356433087130604482393672419275177235141346521606789735289363906651905432503266480558259660593588045494692171721127054393022109797199296164194293179589069576926954616483002670348091174793297116537900850181505108434203119205649252706692379694005730840917693250769360766186733702113798322071497199139128703594925373500421461295488198695772331794478695555317379437818922052221987476962178917534499808795253480526649697461233178225898105489863485584208905291566641536283832464818263759933982333683545247832233821791444111807792768492691909988456189475775020538846413332998463944535950102757768075615797426343006033839491060020754456255353014484431547600407563096916639135945090152123507613759620182124927055792823851472518669758892982470541253226669391759793802655742765496988121450743960593156507969061872965241623913981063335275767227330037898832298239661325954221656974357460789789520931490808637539410681212159761043118116091279493898766382174311349850620895250986229053901595001878249006406989399567742898950624247317467046579203884202026218183752422571795805359209245531664715597964630381071424021588858109582294584589793821167859639617782838768827748096039704277945373071483166966888437939605249469093606543330259696675761394492371991569528603825997027297688690309053106040071388296174940526083363812486485350639645809118013097296836294942485177964649670314654145016093209513496645447764339613368853465553416559667279771588807133261367002410498677163793068698117997200750865031003338041064706096318699514343512880654123100771627847654203506346783660654112507793957559759498496245643701896669725215999614396694843296441449255669730589683260201569481311228352750643154733144054547415446957291750746109121959262497351141730410561717633901107818132262989977005839073075484121852324899804853081318104204868689330618844572809434964420223801189818449408204103771730596094961284611173956913868755161224393521156038490441068361992174076279798251950726128541972225034755842615387968588512789298504343134351406975843255671564533011660801756013952770574605078928444522305071375802103475473832447537755636617979067940545383830462335534842966081003829171574186144217441960177084951566853565916491763808852056357871644457686345188388789595464687907766023988141463587090372372524565639431929059654965571382164498828369769166080564269654439654455334818326643399969314209747433278082591027251212097845530817613743251945209763936457957123187398910495374067583057067325774923876721560103930400227939253393670279277636287278935566139152465269088288519356330071807421594338977754874548307271354416767114120943456836772961083023123855765169772900575708550031438937232426246374710144989981829077626767531610553302559009339200519827017761897351649077572126254785777968327931425886981275243957064107354632621098213340652211355734179876580464140111608605193306854049434546079270695769355301565106773965755217747420328169798584939257217221680995934025195125925699094568770163831401497939530422500639593880229225504548362003628088750984414704699692821261214410799023149649399466726213507837093098921004504805041075929884545453678833533780062179599054519134217724119965301517644250922861300953832378435308992512983440156480330828865441700171429304559516515946351121755520243729652798944194725702722078492317416866490506652152636373422790090123401327031553469006766902764891106908261023642692788908597047055465847364177242593894521032024567282879584752104576058939196850226786187450914862652398206404976435856935304237794487817669670721213995880280900527613929922065180281975627462895884857135942765777918471527573821026875565545123132105488061583676318538664245703356576629035743630022823382332012788092713467452843291554667659311326608255904507451722272369712698447805941296135743082239365602305626720524965067352386202427720886707884909605594200043423429312095464508220499305273556101810053773354579013833370803390337741559007246983148581854110189389002491246620506022409729183455012414009217106729130774743262396564722070150046298701805310794701090588116245567227259992237432176346364563498288493089292065316192040207403123259321771922379903111524343767627818111540214965932862049768761136914517335374385993943656687879772074625035934959680618556310317112415640560527305085535428103954795881523574007867438149022288523705250617428769844948675685895356443544329420316405704386171963895158968687712594767663685050964873608850943932845645123985893848871654744989649677456507054447626704765304253516714910290867543242076964483422296321852751403058612751763636174421481914345510404185364390771194386198662901995499432488987820249192547101535170810698151699334826576017723240637375503133310187005027420617480222037733533645548500450560056601303863919462726866701127188404897645526233308220935931150994663659929807175604615867488228378775389208409289956897540025674209424156060673950983701648913132329529036639704582430136439131602247478690469080793616879542553202077941505080388489321218875065214130601770931996642730676025104783609510229743169434971502962655297748505409553979093276759697872719792700229871242090321038514073270044436885395760287421068154053330982073408059943928464125075481695869038421009895645498592884586586565282368533120585176974216954181116985907186627325583129097415910653337678972754105030464685344797408523924701507026254918462052984329151365456212267658957089656087936639043783325086818559813187471555385499945090234072430094167258010596495692121134299583638527708454249149102398266523241363031902802563818709940676661452038469808858346218437388631047515912341914977980590623272868430334555065510482063698555371760952648504149820790491809279527500229671075193526873054634581867597310065182200842059590161804869501300735111495952030073236221741373392526743775430009864120709106012175625849483585530727196759081016041701688617902938611170629603407292217610009712001249231374378640989662606992819546876064518049731856052368896727458577505080116227074285398541837413487056430751030973760379134210463671305643471044105597592416132507090086593153387122781105315513065163764802646033777397942012589203124784919015552272101952871002100052930520338138019933246518463030774735988923598649063691406489254859853913781252123433458559258619065153735580660866947995538137992556907340693544596806611869290288631939195340841007966804947627558074070121576774807747648279184583261684411429228627784389316755168614662887427853197021172769307725350058709654242012306106875280799794804548395375431046855723366285033064273890750232995325286360482062741571777335679648852823847362779423272668264913041027084161336379367887009994190747265804661432375046154051659110857093586557618804846881230435071570403976397486731183683395820351807243291382189703710409064091138058885756145724982359043980159883264879297102944195654005724429764186399050614775864385193893508403109010342232954008046415103882734548886186014050956005517908931874419256345209880502125385264075666245062382124520110804556723733121979000928801306930018914348599539886912102943436841708856580512601870950386962302140687115825490097336461986041501930216909745499225339241452575897439942698884930997834911023735640951765988312029683399067652267334942971936065335251929053107524608017916658866038239918263391423547401791867040335129897691895123559844104807208414900266355733166340280471728405905349618531145761765242353369118870311043657346446621769270307296503919255515585122110247561495231823107848584651798599670896838700166882714243802274983687099593509651457888271094795648344917192984596703980253617597827262367987116812175789656800746504212630780385691801694459085525566961527351745798123706953151573622639587260864609110537666452194025224737131922465962898580821431367403591421878743333480748420566639518665043895370804753796589222740186492342782024419407331007054399141684792314413895470449676187470322814777408355306998464700914054944939861476852305907571373301999537602103290579820866154051493937133231705270794549218117249638290954065907004767710004824070486025609171458971042175132777734470512357153996552389483893531294320798633698814733889034110901711523293922401183365452417718464956630790053672939512952506103698644010289824729571669588906423556700753819554004244294055715851382158039959475970512322993329241379410912543554615959328940166190198667707257904872494488769520037711305119670135135243308219868213958029243597122222627995963672851041995042814609745114025686915717496787934778089978680217449317102367310551503620170473857752161899024015828589183729626074521901901645551862974565874530612890382862450449699563251945953434861550229563999716172505814853436921914459089708778631905835736966502926336696096421700074066694087274404309638571043125212932834151731518518138216097850114903599226829149247153715915490724598019080388880574695723710797694522243214508855126751598743732059379069934693853288625226195753781218970042928177966818015485800429051383748882415734421191341977570662121723264096179334327153054258177160903635338781247334946610415449729088237146526716091127812827709287358189953604821428617966029208851214894397534998175215354985317091159899036926924670919850136884966652606022461490806776543366755221511710792360919360928216981695997674143329416709908723999404053416222883557488161710120925642383612179248422294464577630610514916384475188392881871226788602577929237123614499311630647589128358797873759873650946586884188805021358991383938127152449685803441379558952017949090720694332949839143821550510099216660093099187421700973510878076350758227906577664467247474024966860122088901746712040424739913134600715866558897664833790151886697350717265108623466187846769562202149998669076315451608476141541945729728755389059487209080892213866097700251155313520204392706151978699400649564767728790818284321224416729290937276700489979413446222291040324018406396354247690552321166547830466496843742350944148721470035471389797408139035628289461591829522526911396152394141868766688178797376627392661382522546472662588253112597403757140540704951420001819882288160384216955662835422228582084243344223319898678385481981387039436187753643632430341135714308262953441965500322825517923405446085108713505718710293405211884396807652377761433312966128728307377974284428084384853866983650180401119659031824805945946334703098985137949959864272324384123638636772023807076290318974578870410443819201140571625171835922708646511248424008641825570223589926322648901525978297614555817307730750604949678551910628466918641271219150730194764544892458902085660295252301369085105109461383616424601490216672004544519515185457265239674045612823881885491580278155431546900100454058927884177610521942186861576793110332741051299764209600906399267013907210742085509850590809322076881687641403409124165577317392879176296513100317127414600071295699575626946127098772527531832741608799804001393412676510310079644485207885822735966866798398183896366033213935381875258910305800305309260351491375486929449874056981311255006327340291913092580913661651357556049346982184209013769824917449980637557860503986254530795478959497921724516479954705785771678204282101679603321260378354499149889772719233678677951766870396588372015049450853847050427156047004659672596173559475153868204300874057707131579595412072860875164377338184732913257837562915852960590945628088264132377647993455013124573459358411111420864895382532985721074090143909195039142340928348473151877477570969299831567982552467104311521066088315653548730810109296996193594443185159429701047959956919920039190953698175668644782580284256300718395578965061001889802823546656798480580284756856299852837923106442873330640027210549032307039665070187967303247955475220446394394971148138311674233789067975955460091669955271240392734835296813122149188644110695540086193110071820870734750372180394268150543053053549381783695941749598189346951396901614999395329770121335458211460101704861279840203144956733544918777347194926250433978424316911274144539656626270450232542215812359266054006812171215837736269792102135541723666006254036361352433773166975639079899723200894742071016821353742402902296899655539493183080409595437664046860277224579581781466137319189083664744992778833171846246997984961048221277386121070642550900402217123668290048644362374941394316602286436106239021641587970920921933101798697582479245433186791185423229457226106867420631375091025093792469559798993742116817439888335303320326720436813915420284020859533380766529731371965199781598478628866718271405457083727408793807678302835933519722672831720450236166182475603802112656207026324638092120630242591324339820247658688056721395299208780644978168230928118467042321567106408781176281422985469971260420850231761536070205887955818450193736939762162831246674881344367270320935284707517458632095872628353188430401682403076378858967476041121266462653178540878064554564986248896877209806538565073400578114327137883032495746951254153169106762035667423812385571482371740906735417403478381356506847720935037635463692328299818957387598025395745040897383123950402800861419153740457348032873398942945181535536601665417710751588504793274449335115588883737958336187308708449926938207477408548715833759388524082128368851776223245480226290839579359205511987265866049576863666383475912491184165546085432477208734742024576130137988930251818376989760187156292416052804569915205970030890661620378824815427835989447381997246489956841520001284783209329450799536607906066567740824462885440857233678249851593201334724250946694777532912761894799265790255746836332343659314959556663213377369481763745832772532988276077562692402040363387571437161153685248274813869372145442010432161909618628414956650921193810815271702705020948036426995949898547501956246210859732063357472829046222144823466030384733134051190556451205003358144699741552828823281367513438390878581586115144639573054959421558417226659920753322284940473717226517045575902147723087232417012171444479670588585613210349937767347020290451456263506482023878925743540027612261571485266679402799803444255795899631810570466301947496870389825314833600362269970810505412820265065494522989148501699644488828489882274454715748499428629843357028167501938470135271952808024487497841626147234270760355316972524772348130767197374883711754791916210006642838016520092347083012583497828125158306112424876412433824810693350750199384221673815551689721845221784667839755016220707988057988629608535348633068548065357467711878880704366159567562466365778483290567904444062414866118988117426464756301388762411245594363387894675145927293999496137673374439430923919024108474796845408255134114149067015786858693923862806642202520092753699814701317081449301810957968062583805548023948683326670200781994417080347771801486944160355798972325352244414097193099378704208309176939345604411897100094231321075774094228111809022919074106943093164035458701392145046210765286138097294806882106846504689343987036055203390859028324892299682511433018571668618727974635161971958863956573048799112918057912475705233486855012046461147048202962058161838295157254536206935689165778951836930282531501658547176270628782708573680143978154474976086523292906643818196418037059677679728484881614559028318771379659876802035966316527430658346457344800527472084996899463523907068600023774354228757686443070876842110442693683892159442946140905602484702318033254292118353155556413478328240873070286932761394531505166268048442613500795840645159605659264650483022817789889816177014132125298274023945875310961021357096417459163413058535802622938463765524666126692886541197691640478178767213215213203545537493125832661890302606773755265859563364209376971942557345249576838841543452010645942548672784009765178133413488804324189777134433563005879054625945794270475317055184227547408696759873825949664244258112229248758047103233592399694965307794858473815290831411888936333973078827313546274341827540289713318607186040619831890673251146502793901120291609390886468263283353841431369724914982185062074423066687349741908143394846815533793016197097111499990058546587634629844372807709099048335294259146822797944809740692285198834837306274304548050834356204708471276227166698698611564030664126395542703159854481260485089662834976691844212212240172275436804780958347422180513296558965465588596808836689758305367100237894721514643713437576549303811254048622074402225415902664369828128223607799366936866112625805067846726088013560990681024719653152740485513888409031628459618731778785722061231877414549971628341219602402396213992987941641243778635309061793132262820340582874760458235985379273811449421476808333458551517859580189160496845724113673846549660659585354539349561054392319424936659163885761573237628692132537211498710066573344609379111699129623290817194614011756998614638648124462659113065758530096809905417737210294523465147956216314859876888918718339349566409461697666055343106122847256013876456749557469626776170560366564213635212143988738778592491819793926430391150080580990567527138544360005392564098281489231759885370469422488891177608814191630248697317137116327138817703378913056176981612301201707552689552479249627789607034319303179710190301317652281445278082650567394401892773345041454853122460673593273557653859847897905459122457967699318757891371918294972735270431651637476830589758916761036393719232303249586078604249774678442707251816116962746218839232284761918964819505297962769261899891411723367761366703560522052989478517289042118105819043403354199056548829780031747952092358353612486492634282043354536758069484310815008319725770066239180137029805820161504140090962668608056523811353519790891346996224366955053263419460251916834021033213921215547048706253086205350814213532811096998394160111030664247486354909289639689447777223657086859708561488441500612844189072865845750222923580777177934675297677928185562806464283756467248406240579267856096449113740105618032499050483174011007400514519609951016162879864111399951918346694365372407738672428601969537354512997888576656752779983412083776501005687422889492310288520168794118304225860498128755621236935877761913622081273553802416299946854404588906326731367739472453202572970703897532734467588807050993729963981693032748293180127958139355118021524193164273792918009394495323340465522866733007815519325058092956664288717333041077245939572403461628304024456331611710546407750555184184421463390858945110709333991984222918285372776634175744922023669265666779608861957120570496764251065912041224437364496365073253870845314930604265185774932380785827725415682536203143551745558926223300822234860332739455849701640115922626680225259468768698137467620794600728064490078961177397369388451851221866778543862324764576503048940587346162839801030058770984196551119253589689183223929052151659200641217846997671985721814906454889660818550729024548936528608435207831018697861085822368002074450923692568167470050228356364434021353052029693184909951352032386747986575237123970959891062093866937772047647985786710711321662234831337968346679791075464662769194684467563440572241993722457077593872395140560426428337851327166112988708538081756917874642453551048271482440415652262231441055346496849833889382368246322879487007764215793636358880331583812477486814640453892716233236826782112603925344025240793520631775508322832152708661322248889028227767891158746069030084707909012273340668416848498225448160191288446837055321547750778148935881133699535141925048848524763439324980633331291859630809236536101187825985721214722369518629003139082816261064857563710228080421605178801339172265174698644111143241912904300978388472250573222954056488591008580825589075280790488556403870904794648948756473960160358111271304985076492655025755104137447948598992819564259958360744070727500610328262145114175958095476388296848031384697325419798244413419576342892033822741787155121514250605492579454144237636949920020086235766459543695877098887084848953906449164426571267382773000407034126070297964779621401137855860900181644359474213783500710982546863493563511162534142064552451527054256765855846472062598732596416257140096299167481857769878804750676120623606360623494127684616802983060370198725183093375950015963363051945991083751751122700259560362173051107268826742011220366791481938963439945103299717016532674734914427340718287787900435480532615155028923096777752956978499010998881989364287534464526687411745968206098066666292501616527050036688436417442082809884288008607021778226261610459635091998801971219695881577251691043615436408842114407056160226986520446663791144165145210816821569651912535152892766342206223444195043939917086509438392076515446054110301982517633637934898572009282586386996211292797086613286767444376998116190266108339776337654569314308752489125678902944850790949999913002434137606963248088299362655085456012675979932939929655978799722365707511353499401442055631088104585710721413565884385971850042132358290015751422124249243695357856485504972173713560708004883655599247153577758553374173925573598564567691744506443227718767366228165450565497298747039886509588684489190606187429958706409138313065768970507985089363115955957470000881524635593865078486784231226726590507552168476393370690448746633492388295103482878904107283787514872183175271714668111673138053374006829356783739921907946833797082811375624428097796598392790923956471648169030028323178209369801729561485861117461032290162403511371478947311304468478420881104743684578610856382262924935055756439591056637340643155437825817571931405608078772530356263457223181501859909545052631657281504658788632804756907600548668691706921213003984903466672721591459735165814240801527407417973594091669076233182328627832373064442306645268071861610104172500107095721085908910426617552841097597450852584453010039240711201642636470770726170818692006099586917548710360792899407873702192059989415045426398178639025428349190466553135089984908821813915187970421774003980158211622522782437150989967980169267825973895690784013688692763992414024269009427026507772266697056225239811721351691432226064183457212666518829499138298064905894895556872676630518079823939351214191492349507804463875420416146407607475264561493168657474742253067196669133145744700264152855620330715403186532177267715327302085596344263481055812652477367422609130041741769120318777097778727470031696991164619023628007781823319071666058318469268229196227967444336456399152916031584264730924803688555875601423518095788122622536435875726652781957893556595975084881933565193576392957480663452078476936338176686181397966337221772739341682844308957647403313346034847453500361167870021954359139853099168422073241471783471334825688452792801032116270029192769453026357353610603124111496307772110238374902733028692130986270284349035132986923636319406106072981115919433953517986694245502414724152498040091445476153649901183772387710109813175900681171371731628561384128169345426083382978666651215749589828643287633666405186702050504345136637634847381492869708441508587516066472127630048048476094674227955675270609744927110595196163432710399347337708143809735399659484202118898807043041474970250622920871056130700928776275297244630217007149184012315106589018889306994404217410962420354075210032691386166703099734222186137846594858813894044810184160069984382486188470702551016818315263418194785423119576137818079984656913639075777333713601438170495067819881420321524469016902906989440099386138922752696907478908399650671332211316627588589955907569030617297137574831533643020357936669960427486104879445356392107196155080857067569188938468702913193501717365221147507016513701455433871169001766785782540737127071179881191333698891776548567338506807981553801446291927601307061137386069312602344826379606112833109288935780525113149979964359385088256436162630879965313734059037126300999027188140237546942494288688536706899011339305795973322365718141672786223939974057454499286351382679210799256963886549559160370605561422022388785186745920608239227007667782270916381062579234690389967425273962296626777317447456658861309214167570148419783150101643314903535792418183535959524768409634475790278530214445331051182098773965028494427505661924830367135729810328552088732583248604579492209970767323079878316377023924926302520517682286133552073770027920019753264709906955492553296588509774178855805666351753838446210447936040913338913491861757501949415874667612642776395121574749059979619174113713705960304211144181844079553392708008382820817216199499674825710452385662321119354896211833620555670016769492066007227631230087872835706435078504568914513926581643117412485107368060106025633572472966518310832279414333095277188871589517165003838473297505823083640573800015485307201466902582704807493449866804065149713991310444002633335908168115313227306000582862756931313100702023212443338178892754819778928383908278816059197112552192774473639113180626533445285622966403882345994416652103453460190107189476270251913790928772807538365924774921681281427160843017193931708999497122684860338953711544390259265888917296312989870959649442111468743930236801033323234451323722042290693027935213931522816658136129796231608211635796220613517723236024534751627769062372662991653413375039208844835515054675386282683352475989419008359269049614604725641021295797109454340526501690489253581972773003713867215485655878274592725871409738717280996259755893266402045863295923985407637838672520059282992213332314484225698330653554981577759634455308523356581863016811142430622473622218749503907777757579606193739509868558637587463281971275322236149636071208875061352490799363417572486983308959839271117956501899839991807192535722362070437999823825646769905168422306780640218874082336790474602553834616095672106290584474525473936776702541676449139471834359104088266655293850200482006986512496599166294201317865640114373293293048269828564791823140271687792011004350065402359028720523704476535767046270031940753110108150978358773093002644377578475556372857527750445153917105182541889468563766181075013234184472699787963607585361292257608607110473713748974115417242294160726412685552408307345144434342234135400236554387483718552389066076444274148630288656134008266023938570723366782579436427547600054451902636567609234337306301977967552771532509987162687179722561577535095570507989123810080583558258650732051698918912132808073207328578616980120603270334901572469498879409059687048002489830281019509146332252082934158637934401356452944244795298365586331806408843597403183028038661825824621107107814710765736209798371372095902801065396091836101912869030354744151143157033681991275905430370371238072599954912790577406665204530016594388923214118000998053573560646428815924408728311957712416006646954240578681649222580510139415068946387413220612567015282485607783077441983401322942469446381299777772626956099286455175133335879379471709631912357964923003008338910025196271594246834934018177486728779450456642938589343292564859090381649469226581878129800665821736300770651930817037583358318101033006693735584980579357602409451462183524260738140052252210101698772574133059916532261994117252268998712610866808382157529480402535272891210926644634024823909652359150317362419938130832810752580059850503471794307849738554441539339188713204984873913103488892652116388954752823715375439565878564928310004744775307224187652089923453377606717945229185026359490895496906551218577557592115788005775895711353760900998429688574213672448948513797190806263175742656013447701965594187891787821188395000491063227095215886467675054039830587024878749474512244885655435734681530850754072529721062170597779038962822621282071976854401864359179205268811083005653399058119055820802285968414138863286917333613092692649602664096373831947820971663043861867499466021962292026577235212437617640102698218293891464258391037055093171614563514156005205234131389640511598230149852976881565257769178685846933144268763831498473655076566373606123190198369424399481502668570382133500442417309359540660874717487872551345564366499409480838978656027448683688723843431407422017749262982193247429981173683066008917926400546056028671687791373142995209447281605649252859041778907385553725259662386781600096760392225548032371460625586072860862642500372587019152509247160441794531369786415899673538269666032238958966048232070479281811823388457608346719700759064937216318660035562625148056341882602902826260439251212222100714761995611101071202719719710063076733083807140291902348995217832436409739405469889194854415379560854387367925485020276207972167900404474709219318858266901913452485764016669526333268525915581157542135513440730408898925987211615955952560843253475602937524977970509636943824674996148285589708527675144476555176518018023921940823835695677934160061262723242156477018431958967867237276036356143079712546994034505732313146128155094247443460900788157829601735930340917312741394581759925864476171562926668432177171873788565549678225261335762485137714599573714395796436086604003687656521783585064607162105840963634295425639176918916071001193668318093268618745329860551793646507875372879071256718781655799859798762264881064704021689761738949461269782079859284387213378341213196379157354697902695648683728734166353388734975417134182256061601644977993376321928348061677126195402600657810601385612556539203822451261988054301449307214108939092456997737850832765561541178530996632316268625268556478886031578148745412202204941430216273462962033648479573973365296685094184339485686316847318392059698758048176180227128523278010781800869193357242681746202584365893404998648198897016161713457796743745226739122178077119243709591687846953642437330746359067597631495548405350501592002261590300721885730255548122620315651510120021787520183298748557298217576773003097139247269187583874465662259532849702380036018476403126707605548165442425303980231583315237112095055468371107168409582851240349829585136993323851156046229770698857670201541548145413657451057313891211563022228371179028184255715820630730742259798213748410208174365336795901685789784001841000164005625028693319251876200554648433047811018281752704177380086475305709219551839299171491708452865217067815075649068448512051298997106292850723729965679737379920361654772174694806470797830824802682844786800182888491775607194079711216181475368943607216798768117837324338509737767661746096451526543491848728147315151554303206714564137228039734414191816595546539635014873810500884154754451510676024817236505153726713942931731713531301097537279517024406885934154799030833186127351721714557294653252707141364050137663633803197231721215608845088577181560868630119737092940043426999114434951204422468314330522722752545286635303119833860728431156130690849450812479978404091008616080764534850807462314142370862112104207059802619601151763690097626349731598622419730931792712199075481196690755371883902847188603430432258698631097107499829130519810092743764339689380424875796727175771083679611700838455092689825503635001976248877842365569763945466703399666014558414539371587908143765561883449223152562378092181548673079263697155829485297091108005864300706767517148546116853668273317911044930872922249326187892044117975643201012245247103590889789440591427854599440514713733927830896423319754834751203388552493068188501609604425916549217357624727220638907669567246338640505070764776556119233090092875828974470357559271222454460104367988423346490050038067581462488450010632279647911397025342831189865821732696572379254861876741790185705281800538707444777250084165117511358675261489227527658262731404211834036603841229488767391829988410541224874047109216832267359661803239251583491964291901267552207604088230015136679102992575912858650784377914647749974996664328885057509223712159205966183342030028671809949110761682597782904866415172514510908208408816433915960542676511490734323085153626492924540728327333468490695957370546639615296429386243822155292379173223671832264958875148630321921435707801518660868042863358576255004659898608661865389545643625830600064530559752610263743633065658635496828672141311351230608290152922544571297446570328155268475097177449783299085936918700463636725445962235453437763465989734118387627912130560626644135263992879274333719202979104009267730780377561294806182535339637882603993975528323369935111508166623138544288257012558077075367507241570233105056793701378436733849900489452945477150762907867110601028743882897278251534110002346562536160788263400592542768870351085386954082972102115578730869886097798656258349224395361592017942178884494703459732887975551084859949696709553427630080942642979096555021514240183476246451136010649221801296143526749949854669322068614101149429656634111422251511668020060418016104311484557316129515974902555738710582832169939483459803269597709585902209567772535419496607120286445791382937968755603317812687104294486247468275544219327077067888997808189428160200171524514241683303714466316844103977987799556140532832335563652813638892919233977257345775449875768131093361726605686218459039661420100463525387053645233546760889743463929537446518802655127789483450722215809682130008136742995369176834562728485065049551309884725480750982675568916681379711071961326280358482694311916008185714831554033865426549074900115313412222822292073478402823525166438722392800285716720735683692416861351631433331224321953688788763331796122770210396556813018026055283388249469278825364502642088427482774936121106812146421816101800399484248726975058753336518543630099797883523550692910578516110819728158495521857739393448058236277949604262150061065007878672025132107091628224412707425791349587200392034802210824658176527811015323553359301756926162215418610028335834744420032347346082369304627058609083876321409657398668040740568504359792199718585964459293062152207386656824223762790075481139957528024597891038123007756197981283674053431198075826174388700923459742859072037494758815887069981842276464306805157116888200262309433608096211145302180386353252402406649999099941872893225116900840180274136036770159578840545967621263284677890667557395065054575422575452332182212863812185219589533986012004221848705986776446446854556633497629714403645978982943841939317503208899302061065523589774429331134416318529300061432975197640061016797497581190279847417291702692192539362941565844078207975094548141931396530556059014205932645353574623189892709081863241132273179342337315024530868605225722105679733940668792173041872261666416100660928636471712453419735380289998349426814566593806662508193506943846788569539699054032501335092426246971102749817169329220540720805253953053701417725602115720018468438083814021529032883640432418157890312746007633764369539657837320884599740709503301023397563795099453241982637712333299266108182133307745593161176739734740114846296141358207261079251930810265718815320028806206444776611577435001056244030543670077097440011378568364537247447098278547047326211533351420517462579079085165580605675949234506179694301915073970923376900523248373500983861378764128926809696200661144968124548654844064879051568112190513769503038924111927634430755179443321852744701323042060165512568653413274457339219982661408306803886762979960691146989537150281331747987913115002582484972740817473222893704314184124389719346096912947678186731070357344858398183088849083468283465760940774518271185873027762585638285214207898008569404940636470638914274880338738527394033253663809258890485582396497057018194641197453529126620607043619734666379216439486184688203318759510560094848019256269761852180660196768988831498274239585676243898800236259662670925649650340343388155724951331837668702806191809225551669535432317791308787737228704124923305911841877823405415916566906728497082254748388338088882981508845681195970411163520634371283607534428160773983671970529702297396099506789104241708006411219606029697705133394827426541928772908406450128698077404895402535077435123509954907354584025420829623609365279017161006250167008726527144539678385524016280938449014486411551692998424062891551543378771281902031218341601198734446388578151666163206682767058598946071139267311589506505112077049246100159232411340318453827857902314057734360946252294426882426850825182019549540208261285013593177083239967299500683862828842461760979656983297024983449545551814492066751654155784793562114494479688464469283181490382161860136649059023027016886849881599044247294465506839647029474968373705192511856695199508908912488577649985569281894047483930782500455752918670114346483548645406601858272845803188712649679480462472678030039692249719111927695914429184108532662501191779386698849549703163970351663880513929660713503149587248189157647551094404352778474583270393067579599009871385519710134887553503364333974469685763069398727407360323306366929751193940041977569402879652524274247352338937321256880845304320953415285925285094744582706795970012809963460602937855189883225656290378188208639587384180255164101844930137475241538785269977279471656759652111215972453568788887973073129124062236333635222676743153120109786650220150029156965908385981280080219729913914438697134179714974816848354751442102765383397560043357780207360441659321684294600821915342563695976033393480652191107161559134650358704428305560675102656454602227739832826357053975260880768311593848043745198574515479453062083892176899597344744773103103274563518560398941454898345517377412909976632836855478656158994614672017332123984572603139247690721261992460860434680058255400997570295144405120338091267765356913555419151520611093089649307578133999793408655329455459523626097804370233781775189094739774847135905830222366242661396178764378247943768252190463124906263678161503940727131552450456508556228103494642819322057958718288566801716784893243665880813313524066413312222965571113083894159417972530741393765457751213312463553309348261085019401134463213608772851027545596898720358083442183749707327835939268581359103611704767612854125363394829425121903003014766178733164561838716853587730333466348923592676460572378896188534156101509765528646036728789677085580644220815426385614233960799376254610336876480616399371193119087298276130272498801176870154318295404706910383151791495267693685974037755956430728914205998936311363210572846854004529700105135122896007645340008219946657606707893447981390698660958574002603700636692707867731476144377850368919643831811599928859044609344633349932272072400707211360367805621971145591970006064218413327953294217355129857454240956985049544946004089334051140233989572939527547058257148293080707335641918699285408623563089712351189970499805086335557234475973404847311125111441061005477416603908122964707356259818488890729820367298572251228071264433784518948437446550715026793168680068814176821424030414921385317119597310588947651853878410309357615201562772819445254326700271239771275134696271549270851846811966630541901568949392779693167060462030423079377558246295760444688967815847884147038988191469448500961652508495059396074363632838985649701746706328000088742639311407073717665239611673152544978370155135602546873294214532003682055790444939835329704133929495206876386856132145542256401977883315743344715902855960319979871465565500650395812090761948132305647162714709740844396669455829143168017467324456220940984699662362926077638675363380315805084198664298115120558800758678341442596977000887429733935236618956693122863230368657697734706349950068063516949725691501852461690576257853890643350493798721767205697861276516910592907856980589584673764024641896703601359247957881181480767500936347383565358030709301253145518823695149196140218231166982925475941548450653695237787174134367409442302704790181762677012742262479067201240765038233319338510332496489711023614521522181151866264223413257998711854561029372853296452801435214848466540345530833263133248466104237104757965699173846119098558942812758347799682223350785183321172219030878537411723588064510069426980428013808789295150072770973710470082514134504306797711973721167782042027027470285366245177347666794944941383146991311191285480580741270620048248758841118416363206205086526516956860635363058987284873297803377294695249321248417847309799165623371864324549892883836160426663893867912156881743925504755664384279146524550186907324534535198558701241570271981188920862431110673936464164498390510370185529894814123303212588376026226741886679253225045572070318925346723177938571396432796049988708844602494860884641028731104767595665189790094907269226231842720253714479894682659414215957895630566403402522824391439664865232324748210014289032981702236292033112029901096458490665515503520291447705033986877402857872750307765207744123927191484415768659276228219818258831076312727371640204402010390765278280175294862033211964119100105653689536345948087038037400058440774441245576548913611322870343031951808186813393925464309613046319173969990215823226187232813298843961662956723436564490799920015185931479476209394472395132968137494436260802074079581015056904514659110530943167583771338282020895701175826279013545597097895989489742873648864952281519597587051003291618502838452879861950032259537904169209630841282804787132439195467691993604740303557809789097830746196151512401920981837039097890925453894617927643116168980924334081548576078097458411248302356538796325372111254313946978097630684733218754436377749316398777468255754899867614303724518932025266140578304812989060563424635906700627772605786891742192576876935545839341183488407563810089959501418804961102095207853812536455608375288805841799377337628556237462191253172385376233087951067010257862646862394731085134364521355005457311078842438461164817214588731513712628729597186132866361598104449416119469813709950937676697669669431169562952565867861953427802007238135851396289043463069159735623309645452979692333739034501204053103116935756049533152371921235747818759506619128815209366270858472008704263967269693729710018117783361159047474168702973443351800059884375183391318891988199161572668329852617590709981245666940667140360132913663909228963073370697396485653138068416627279092060406916003405933950515560036582499769940827301152444496518538661509279191309871977588773226138342586283775870193889499421112645296897282045713319515917013577192898121845256168865537888250114350856494196462900778488486561771101330582097943157707995784454056212103896116966843957251181141698807770906267314698523627637391716281760645112396377877603462432529963650159261353886718102162485327840591837099093923775618350591930492211168768118383625292428028711530264150538333493714748680070415589762385578749530432680391599583659350824944631941974784035587945453107915096548515889448393611965306200348557725822694654693504481899853388972982063334300355867963687902876018202851491377326207279629402877224030929192037724069491892897894503748667364643071022921760215846249374439761695766498361991460750856584165342527477892784026612564759875161218608143677344892550822922083342470284155545787973259987489407953489897459505117669313286712573127783667820019608307708823356747695590073325187266137011085625111608657144910095205584564205542557046529337651291787031774587247492205902807316844107277747443194076539571268781259824447745431491388409292425508537793827426667582550540790566792697278790970601422764398334932917226778063652496647610080138208037531980508804996932911330388350342569379484050104102025797105042499686393375330256192134669131702711788090347505981950074109197606850133935320029430995371036881265473346916675333890551299623915921246833960511607959398225290957957376391524688839330202949260315839972530328804690824251982441336618254850236283854567423566959980342126710359995549364009866513420051269889175532067574827021472137672568750998307321470978810054508292301812312697657352655038256725945885088799015786396379609367366543118327353967475599389833575196168070036362193493730130388803127189830223114708271767207674499635342819007511276152360913772195755332767562191010372426010798455611479384563537279566832837591956241483877792425916790328133859774981301434088018095206787435899939366559262833460695500393276901107150925987802336787573464171153296041328439813537765977565686138919404178082457863574300702712141598898803510243072513664139372602839981143816878942047013649641616400714929743542887585316197675172725879901560380152815834661892658710846620899041020210600485562267971296717699220383704579629228041137110435405855977870104170414980338165090119049123198148748132002989547197869085901312627221999876694039886963741285943208144113578085594779639804790974382690324702861106584538156055828690137390129094899237421717636938580105373173079799727606286766280502764735922563812432944431282801028691993721647817661846566680211213498582611195181200447073587832499602181355738314163519460755143557128650107421611966087800360983311045328723288490757201223359183912302757755302425520840459070502262654094139859919796146137682531698940037259136630235725224644404383444941619719429899479799928793371119163167479375725058105996059371739629937521158381743665474611371897685550927248614553642813742178614065539774530911850552085398101893335740902681192462218968986723584034930329919797513909503041740224504779389328357623011229308037505782800031251742906977226614919264667965965380919487173732567516112729769468074724216482650789877785410141968734501050964716169463658421493604001547840831403942932252713339307090544180667110892967328249792500565031055952963766064683086779472721462926373863449136085977840325455525964583342538835867409064509406608220596666402566663590694447328741634816351139055403419677639926208212381932403244037777312750951568689930604635616235006829518906773011374365672607314743349968147805819479718845832798952438833292041038690808755349605779307914832460010939653062670653265568390008151303263928681996656048177040453541243670422730409814369808524633135197656106809689429514594331247143197929071302766399073245863226512616269884001524546488787301035408328378672892360312131643349044788273635927476696306230284235437111947724245748282109408117630373780821864868826517773928204698782941593052290710936963850834829927754208630729431111417331894507696565289293739503040944766789793477038545543445258612203428344963275663287326163955413936372758723697753180259347176505615527023846462722450944469941776023705471948746049739365512802290273266023268404955607386979893900001999510184898802254321795657883873805193303995445117184602008736810144905291983163796010569094890692023775640486972862083591435474262084236352667690107493045466049243943791340056511548721426351092088174840545282197408490890927632907246500494577431179528958470012249426834913067396167647174294814436782975730058277097792290984101227622368544457369482189236128243444700479974758608481631042161854548967442006071344015246803311892727330199977732621436362354728315217776479248168527677282230996365279711080162649646965392151038215001235338833342912973705451502514109057341844458154216010290460186658989414622382122041189708627311024801349496367424547213300010438982075133818078839625245468713322985623946558422685767149671808693474701161312914837142137329441653266417556501829944109805789301030889834845472813622463061444698285692969597624469247262701598219746032765751162446131122271400094464655608567522855033923920068426979563769804553896320914432226948683604479780305686188265055471575899926466341901314864894304187499434767219077801387065380807580765256852216340898631702754920080881437175683821344865673981780005399931824230039120806284706606556215730920963804666727033412073534385378416713577405063572122707350649008769010418281563832596637578836746180276524403387294342343472850708347016093661182035243201080319461038098674797440792461865478116100836168307172877038289839855101858162624623342966949899132068189723939573521789339775273436868335870203147225140428767752454127283299513670020949361044486885311093350482180739013836661532681359160644839202849443898554508192045512022423815462602710437893423008073740815487728847363868590306006803948318292373211591047223621391019417729867830314470241054401035848169346345782996442092885957586197077940943377881813528764039898048415415629170189009464728080059558705909375408298393338020549215434386987351271643965060965974191516706678785002384962000484553423199766846812295686433759698475063638924748529788758059464304147039042589417381596990558805899886709225009321079611572982585172304200162307591023602379750230333326967597833823308090303817028333947331970216581680998542916885999631736058343192832219693030809054726295560085832064139420887594081553099021032637922447453449525726944815499973070294687767498212547035353071112270640568807687011189044378105453059454005286477563685893658965853035452024478865712452406928608286541556818672682038079284992473488162567146558747324905388801916254921179426952059412846327062579116013525735481546249227832602694108914684948359305082334157493647907473524271717984404457817377540076500671553560580955769822256753610440283819883928937748241350833431279673281578423466243894271303484874258794692976082668380212394087730633850310791452326330790465201513115956904973721513151137633828014661422222269827851475688225939400971378970691050647744191107363487306335404886655296287319042513749344102512848158626811486104684406361614274365955324484262747960629373717924413021587909981497806822565759377752263889960133981806425336990730990197017787585665870841300043191305082094873340559360501698539687479982680202569363989290938724671488840803870387510077156296842277212813592445103189724945428760378606183442025648770396224990679653425125156133458558764422872375966975335732547780808041188463187437486512377484047433106157617582587755479390346142577082286993216713361191863941225819517032027939276368228348748637719349391899009830021373458858063857058536003739458144774206622122098896828171901373746097375785689942229022350687434258775207191169435801122368508434673364771431367857617649155402348916863562952926923095285201429721842587841845626047191358906956296354481500376370384790190848399657408981639645046939572615882552321464988371385965150559563032534421418624762621048825508613061271209928840999432139045979280664933027201534614915303779417572451334499119052091484148052300088133557646493597194639301370701375502923487541376490627483261579943843595131822823037365084609500679472693623760006428073491043438673115316840081887096107889506756023942808036725376489200868364259594422165243199724374268789937870211132500356302739540548876960229625637842643649032395710035836141825444463236718693065532405306043858973410541773645777577135014560421549336581972092669334645598712599115084941579711802364349932366379138354825803814717162663735719111990772733289472407900896063383240791809748194190156894541944826539459261553410687933599179034683593276442713195096651085370429240023545347816858155380218133116891889578155756595960736623703932565060486152397715865375269433424608552829486915182681377147661722065705794176881054757918565041311750659360664249995148502959095724022750850372894149746927969213514046113184838151622389609048739601876726593090977185080762711591454281191261065208297662025373188579815213628535358904924309507675094767555703382906580758578950441578551705444275997209384175880969402038803067961627817908875094723771881488143635709166279758116513591320636567878215275674372059722035704385804892240476405513795723599653906026340025444591953229426036571996034494803796525107838066548124657810415559156142384899474191575574705025293333387649549922843531168436519218885445687693983367722025660187593429464189693666065449203159307875782636674433640485821421436022556220789104838434682393101281943893339119698933008789266119564295120354178388250343690176755817834063569005763964341566172148287047767843280292644269362830817136909521785163462431085278824037073704377006824433215975678358453186717807727598089315483880896511075271877196488742585326164624938360967792744198529763003749152109563775362684603281441070419827351503611169087676961945346003228957188255374924995808993300258545988452291422779561312528866405163106206524334904568235691762951173409887471664291550378495353299336173791704893794805995195604836877969046269652794230279910343674524032015121564161303609510666351235696155192232914990970250303323573605730351582276421014343189062131401416452348672744089718348072579634005353972438860508459379857069072232348485316689115062828980596396755975441244184986313152199813164126663254552350998325585676594516363456509620357055296904527384936886575802648149789783015309048546704212427187445104373037195131012629748416334954738064275810963320319447589295712618409972022348388946411099055365005012123617336394099916664295817489493889690588068687681253592314610639847336551496983530496271713273104101806015456364726907683627618175295187284529816372145246763419026101401987896589233110924755971484709858267639264884639318603206013375617838069324130447655846399143683915700044298005672252252297453164320302608984596732100090684713592750270787311269295592156560991443955739241608928798368809446524913035509211886489874118757710044510651478081939117422043791405706578612707154650930219068977262618249994061176188948593786942495100934701341958832601806986113238995016978201794258085851171296873554759635261298447052806265328063818322529114898758976839827801615399069845596864864618024826256002643259170232165833453972899594092608948595368851921087714777768589592352624213006739409343378729999807167619366754578084382115891799914741100255013797399888978506211770876225785360926320288955205510914231420456591509390164462733912025231645641559362877884148811485498133311151501397694329290353782635751679519484184589232868727295570342783141402097360954031003046060863079353276236214145187870382744446023239089585890358927048285757092261047993593756268673066454000877256058490250744880592460585525852283589150752861628529211775425643577185112873758833852839297735572072760648570546860427216239226928035677749517211365489216102881021869467433388540997965803424821601764879024664654204843511147337215322509908989313001098902252907675244110913119748118424668248350145056401179206583754426361578035460430519649443401588510726284016302248643601317068788662337947738433389120157900979533177593728659682430349251796864759578153968097705180705184215591926431866892857168013487745044271695905097917079175787611279550503430558673268221520052978354710641561972344952662318194337187890589445690980821486982503096816109411967105118148407995469269693495964452719910708852613263608836005701557867916321013184494259482542071796379546014059867663026724182983068279437824210012452768291829199053933078748917234674480251183049856927666270683504623763788176648502902225626737545247568050820471172950780511613601873359273298239463692632114635787719625827662867555522466770229491745219323543079075345032391409998386854962560428119098864266790368351126213291949137723824862239658516446734928449711972846912257772140635271953843257307705569755572637991017459336449340391436823159217017538536964295876198832636158844215493025976905118474831089043970228582174631619072143366216333705416469576739196657651123981249416819454597708990968528649470530376211720484269814245868633994130252404158374828693659426242467788026706541768296408105430344037276540839767724970609353898735276943535427183926221047944819759907026011769111033876591014814076334532438060989559723949790556886018665121161830965386235724799954375912115023321062118121563730628946811927269281411530162878378358383369713088300312266369116430395590633030174774732539063692535319835045407791612221797911037099525822211083511369900883828085671339039518924306107637045317819851204430814733082251671505149190258002586337593799209573428739695071787945586243115902067104002347356086428909043864805638593186998223772587628370985636985519248963157341972718933586527730678187762731073529466446262438622657999409093503395335528021879613349280057375490615841141213922756713867189069637735757080120904778616583042294604937900055401985654014218431357646966219164280005826789673673878107223715532161307129072634333356058329973708781957988890810630649704203591059737793113976786060703144758602678697374429124038027808918738276522113226238369260632210767215909626659222514742235168749494964359779875394150001878481016595953030467290981611689996942117723997063356313735122178622703058526349477348099555024331484289415648717281439250720787160517517672040637400278303895038393146911256064873154349725352650615646911324460628796073130776063979507177033465452514497982961777624907438041948644372888064655100263531805586477963568850431892523475180514203446944109557489120152743840676935484661554206371564122442885498587425068236093148700365200322898612386749319727554048287445554549431430960766283274068925942657688183876022061728227873938969751026472253400632255475892860329946122452780348748714174465932171742518869224468017427841894395547221605977531635599203965199466994402690277218831606195010970333761443851011674047601143609620558380834190072010368485601853718747585809955011656882107918926410908589489040100977424694324755536759079911556480306630036521504688353270754719874528779825369736239785648677381454566151290153439757140033159340694009281830375348740731826932077846554711474809966046664545805792238092061150754695238338656698310016609617931267130337447922172139082700604850829773127134264996319321092185976925343984861730097765082941958049367971750058235693900086467909243418282563596230078174834130025406636557919196531565210851821742399125070826595043736541259131757870594231045169755627903527416614273676888525041440857966720923049354610344942601835822674699721961517855111093950899419231505144268792607465447610194673082792514683262251414832258074347875410939838870973819361424745147005309947575316759667348451771293201547617589924768939105158308624489979464329464256271785123390206037074997644946533312290842841403267167518777203405721450863112048457047377704391612171675185570860521021923911383884892151978325884974629030454841029346651628160510750910509799195971016683416207468486819478182397128837049348922552528751849931495204241308542127580343481293454847506364056808384536693652860229600555998345174453944004902770656528728098229585780189627509429367371928781101096690277549750912135360594684535740640368527444103544367769922469211856364177830264674583947310271577855296556397102982280831646935638472290857369171163924325830045606859112662916518522034845896191271232026789573596798611893818201052874192406599759190521107412483247681569534338282812974982701254895893507728959817864777912980166631935811598094913874429515045295866214929078426336240213661191459730425257872557988696245799575057636606431253902058834553396894328151982830440162781949651372361467948839529669359247333274152671167016037870440916850533397948502679630698958264444774992318576583133605058804358587208931049989438822548132713204661324969141496555306960716465719004446739162663849540473496013773173045972055437535009397437557541135792083542375875750300056296517201852600593033793446649713105447278193157348160090586705616554649853688975147767690329370788596232600759671173316484375143456752437359004265947395858288485967028461552742332896547288527132495810147983122780639294164637732198450099186756059606165868460620858362854211781416325559942911945824007566847686266655841721044985734088794867085617348184394281008283987578656405821270376352436275093755972302563030692243534575336760841682164344985357565100596038230717860879527292519308750586489160270470324053973587393351868094930833707815394838262315302988802390819246241641358836541691064060847959697435346474108454889372536950089703242377701807002167217969920815383896265330341087938497525640464899361380210164761237453869439074507620136194191215611925751136718833140052162840333306810493685655116089529423991495142283310154523568452006654578734662012582566815884344948725766282946899429992266178285967358059717243645331175523533516692380868022127782099115955655907362819352248219923801246775772650213748634901040426254118546274370517848749464845566151994213019754034088409302553226930795293402744060573793888328940857474452995068797571518311853712358583083773778453966003302826600775658842130740879015497308831778115823716111445099306529355464415801467717315968388191799390640076988456339088978430934262506404564192086160862373427468377711662546952346370062284398001733555924449372034681916314317972141923538096037565354505533458875205902799500958626625965806770690491113601428846784894793099160927957360525646260678941168166402438787785451626565160073533035493266963963480438125090227528655664281638582480612836448335490293538193766390517140486082500903983722506578971299196197914265662688808887724996859038370124268682835719206576956342793026795683658048058170648605798669907059867477700771283066275014244361951301925298563749598948375336897966718846398020267563914784748882217429480115205891330816416696864826386904150312912664643193789752881626976795196017341571782104776835049718090081243008376671883969121683844803994603431090536132349750743299398351560049177440464459884976182274188961405246257350407493187139809177778233777106032558617641796681432080686193156163384860035896587081938686820259433797070092450345017612070114185947682738306728056174191292209781275638478647714340587553534607244022634107597326413541079488727001087799297628720048403904965449720196594425359486764865410303986086988930776567443910607012565294372251239792642760530736119522152997566450777084398171556536541400595925595698163953479282000471172338913197214072266955466134563092818753143001433556713726408450895730423183537771690871275033916795232361773917575120079728489066127967965137478732086075058028682271089186187391890120744032052260919697695599259139428147935373657142636468089042030583289603000603621346482250941850559996154741865922692356709495352797128627243126517205286083741850426191629949248925024841588378785032680409661153261308835827947319228013429071254750708068409938372472749069660719862779034944754080340338429316974791412059242969845635931525186456162603723303313180341861929192323022978961804977325552893531832613210054885241208556610948056967511705396477866445398288020691222056811103551708828223176939599398153218920789101754554435994693537316565228587095741509465989516593608919853967877094832649938288058481255959912047693341523154665652494166719185824764111744905805695133167602297159397255519977651972555801006318014307034347774753739915690239833852153455255761253556079508171979276919792163868417799049670291100048764024938696007617832270807913627537393778972363038049251369499788807272064819201835490426178152095153118161558473291370222075759392885102307624327565993039804265223269226776995189352664225950128276453704175698995181620762662499160857590615753856805917162626542661987697620046215181865470260928376345666985896237548019238834350349999604689104104710347763347658754773715215857493770915303917621074072442850984088962605338518767197563479685979646505477830300169218442327674067529757479154244646181929148362805830731856711684700731705820154776364194785854359327502930290020091003064914607338187442306294820704282836087388171510758123880549477985076346879473675990417044544460899887334999445576720679221602609724932362967193697697920387600578231146200737325038110027135437840684437702910406481149595135089625855391576950061681591834103673049397326932612790257890765660485490421305932840504993489974125984353484966423086585731678393339684107413188306117988772633651018769650074246697044017602702059169644316358072211590927628939510594537802875403019211712035535750952437864571791579992305923158419662142311646961584131364180948073783013177320859181952737114990830601572738387311717913138954251396027422168331059354843787047673459236159668251745892240443554815152065861334650044411450993044926717347868590923227960796863382979785716515172479414033222579060141905635833179909206636659278994272409646555020626950470648123171675945265855514320873635789193291781190000813685467712890191262194495792012475808346193001197574481943992410044217414190469590386292986064483517288774826895895371311452163656796659182240537962073562448496457801043075580480126138223693559391352972635702583733803097024965237003703108507330915342925807810231732198412716264280584647918142989111011667081365814721131139693516390778690508669829589499707972382890031960062533639611080468219078670968353963021533207612301299842668192751351812659685936829642772004460108823289609656824295057053901999010536273030662790871259548567250412762657272978090146367954488460720523618492294826484778611216045697896696665739914776959852844360538680416672200700698108339146900816618801842464148576356644380813248190857323161051856506875600896100720479644126447266993272255817602518325517849552881724912020485093722188933301893744292909746798826323195337504681721847013032367005093247193985365365724695194402328990662249202882551354515926800773405953595214537114787067281346203449632376270103278355081808843881480007898376612932283010602467318700002840335952487713574943153938905605075122288343912667524608575279994752083962692849225121512807955313286010202411908148899875166398958710176871380182285109590102191109518079092168445824101298761497396470336664555978119556334682893834180725091971866305206247681390874627330992697978230865381688357955518445027951858671782514130826012412348625133625222484117303337009088508081156066477040667518603038600539703797673984515872154304656874608325968895025415643323183545573105517105588253365114613524775531809273830750156155533575899598238321722505977363987357171767443742739192392236220055157669438132926829436388948441587063889783738115678403089228487322886571892620739177641817861177748064201240284472462683481874058271879565928399007962345794080431815998958705870367159392343025520284664516287303154711336770407600723619514917196671157416857669921390703519065773118254509899902402730580764282428781743024084689385814096749921649135082103870053947171374981246623469309367760784641211566284128641974820096001228549923040738093733879869502773967687444689143093822646621518323765042571244053268170054454944450561526895813200849192182335135144830619268766560025127762195471864247677123348286576988643276837046548477180029954322511129399480526283941971388983071382636505449078901646413840939877889897455910528334238164724121518719158520489031740816638583603148929074194050042512618183780309109958360063681495901581478336406054970192106587010401526032034976299233042597317573279848331482074381456140788606414883019327473366048131783036287665619313594628539960466940915330330751129801839882911186445993717044872997535196531013918019472642202050010445338236471741132338897854343351816952463229622569015821917853191162099031937823106804239297104257224786535453074685975272503344607806549340205178932139438656951118753474238652243409592644827392719693621843852670383583539969573047111148810230726758153871098570635077715436443059454742688860643975109636712847100209131703251884860678030327567147301094152061077390667068015145782217330993983818371634038661571087537983086662339935531672164276891306897492927671497074103403145450154935516737646958330706732859532053215085581900770256845151849891519609328456242653864187463316756107375364018500261978649410741815729758627893144693095627370272853640204001997657734425519732065340782056185103965033311430727148868205304952216402329156999811796976542002493982503215723195395078846849861263088013183601278943264565019793889104486998059257913920913484926977447723741823609484558966735185426678518014368079694500151121795169109740909494003187742142068168776217265071080359992054770750141312002606197694641737608166975709911672234778063575039131973563613073961167089698420360590723801752218105747335231400098006708138040461429522097283858274080944952700934367656661348001670872257278364225581074828616116546065117574670235088958516677185096649010925922973376305294208329061294156473105222133386533546167736433005032018089939172820592535672297040760769417613945636948385589504916684168896585057426127877109104718890317974505290259799364218409614625236106799381558811993865648987044963044160188145597928014901088203086889843180405778071690133474171697342684642017479650293841749944272548650028893622833778777445950790527716115287516256128518708634993800243899438734891078604815389349448278628340354523483247722660696250589396967789706338019101692789595269060976226999898826829017562708565669075747790577756384283350877363756235050048348182080455632982799527711821367123530615242678440963667172500279902474610105940968453323864506805771524650026001420007598369190169259308818820032868635292301096623673137996477888424124775181560010561649724324606322257241961769262410177462861194287240135619742793082857731432874957012800862930687379248208517320788455406283503649114528429137780788995434278738841685323050298809486236908523761448535651199662461025437793163891466509148660129901122793391330728847979232526678714607309424491695348508048567226229894461896406871240434501094695725651571460224347147622484873003428231335480586279566664549428318213213181453696326421202546209738609064571978587572223159452102505709733387375926668709079835517970699130354564099825439497444776419404856151593239334844088171179528784671945384374035015718323440567252850918760756708733992941810657309174805678461253065331218862849462873318032072287160040254778603969904986808664161843717110686921114764207925537194626326637512477311331029377634013871278394834343705157634073692087701277752671958985694234048554038792677347816396480064889524595187292109735608370426918014879430998490560299723641632725689981935784465589576165128383543382586315720547036400311638429405317617269626142017965179607413591710784559370592463753537506476798633979743810858600375303118741463511834118752897552753711313765844715738712662848601870410360719939532368699779622398814581023027467955422501796602778994341614847529271564751054174187409813479024277290679772611495250268097632882678199476051547875694590514049195610480168025722446746528351549692285950296430941363422077778508054695677658160464650136025803794287392537282050386750334589138336640356064248125134580646511457143562970913527761908989240902901206456273396679284116406815084148587508038542565781490971838662058738981259106480806410470875294789949402834935059386588722677846099543278789155464994467124787637462992432726700742186498850851603105849153522858343750250661937356264594508549611636168301018161272172686975870915684661456442009377699422718909245961007491696276825531344588752949795129911120764124201409588327031568521563616586482662804498989601938587052750096439167750660301752114639254878977087283339256483289216277497652778574755952910871994853229218091031009323604106968317371348419151031192906911135766875745960098198393645235413216760485323270735991778098580349381225084024491289910627102593934378957504961002219568425846391025331728601353027964295911892449244862749081542916017462122916215005452415211565775261040215722054331670497636557152231783274413687742309327363865942075627736340762512717602699556455620301556139909335328620255497814360628998655821030998326948311153963016098150455601148422411823780250755681593446510589590633423210970956327687233050307554806358025733375319366672773274876280317696550689180172022176836409778802682106432145237182923378484331690677172404627285579872444302229645781435362613003869301782763050197907224087651530759642255150449968541191473172575122322595235202785869160029194406868874224879977494377462566728188647805558564579720485511622542764930280249055502989290702199788891453219861327002496383385972425856950878635899808204303179063952223603792438173434405570617372514697645364914523503734179125931809204030059563281111368505491657320143692236588752380690080398854988846663889009635920448112282835688797413469556289363208433039914664219788864297741118496773355093443982323834998305264448713318062201637940043291743264291427124371882058272366197853228431705352888304160729368524715378946084551433995604313223794120524433238917478620284772744995065927539919489494018516420519971582023048313165595845145373853580529731253477276980746452606227391166026560912481569370498252026620292724179881245609476331693752777795526670155289880933073335017541889188175778392785370467675284849639858080253793039020839521629292579465827732739249526447260803999752150039339991315627424230923864093872021294206950745497349625040407674226190552716787406245956052003231550378997081451705208804274844919680468464915510525351978869549153250703866199902714901822686825394754777539400797901473292270835577816883721247146212341762013243163121987960508850340461782403825749369543429066247493393252883115025351822107647750638989736126029194110853461276926605451735745543855388811527466163547737465606877938685817939767105895704759824661058220798413098960768692791950964743500178507787403247420511534634017047689706626828283493517027722025699895127860058457510666135985422172523255321105735652016907693057999283370836923229208007624990113612257026062410133937505165241904880919147207504652682566850166229319655687018904855412310605055409602574539948570778261837188025539552331926765084262828179112634144513960292199599233731888179922029353992073748637247740410003969180017159793907647358325087647900850477104462004770223033892979711864395132985848969908733249343148724349966640836091992066342811172317965481261541120759718039944661603870566354564063567011360425978968460984626545714117344112507109522719266969265273019216959267273201961172800633151242535308907602160051097578520669563537786422114606321946837521625071324433805544757127499077292202897860617191422139037768233604178193964277210593470671096975311430301635676887397048474713680051421787694706082656749850054896783561605735343837895014109482519196411958909782672927024136174044807335918930473349495919943705339336759108023493412297794703308789310056749231882476005610574879745295754403774119430651038503076382731399578196634514863799355401367692385142590386404495362782631876324010500466340196313415845817758970848782720203972729219073794857612177000968210139637155465811714720918066317342408522449837227838794244903779539421418797094890920118569894553159553637892698156918307428758046245523712814777057524480215785896309430769083264111562065205418564056361528274662725684530585504610460040796840766280969027270055895009336130457122554723301129484219298460702694717435465032010070554038838923760944079980190819998855605947716195325760614805627880618261878617604300548779509319786322047265318539554295372436605119654211370562969657579081401705127842306160412985001912540637621585070825735692312900799198158209574649654756359466519008123124230923457864608473235986743086150596316239133600797854956875771357728637346346074293209626705831505130962720736590163028305887370170980368108131178022563602262304621900830785509496727649001379524490368027370675777187001826092944830977308567215021089776755677491053132934209436847208831561479667060170411167192744677812067784608958216419299155361858828465130351014156024184538297185622965750964084863552791561334444648037060702942503598476206495741084205011223575640058301440925716933144622203065352648239729471329823782396427140202945703685612265633216871675974352375365344329619169915404308430065260667956566416913059826559929414054359691768033053934477636477881692098186346654573947110679701277301358526532187930768331292017004993323969242539189062115701660756435948428684216197143741558542063852904685814673868614757477039254495646257043882043476151527946361104496100092541425196008954085405429903943793062513954720891496604853916336238313209854465860487444465836606312982736288242424198998216636424496512553535836383083486724133220419221330349602946243186461723349614655621022411220717837264499193440667154615143158065775973056731075752423245481472042929076164479446070899596522379609320735523383914260796575841619352100045448975113016050194989360166196294675711160989251810591590975264427872661019609140066187689875627869455269047742433171078329159961961579162715320916790785315514538322193629416044164683864885814894847174232906940827549157679569988265275437776780782059610603837908107195791885175537354769343044880219868496927679372857001428860352302150475716817311637026316201800634378297459732757584908284456659774926093732111096643077328319884961700716612713912019834039604311135390982765407404936463575774329847224910716736025885257819205976099241741979164504445414503814332576285511339084543281858648092854806440326980668149382423978179006587638439935745831410818853439833141934386911800568169263967167052554225137932033263204135746654241807158456702812763393202167654492871625368808943565109255139713138568213369317320652829796426800760495009544470566431489580329806949045306191626184231599161580111584522669198471436475934599197272997728763062010038142009508161484727795532514719638697945542998701650202645467419544826440367853264328426448325706361052504795690531186495152977536892243982911091883822680419290966004857416777676980647185553252119312104108313189462822012609457037877683940058526967985270332855661834973917982549113555830359111085003238134148412687273430024814639433244970583248951421768748465709932301974881595857594464991132249454103688607171153261737949534340609890065962666956472758165214380714955712881129201800052049280314169584399136896187643728829643236815477832765133980730264902891784549653091584420902409371076580696890273593649889909335770629678343595737976252255334307294619506875723780426841713205549255006917079611310888944727348719450163849689394876402862076880742852827532638731192070523673414845843488538631926630217389023753719616333320770302127696659972802148604686199631451059195146653924530957655956287904698639354924878277898666607805365696005968033842701905663106970751151520244980301051344122483924047747838404713868312716816153200583403306868309088283925484474789211849844038833656003788562349347250998188321643875533300519202876429526099139087846725908447390547667299740610989516084826312111179858672657625857155244098825393091820722376309225981359205134022697816354792654615150446762608588484994384906494696305153020362767235515225084958404739972387000266296078326709733625619769399853161917144225253028578397314227733216322182967966951062731465253987840024785461190347068717476725766982725795685780954892910286767689869150224816462181680711206845223333425807003322403310888140565703157362629649545948168510833723995306554521229884887904167219716003550082490330452430093211969435164649753854032513424579851870492483795287125546035670535262079179949899060493012619215317073183285699803124933120454567867042654632723520787608140595318984418936297700095626565959216755431030606314073765733404675578400178528916034646443260669396378508905927787067997303205875845027543449297600504326750034526390836023255985472339531852277505002610993171567220225569782061111043021976180092007045944323400054435967323294974478979198418337159824454161767096727211821140256989486045636975521371350331645456031969120065943200325255128655163912739215813145850251355261698144069672446766746935265432449519906212531590435085979068994517826423401955610952493506254355721204062516044350840225668315983892830576945173669920694617864176428031314691841894683458437634067352760285460931560883868437529799720082074364579129568866606723987302433266953764708951216125482189674942417196725968563645870607965797562821190779218392259542812925673632844040478570888303558374466859672704779829622495240054012524425055308538335499803616183684206475842560413666240148007296595080023832414473309654066967580078911480042853091799607477219892904785599557948710980548908425730318451655125671471402786617399414368292345324257768042008796858209664197948440377451798909522814960757156891279392596470427741012702592759121893216973289384966093178538289677500239319964124090070122556299867092660038937448856505027163929846483651022827233890653523818600886104360057895618748726831708981359038118381013403592348319019364242060810841569641801896335677088876688214221014380175986115295017656002272565583219922374999206257141729821585329435943782611199149872993736136527757153414400297058457609397447323172919921181722208170298897525965220394891369560771634103812455470265336863172015973997977363154139349188715883698557427474084804429330661988712010672428931965801465839455743643803571509574391517648301514876347281902682390493813698690486089802019868595421572413631743260212493355206369019351222943123077966028945994926012304578999475092352646456485921042165458095229576929467117822013694835476723301550326935606386199394839002792189196799993558986040310201278769396855117393451556199621623188281247624469124162409543325231261074302074199680145053371930336154136229619034798972515229598573754817989643059986508616381592730757816604434734667734037765687103981378874873398684243860388837572927943224789149467871232487921131353646557786137214219637467920383225477373070486799690187933484895102138495054780726057064579977499689323836806876153111511376535993891383256887854985395828553658582784582376576412454519906481779376250582270127029203772852476338385402260504046123834076502765714804980572966424867499946727084514912430091461554884621015319075479410672330938856395493044236412869058094124533418484259352103334860413240681520510175754076881582487963535670424520566317935853954978005238612068179949810019826899301823979623554229289171887883907204032868202084787971256730798628615193644644109586316061217817549472300781460585378961372241531220480029241996122456636434250300225908632289321757748748024200961026622022192889374407874981862128945488133843429872874876519141154061550523349962462707253117977057258596538825158281776743176249329230236917557613026622659037666170365719289646673680224560380054588229469131165715054668628589928144011797962868533332705057636864212290884188470764528742434276804561650336313688480669985984122128237877567870469793294479292168374055467934501654452155919019451425921554435369041302552084954428096365038273043077033104277149737822052786604363766677373290369046305535011038185563490941634276338064297186764476779179570547689622158309630220268155747592199539604842477923109502342134095202992491504293033830075658680679696706993612618597435579186552534008140954684451008143047572705361760860133610530588929542108100662588156506032208847973237504032386477270558450366038461221809936184402936411344237390425008475933634326709094825737380584162895705287020174082535094059096672116895185249290151291883479623334223620818433134586992271364851112137020806689514671209792766255056149037862168903390890849769512585276112413040434540912528379106934982930522578182801452449767739627420141663026981056972503879903753428160167850136164215603184217411247732184214542739058490005567925753879231368995968546084703712692245072227226785363493988767967837543648763761079879494519439285370225913876734157116905589062738001065961740273024383312566379717363989501892655102103544458786563379988228998925162083462522178401458068941851667879499505439004791718089925739440992285769818421099104697971495828055034519767073909026596935970492911105280863831731677815704653233556390419500684659004045220262547144831549568801265653393181697912509664484243879518904392694923840561461552576288739427767233235218633340617931105189029709138963123849685530106792962516065080704014450166445358918085762450932263898918582854361784516009416571526250404631108659837875554293387699895084505942512652317220826301416780453119424799394062934487645485765539352613974418313671991624777853402610234757858139456046950728732321586127522489716339800633632546225863004072197094610678612709169777812915781477108283921291710167201357709606323057474068259797618991596952874783200841707656319601483917703057252895555868535272467630730612683984228164544801797046597845448962304147919111736269964080585234547414049447612450105200552826736048422582457859653797473586866609975594489807106225404546240484002217686056596777548433574380381489757608160337527538703640657417171720480381881315491979803234411808058815164479082705892757370052170855406755034496843434955527762138503802368496896591680352856321585382560692960568226223959328340654453568068818384605570395315349013342238650356135973436085783551489953040425635981395785019569908962604841464966148483273943723394969730508785810608641533752956461231391697414837963890561893026542531693213442338990509369249995864047218948562874801412009780277341826761522802726595503184143615850954665221891355492630495626063445778992459892113889815098524640644286071983021537817784983705050213196974662133349249206552952384134780747395029312569215833141582640771769712851487248807066493814513692141522048966560890228972928325556434440360961801175054020898533456983268360288185294671714265522552671223642938912366737457255168476203564453818753078859433123624428870827764956749670264679818453124381554698030164248607804288331931098687593767677001849243483127651356969541275840499358477814678278916993974141294505950610918654908891010815391729478041719769088966057201197055109898531389266570127046505674612912936847185447837106580826191514987967424674635971193211307586683402703920725275999225292193935620352959444179727299385408185445763962332179975051659998170415035807612081762758991732998838581765861653834638146890731971036723440250675652076829402889378267926554300820728391850033184282600960755326925385620974083961937243834972418854633075263422664187600221198412959235405058081221722670349558746290932906910140364909418321181266762293797106950855601578900200014576716237293933857813858660258689750457574021779136101105872773399586868265609170857085152745615044329083288422172845021321523376211063875574459413549638364228716509035028187686674233577702939451625104596328033684909988218035906740128338637181258332890248218160237061759010096888833192979322343237363392496705187015429390209562882572546081078178838299848392376527902381106819809625775594907825115357759198138757160808727461074139427757364455880835718371725965831396121487275152581658742291808613175014835430876620694088358734063681081792057084842726304117097334563315092140656125587654664021429910322804912434877071411763238015971799387217938548246197221172886841327067979341374321319541296146178310071184672927995893693225042147833847014783807719987749191735966505693542035604621626625954275628073898035298269439724056104989344305785495051525482483753270671599191054937730386168181164365673759880397291963830296608660011073957821923960822066078069929317463043331409979810886909702696896059035716692243520228316321028434590063376118201416069682844098656761169929395393982744197447166322664687176079368592865894184465575976969668498463517755780342250267649468382435189399332286211909595350229158760167051390889119960953509602396934358827516128342442273136523737263131212633124681129602802459055784223062304520548031518018063089947141630250345988906930372107821719276659694904386501107312093872127542456954544724892555148075532584890399178147251272850273159835031554347123055968169780395246445765104717472005757006943597353316806329966290748707057841018301531125517683781637319871155713640582168253604084890579100747528114424525776270606531280177495628960120534751745965364870595149692346165460672900769370786283692269838332759129385915873233637986932473183035674578318640225134390468465160708513175664500747038666846608889638368072512722801155181752953295124431322582455820785311633670874660411823345248709327883465499011996273666863824037278236301891759136964120065344215491355129664725026895273767094432714747753646632508871433562528771662292200943836899536534719513755886396687890067349825760719985405283033027555150922910150230098246317676301862538464289720501011536069197885761846034091768164074938787096727674159559034585948883051860324033804585231437634732181159618810867229497623187749050075572567600405618656795434748652184433870632156695587129025018747104367400137931154955363815876693288434707048669670775605625608665633078730965572851922308336778532885918753971482819999402865176701953685876556274862230034573054857988485203678156732783040805744619865077088306971813480490769259303125587334646444289575907143578356134535529762162239914980855544882557187081264461006906986949488523597029418755475487564644062465890816481211607592356907267988117618383917402474428287701488433792004898299058167592073662040458187340394109106943006705426010925263544655375237847888599237943490904753985805513793256521621246910723276011188484642972557116542982064585600394088778198542151558947158174016232456335368220842464657384674646936235445612305654613158914268383578681891794187891319703644399818719184834944053936840013297949914050943536676962551946946204915745657516016340579532774782117747309179313295317385946644828932222647122350537684721140469401304543541105917319262045141551144241102257500872981938986001895723852285836217898882793366939654876738695612457178787084588883711917363124653685890985891648477053061558940182874690026044000040748550703940673651334778992106360499127880826013659635954212898554337229659812382732569105576436761141840466841541874408062702751860916031314400446809801099740898735935524082873928944762376924974526494693137280456177967046578167042268695161677049397504965996898521504618572190026576728291049342489178276265623533667067401162175067470995296835682128988390549222168660510759036798714735558412636927359348468594008045016667852970030394053056801380819830943473165645889045331936647743381486667692877188460738710469178946379026060443058267632761023635357453603406367290057833875027640848273334626457758104886684152501476082317981176596528659080607344879946232126815109208046823166603990254614997971620874985410921749260224089784517357932902028957784087381061105973996130482552533479221066629746460296187887939416130844760915633328831950914321192036613133854784006667579902371391332160752072862711577741256341500307391731245964933495732919644679094010881909007622331357460980975340312877366580552055368791252246006515161686439805429402894966834557683477992522859729516443448467838625815124325747312644084873533388093802187617672724303043544213447547701980495428777280715667690584635042699433153689371147716876227359126689830861910622721707980770152182817913015028326388172487077080227752623902977908820848719574327838363037188957168047200886883676642794559609253444415539620386521133045702594641910611038000695891560474895215412792737575706077035332380738381639139852597092199886032688032579436561745632345400505892851669973554413484996718652690270334794551559502521532952987309837162188546495105062159338335538642129985555538005171783758569756551489814805530145654719112605070579779830316567843455191002783538541504968265266401288434482545445442267320680343469922960922034557633392464750907516748473505405567451420939410736026419915547994611433169775689011544399200359849873490905936030110380673093882088780908717566970511612692838897633043300542974379711150825586622035544820177377908671561030136886020704967636518550626679225786413148410765557483973265996663531044952941995539239155540287404109726247034684254063232079777429551927567188023923840139267112068500344506930633039639854266458666240066887662808096898380238443894229556200051655111939740426340584144960204573346001737940167873847948951271213557422305382699513287067564321006167225508368286398066731919488314298384176930913298493433164721225805511121939288064737654969573584800400606725983917070999003569246454666599271483910712048338395960444813442308978109466672099061213193610301294279563085096949972745965770473673488051070447464635079782094570351346174171404157069005639322452178819603131961741161838447307685194173811596606269531688670544152864164837569131018232634246988355088472541858711621893258625303033349502476640036324453402819743890396141605381854430558225153497740326137888040036131803207568551667160724151331754417109302507582208699835948109692140478015987136195423665578423805453272421670534722649136739584274319174108792793409661643054436771824307048744604445675625505184677193476052937728750980550821498298883652410731098404721729157441400092258804853561540040799916512228756079347380323005481486267000902946723776803115946607028735452425372170973109534518960741272291521854992213458835288520035521502849397565596258273883357717143800121516981925326651004093783583706501138677149428874442060652823839778404576321027419771085878660682879408929032705293334841265983136981718203725760657393948266269437685970835907025380431865425788662198329753660322554595480212734650924373169942359588297426118147365241126722080717288429699750807881221380346836443364668687939548529061105207472979549705511396336761861365341936085046423829520712956181776430096450664844923046685730495381875976556322861641253340829235620737543357036710510114996611348639590450043360568025625873533696673461476905429638884133459046949075066925875534420074517378348260467454841261446978137340939147941985783411713030676560963042693438733669293293727328569384344474635402709617510569469310046054160988751538292231109227742292165521532443997058769814398566275280165645867390005895799732773923865907127275983616248523110236989297905047025007093989740836663891886918989660807812466980022317299926017346439941695349977331192082135915905865180409251584336465172074332288955934569748380116470961165334720477789825207674135195878143746097128824994226030873209096413629334931195308283081882788824040160799021634888631217641893572467110514368703927498815584110646281848706059981128703786938057289184183832830156553089804163895341133314916613651010321384992926918203785332556884424372165585235657584965495843224930168004889648288213783040605562212875816748261541965755841584575226168951101622105585882070355836112708467966003236649820980039920951418778495329276848021614068934778141490078524802991877505007127581138766652091166714720519474347674115301045477063246980895444191262461919415109067772194365643214737330592401571179724977686799499545989907678619914560963641891182044035716092175738746926959080760762668486566793916085679569341526207712627542792770662298395511787698324411700412824234444434855377662213627107779992891571989871674344278382610078335118576744552073220869718587843901508973048615641778823330187891751729250043377225725330698075846091656561513034426681207310209869529248679411153110120379232730345356392420145029170781908852273112967680877551713878037322289111959447537881123226553043373347336863709731384476168462249248168387956265989857271621025054567051603359218422431017177673208218695901851671569736714575352716298693307645146094718553090720924508980595921799460322729802931192222400197896395300449470875337488400427776232541031257401388191717536704141107609036068986659045256725066771396028827238537104506566448384802736859146712777382132010174402487809391544257481213515212420497593987869563074692092241950563547160982685997427630434191341029986946808597184396278228889392928744425506219114043106250678309957365825837256052679661793269259854959828462869459771780006751480748663123842766505501561952345336093104912579932579061199694090002701565706009402541257391728436694982600574763624925254569336621280089026006881207852341050719010374891577893206715539902118176761614325987826614598777050856028121048039512347466662904351335460685357646504976010735368360407873935744248565911703874674084894874406201342274250892584686834972842324829785807987715078433462821113377992499442800797602318387352656784683789749712215241830987269091092854509751223500385686798375810932846877127398890923802855034874999784148632433286712119212242075535514787919986094153554378900446835927861323950742439173228519559722694428513862714997018174004709099762402675966447841999891385586628556592241216247124380353140239028416305526661308062117128073764472281009658106106257134445462901762569897113717627654429451567359899988615878148751791116565718966998872326320400485518680380079929987725696777729518095950353962210605077638124203968012013264604095183962822529001368289724121671814485604498078749697458131065666571078604051596512967221527570320513813661091930160504558269065755534098178974301219189536760723629125990541116482296253233985076072827207711642000362846331343406390454949868073967629451726983621797062423785219364891112623573411295214692600689054666716783658409940754776697896207187010699511907800426841569127890316841713409772958258587997682021016307346716470992437103148539912247610989437337365668931431097699797734548802160703885820612266202766972127560598072552148460709908330333378574050497587156095480786134518675610478104312184794521426515976982533693565723894299575419334526826070261015216060819951035116483476626917590216113073400004839327869749475192661304393434272884356854687824229694576517184877971551578825660163936831596562304548637026864843797164207204651356901471461192334973688646632078159162808859092713719983121903154611909216349749153904984672279778563022056320438212951122675658305316526427536767392023395616784203580163303340580096474294927631578602895782455936451588026692147068307809024461778473320683882648931412213894013019613468000655160393577246985739490680607481957117161515221359281912126437704483349703242805299557422982874376025483675107114569933718416669915259948930676689509868891417671137465323485912519052870120566480855379158863222764685516678491925643699355094098361913098046360707992797006434111978427107430612124182788170896497651192947762387429038506561067867469675858940108499878683729600279448285812769578678523872613769128612321249178721811291831510667862060478883558918613301808836099354368600982156132477522242347833883692794139813893678761440405910668669182420574141157053849600929762113719009921838122110962345005635088772283799006426744493032551774688025385645285648831154524809741585202692608611911066151744167585641048324874568960837130152570194618262176330994179975029413758313743456585090072775248764271132784677031373531382755143360152358795559098031593585898727355835594875849628169872252733925955838131284941471757231542429735250557167606329775102939984250264880871828991642963389319910245378198898527904485003811476518678354965997171113038899137435607435853119465934444235050339608825516901680217039844193412168964424585501554657519953770901997292494839768479522393098632594699673698327823308845415925590497627602472567480475313200144348178606557227411358836771647379915415834234755361227799032875941455368517813536889377610838143800052006705829736890285872641235498934306851625871698340148430299983207788238528300877119860005105716029014426017403357367205549884549447588232943917060733133009261741154706252827251983372947733968018112677261750098108038736366104827510900319746394308286221113695713086341292846817693835584906376760549975341576009048837852072677915291827910491526474588043797912426134156954060033510383512683224296383279862525450281419103677710908908684149565377378941104451773515794436938266377971830175547649278652897196685494555674322340578991450826515952214559374696005776364302213110577173992373877082253455780862815498837648808183254065157366332613178921383788601342000414765358569590383898697833692558957751854204420263414305177532266862638001429870177055405081375221223942292222176414725348619382532040704100473524085322361625284436492939491280521880020784038798456767053860913141361365339240216776042311099643836098025959838485100437274784592911811573127018240638565395192436744493213010490560307395658739232745680261748569017725357456846997698250411576156310025832853839885901209572044815701131542747229473569060972583205177778787374907163324296646340658133218882374796718927377566414610258354467131145538637940491982126397264335837115729962538887181971073768651519494591946006766632137707700602904568077359604625073270737463992178860642108250733849865827093252506453991949222758834503100002981242278933429288034529200307706765947195006918758530847766920493108609287854930876219595599724138351625993204098925612598082481128042633649001106333130233428853395333547983131397333134058508265638749835443866135963439021167273293479488442509581527238179678615806323746986681294604888180659360399713348615328279726693299345935674734483924974387099647398240466509288248959641170808299786004782591579891781612415844628751806112890165524945149698311821138966613362657666107190171569878640968643594030545989295589420886500611064790914925321647881016660509201671914020902392916347262937489055058033334847841007616527969414384715796548143126188246071892606750324094485192029707695882328520406585700997133103218507539073936116980560759833745279452358214981374025208216951823958369785320591561355813905877602655125750785569117966193085254102655492051834001674257631468557865137226015677622178754297728251894076470524739534810622673017382477366590215502956127146393648846731908103367621184683021491720547593625897569200531749289453214507516558834517886143581021867513363714268313798817675466972047694471169050024305256490018757842709243022690547657536571783984490832109407960193413702169205326129013761214491605486634792788404561922388809793792043848992312277935027859579513647238021823282947949322808635998193030159181498798123240043295698395739521838640458444804740554813245204409519207435714296437902129472760720511297560823133662702735447190309738840668811353632975828538165603952761656143057006185745135562699894059403210414427749610222545967624656757725085222118694947262861480193579638896584679146708278833524549540070562279921233841734864788361156507429854812244247155573360430965941690796396559083805469236200850234725411902710729387234576254346647772192245996297919537476358536742611759803865182091874693409138282023733628370118352368897254487645250105766972679564669646332784921535301248986952148216731968604036615531098199296285545942821045145635814578269390033948627472717004807631704274009583413730624125957188847099827559535642121676196326982516076194330591150611377998410257343411936601390254855459338436232544782998962342694328429977628596844157437140093340240341713236413854601525390007707137713492206573482693693179229848809781277432399756161353679432486259833529511226893484799491716227165453895068037279415344238299924222433674257857581564214944097334741292120854948941884536849382190535571145237485085170771798393514500718200391091114807574229783466554064819363953687495770253710326295152847120149052733846317902213494103434680936850104873532236567012816731430440151413170268863409479901271130295904461452451420821284489790816812071254467282898161651108965649818633330308806082234350138898664917390232259370202928003980777667281011958143608376836401735850604517262330929366592973246753968152078178485243153319513880696009504448979463001748104659537306272794744651293751452318071515138894291810115062843317775982781676637287504030515082182667719369606365584111416510710890472586157531457983940359924872414711395388442329903444517004105877889432262808218665073119967034754967912853055036326616674502974357442757113990998261609777488635152698557566816655593622369079575943464788106133497574877558640651151330629357292105239066396477183426839792467630809821677080983934602931183784415179547425872308503562636766571916680771736896682363585189110150131065128926399258182528013067465928305644544863805240239393737031695073200151222121185857714894101622443066521395219434801895620960803195671200760647111062570502288428210860502017379341088143053859903121165163002698593297238747428312133912599472132669345110270682219238983422564915884619071713267038932260857690895974331035414380332074394367406000986303391448852631223585510246605623738475541359768898400789898484795099193081692851269584554061797384092458469755824351310376113883701270240301303029485766297803234156264209947067521421372687367501956797802119669920369165197780901776861203282737690551949027043048273416610029446090435558771662695813485710942960745429333774360488732899844550455497638067761551368140254190537146526290591909848616958418533055559974662449364855755606101305661120913063995427550451853236473465617171165425371323959582483348498361195732696180141477091115471043256309921158256252634532545099760118771020317246672238919160901755323876052973798026164100423732799763027674307005471559726491534721677130826314791689227135525900810999007351750871419465604691127346415799507864563447870737766019961086177171330685180685236659817356310194540921039128013660964417989506827467931090687420902385292603947602381409997211451647687515117070075997415990525386034594871770564472609812817665606573474125359125923460446862191692434683455294223343157929194925275014729614037500627746388009515621809908184757066620997231656821565769678851715878837487856067696369211131523999049188084148437490393963521660837891104070781498989258778322384905029018748797127141514622316047635447090017927752261800418233134953247718044220128055396011391298343899825908537938908503480476775619433393301936435038499526973973663174413092025530421294643071805702476185084272936098668572393152665072303875612493725723524217231516678455579599460589779875670252146799875331863579969131495163694850239492600189625270656609245681401383202540821929916002735491954669161107495097423915033719816452439890714395794434994724513394023905199549807942432952568198283649090340772626935263378104788239127060634074167695746519699931661320982650999359038433554263271151056126668668277574879389317091590292650717095453735388920634140466960688000318687645688927149624819239219492671148731102664943939452916328497386697461297736344100220768676202396994905295088150808850094054718707047874324145541285223128261658084155602413857148120407956968878453159430996099860129094511718547419638047344144241872318335574915241479516973731352518089921387657932616302446445898216764956516852313637759511114923454051813421602154416310025889427462192924810054186845723141477497516888459812814418791277905902567323228307841164833198697740353315504525958697080229679928848781947135001690259741296936806751623784021338904874219361258210921756020189922567231808257140888138958196721770217722932422848352828943899364374899745493596517543076418765541802842044680086586556606011025940183562154632029609608253601418478809446204282399806973993135356060188414670271610557563336711645071767562560074472291031861156488495325993691187574150820288885664855932506749635464593758448696060886978042263460606143914956193651355297836562090536952814658822218300537681127320040595850244621458484229482647149991810892133838225635180148207530074801947395452069436324549277745138507910774311137809592750252471569526772331670992279836457709546227103102342731612227145998017191611671151704519652771156848377175693059380564622684718438120750564114559838434597228586380219391725186960392604336142793250202450173255646424372632496608531029793949597739294010211356316731311920106318077868949737200781069995470417621129660009846181447378024252333214272142293831178463925632689462645467927939150866375782323613455696602284437056719448628967824404305849461321465442048466308412211147740728725636599836919467420984879280904834081011264514836201412878300516007303055669433009962880849173186569067612105919367062703569521168599053170551097213584384012588137273011412803356848228854289632067244531075801895345646190620030978999129809436900890035232721863001913182037878454129667949468422114140177180496678950962022521235476098140537462079842321943289038469786946268237149201696175447971228501737937228400072652614102178931503050560692342356311777978700806549101895376121440773432168688199948067628688342429587803384915297586331167108206773022681498016588595244300248786049100584117272557785591887800139391910992857669384766654859054359726211031961715727964466250140511315770478447068037181590553749078871264380979428270522272875328245719331171621229831699842594849546012970999215342773596298072433259062839030418444001809383508870625207732758982931489414398576161589443446081398816191222143770596099700235063667558656749166331391817261822978693980696172243644204379339148424568040372582021024954139436188454702184694128815895519429456038341414007178185911223812817894366662638349914263513947567261367967130504506622769593118745455201300513088716045014506369515453736094284473008600860940941893382110669226631457639040414746880184404325109527430030506118446961276972854007242397453336507181925322291402710287976297584587733064913103369645635337813987446549209877660341467409067241301699629525865490429210011720765814433611999900479088072006482846125003739874844346636406249688556828286548979825337561061151873396095695653047686892507233707931475540073327943057617043110506148986152660106402417899952852775482053955555666818458442135583375776682801263392775160418789766638867301232256691517477664530413757375489129487024567632316248769987808078869245621000661598855995461193603228340809005789256902580889792626047305111691171840058106405818721041365004750154480386992485433592641710487105340646554586970591728623142326472723632965222217240883898676443551656851828947494801156487706086368937900541609280153818916560350037761888136336549461498908756614679866306108915685534598390417985268262178289996107010580695100532452065401709491024997977833307889109816817725351581796453157120203632196932830673051950453734802630723336743420213237493935508667543702349483328738818666823713689811464887289828084452023597189817100942078111182938997772107254797608241823136644572373313781479487511984423582337421420826248078672582868500174209401687484464602097157543082814993124447894600420031236606760631047982883092346897213714484178512810757119501367570461306415848971344534022682119731470308133215061821272060424259910385262299208326808212693883356439369213942042641603399533124447380431664027333064566109173669228646335719464946809827230541065511139215099516653809021081625955975093149709746856883846927376997799368713196578270224740565285952804062980824365072671482629236319459071451207474435637427731855807469507288820369062599022559995910704674284573119324849555652280861613326820070858169323178093425673826858930085418444276881597053897925886089185189740308646315893088092291137273407785112286909480881939256901510971071048036596744786114241906259645186790507100316522105973775065669014392518229837468558188419595558735459718729748235958296207156389294188654882884176752247548446072683970542387816897251637930665481978026626148108575358953330831656115802660257646607624060504953882748391257955601869293035866879410383918690293191426454051694664926746405754218497981857529585414607339235711943543014508181458540888513360703922710913978304116144184910345120286264722512363146770922482543994869416531767217300370635988790991798844699949847780293534439964056571665265844580388824258869176508497951313874128139424223199846205797945565038545378354306382776928278779904279075547172936142713475178065704509387781652446881825485382856536542852522772741510186023832065314345657846862224450605176870504287901342176634000953489978529121358675321787536571162831005844401921238282388910127305612890698757271293212905975281822571782617805854392262257333016942990705677813685259558988329101440586197294142049344491557670087466909615633372089920153155766312390605724475565822420160219091191573422546399528478190902891197582868280679100175173296191355832144330242421288185339177456928222713346081804813841905529224949327094585373874846590570134301061717543877200170552393418338593939656131196170820600600866591315970841664627585300699423449069788672383986454989303562653070529468372012816416839057616049505486789979279370130163218613278762797733436103780904636245176862229027871836898547220272347877253805257190030249991241183769500231009497384417736719678307663221805125867411428066768046023681140638426883365334005528290524047239635125720382829303956903169907153535556342467780629338855378035385207116809927878255648053604181529797412473938178436894410913028023689041222011109708891281551271464594179614578086532974533270723955237421956667058339231470944081687346136080925599765087392999720737323180161827974688041314468493156246097791366729623811681435512513024764035335150725165704130820043159632465378964206546549048972796264925318824320281283448582772740441770461825800955045954468902525259910949199324921643197535891344615102015799582050557829373475539236914695301173494158530220738635824806028746268099997245349293783999448523127759777286704656709416492462532173744139953081270531951262228586712576331369876781630916868081697885659020082205349370059001032723407396378923121740408105231657530780511160059706235127559162493353738419130042237857367222161133057492027791500035017570361970442390313899030103330241669488479999868720141827290758162320781804621013765723657388642242705567674330655245167344112369502979317363687637956422785213824717424453931099414440071336285105089959814478591137688978936057414454086975644299576601620350729565432280963707998687526967014421308856233884556217530075215183408498869486878423311463732536084711872642331843208347006683878786588048741045866231585949228640886996997951397387628865781310193589933088101101831294679810106956605257285263409797726477169927775693478711501952254042548844410840823568566894474500322700740109150514625901183712094959709673304334553223829825912136622813808641565571030936676993678981509260043098654862764570551018013194129457400537007502463493287981886200428648513456632564445714649075747010676761582447507628762679404883905555434029212194202457032579916153585974161554015444633293815268116755724202466031957450992024748937493233798132745185661239078256522894248859261034611133085213840758785689251751069283677780600407617048324164947531905801268922919883089228887047692710515951189205378104798192507173058943566441894142211714954950514003068395501398516589145691588521764580853892091742108648898456940877689087424226262021486472240226906778497885348155416287510872299312246374925690881861303586732170494151972141994414650883936251918433707342594028985266130623783407762978229352274155667746850249155361597889072241911630066341058460916274214916957034254022200869163868979757028153190380527534833726931552879801908680636257431507863652744379877584129522901052680031715381242879867098187530665091379165502296378186922284821129326028826327850511512151808795246120902943087475098184091877788080352799572248185664037858523328633088558848081251146780872119879625396489881929038005879449290941232048040595187817090179311257594608309275844649644508663329481575664239759988775937385620335604892884532395782690014699123095267874798958325825088791484814989947635140699779161903649988767541354334304282116307802576166150070242315365935704796734986040257822291722131364906974339544716120634240809933125412894740225687493642958570919327306724355030963963371929109137992141197125364465279881275101330371589822045603004701761618130367476885683700741884169641559342456592924440853101705482424928865953786592846933504074143928657230935590519004822864581913888345467191601632200937990543405052582188686768143218778897722103454068881771247541875074720107402664188715176626136337191158252631145028019271421060074700594895463549222269313681982711932499984290641613593664595667822780200098426716475589716247676476084425569634306917629384181149066063420818391694021592602705267433441748850485517847180489233059212077160176675881394874601443624183174452755159537623631677666216016402071604240107502225423139626977345074489559940724138545247953377437197093852453653439787532949937890471689161344572616840790390731462352662907702862744495955960526912161907097586002627109265363875905767462874206795581118838981029713162252410819441480576519723169489145929605997171885538906550761769207160638351745450855774700250866068427107598899602698793425746612880001091747479687919478683202833141780006264898191319806948174805897235106946056154838424834355899986217769023860657313180253939798572925456649816226471846124090669374286516456789349449410911477036735870706535665998776268666564000369753265030687136411694929640556681726232386371893431250124720632522706036319408164899769195391318257695621584277650965816927721226192987558077272006041628423579847272979076922022504970447074877676004614984116096430810263443926806569460551458751991889581193385056836649101425123846452469506368472497079512357060756991760306983688504908528699794132490940484518364645010231995391131262310350400288052783064077846466763934129198668025737238566387920671508738912097190508449925794420069662649170596289190845010915999778116599243968738566917276239416190247380948306068182044633432904032011684498512257872122602518577111964553222226984757131140252569269988237163416999473175529115253892516447021925718325449130143325076789254863665301535624004602031561654161752738597509260035957972014284198517391439160609339463471875804597707445448057346200817961395924046917621562259182295956927003754131416087268885274097147078435891201911193966326852647636825269104976345427872493009483717168678208881392911875722479247421659497443705147040377708257322553202043931113073300306937285468141818324744731492466807194196181664238425254564905596685347756124217594074050433625948561633794702859289268224442965085441933403378744014800410053203511236426267371758742001715975930288744461048980482143568516563262027381293222677974554599458782919844989919899760492623751096961310375084443358347095967940390705270865154024642585626471021945173330049118664191431580255481710485818676482255494141850161643071937201340368382688199952791003863182117433797950652484650920872561856839079874684561131953725832512315395587674347413075271185131630300457363628441371388493786752725047514234944071481242526010136713860414671109714281464265625638197161757964355520824847383641861453336847502772236926427886056567966026271233342260577923390991076418678853408606195589081767116857477099051002712607655354049521228048426122777552068580327592006029079597922693229539444353663218980202175967367878006515732933163081483637130807248600368561415720399863008678814713755195766943539229802722897062782788607553254372378729121652722938765930716882992574543306267088572669549780909719053711882754106581311638149271900784093614002958960664307606476174002571746121903878839601102960833360175487360269622973156086960966243704190310528389510247217853908901231760416356490897468848375426190874324216424000358377492586700582536217084175529826961472929661130960115640122780363609148564632134463588738950587203553725560907673799423862007372656827779722081651352814578510491567644477506925280324854630903651629955833147910726675019409398363677846959369047151654270233409198716133782282639796029597249717010164514650690631555280731287368699701305082331603020733507366972719077212865733393394399441319302825404326541807145379751057694471083264668796460912507517340286905773360229438281867675637884547049023150224986938554498551423604472647918260648157430276981727457721462071478688106964258553984782378876956722226735387621061916272540825516882581181353804313958938704164125639591716669205767663137262424312234912820785327090539669742142622432592920585304578849621475408357746819789426637639885080353955171985346604639939353417394166644344665465285539989373785144946644462255875129569802909256517991037811397205059956071597077371928323998276089368375766341688322757930844855906806523033848192201368113073045256229655229170311439975908276309432554359141069797290004512736388720715104536267288283700834897698782936952811498279687215769895865204433954207643247048437984757748275752691159537744159218765356435775321937512244119397727450152701282106399172059199109866108428309028406066058549982971618369048013153335781471866103309738271936974126203935318984441646978126153833456403325444076591767949891362401836332360770100540797322018468481034766091475143545193822199614156747059672064001072257895564709578089227618311545382083316764475903378346983688731997007679904097803906178410112114583270426084728088971675441475230951855244765770501190526353357852362207040837595350216061434930593652598986335079097206548123619704030894509073169090416308013232440349216651640027718748964278406485511082660011645387590373970364535570902872161602791458336389812320225666763841593598808774854560638298247640622618216328874919679785686254446679032174497628666187137863241794339769249566323941906440281049221010227554542047090777314848626975261365951861989207995074615121964209329958613665639448154737910368670671747968500618379050724147113310505621646228586590734504775023550288178748654847637090352809919330126254441598952119938841594839066688879512760938755375282771187760647147284631920632642389992446727364846072467609965414140753793334787854724305417582982391293930789921120108373141616032369658168125538851870154276932158290041794020087365707235923590099894225414573103017315011700156325609122590317479692341140556566385420959946354548942148139685110783499259480778107564339129242179507263347544307929223598559065352509404700567605841381725173021116207691231357412978207030395264419227663739275617872852260787002435146774872560501933140565709378265502171307385250399187609129066036184505223615476624580115045118731464817279809622723420243026121954081727035197832335166610965785593144947208398473490947159181868894096293810449431409413293621333256011311589715298262760620722510966568344827137417014055894404455281255903876242248971226108683889803623989194519931962008625551290014689214555604510268505338761144976920839065893757228260112975252858437294207355195991533531926419184003769545692084279677873918162679748615244266348436416623521219894091220693193015527275334995292496077605800386272607737506381960801528485045921116746864439235432545419410206441026353650023642021131969137410141468031434964342826852922519103426530442120855984324517800213981901958489562838786918312312597826157643436965782738028420007277647368423152017864794539278103352570143816294344872893411504000032722708376224904964201161542722568742264505510240684183896614026917891522223971227890553569707059997435893524806199058603587557498704479174183821512009401175389314141042316848881076416265543249451493634398213373119332413760117187656567659780963315055284073359877097795411887736557660106814861577851360128091646051376485753753187297855887208395098524157433646743058801002078785289802860164401384445935064547088207912472663950806362164645556175997215514605092128803717449933413713383578949887060921764523841749612690351475829533239426627993221464650202023610545659780770701003039513003709383479856244763625182585814800276597157776350678554201593091563898775023606263390682446960104755646337119408948419894272010062602953579424780767064818315512581412458917782600427531483424064566675285732704119213181467886587207331010078988284380402282488910516262621044248525141431454477219550942218128384061175314131491588763234088853154710230515327753833956115900846734130249293640732123296111503024480584809203152917475405259761014897197763561186468433816976377106648398243015997484781855261003787757382021671243078613090045605494895911606017765037448041642623000438620552940361051489810819791874374317275946367869247370809099895216435169076422371690006471891825952656010333328476242841958190443740682964529514274253013659048991390193727899386562553960832806587298860449308589491200801704497813523801350094476279460921613087846456687688830789314839579188245032166988441320202799430539519551871519677659126230677100976945995466496744448629099394768963713291164928993831643854661057973772419805625208560184883828526541017314791281520866279750492920822227832650159013940864834157634214327545408590920078768407788142378345773277503810569871258523704742444725628161567019566267634778018723390290486423909147776359989332426402379785083880572130777772129964137896099976395001122804372025985114838657809939142900808205993733521146072906051059049928474377530615975110448615411412404361180869683478452843612285941468691575950063440216651070570858440357795998023695252987482666625521426054932745081086504375321706634443124149817553253297896400256708531092987897974101653558162953321373035818957548334807409858285744046882742040199784607195479366562351062160764817624825570642757388122967232138058362335721780454406574608193125790635295169005717410947312900660287217372733322167062225972710722440462553812611587222803847528680919200359771747974972938829046634428428974054748905007795847774365415193938501440028024941367210729644904931901758347672511466784067568408771073376506403449369198228760428895173312521086361535369886408208893082713873897318218640944279128581417757877493898591703394019041441123836798445758079474750473554963032728924586866332159836214872815237690625012654760903241782943000339308472068004188766119169019586114993959819961276687458904951727387699985022954240281351226651822320069154024277876385904754033347688134731510267734449549175742992923009941555611879506530553349695132679737858058771625904070566988683517609539275746632396194130902348696982229896564756791108982409666974329524039148701730857496957999405882172255180532126177467066393641060402003905182256314839480855529624316723385685320437270947683767119281108061506552238742787637561747221123350332477117621209705941749618180960723283160218197217519964546344684169504843520322633900467014544898004079584102978933712277780310949602070470212884170230965988363970877640581475516303436162496102227630846083841718512739806067232138798679512960212390449433608344359674590739519095231451461986312235505913168011502831746868975616985877257568086447344115201610496991794103296520481664412175106435165309962366165790535712181555824137762978830595547471292015930109015690880183677067868895329029378251973654219176689551081672615619136721282551731368055779875558478250045268289453655638972259425712703242523197235829462186953446891267086212202785296787467883005441146840682964351012164827650244091216085962312604792883801959082496696861144813087394182552548421149844303380792985136389375948903927302352985899824837433167923391604439688254207966302998201437793635312414830136127100352646799432050581396679711513580277743625431171393716918597307368474307208335770652586086394322510647581260393218197356926311725154445709325563334293008583392692102065281372187034825669745405098195833367115569915953784238057365436251524856355664396012554843947046069272926477141967281811989369794361647700203116479759323237391561268840292440981663398191830577134296527434514929280768949891355967017843969420521972747481374431999137319572005436296958271647406723270636052481819319990559435269897251573553150396924685358260391417563384044284068189612686840143904935661752820544593772150942979014169277595343641100646255412975769331188997102469467046891275323650430690111924528173158468195987076096360463565109461289364366571590259073104937853505596975901234917738102416314816512037225921131335571552894165507093146139653564974505275655259678373460720658418799718026449160418561397580200281406383699190870197822051657394241974794178450255379649751732224203588894422198609241646222998333348358118647703942034109413066314682183344230338440009394942391368095468191340213399782015362857505901359230653146159179039483676286839728935642375282725957048454792855845349703247684199197022328185376316897780150264887406577036550967056166546677535804569737333128738805866371985410577312582589915405188904461405677529401533548089090471519168074070682456429029857523852714056324802073372762304575289927673905342229827141466122032019714290879372734446684476738645372302205568193822635311977269809394773795150656636200551996626717072385462057981985701336500579211509206282777466551128282206488375711809445909468330289210381989738115269341042834635903103163525293188979659098335798648438650595642928720857342250586734639504889162289206782765339050353016912790231483246465441038446319227544156973769422236481885308020238824947751569427799256470211034004771606144158914222501664429747157026051145073417515407657563381431412573760727695258918494485121493613491452182265879395073189928034474970392630743677109108673222446218414209995467527914095118110224692181332723191395830756174688720481857294672190215422727631289484236139955106217307224671522009435872600878214222432556663515459345989686247176266145442479281385381040141644411989785501952952009290495715080239656933336485850124759192761198195717579208389219615709186439682226269605975807572422655694420672079673966368755118043634820197405811284100245460109162434271951557319755403746695388904621147566375804764371968813340124012391093372700699219968434258587787040203207891047962615884878677101033710849633370231431166546704350546351638283769940718595672447886987184855216567722451508318176863313664742792196775432489800034714294262562764965164649219255104316257898086916193654418055040941061619697709987886397413413997079482773983784587671371684050783950476756279423212212343645605863922875273019141556537571231387099095436760556775589882389369153716825949679357490999869483977276308077084930114472050503173237440971393129659466039440742348782091704106316314935741742992259057654460600491181595825676713293979831859954123935065700568113432128427272244780763018934659368138122853342958823916668508268103155449210924271488313302183853269290209208378391177506215958580392053794114311733501662743099564706630349264783212170601073773257798474810249982887279692925044134111193504323856463983638895076975694169585298448916908105317104497967994392256724022952646488625427551680727625340058432624529288184252081116495197352344268443213839860279721391422300362190207535609224394933059024249684859244161036611912424023120855447084277340681255346822053188582105518425852655420644794807631741229905927081601196200041985205715554814872354406627803624044296352712341958187152563857222632358192917965236918196739846405522516175434823905154847391225031540342977719694348161498251238755498215620691671727558303989597083157781066487025390767457862725965632160591316390450506400308537746015312454326332955654259084560597117899112279630169892915509569530784224672017951341297743557498792702713579743511528107172665383515356777526849301479536855144591180445872755985701537317633250541429731031482443450195304106793582857232065452374845340757687973887151285762802330177982515761111281903314560107661842281009993706033107791564899476910093692930172259803728774127720592874280310294743530569104696524744959842982714737011782300263426975784557891144828121170306851058526762685103387371048382789633257757568715698423092179973709488911317021618156090210346710880149346230888391484380402346679997550388196899988803008446163531362935454910778710175675059342802261373138600673376066136059769111145478525561554688627063695641415706539855303835245986506686216733864706034282252366698599698604563715572061673887580904154874631210986788378855080044809760632120693976456931937808390616615395420600520966511394597955394096196675377237974250212240650890605862019797897175564555004788302267178178849682930006188650229149718432193051297432704853311595384108851265107307132675989582340181859135482223137426667783331297133974850330942271150040134454976505873005025727513414372422109063847177039543323906759741948600512612900744603339909165036283389020074619592541632295034009396276952138888049223964154133575063787783303640490255862667134096858657329537231196322571265488973420902080647953355074408513610166863706108015605349805822661803102547648405437721493307669705966362264293421957084903913267021119976100084132407923690099305336917618040199502821966432776802836167108830761023129768158705594643360482265349424859138735582729349479098513747610905209973446173806568187937770594997707981358981022696674026279302244971040346516408788459184591254453263946199282328654509490991517597588914051482698170308942116651803421786260825596862485273190137085329814973908219532225248980112425802335406107712001193988101735206014095069579265118794796127127210184576290102767305551704420288228592184715159264494671884035389299818225207709797232520988567406727689605022219333820448712432273977309882527332270044089807446941276236690907541459265580581610138266608031517635740699389118685971674965848758266925959837431901210667699009567429575101079057462019226524142520449598660701492573285238197098541717710029598302368087133924640766983475945989470820237294350208400998170343089152915088748566651713229914924446966272175424525865739282210941289560152974534289333347715117179576741969639090309286239786119620641851670598542590552187823441487250492140327992365869016646394948342083314427471940273591622076448678543569372694239381250720434156679977630198980923091416339335372337677117773395316865062169457724306911867651404303160919246283774881597905934020454280349539058334809519401703938594624174682443188065248161852719036637940802523444987191289133002442476685515067130809453880689328506609037705293579621058906398608747578871152117474174820156673868899709040810434966912978888490486450976668941706913006100932224996255000492389043131054750251697500569725006961654064368795963535570733000999788990902576340325060482104721308328396974580060209308630988218306018259023306349681269690518356188877746555766675240964544708197657203584424070346123256727555500658205654226789983003707776489004601810113663228486283705722949534287760621286218183489676506385667077879068546015220549637224582516360560633437382258177230532725656601296652858357454871083291054222427660486744822340805590218307297273938298241516691368602659488350239973004582907956310007518509722974006902438875758308675733668118403733729452331991140611643006981939854407741952839256653390194149644293778818249099789648677949419940911212687742799472511402502541374680598418191876524130995744161178312164075407944550036423365385201328354224508749998605916409371716865477683805267655065644233160565005270552788251136041116136292423002983511396440790503039722512863342469567115384404942506879517242851572498024893516952366321786920194497357370660442062167222020175483427768842774847410438877332601856851180056820329517635896915748185679180492519441399948033581338005477963006641452877469313281898087282739720962076247648760506803820055223175122380694420360502179780649249033397431358217620208792756164482780200948037098780536408965200917606167731373366836361856923900956533587504622385258593262253157630332075452020754487217962162512811950534802452271121505822901990567966238019306749042269188607048908367186601884898368021813157040901889198089457601352989953181914139559450462594108340629494351378564255911027697735792614938081605796137815328243111773303358725986848668025542357227959418368549601887969986244647764463337480529782913835402888725788869989311395834399731748242318722493976465693887046949727057449456530514810291789186291632935789197987522128488291556864948004957670354096218117886845042227753059521253309864084803371019090774302180381619973767027234860833586796828669043654989045816367659811725431750950198010495948667752690505269976721693132727252824672955435666547850366916631160220307186677006619411933851329037470931365864200648422929147081152845691930892295128527555628693182094098531363189581754015216072696933695940376736523048386105767665710425480515241242497288134566788058192113059107057305143085295491636675055068798329290418852860033372420772276034273575722351788257373719143504174850398760776750319675010344039932252572345222769714015202093856272069551472365276824700687617702189815185438248744669272417121598004703871983710607924278963113098498489552202271153938695640215982731195242971556208462338585687385859251240086426627788075613224809953314126255268973419383181183297731537769434988209846865530844340699430133831090751623118181188669103536529355985453164018958022722797228483978945067220788416259378523107962969207805257214531118403477035336300084098462192670627109776808862331596467996660226834656483882293326792231581948795783448772893196195394323333575466585791508836173864205428639167296577943450218771851196525867791276058041701383787535893256643756887368382509013925911638526770087556363904869874955638480032582270729403051593855465917551196563300192427642377388079103673880435211622186856625348491972268569073198489280093040358527579409826212161414358042690373151636547510466234491148212379321381466451173506636860302413200835801840392336255753358490150027102595449704240408767043486555189486032422876824627113289273086308813015150284967608938501837893997129740854324920135689537660292678071956618912002755406799112804312757030894816770719960629109833010005848306977983396726648144160351691234208109132357898056744851627537835124921674804880974170042452214528679323789382076457127727339412906735675458023948698718166932720090125836556653765736385482288390892946674017086074276708831884532229144102596105108185802244916370956655975677728969197620016291393616990690058526203430583380604458970435953707968530273565537891147462036618350141320908763182487022189027965543706821517471958023847528324015756428137458382320410292744957265413418607584802435817523698964131645377535439350389060281573596689808029576666134911188243272677396433220198053493879860296145186234549107249924306986590807043774025795231779283543448711197936083730305107280545754253959322623422508814474563401950821535536507233128270894235371024250320100358190638976765617136039366965864228571702424907788067181734115185358108916041752627345112912670525436248760476934628655711379627201657252951620374164014119996051569764528561060698992719646758547576177123578657389943781929937179449670426299396397862267986068348680093613558302595952837918010718849766883089038127952241713887101506379171877857063467771873548770131325231080639049762336697324093860348393999240221359281781413669015777511795064912375482844485252411242181203579309848148502607028658784238261189555729094381953796208278858982652346770742311454838713854420342921514077652680658143711643459991059190651534663668134591606628730749358933270653112284278997259374253411616060758320101006562769238827217712994287956167451963208146361965414962862139781391658236435637397051538722700981760495170540802686853816400266639002562530004934213375061406620274762039714168198642408915924044418277486534946389836721170187360956919271577756784957582097509217212193855534759588349224689321688152989901677043809070596588225356809861408253733306078466979715124991315182471632464594410486114573580806628536315736238473847738051065901701781478550191185461209975333922640649644599625924526769275926370276963322156116356128340031632195580840499153785440565801901199642543486591025078254124264345248534102676325897773253819820047367023928206319639207031155239233344302646414958517095014321722493472817266579775393077203357909500705644262990316834284523478864656081611321233208352091235567539023055354335554703819891382549957467154276544653879466281051939200169179353068530250852441542897805196844533523404310300899200157864546287449229705697625178472620945116959671983635365517534976282749005108211272910607922101331942461763984106991249623632812083803832229984595025035158335163156728438544084187271641457727009995050732930514573145003788095039796133368169107610063712949609431793566312853615562241139443786092696966258370818883628264700500864640435907179143344309092494324380273479550466056098731791970268076014291391827531214807046058351864852255804890264894905913022534005817755684973422187269990708927613266186645204902145412865086615167495747930272319528299008648946912725274930030595921198122484552583083357373452621674013463113021253874225971038634884896262686574049359467979256182503950879063949098249522773535094409063623210484773262899523289452606581630924572573401805324084998057282905631931233595937969906595359258052461890752174026729100324668911322118417940007006821227609060204396270908160491437154692059023243376777658407984808808513444448396020613014135201536091666350761774707620761568152056624991077774254011467858541565479933149668624645846646531377038495359728059596655904947039647676064843463435569929399999393031074708718427870676388106393236329426463282699338395781049383245297002922612165743381295512291051200549057563553191972885377407658367709300757448179446958324027094294352223500743661202313642832872506138220334238251773763775518283082389602302201017295745351184161836489221670644788908292731940113134004159386712389704974777924086783150118822510612101539820154797070663197163907023189032925655255782469411322154852716403678506388234304935861906599665095742164035650395567187988166329677016319433071102712301165047208510495010637132536280236966221991682073304700265870868912140014866821015356090599097438445855040882362954863292666936286301581149605019399633998188908795058693849193893661201058631887492408289637420342702435197128053704175733933138818655657520059688368294631934948991698266390982348887842419276260558426436741698997009393829441612088976423687722322942967195026148780975365941261408953780012409344160649575378228707251870935599106577620763247382734123053683830930711928812262020817326526816802351052734272127233574792302106043189550609176826101566610102178257666415857909218813520334514383477710473567657670889029848206118247117867527401801294552524655915414797687366802187786520253156474937038349539321595235277285993655585107873531131815248334233178291404946500769695510966688291819433722808812969104716523112328334128282520878185088312050748626482205110416656470792078754545077405666965013651755020159265525729508792926187558150455212416299014783589288838211687256737490437818291166580803140820452447122225907367790461749472623295861715117068755543040008567098737133493934627600915745772632640478514954223529355809845841351933519527888542237561998734765128459440376105680251110481085974519556719483633155233535842508101360582649032604061747342370488705770358319141208984315459694978892463797203335517681182103505690986411349664463332031126678825154562792697388508434159667683682478980370768361112171119558017683464673813071386634768022040279601080097285407226601512636983752267674799099008391264406544754069451787976627485777422340217212177919721685229920236455412444976207338317530375148612855943121132719490003713568193391260748983321224877885207146556907741013029330125073605375201470766932133722898566526434550879182602560942745511066890046433379136473674076224074542460845674774475228760689764719914341713385775443415897522874630035745938803183689132063061132729845067196177477571036339132862073690270457574351259090252492476029780594593775244072901403954164558518494069766963545081206395323944260968261667233837815254457228640612569907371645199708356640826258451360911808750409619570985565650696859849881607604528818680371595746745192217864546720208675129414541226421360152769004187335278251240991896051204059099130315890873725274517619577208703832207885802087564825828409265204001624848627238999625365339561593235801333194889209320884987397185105114171814382308705955830420475502457437496885919850507676515706560836442086607029028186401615244240199077818207146994540277130087546665567102861838099099932749204927841888409447080012983563973214298078001801063014760728499433891417779911181481734366403899563696856766059126829099000122002615193123408317062906414671697739476677070377384895470279432112935763732249733757493853170225945329920637422390105244817040351363114616591039722071716251209168503012692876013414844688640383595103963759476196468794239502722094598290415063720831980536615286594263602082808909358158713770767672482534566735240047400224349500035374537950844052930882281596533401522176004172566271702835022332433289014341155242600300154556396288121744586936628367166707294557887182341663283334752691640891145568991012057951555343163556319860144509270369354330452437258767712306535733993697065978313367838034769156663475619445062109820784042606906326855735336133207297204309363207032047272032721526561117970741412331960628338506960017133017355346932230714398789089245610593013212845588636722000993860735466834282410732789922209570958310519794050163103635395874860520149601506638292999084341965512514394651476458033552433490046450878816005955885774924359071581488339625479906830748200667700414300232406845576218597161501990800791755052612694158288064370180998742096907085997274361662941468299753602204184011908883893819448503732425003851953631540018348259898212646651524113025651034009397754711341510575952184086537470565728405049018005412587915886502115925533114529655206704792758814356209820973135370661500197704302714387800809047903893287172593702566518136306461065393976085277971447360225861873440020522753145165723273929276692558716179582112499905915227288433727005497596357193917843115045090832152791455592942216493092525897880429697765136991031434117399312003277731454940415549600011949211789704483511415348796203812943667348876412784536720081476250547099113104184381776954145762830771488349950436685338813816614229702499673080197778348106122846660632525792832138957630323828905287073311958245188122254716116615269220060089224157943853638606256729208048896824367431953891071623847501331752126665342249997589747694904167071683524858248630988527213700664162354981006972528013620780605635569867006108016273223978560252324945058156338942193150818984705582032887450301750306366860081148893509349665058129013094981676571567563187640505761179144919653707664277303643070336002434267026641934067182142513693430687623398137028582116196904487080644457503672837818801689185526995631380474163675549448222385757094399544253037071124417995316555923302577626081677828233885108212546575513041922758223323455827843782473997247860250845985172878950435125326037378290980569752454349364580248819869551160039835043816604658264333460334221520978283009818078079698343118074211009784405246966857703297718007669307910169913840068700565504089915757612229390222968263693255891575262922018079911674810630293607247709506146272793534742062402587204767652082917070960090817795018940468425588811972254821950735107722057086569445394168891458654805091118740493002538093433084625631258940628250400779105079562321270761390149325002560322163572860235313764874087947331234288238748640989552169999633265130489033753315373590654227246558525606226551162145450518713283928318131780796330250783072818731484465041673980083735325797172849004376987277448839423521902036541756316604393758475562376381732418623835917907463294799699899953839437425637527277377570413996740135558372128792996864504834010746485316006799228647632021610214935067178630383089286713926975440011913969711978903669829990723582711567509513924736594604879555194327358463740089576023070150897004476067639022808182755718847684643936996531789327137496630937316025962797109082756587939352260123848761483428949106919896263387688069525337664791396355791467013981569379990670370400581877937479070495177928403245866821442367547789239498330187582835107057110881283797409072636140551476310277230963940692462722364921679008429022481175841335845978813924995860768990472690353992430552665144784672802746077952369616325183884360876840906230350851905913268130982188189911803665900762559673479077894048516669064463559144271508554223594938604066983425764341974488139506658536313017673200856249572138360718943733319035724327977216183348516426410177295163057292915151371920827753478355850352250491480637828485210702253267872866045246392883582693050935973225587490905262606105510949661805918215612609511251751741716020338803926905190446182759300368888088932418052560235847957739831039697249097220534060139963290105241580636728987430089820713409185627379760927336300621344850229920819506207180640442908231701688429151284339925282742645096974690632364276180685955659982526566367753678556877219860747315659039885202032872759752881698644636368159657007325921695536684139528690104506881477356098752151777495697070688533186540796439636525586098945423880996208672251946299645090228153070628959381217391767750610573698658557375661732782531683044144033146148522118195350548955871754905553003082360288107130981552561018225684422513896547825379682763417183359494220804349992762412810554285299710717601554739132461666743894471152494958525231052453550093794824671979579514948778444874875688890559597774108439751234964163956938244421248668432826655523064649361826762090341041034663790949904580882139576102186533863340249743549601074068577794479378268705536994688727399463719313597017864581703285060625624812763582868074534507829547314372707980658396130906532610982267736435136631481887705411728151292292645442508207988009891772339375758931625103876057256012382441857521089300891891092099936702882478369732531687223105400981777090274224257444997681238464299846524256484958582691189164106676495676135356146952377258371127005653386179928216246797895281402870714230130430263244531171558418637010934635178932205031619913144524832345261287734473701764856156740820602928698565934042117217366501908061329725677102034990455495684763306557015589299746173776135499918158776092519610915075423697419535987220681133194042906101468882340153453431353600878662056176839194768717854539898575152076947036583981574379353784207728241282064080983639853085281302982354569217321239688547767769245490194921549620131516560285848505457113095477112707104942093297600378530804835859775173302310132316225965428782523662239699887743290978892744185458987808744948154874310248306501979697192258521485706777273092636608283387274302702429438999973183287970388420704948762783491419750321380859293127752032271291612205800862684197805881350946661911367279559309419165964350605754970575585391347905766843754271058763266874094648233929883570651390847613651897704866263346334589018213899039649032787749771081654865908016047995577635487948644414681250629745018427597171331033854929205030807011022499337234676795186965440460151967561722887133394806968802481543030836731599249863137196611259304194344154352203479040191468376489364988971074522258143381694268597771292384806871759675974291921211985778381903297926241654510922873703036435790054219194742021956339839275824521370051128393651492334564874903451675593035523561679576459973283214455555604201541908950755517234084427497035925828150888444023853420866935368029396893629527233700522828568059690678797173742673620436122821742813094283604892358534128795036671514552121699713576520290331365937703436874370533560965094132210306081262586449385380484484691316465388487898665397097081709498694152814632613285094834373871314163808024715759186316706292682578071139893084893437300071840176151558671205169391753886945592955334290278240706865672795223176074656882930885490404892154284766915615912582204473587790791901326289953957189374735374101227657733221386921399519910260420235674573804079196576594532229753792456289045612716114230626608206372713045251560912029440872657486177524322285809747776293020038360521018040970434025596120022312140823097487091887542022687440361562605304866072999759022442777503868604653222141412268340120699680519763265993824312492434256870275131884221174068037896114233243892745321688518312776865309960785928140957084246345920416817588640823312317735186181161589293225042863683655368324721633649475910734684819332055771117197901624578279493471301130329704295463282139984726778615128286608775651842226299458501923242636998057446437902893679144302919296296235828363555113022527223699135037120145193940927717017598450148592663209179831356482734910744331437879649265039864140978075167942874866216779592432391260499310145300664020842024154681310701251711382836593361415257237365366712805924499996926999565896720654418720151333383820209365417755043395499884179419936150064954608801666993308224091470674976808256206757913034470112625149697971458235128239197734646639864858927902839954411295909790378297143333307589834691933464227282377443362247552857767588380446660780185777814185186564260384903990816435365946150657564139323614220570426860474519328105085265036749150630124594624415919525986083184303979189650735751741833693755817834875049996441739521641483607408243639773382408295203334716635811480828646386017329402180004950619007325500821796769213317778092483534815224062455877498775470806163900332076590697013870969687061600367234850121485995905328343645330889797123122332671712998803986383249450163352368194395702375271779828674491905870007253496869176093618937291038282510928422872946955173756156354777329814960335696242993869302922597556173238340713580623743812261276731094709647121586568874925489574114544244257476663894474110287869072693681387413063691831830438794386502998194556549595826591775320877459441434961656212151844623706881055640654054297201416533732615101933224030515875429675658289578827195390830893320655218851385251913704063068471914805448492520664420640758435007818456020223611779529325692793827418588251568052399167783908803510814784165900949405868457525819659914886866670191097843404624170429393993455825573720099966547664963099737008839547293835722341061460370118222712411777862376148229514328236932797780528399495771913470774167416166679903559228683061082794730528097207185834316042551730819792477484245368426482583624422785198305572721924572757912379944437528377113555360610999177684147196215747720693297601727777792598875111021327957243213131392298224673403784839059024447192391895783111122240759375966723829196283544038184613607963686707187322640933442605557036017953248809540550249958287592917365973431218152761178925420995327155412534784992906628853035822006014439327965770588275073098379757257740805073108812013206876054356077562840965073310934004232370884801091932601701839942222082864660150905067920103560423378189782588876815553397774437468319506799890847412533336465026060785703107393640144287491078740969974106849773262161757014448880507257764539180354729188174397034730379936953751703712163168355117580708608697198551647041423385640498448842573073683688531545668369855438689346172061880444160539814927728185520986741769601587698470380282594151810082507954790190480492945305592811831007088856606034150433481646797665124200383002934138478971218228673777280882423603462739014779125645510990138399828006895731132507621896324005729037373585901908301057834685919412832911486742012663120109129900974184932915411802514840285083794435161712879306427487051588881577355413323200762773044850297332205376830826923285272980669416353831529775597565314413474175659463887779825203108348139488489105761704998636069079674927500953182903321987126146977975712784473544146870236599538111225584395494070873400926005328686221106640139741467433745362636857734132001545297891007602609205123195512415037105831662437772679626382757377104221773683053936530140464712328119899743713521624734644834024967009876836992758397479517370819123518966606966620585729364116461107615221279813472983124562222516682327181338886912278307898431762418998185227373060219027768523467604582980530894978000047174993021050502475786098370991310973460235392108651311693856460634911077611097426282439068533532416485085643214620203338247717880050398553257417038836916678125344897956675261660590351107031939437641468363122046150406538181123723045339702099315203392990023341963638476722129585941127840439115335494402205429586396988206737371152524308051104626505422381028096728035805364356700967578672549972785151401663606729592467951114476031053614823402397272116637542631675919546052318881199738543359957262619354938700704513087692641422792900255000977092810775368605744897500259096975367379352116806070613360618480788755481425085963505352499795052367399619317883695901809196841725273060961787323215647579416733012269876968749651984038543192298525959683406182203634048108157888592156475893385001877573148668572671393164815649644056805518136497413051650414932731635982785103793257087840472030264865717210552976325166064030974509651323214999141824673651057656353912719538061759688366489607806328215501023715074871080039528465273429602734574134207557916898162890436652220834561794843910604256325003926246955420507815857651695146501424698006216281592132382402853508012821267230671325751411839593892917284355564265903018576982334676007399456965549474019727168531292990075023718166114311084899021725501627089749852536178559772528143851595941958388775244581071911403917469829099326314590148989022443962865115328999625450820957239828311833736821404168718518777728863034186114126971883535344238613728175432058722541793266739492209972870796314313588187718983872042627437244056533670715715225663525938056247214658368210610108262509234406282713121941552181240227509148749245262607057965492228791899625956103384794060488557764001187674619544688391814203559508785037495535931418950418029389000233260673751489947734421998083256318777256320097421892134022489654552533229225422936302944178619176912960704040090144748179274545659789550211207400822284363198487920924173169244073141163441625480227130295188478285455047563689604311193736980971223527919495219069280408554432131451726403636505513074827937608841993407273371960977763506817523628759510166258002292170570888121076823949019471450043317759911056358181598787291390595235833665294070253948963687014686010512502814548603673613228888247686453495055636213335131970384033244804590595319135576316998810256271445379355308090601735078706043526736966099649788685209760477722304902996594244412926508472786799096787621377554903488917437652069416735740734330052199137670598899341742767601876468907929260870524656547665848389577400356750693499784394143296868163146911262728500501744175207862893112747698380455989453068136620769849812608396399976455012608474726218418670981187571564611760762282887584044115063658100125428691988830110033460463277112132319696451257102033042390498663974070354250850028013261768253320948819314360258467079843692378448258566856626839543213234938115575286289087657274382747824833868631416506741018241765324089841188456495825353492984537351981486619122199219483510188301117682912604216538180798252935155987357645840051539612496277033781246096999607547923816110995218307558122143721509834504156636938639339336682630460400826124582985434739330641742948407109429033272505084843341044380184062551284148247403415976925558871741873946755082543072813094323306695000467402924271968605627239531702796417517839488331667854180580126649763725483491146274382560588932450610783710863221156297902495391837105761135548000684979396142680532741862669684506281208730092444249036861473327510991399191382715969130793631426241200506577076442966225817995177327350874845749210785222151640538964232688891584816327282644218600719643175901968214017192144288966326812191382697890302378762284523166700390033482860541121522381319034301290051399902246835435112482473884890303573774335905792877270369970125266302973882283462049520336842884154052971231408760311885596144257273037824035543102598627664033525607342135803358936900526890204477195604167031676208714681170325555175304134056970816714958802591023582387789520620022859449270639483122575646224640922997074964217081618780323096770435042380034229350663040165597403186021966935996723712921294474502433378441157073375323959237715387429188484312334163549473495699598525046743452168136339817895282415042928560779474511622252429223707185567462389716488336533711761951232268597772136613191877839650347519632646822253878761681037960813582906891552291216985907909056817487358020038207905049280317663564068010085022582669644708707663726502184062875973693825258540060601658463959892143504377323939261086240895668122588649457982614508486858233762624077933186784979799316924883408633629456187066803111822136494079908543041639417381089567925296343229076404403082568005616628659612319539020687809823474630745400996011942906982048519851206944895199028056233995505746053270449885474998956314781097680131115336189786789814837399816150107129153785881726544248115430650168893477530357755509637496843436155478389194010431673298178141812034416863750481046217792860185867361387831253628094356873987871948072679256779461263825550932309345188765737905363364640710619124784760920678358457291278189234135434669845812661996727368363473248459977988905935871843831366202534441971987007804934293958272441574787787490842192481280563893673964975322668012915450058706173896890123154542870065910788516303947082667149348535588786498954458042531239599321909626934568739263131032696621268205648812100818507892034228734913513788809386156884828785022897971314054095350335327532126702488221217126192175831623033357824301132312525579265374138583573360166977639818349372545899834045311145340379697916943462622890681295852142095853587021309135289234081830685524625934824274461752769490448216762543231244256217034684560341689057478560618187491415380732560547392237929270734071101727543258234725123895962847970797429351300821704420453599784939875575137158519517392385914577492859138506890974587260685019089832446104837792948707004957313351666355114908786561663401106627080807853732968552503096016102519147487305477243185271634802799795967307416992594132196754658891001361844661143577823311052961844579514527116361408033878784443822704700654347095191665362835422328898335064727279971201792515860087916808746387853026989234033583460415050956368323125907641395513131365172415737489340801987230494442054782389841193788896792497961249123115229528769621322430838178325152174116218229961642304228295281727696348038115115644842818523722108657467726336933502379068562609729026815628308964822696750601307732653939559101289575734941134376185455863189412946119474698199242086887038824823566219125967695619891848733207625207302600246319456376972566087307255144953711712818751279222849234762110664063314648135649568003782961118451581836390170735821802879831611820468118612056621524838138861289259132016140815539644476616603766207136687956801386752215581699370602045386435735337653134141315294162987992654237015900124060567159584174843722284828124088796089047713771320554078367621664216258823466419075579189516845911599007921511756013785750683773989931027890094548188259888848324953096080189468456939012169870754947738415144105990124221758569572492959856107528277244553561962160892546632407678049013748737202876495182109261308979364025622108482010337974892352469352701619096940141334340422289380580957176062629468732184205720643070485683378930445796265735513877816579876402219319454760097750747171410070187508976950772457776447781749637543230564677346674374642745891988880467317441572227295223950140932480533900649289474757150798170708636386390635141169753126035895300808448417374412071578161881819013369525012254974732798556382161166922094122750023826397500938525064775576702588939646084707779507085017351667981536221132612091832250246251092103788016679877716463762193202759069811768892145993498040074315450763696122394148063744753059554509821509244952032570927687809376280487375322201990641049939193403553252128176295694380862361015522128526832598705419510918354689343457544545571260157155348580625093824158202199847589393068877129869462170155490566964675826546020211724934482918272041017528361006609056502176637926353399783194692287101465756444326590195869884429142797414621578035307993720209938425756320655768130144914948964671279200057989211803919183265780926994118290374558282050320409735381945469049716351970428920792017539124381447959263932692894321281552254051225914141172579365875722103962908099859891231875347168761918430323926343231056510279386141338678363145119953779239561925702686554137382445619106128815557551927177296934811943269651276623049611442724580971914200746003337449660961600138001595881480466390594675281111628968830697560006891480969871577054625608321822331112575841823566225190020705577079691853336685993236857676956268991972246534606498224110995405882384487586505971891348153350677058068865295293358593974327750959508068468551527785453534207635107003235487129902903514714456216553150513379129183046736527603009950512580938215990108748336131444489274540638850037497845375035389187406030907272577749240421849694803526288065394836527764258665127029203580337862381517297650098719442298634311227034290589523701265682266641758443680164629841672136973507753266559047337843138026420076422513683116125544630921270664064181007052928140510530645113193958677301237113490306212461739985471303497235515950353711478208278298728221979497463683417017240174133691158364699600453441917757756135194688374690608250428479426708015144393097586446826907045009856517448333525545672606381746934607967384306231868880493121441318459179507044479609084864882431371802342018734141539283882416071875464898386436740182639640207237055318266880680385129777460732407404688578153102097651908293645627009812606175820191034172894248874779485509214380083032702972744499686147000886206333120576959051741133431071240900647657496936180009994079804367987741291539337307261164600556578674988643303065172060701800039708422894684685559854033965456665097102037060616965689036167011895521170184260633658567866182679219573540748866238388923488005029212295121311941581070024183140138746519833503487734425154007794667639670080839926671604411323737890729728458079952878933881258617791864928693766005076461778095862288607819355863828291292507710522597618084809706327949885147811257259262332672617862985176056754492321108385493973208442760769437745158166235648534401406521961333553529828359913601167528467709641571232221067091696992697555933525930784831396246820088920159731656248097346316198432502005975876231396158659637255850265814543470014495476561283011923926444993923721725399727733140041607817326013251219118822079517511336001171286297627778853359048514589869199923798271810396231065443972796687561906973184907499828968434289584999609737468710747427295619711102997307964491353636257858247824771383577467641466626301680623824911349001755270212885799777341988356566447495873395637123448267513127772383138495526412785554554676809754809266737887780120956019169181094545602837944684422230606436827546971067957985811808737018020589393321759360984133649641108135605658393920802209194370506804543224141733336979320464485395044140398866624797798603309113631052868691213757938325171018365653045655035627498041209630079098578817519059565557262415190874050657869641886607648757040112148636130875027955811668072033221092388190198967116080167170660166680008811568544488421387347789726363400644504449320274224845685046342025000714496513452721620396056627229695503724477618601600156098791536518781741893618787844414898540904527328906331397304883242959248063127903557864802428595714406850087613540365143444336634331820327372199085819741702385214320820366810758361554122729081852954102425230219065997039260189516488975263796805432273547458370978764165927255060218468036221950876367050679642558252471832673083881197422832405892058389045715124588844646682381184998048087015919116647221086368693668005718320784047544969773583657765530747246120852504178606066068948925380331458634258462227903357822728602165051657699498055369701128783495395864617110152605196738554663580114711164929052607230792599264884863657099978813754620094809804680847012324152450829110936699404023280679410888793603550547964980416994532075942413038883507466067742225081461682651607076791051181560270622452169976698111081156769441834135069407203486126031572254206578095409088011443004402137758159089084085885777471601518494435432774615938380891511167669757259832993508520893029465804082158641872260738807463800111400021655402667399718178760674194359063893569438928222386255591427768204247474331609046687760480745771973120309508585198756615411904259972078659088157926607067350695850424413374243422580181032711075294775770310776885250950768479185077999801694297901414626970931602891251501907534960485288658678774367045796698873743673832386087817689960600848122605564144767549239390367831167325283260263225615357327568626946520279873396135132090751757599908818638460042747483412139230793747875879698999014000497034170710887126312745399435370110952337047699450976290096813528345658918172790807405118964082490591553902177750834273187130368111392163086147495846578797481884204454421403411195720465175516935192668476849377842838612454749439008659034395495105100271992144063839983800685057848749464697830852956025452319894456068237228223563395200249118851794471924210307889913621034179013552262833027633283529479640400283552526997928945646805821518986002168989890916890637492335423084800182800099648778944088703998855109316616020559070739283447172597222623226173155856951833000083409319725823030984619796114219672819104423037182059776165203386774036392439635313179347079393425970598454551148922727329831258327255475926987951699106583271636909369202432693061423540736826215854998062036327384101428806291349069760934108021640500978245808746210337235155336247312300879719516903233150395768590531888880074607018665817287522498479835340703711881227030432302492966962255505485285794538126678781459605184887980745162557678764148674140755011998979613236534741729646636347962828011072967494753537542101257421160562317273611512787991210726894551649047970786481879665310389627676801038914222987145114143407230148185662826001590453003742101733526436861793388489883392236657377685326715060112069471343314284919461609895020684596199338338479134765902643158854499938626328239120937176389731967108571021528242977935027970887926306153285510944588413151327364874031573568929356783260740148954153487173777017557816125019028172982871419452345589905594994823705547627718644694789386583058207769374582005756388852154368676590158665461794717896520023183377511622709269421918282554258100740741054635958080438566901949925531602629341545520038058506476336499430216824714235158021812869853393405725566897562552949729164301338327929513778808169865961147761018991884872492152344871801486394283439785182759058163285887252318565915045424216617312242548148218543490586025115947197158532977400361548826506088445724806806382475235578255466669138193120335021649842681060742282208356692726385857416890760369473264647515710949175770525053919352905111969576122094393344060868315556980089324317688039785486790516130372628715195831179769677707365675229797321257775962570210250578821156240501181979178443599585275666042579341949654793011403240919013037224410721700212092127243895173259006745103548493128646251118608556436944406075354959771037239925887946586559790167764742110976982139136857330159279387319179035093051341787083766687635006097391265322815581868382889297526378759058132876204500147727167970402628645418531138704038529115982902429179132027848268345671899662473922420401217240354868611919556704739724478969655278722012308939692573974345772566021493788969269238620233693742370704779660148163019721425277878411704121335454986335256281894478541324380958581836805409938543780782625498670376595866764907300805976343616747748057044726263461812990975629429612691230238143790531887410340214412216124251956389822040477503825454812710727557118124804169114381426774926987764900392884442101740870241776588935453519023385958683203014415499500878169311643817700236681223263139345499247017345917481310394812295904455571351633556710286264720641526293381693706306927642581849040651238751416473017615302248365106429049745608576070632031385389008199429115931135111094727041608483248487584885311575173926306428907564899364577706622715219347832356705266161876424158178160848151111262775398211288537291266744269124909734912006487960174027539791932886445683465328967904137084712916714975394693640317639267686283504670650956390634710585069106695299824997937022070906175414455666033671356063548491017060734468336026058325598109466828528741584695381690665663541281198903527445488866001109958448122666085108260471951266557816256477879285541964869772513631974132007763266928076182823058469735022775502607006502081986678289010195137162306392980540440147919163173598577258155089478757390030330393301157829235736271659891811128955995853977183894073931541114577983972748952166505977091196353600923350558994129145170919339802587093671999595011412790627647668831023661203213413320379155644770644890003010700418331263631224591441632189081120167583727560445001233207597535804006433135620243598594928255632012047885222348194930088417543512006925127775650038597146775663269035626669457639927142474824873266685784043186703919800614157836234430651547457343064254723956856532598646136177649576586405631083985414500297806375947569100377782091241503350352748404274876022154090781152136302625112751849061008659731345619283060839310370351216619651859937918990128138796395609289847838201392555741564552407083741212487847486534451918935064314393999008966503324542069389775971880548167804878301174441843990471356205311911960667266935858814537266088056424233321881991170523760357976991670958604305043233408337759179784600297046967164991146719715046351872264361092169691682634467493443965683684551362959332881320003668240813388116760721464121451467625958870270266823286249599360556660567611843278811869516402637006782715258650615453524567328275072561974425440790734477930585879324006001363705161034417004934570827188097003313228857129560347289463807688156410413409850527995847582122890697404494220091301373460504026165366887631863670370590548493677989438209702199001174482265892928778877592773801828615940528730894252698826725380696440854653756725448804567498138622351051633692096831821225658584283092090999430674317106714061115712405375722900749305593093775155518893983785072009417214287780358923605496397401693351390838434395476291281555117937809385146644377531279156257557743097164033882285985216938602726570119893867925961787302479224747011668576622413322435276467144503651557817905374936522928627968807247079845966830753638044784324364630970857319590204437341759238352882410659793433620602014260698047138157521541810474570515031642121041491251905681721201340799666597933726726182285422521937087873303968049946761339079842964488625033275388783950189193634555147852313604857121026144206742011901341994536013103949813019557717864403078407497605454356140277751803249393064194449614324127412471765733404329034307843756778600488232029530417360928012928326872806173585669802049514442346301356002249153118379975545690031724650067571652739476679025713667249343992941329083267506064374637953991448058907861407065517529629709422417181373993568927601596694233247597494098563211034126296627822191817540396885226058990919727177727811436930126454940030234203734068567281811579577979874127230193528830449742485149362208350828562951873269600023720013204296046003637661716100774966862323418072773127594824434924648208419250979934706811839499398004467218604433031366220453283738417511458171094787537967004736979332114523408161462384229413271892784268915023223883900906175611542278723712381767170077287250496511932254000044655055462644362515803711006613040727166525036000330858391304167135238999422670541172201289078997387973157953870488029020235548433559486726024501076192999139492593943594625672223001560473662641857740172724006412874847956415457131536785005650600229887678146287205333614249463063250866272686921664723089230102205078857696816799695715911042304086866794341641519834126689880510408741134330773424476937060874514227051348620662039851014703246109908928576599470172409711821721614672705854112791957810112401920035298345222601942033315396455700000197110997010287640690774826894382191375963664747834484839941343486883170878719683788923382765544277097045203928505197771207126942191191459398455659279722272861391025939565938338702835348880892305632799199802181745902181294216972619304725595211805351993800642818374286077265058971152207544369879741709379997027151092287217946841590983037705219416603137351378377305380197214206903058510104455452514418173373436415534507669523216288794038550350039204658133014413593782038165016290338749647861723606748591765651655724285091338167875985390984144140269163490262426255042311690967998095475524591316028420933662720092820584520679671209080735720693419961482456846640790889879664615885424912322879007624174677977109351429951724315354466186634263707554091299070387154934301346350479972460478742531258633544652419935773686305495525463127390568695197707972360809904400059817178997453608299392907133679940907808274941037938303244903015411735656884048613971687365356245929390716018082657085839830463436160718644566342907485248961524955051114297999932064813463558566469671802584967768907424061229052689721184345681012342770664249296860889926272097296581652128466864180479593047273415297148316120353139219601593452509447573109183820140464484210622765119797687833508687251853428934041961869071466563739778142695292985667124901483525974603264693702068090565720058414874967520862980498509561163892286080696785035680493457554643570885438299388256471496321159232437911030403980203822176285246388552309417917676366694430899342171621027994807455485772436661125501378073608247018840320916037071454425121834148058910445821795798620670653652181597767051499769267713051076017613861475579363985256869866504891738912179744222665270909842733903815646853997392762816466480021662650608009863735367782841172606863464653217711526715645552183650495415523906850822362429730379332586442572884373305218745164418890781975167019989839869631090259009687172079315131727622677073230767638429098091562746601185792618460897436496930964122166252806266094143483204129848428798494360220567926093767150075988760880901113623598366337488309562755570734627474047568870674873590758414057253386283338256439241587797054433699487241794910722288951917677340226195189524893137225489141366529341894861301228378432450877713406840085534259810694540243832536249818240200221948336280581316774550876573205382089882066917855352514363727729431690897120621974287345889599120298714291460742640092805938131713877951291668430429548352176008424092084012800617507821422045592870778343183397629521433390510722834996461480565895866405991712983822618620494740649286232856688684368070688886680906097809833660169753692676180879057372981987057890332262867804763805053771561908163909300432785794072342340146003217178142998537621332713926605234202133196041038339623132682556840015852911349646249732686137084440538601899783017866604825005667985786558658305464977429325613848970291827758806541035216358446829273348431654467933896320736528057465569364948460696673943035372901027714053953820522812128019598260929366657375669494566943622915654405651184451327497997547165913090107309442652580483565955277134682899186215031064302232624309581836226305346930835652354344067737174560419374008474292184938704195565253830184814512004408350116979602566736893839553092199996617329691198824670405675762289552633619025761641640723852786465211284197160770916670815509569354988083686846745957945313948674322774303491636544204318326152154471541031978406469029358866573062815715306204423581741630034908523963148538315754688769790765494585603944950239251998641796148072195443445002968757246258913884853175947172008091646836366287525150695409297281447284347165089872189902853938479777820756507914307268085467043178954568097776363864659519930021687893252931554270192768295971622847526910911023220536989905889374015102556640046192192119002281907799789957534234440235371395174776056783181391855276846421268180442447960762263787020627055652829187530180162069127541651136569094617375349795214357384243204337295648686481873491362879405991172644185688732185830562676785535777445226659161420260912574443022390317536978365038706242552966326953378615747713403059453385619222602403715257048079370803466912080952585061749447378781418517532229701280135689284714992577287637976927567710114565914162283519362526673846072702651310418947645515109541755804670186401148149438033462490043491261439831008777483676065477367924223564186763506570986880213547970913641672657364478332565183996057299743411374045874644657035684643602079875911091275020104335599341068788431521775396035829058528680120882108184187329611080109702298096116291386534244478532937484451675133256278838644442047875018848730959322706954028621503701541413917386167731662372997939609311650107730635102527763187979971599835715767376543485190880719876138968071832581303617850585647095998192423831832018333899391370223740098492967382639304740099675844937998539410167884562212774716164038922715676356211942670122442549312383715498570380583158960088047861014565855840982365554433185742672026874452994379858339722302017432600783838996553542463511746038368575816057091308648403471774326209152942936637909503950976136378744997616847540890504805173930647318100504584940803899192684782712390080456373018375622675311244125272392146033418093633034574402947339129742684382059330657714559351597478317485860622602523554394252040619959514578489674128767592377775838782675036849668992080145524713297148432969148180008650779170187698627327925581519425945251955416382031069545088318820696189444357232145752488986641659380700673131385118305678791721296886024664559581071941992017367132232171307028661035896958634347324439740678002175019498039441341005763239816487332588972470377320866700059521097631607876143440614873526395675098164735436037670077023863685689823217684522539418083373774253720249983417316911740445071732969361702498067908886632500904054040959783159757645324465599068983944629157897543315791529339072427268815843225670080888524814447168496793219848467045678952503628650321773758997654084980847084859215230743239438492458182853730960642737361066588961825033513436751297558629526819146000127250966815117006398552257044305519312357378382094130689485610376577327196901964100534861003861349174679677213559783654500330980720209865943768500854419757675803937286332134258495069963480517846183429154645362431795300962259913640829887816119030809468351132859508051318407370367673958160714544925437047792645521683364019963051265768635591431285861409804298198769068782273902178343570517982365077843618648203197161152941170712008817779657972788393066005009548352481491422272508125091333983282070231858358371916745310996041400606799816604638128061555706968651664778291695869202919910793896335462029235173736196853933391774268895584086686116503785644673881582699733016286612096874355955995745988485815461270859618131562320513797428525023155044791370370381245050011216529496062988324870044601423312040542982051285212309875788850108720503483176997516329611539647297079605776270924599195188685322785777389183731084336165638084771599555548505636141034218105154937423318792248113562944663487363516628543884802064699440483829488432614213184225822988631435196748233488989644609877848768442179037600678646308663751802657796455610310102608773123668670784929165397533565861841908406927601563687609213065857223351014469766506424314321032892376961528781055414339027859745074479342629784470782537715322955509497681379280824295543580335572090168994850473121346546520815703599213957184010712362378102674485904128239585988226772607894898546794993881593308446925427847373811607301469502723912066034126721340088625869183596043437493991041935045422611061724205274858157088917561823257989289644313820383009333409046609522518355147669819610761570554460198617773952295851025356033545078875729065300224660960927638409010667613999826288316250504422025735569498381714810585146566455332314616455044639050308504751779857466693005188529808587178287291831410275241076178670746219269479693220385546913340938156775906655557561971038473153084146273324595063561365833575324048829075100791463460077794233739713899601330672231196986067169091345978461299560994438043557339995252469352186209787172354968696395554883142888680271706837237594660127608562057579844963292979507573403369334592771177753357578757492286411377677809291692431154312610564142040694230434401528951466204534599881430681108574822723971196314453616150351231299555399239329209563249506904466833063759063498084941670796739927266498065913629712975503834728584540240826533703626895359064025329264625362953929404367837525398263979081328225825155448297315057066437233251943310741968799492356991462378262559540099791562284000687504296535221849584842520055794202102208658814171159696788258983900907531913568687886105117059198704301782897014097279618056315960171053751766220089070940162150032914331643869113874656326922367972340257280518982638274841495470083415919175186155785260327294058514951255741254069651494334602613578249086958156844049385861741955075721256445415910918309293420424637285080134781877231690639035193590150304801488406270359371572180893990121890886887097107405049345255889451157932291190137514143744953313614874081725620377442341426518357442685967576190505512777340157608756299430310900718904133255000833009790789479530056654542610163347891314583331660472031276724326756500437385283304415896630381896410807789604330384589195614900428161328191215393703244814179913546501641361851547224662299943807882852041388454924924818595465885175934960149428518930985385277795460990480702310325700036146630069458684450471132025844648096392176115863118093162252997750428654322714675909791493825391669287263108182788528593344481611369145555382585222109128721563832243599203340920007492882797099050074978862760508489433461601335713420575621982235184307361237738964067971887643022971939485286333053022008994956636285070989911098320341855665426621452417495739188565519599698546030924809362037824431562841766964370788555330934741324875648553705330211144889952123955590582155419287422468748815417860447601932845056940218114479270631888692615987859240028935880845723167841331582522872421894617310605240311499292413717528830728988991656131874417212101373731713974921154923496669873882564512856699092550664578694510837094834703113675834565076229845033531640506827520001857006267204590703465763987790227596388057425814157232929566896953669526540829596568140407962508553053488990333650355133262923964658821130612929273598129671422150423301238687521294909071445425992012972288855404842352140703305332221010592088774635692234507237518099501518816986585332790124208303588722449327909883310814859236388037074865911844013071808393560874162935697881133325668532797387120526957094353603416842166914420849363164021393807854494909097321123182084925096618584315572053082241704011632870342439091180320453100455459276046836503950117945155510383199329885977965914599063365565453371666258348604531827930153203548263538169464696360550528892059427045864411455117360715560758278838261677872800842868661347039916040115575113094393292373050751746310213384815728279654320697278239581518445227599303817159040208350416524685535941492537271347250710092885136870664599575967713092789625606348174794620908959488557892609317509696228946598681945872147416253798188040499681297422920431113157668905311370524234465097925222324865511389356334871870760127838699014600146507538005177595226884618177465986863014877232164168801027932126884515735874826107906570079511954203427916989121443459895749012852765300440893347727891441789265931449041999060372836710870232426565628734228115781507762298495794232802274754448858384935291152123771067630218441460961106985519745654718601705719555760830753231002321132385236961473256016801602866557547896170922035251392727892948909146240353720278606280291474198661021692971891998649969827295016493628656784031032267638805506364521523804822541531701623536574139412213617982977563527288264692544482254947720987492993230045555264417184777146783441930829644326434591647152341671115289736854482793173573930522273457632301613825258688955956476761623124318967563770153583662359560400700979463887018862281457050611047594350820496991276157981470193531830284135782551355918641384943560044552460004135199326911481634336911346567389729222137193258207636666743043942679211690996678852365649821432602735739733215258188300536424722823641608164119872966847888060879081853068439751811465167510831412771293386571193531840428770107200942729750680203004235649862762572700269468905446201195462150941676516035375622070578794649041965032771012115195435403601446778620370621550784680183458168105660532168314648707387386602418861481467757551566556581439345141662961333698611245561793833775109488501688024144889311272189884873001601539628808485725940596411626790896257001253963421838314593654684011751160885183601866545722387862942384856689140878585276871332665056316549441662477439236006826228368134195693648504407148875251471004063316304565556842103534860833915456297314352187612567798904183149367328433661373173885551871858091011849507698600796667418405827770570302001982627264235301324212258837166514602492525396669231584419619517033277255627166042922325911727526265012592011880538773990278749522480365106919997470410867984427113746419476868790723588594856581260396696330764253045770201266678702574864102611526572364677370446217393260760924550123972076658192312723876350325637603559004625262132911000045473183632538161796104305675377177897752006647463785988385896733635180545414155402399033521477518554190148082251419052291039424867066396261393934662226256679619671180461119909159337130242645969136856727176695783120187729442102720197455803553775896400468657915520775269018170241990670877766346173221935093485385127071043552935073540263209098171959529937307621964933585141433928787283872201886138072415757192256650425283670817668109916342641550123658471734925435221985946796943206257915145483715754666314253026065002673458486880561816715783259694714595913211389703679426890574178924384703852801384982680773469252754463855888721261468809187035713367284942795451740898847105184627906778833970466791391249804197033322283387363837795400886747554457457817694768292231834163980544207392931727784540269796951106506338648041283097321191334355555375026288674172389129386093389709913361476747661765351220546479331475433305746489916218977334184823723438336653449903252799822714717072742579389874314397615963405576730912248801817173230738931859530335640028885175790410956147155747756027226321733599920305052059220910565489009445450085640046651356898568087223365895767466355298190613925208258877473554496491585418806871377080413404664157098193320073891089882892567380373278745647558690626707256326624103216248838886024653140888041056245895142937858124850556666985283969285730527907427054124958338401751637163248685284853504155258259673164255958170173108420425974166700209246096105598099491976195875242843170181374406892053515645110994547708998912244919651195351708788559100745221104199070687728163924505006040372457929244415620130532166220164481786406377650826579423700470727406038711862862386301978651291751509366628773709244015906753274967352143465343736289156748273262891036288161343210805327477766798953349807130400976271255970245174049584275756291579613739752023300025203807479685500742082181539720925834187964286406862399461545653728746337333562127889205284371155898832212496944574118754886147718438170230624491579979585625184435388545078457007051705478200148424015490340013889179426885188911696192409972355904729305731487688652318938535381410293939554567680286982285856916037993481933353953958680949711184467042040503376276388822759243557798870333227120067452180143464498241380604629330909683901687651918941855262820333098974743556960795614887670347498096648393268540441082274302287372970618318954955815738867950174232277548115877474970115594765853203548541702518206585936852482885597202485948111358501985754802061160520260077411433803434799487132857798973187661117026870974263931796420681057608696167163780806577216631912551244294294996798523690382963518075208675420201427706197167809292779774417527847074938295569380431930435793455927528502181167099805751038717081535739857192855231955651802621910614773648129992370925184676416056005404577601873919945376098452246081529703740756250524787397046980136746070930158090925410593687389681408230375281151134979087279805310769612440592462844911361647810781973845078574130989504918981469439634699402780016964821814731984618069982546137685118195231798216305838374091972021463928107800262794953156786837540389444004189140971361181136516681016709175132070080481160357171642566050064866221844110971266892552160899192772358005315354532241940716261844889664908838383307162927960001481090523325564469715726808773886831403283646999147409460391538391401140955624729197475043512411882723878790268420037140323732286002012519882056781171437033497727158093400208933066486962731169236369571049732934000510922797248358282887807414142710622550388466561349061867855104041125091121916177860656722591758283035367450280940192560514245772528432564185744605504355749527690049075752119131583549916938597000421731962867585957124180541223778820587261006811653724422343631024419932471556750564976803941908735855756475464599205434327784596360843431602162202381968263017685080553817576726764283317410409817777952081367279407804443506601634320420733418955917747299667472116447590790964957028459677108803910606558628928157604371676498771614893182344729669799132030794972549928079983462219439320570312386812621154759375748314588823874787688850094959966317801398732649617920524809620792767426727755474921218771635737992716899696924133597288268785533419750934678894145364499238643221264039094039978778167740946675520586308924226739409632075626344306616815790839382903263643896889943328372351481551111912708862601447967352811145013401648121885798024541403678697079956757549729153135154979600262399403581013520264030415612322118104671041766733270234978708202793869098098826084071240820583286363265346545630964655342810288109660674505288586923582563999731291527810332425698446743640774281695534134688221690461692187368609227938710195718191732955818978584660235379131193099982492054498315662870923815755087498252665079948705995830417924152472770408486173677512916908963857709702908090249341655708541088411903762462767248537354306407022135726893694644502484675833111682921581864166686336621208532762744363391111340400842413281788687393960200402137651625308750413989006765425788182580230546283481886596659836380766771248936814689776317258326403612308685859470713906940163202684523920783096334471302532132159436901980997337162384286265948117590400117109587417153731545435969663559312987009794369846188111234650568004102516664689755795246617690492500027242759731631288475724214785482134907107982782373643105492958154901457239816649603078785465797016071383160947828779305121819791847477679059800377297136166315629987751182608992688733652390016307874966694387543011990157900237205313289760041442901951711799576739172016818801291408573639644859778938978181070444980712069470029699103259406918049075123561388924424370241616584197803269942835282291870288444330882971531138579940806273763393659291571342507404680772684596308061461478167646510584764992574760713391685505083426851808096052356276066874485719868931254803961608059393072036754457709388265908837941414476377919394949887703072585155842658820389256060048867847942919673389266806513589508098317683029804496991217696595400096245576369743149903817916045239881667213672961626002165356274969131649265461393357930948617688233303653683481430313295468281173874471910562065650483505531665031036779729119783890704017781633980757118809805868772485471263232702411042673771563438417611611648687806796671623122869591524789335562250637310735181690531192493380910097404628497504779269873361791126460816950178327302187284852352213700009351528380755140776889318621409643786265707556192882066792747999293227574344161494775654628933960167425338501992396500258848923375492149097622923612376998970207246482918304142189498237721388486822901890028055837710581692944689702047221840081261553438388580625027021108719932746106953629506780886372835904409673861233367219768075202201441437363614784652608004114330534640571300112021562818988803487577330289922178643379652145350620256997347689001783857345319451298428883029272483064057011811871890466243873531215049843267069287151484000307041824656322512495623324751822857576487103101839389144008006295259520847049415483982210164181359335670984678497100611962440578802897668573157549051441293391461585346033267201570132543472726240516375946321750222182553380191463053172573264855981037037728064078946175549725978693912077787879056946322387342487987842217975472279791352247955308788665255707443220882231620658587936601064659139767422640108392112039921552196094565030798823678154578047449165011109880780456382426217844000147108806626278010042477059605279274400287452043782119217588090909732646880546948083586980787573667033302261489097139251945006506490438253461110381852949379745325390762246507890798370986553492662312756947299861118809391121970006997420266589105536316327116371533183916251972745764647112210807378510283055491157315893469121870608925930883108854440528459774228929616974891352820067006674993098976541329801742456262586991898500134406180445852813145925902221840633124892090986203262459475497095106545452698397147579683823708772696212621793452536583613623047446305861131228014143995991614719899236090269259269846189182853135926357773364117358028499459804465952913061415899286592401638841029428361924741483177648534597690525164891249823219718412057073513789574980834362475859233431716558975593474125182231080875993615193530222117791366996945825995984916345990651819765987105831172048859280582651748299614231881830023684067864456560402093258403472768097245184903003734735169288145536307448756538840340144577995974339522664133044356602100375986618194986504417244584071889984507795245233928514289880625441328644465613378604364541176623914090508345138197075998606844328379501874378110505171147565592478405174911235832729891153689946780908159482348366077843247731520054557970593057176032799969929366814000815672086818381390638332305746465970456672422380665782082451240075822874661195856531908235468314678655221591029584675740969064312167537926884302300696331902697504077901781067556937020111187277663646648978119499929949188522191156229869154112416399804266642953065004620242298420976119172523453470175450359445196657108784199095235268504929861653351211396159657964411340606212775688678007470357195012700931447861459273483087247821134653750421991816413551103721484390558430219417330841056937005215716138938629313807361740518011793625790757765446058230915587523747010548389721888582978606955815970974552706491807731747956812934614175211783434639396520481198623300785350106485406336568057889896304765419296948687346100340486963414543095929977117051748388636903898223412750086820558653398688742947112943940402580559215273700698510150269995222594645322186563207000158300283811460632362899049553657574036121238253191981123181752884800245637272093945424992839266884283292898811175190516029263925332732820186530449898752485314503653126993322927444384985887511000454361961340370792381709615873054458157406200389368999676152163139829822387521163625552541173179047862085225868746827433646990989759939565958682281360598848726007868807262866965856974277229346898076491368619077637557548061128494671893722481347578381095564383662268037385434615427819397970683615626176964004235348246457578627019002122009656730565599529126159700849502469918336879445771049496336033859870963605810687814270403422899373230735720033423952760975105136390435526592741049687174751533191481759509737248190886684577260706256914888301159545640553978101480110680317033539801846100494021415201327186350751430303883661710302606825986272104271909531852314134037286939792070782436408751842992739982521519675639704066222960771815386984245082187923738802203272923095503131763391640247363089691608648903584147261142068312071936727210315891964605622043609206552457754913435920282221811908719198939730168336852126107215152082600286492620985248116420680307015334403876378880708099676800771633644977853851554893664412703868193854214609924253251979007608623197321634823694880728393368607757626256122759942289410054416215365324226449338176770005823880370923204559100855506377895395773973611803292168998118032840424836229282691936137128663291028118491122389187486128349698753649888561418294183367700012457963974329961459272797783465822233749677775434778436950972887432174074004732943248279800156412636954066867954600993334242287031211830263169011630867667868885463598223113729862185243584073658497565095415703980546737464335583336665900926083621751265442928940100843610775698470443782544836420860949450893108599958235049465665523344830227464650484772481235711013656048668926208441494936226930556829851318945893092224538787793777238770356208891775142951229823707882196606364278269679566716995601154219321673928210443459846136381840715691544250756025329722144568315140463978277745965133881020779501047896951957380125816538930725463394999251905002146553026440669983329627393959108113205209427665024322021733707640634731811921132516301498427256623842187068836910300749226554144260950628468147078382954596319826246275024290009112758695252399260420464317345374336929316180935947938714602892375808786589226581713111804876118104282752265565229886711681413837118975405819366779549930375605618681087423173122220332921573240180283636857256453738670983987878848723127173768662063093343878608300280936903086041993914648912241845454166340674011510522712621233024823434961418724551166949231418259118330125802408072729483361809240741999806759854632612309701693952654127091970509971193373967361097505868719792444191568738617312345560040692194028411854153399850607576193529967835205787554800228496151583909907964177496727444653137927169129746347797897789207294602676500790132255256633104054419712748407010322477610772511895608905912039837004762406496526147559523215687188716887231171512240325658326732331423788965189530749298656635042980440067108673330948242375288569548988916196793162487120172158997023306574625643339578896580940450645394094938967366301103874008965289865335615467690060951705270369745307664858840452641298959659336594515819956085265779591519873951200630196200415161084970648049963247020969063152277914860595332527152775564282242147834502905011212127766957164868313232430429380158109091355819302939482000964595598256486314449721249939825098831095769337384864206662446440710300637491890912623579700323890663216430886346947357221556689130600367653278816127705858467183867906598725574828777388326725068028483948660194239158980842907136483463915048322589455826753154400017612462216654591977973379453727133967566892277749574587339509852307141937898949579753191490231322370043159625869059799893642587228600440567995056353553604307792680250683085681775471060615335414568195887426760648805808378367303708129339599977460758634707661618079684431910910963116500739044425048574888504433607307645655625497770113334189484390839649414888400158635836438723568767420074744177813086179421380257666826493328213251803018668270327839557448272008551620833857508358077132120493207862528878547613356738620393150437482630967140789982625674803591201129375691996737341517106363095841569434019224498193130051098454379772441093308269929364726147101985132996514019298054484362175795807006621937671096757620643973621281242866251766704151589415941809841626728017840993739204034117028287480685620795694762734140998492720780216038012130314947141705583177714531424657363977609653753180094385224082260446621513409003421096737299434328016696448095347395197332300767819712537682293486636654150160986875096791865807958163169203951852874406565219855022068491134175031467815016405316656097482626465353227946577887978876681496023298541923762763322308481229069017205644027801106585526349729230434734453442600736284954690983431857404171518105274414210082256810790553792572930130213266379358510769793534093577954565996323018536590629329172668909751289216922363873585255365334969824492393300532024791203332641821916455066677075710590538769699336156558204530810517715189109336805169264262955143386830974519145809304062287754611821881969656425884413815615233737023575461098312942941426905552427669042724980654075792739714339855320775350755712211893122258907888764177287676635968878254691875776878986391610295527167318441131455875801309708454355092679679609319938759522759432544513086142246885128753681163910383759123187454058772473496262498087291642887486699373587329076233306050755086165001470718884828030974824947866940909542237603401974683852991755582583348390536082609470086429780521830444340705436550578772533485996206624746275286050106808049521626348190624399868874373848164991574899411373788857278641457363528541211858809831670535391664356459665566777505636886333390929421902984234139700384451345418740410926437741668782908724810072121008922722962297164045571333422308815515982257022187797748464101961800023252656821532822100371108651808624226022047665536005538414430329102949052517275100255278913575025231106350297156815555282354522721459368143191456445728659466060198480464815216904010566007943254689807709856620533192759426454637783208355952181821448289211284273551385161204110925705926676255058730975113313763299337263555528984547124688073997084026320126340007368521125532180119252905423625925173542111900908285167022590992496576375332065536924069074671212386595010711384422762908161628147805063766720679974427371716367621756527712950084942033764625776062518644738712473633271429513924975384328744094498327276281021928082920161914744920253972560423444968103243746177028633241394341579536588783497481016445041079885892279732125621868018431312289447299874419012453616549907121155986486559176385711162679662426043425721612135547151922397682737837616721893463910469988108823632321740505457458556024684424873915258707538599816005281022448805642964424270930542939959311865198120260314428289703853241306093390956530113558141848840730171886569665208894053567612822275757464068063512870791599463414928695998856985874971392957628193938804027632433499594873928823272906967784481414283150711526520653309531513778030398088785445481930078599695878598886177881174719337100940589067122879133071396207034323350820925212891624020903041664185119635765041960555463075600943322038522334230274141838278692416284630385389358442760063977948670663311025164062908903346008170957140943520174196446762507845743204968267100571920088399941540178611638958244201118981816842961516041833316973769643082622479590055371029808048637538910002138150432244718636955157004748805410595033933556948882805059746701902193037978771717022258209290212181918771093854552576166261992682298598304845348165298923652700946737302326002668757164140385850339326678538574995520207284488299483682308427465595298491048636858199957206337550208431265996541849327527883469167166813021987587226487824599469321810418781119556002378923174010851453824983555829131983984404772500231505449147245762175159358255643053078737618224103754995683304778847562577890840432600957835749799602826438848566340120816157250237975425523916357261099150943305872591967126973014400970633006471794354391054943122618155452544789081087127681155942816558141264629880527751918386218616121749621682712703644240752184493553527180950537114781339258132123769526672161861305246043230895435131619582833623610270681598449608031803734857620477492281796429134636456904832359408682221717000992327424165756077102760764164908762962253775986594133308359736776408567151813616230307094230380954838283218651862868768895022355676318249989721098824137551021971705751533629102712731460904606047664186693715621161180287108253560470039218419855502138870740582776845848501854784875463490536464722717413845834936837171823970973868458522497428190968293404589604093807357682640463254710522426940388310515342963121439006219978771561020548320145122301555963078268153823408083003089181202992490151458482058221474589787340063007389081816674234863631134296894949865670804690428757611387410504229878466402613864875201842684253490047907919072893122473406621552528835871417465194120095862495715269851141229579129445859275147000847930373354076049946483836373876807117795141447751466008075733478792109487946245093241619743135196596668382433756531145050064630003152699419507336665633757205130166660427310877936347980304951789822141562853123904743579614649961058090888938089319098524467484866548417959821863198964680923694645543886078904364911989141577172293172053061477216477002387264383309632416703819358406065218568425839227633925109592597627638111224820716748101202674146492981993605971949805376108804173462729433207634502783030103564238124437937527913475458614081021901642645066159028475040515438937882406550406739859871793713474380271396244696041439792487762916835032866257389325154215256853946534979930745380329501394826393284693326386276473912419433594478479104454213042554658800119132581097253148220780446065031027249654100736348178059108782792946994030407145046414929976711955522444812993321870132543807701832947266707528613232425940537837120777819118028997473517272049639228541379232885156278441123372357782459497519675279787854736392284050123698457974872685324703980934657449886799437301666912529970211908301500911708928422430641941691918512456439763529519641854901920991067591997958930682992172479100459296841079605953548840134728828837469253477148958185156171312475257324048510988467146700623537412792731695776898480080338610575993619499030197783725330469950926025616229917463041737217467908900792657705344025419961432200761079623666947363952322717995854259792231059927281620583216439893381559013217345272933482500351209616881310081174230451198426990738201252053271622335622710984401992958010713297843473020537149456692044744257676459544635804962161007442468317146441756827393741680344627303985443317387946719048265920773474381517858746947245317656481854289028317440618667408379151143828937555867470350787838920165777252621751340718252807531973666984537533505323120717539407838467394786196980754419817718647572725186190664664188239237657284558046299883638023433729746446357463674651666812065756610072657147163719155107077239380011779695727516485505175147994002249324175634910079229716861067233109460633089163785368968480609823291978747156199265269900070962553563735734756390237793748626052036024029629804935494514576011162126860863653938458817102548174402289415965307663601703050957983748934893672005726233508891147356387393416961398078424836793152679516184654469834217887781321596080881092898480757939473251099551425162912752366285713675662341345639187954819762528988864446507951185790813800987709937199356441071102340420239318191929956921091187547401716039776436216310529860282814413628130220585860178479341054336881165010086329901481126244099424646471609564775894064163528545096732364600873095413153213314146754050765565425563557317518643780643988831003940572260308674756941128743712373051793660280414120437117776498755340246152272181814895546006869792876073926744379854573211710939269691991733313342262312476224762717799410674017265328906125865033013281829122521983793621751488244673518950093964185592943818392564388705190539161551110409915546928943387503877380569964798328441047934834462646738829685945894365423989443597125975891434640003527612257701912756748932802698246391230885962048778543837791993512772612575219707144452142319260125893479327682923650503766442826940163458762526413574680301474750149029518527708137216243167218650923520996273864616785561551777967601234436338975872741036600847791211824382610631638566985893377001761164179953873941407725917005975789440706762700605845333368564529389923470965618700836025726039250820875953711111431457231560982170948276616159355161338076459273976427915331548721112970945731840992901462768341507036178392063279676109872508641650632913202264247963640150094949862489062485366612591334956902987874081485946341065442749874801232047456409110505654266622167278656634595434522530212819537561606397005342327274084341472862595156792564273389513647012224281052035667699095715214294555296815228933660129641388992648723317640568391323168143661468867479070049978402170549501186635677608539166503367709316732799471102863837211411866103116475710720791329755358527868214161293590857679981359748850513373563191024152543242497079643378723868527779785088077625496976683707644489748027400448734146685667401364460382738556956598280721185546020603046552173378173044147622067408937551688869976970784910326307829216860466861917217663348979533223811186034807946711664153765250699952297692816303617285295308225201837764646123040630468750264579495415726736530090838483167023598731687560474884466649809564944029068501609441433944707419386244178269461971116531656173906680117897985136508793373786368648650258439072458723312405387013211975982368296397617863256977671922651723967270792167721087479527412127344894907237946346655619848391234378613627161769972671258070820849226450842039724919685080485894166721510001521104350843878163511988253539441031674152278214842968646990772890419282000649967611156275727624815728739460994121997651905217374648954655622125926535662791302807150134255920558854150701743639008151026619386996326411967356570489379399686294414295895766614352869457273711022099062760226288488636242452953336706718321962578459824101807639765814071392256145598143821246803209784858850286069028438699005823667229963423584644461733682847495210657889727277256675257625440532851589093956211002913829873813312779904909689044141701289351964872622117343612361302616649761933774772999685889093572212847931594545269485504205593882981899944011562048011890326533945261544692807498121439673329074330636581775576382129768260443596782160170381680337507884850273340986880027259276477195998671034554184720376919749861197145268386560408551462366806138741951965804794840207173021819951309646801398799097673525440312219798230177886226412349227602370651773985350464234524795715806139425808605537317088866607796664675126211358613233011207707615497367143913272120980507949988617773564817934003792193430216542607234239528172463451171007183770086329494454985172320283067128742786973658384228682478042518082669808947431524602610422059439491380308129995877172024234928812659896864257327942241508653664078077439669181133868021178616603091618806859605157777317131764892652339237948027027705355170060855482833568890438283751889576623979547928946786465378983940647299471621324543540646446799668408827429153746688779698353095261374093708058004395359217978218874196771225019732608137492524638469586636502068140822605067646104678294119949654994883021814306419910545351591438604946554300736538574722693781105465888701180953197928915288276737153599531087299450773403188109364980022903514914813620689053381987452921141648824222819793347800089080216742571620927395002533099942676442600324633993379618855623502844600245731816565823361248206567400245975486597189851172902124268466292434797980757012043278789194110128783062506910604856865140212835865624528024999646625206695771535141463990897973640877661454068691824696276251584361884750796141618556206558744050922379598195827508637675779588783027802170185479469435912363210458604025948228833701644033676594960047028012538450800637003545854567232620896064735544572327996465147360708028704130995664734255958220832499465270748738804643990084415081904626295684286692718795703606775066468029425902285943403434995100378850865032887676597742854442569331127228396937597139664607242747653379141834001868939926409940030178817979121258193460717038250159114922129072057056301906978097987928718671369250333639442618303594880039141755698613651452339350279705382505949373484537096626750719043668483109046628810386668941893828465751272099809101547920093843997927275577973871635428067394269445465700100535842667824602345447972788223692542139284997544969497559312760588820714529042029636883284727068056401274966589054442144790046797878873365572271498901306360660807580820027455316843390741311065217993370131050707428503897428930204861780107903746935048193450151207311115428712097792147217275504258976667367182467848998935643982619204774823032426313907332454682006357306605924907018170595335257983474909951316308675588822183354234985246274039978172208696767326593038694949921391624505861378098582605567972406527857659237826894091123783480329492025247149612252749727842262768270898146436059364201487002363305383205289006703310091124308013995105839238949749534695474049292191529064146334913215804341702190596670372723507825181404421549009615695245024290211993336137604893175886364078546564278128701539778900050000054026667234165191638411706598948146922965866136706495020970054418733819343022568721244285822911873272533940049287849499924242407723840332527002983191170141449343368244802438434865186986742808550541964022229351110605177001027226127998076037717060291106433083098971960265066923623527728350645905282923285141288993487768520674915627592553109031137316471470431336736206712382596334189906244092112843407020353065131607151701990516471529318682607781929987170234540201285175708504002618692545352052838102525566821132043300306840149489556396509650784279694344020839403153384844300656805631120216027831248887496448823450545774851766542208385794485221206656868611834693353814813098470000981681327601538460039452782447066577006397427384163936765787890376280853287814458847430730492236325183542923663511481930129843240799166174606842759080562008653610346450772549314778226177279321782537285563403875678531495034665161650920231806951457310316555653561114468216719431788747648858050020923249082411717595823174706529302480034376399179563483878004318460495703045456439876579264829134644158405987732580669286124862054769130928742022887259326140389381294668009291635740355965947593308838285256030781113669047555881494286574674137487287093467785094043693400606198384074804083823743187617017977667108242081488469650781434777377649990272887640019316677661840638356335104716129952489439330385135798868858592614855979452671366306254311034625848936938290360419223523307984460338256833163755632407501905007344481024227990430292776490372741440735634408062476253123427437637092764629162885654475078033209925829541798238575096605127564650936287244279575811389624051241030772695549924865706587773686975396346219322542739685415732891687361463045240097109584234062067398670763181260026379016879109236315072545924265694362795270432505513087210004058888292221462248247513253987521223103354461136853048780480255326864511878627877108298314120340292825492291464281492197819286114328113199980659063732928608037152870267320516053919054130091133530621681996634571976982499432670423490199505231602745180959560644887808853769467533014471194503694117053593419636793219029083119543579907362504931801727625293784686076769820561638093032855261160115081628852493194951608581267535055255004597906516389866220620007317489610353607791411374155460603769721644731251271092129546556880893448731102613517147459880893593056631039165102262807006977788977136892320028826073702084182154533814684720142105911570373846310084348518145008732648061790548238807252184776095310707537284448103876926211708089410839149682441283119886138059190798269182927916531457212502857681897495021160276518828048888431144735461780733407316971232485673352622522557696543742658811164238739273068549045414704444409663296305015074098708422437787373719571209668127929500856653043873413201131766793042795717071566106212191010723666229155143724060330670385207662903802047872090625905943511992538574902272043046586556054005111630244709354920332596852297519476588870613729357116115629153665316283844727902550394576211971441530442163569737145546252538898779110483049663045729339661169303850666888522237418905293063832607897375382926281815102214230691571823694308704037408475839942944294100815823283892046544171017847360684038957735149227296833874182447068680633159270209952231449390010285493774532866513402295111056343813825346180084766326750640862624755599176772867863332805791223197784768708121998020813497846312615918581531264122278768697410431573714618754268967153823088982154254408088182555495600728475463635358745715560537014621587647721662218451730109754367636604935975032160556326823883594314856229791738259803808977264721398754634735421326847283410149544264364813197412595137682564748920518440684779448659544894778860273852523947023617604252966187385845773627619388647200551245801035099402489736644366795114471188101876127077564086657067118349306836361200148373964141533401177551445560446867292637020469707742689931820039783073321578200298862940584540053180655842555177024734674557410132731664506306272818367382793302302999165640388469292904732543034373404329597919656748409183127131022294136860112643438796842330332274916968199598801533468623252253161454228003506264522636858721140965348620068809541912196619937588904243873585168130802746327816673162641153992506429760142288782023977377729184366468804637623237270529930097611313055301029251447172891972412585072131547415226167820062875680875758325217476195559050139089833964265135243682799867199369275171960426359520047763370485330149515411454188906235279305442340745472176152227993931937005958459502373236295919450860039352801094812368727167550319163313053628951169377342545272063955533357604264090738833841271012011179015602346250162998445446104821164674233026562232167083536746925267430290383823849031082029368932470513240063033291505824744280994904790308419970607583355114855930925893394216169575783170066920740782556146740502254141275130537576361679395794036668445819479014400527910726300879073066946216326527656505253687150934447221613810615916721081086668511675744558844867439325414305164411537843988284909240892026592024340142623121821622434499517112563269694352284162754414389187217379513590950644887424687213463108175506908665741171459564537868824280476764109019509518955159391951355618910342109529174153711469110227512301149094654425232813253048997038983606983049780689711382518381479781330830974120861504222878635143229365921843361756352935059230817622539248385439402902962076107811757108172668491521610985220597298559367072589324973618077735529563447307258645291368914199104797589227943889011984541539251591675942854207083847007970908100218633617387613318428178476798969578137613794990956776209245694061953053348163657238173053576277887050348675651833086826368399632886314658195592575065076575005287696525886523984796813792181349715080538550400606439603886913027090602684271902864131311288557577821848342697513603524779274488508391773981087150899604174545301669510785308491020006979339816127635829466711195255100165993543707865384311371590698608778034705579631988089400765349512685724250703395976643797247223590750239140827339201672200598155950962098814547531615884650873043710922259732985207914684759979586439092923498283867846878999836300431368390245354200956311762928791916464915411387791894743484814657473924845107373174329254457397421767881207061489783974784942408703420016844240280860170993447661903581138976369516823502397566829079213725411345916902414228712534506924179027160158217108143685908406504984856988355070216535917203693446836770690957809599845192192475555524576978492624743608634667909003212683169118494781101640171586576857988692709567735482454589219063461677610101119565879537550944770339309364333232150195520692074221301191980888672219909617761577736457448469499822489926527732857403191531941770628638358724584642020311790388415839536227115595805161116166626828379573137292929066440757870566219654868944038234722146272243876981158005953220312332752536770216088230451242758680219897401102466137817846427323317162881863252865539423019104090064913789302807345231506882757889292169873815838332745778813736144488145057551676014290569897250425691648965425251202435913197917429166268243038674675143317977627314123065732225182191445919198856212806978766560086602507531676251178563886889393797701101001703829147707645327532025942956124953977764882161598773342844442015966079385887402513001928299725977270239744948458794665239123224799084479413285214502428843290841605053387585186042416270234317879792101584973136266094379689777336788132772701415059326980778885311403719917433927406950078417088239556498073780828350451092634548334126198234585265591627273073689509235513727346270169415438158099941192859032962791488890600122535204977923990697790048886190309130788030212684402969628672285585481730469297793067678845260483164585962717076626051839760096216924368604366509980135400277782938445253001326010205409056779815099457918543535209129908982293950839307569979077562373936222227262127736527122120541893075831012369617149913282353976336684241944240278955502690478713134622236451468750373118633644070300576169876171399887709254273483903981360187152758152554044623775310328180789512056992436999443215653199101502747876586431401037849659059837358975429626818511461811000027640469285465761327179074754986833023483504968017518600946092238606766907215591253231221429582557392429702192269995897061401177605706400761188206594666338303504135148399628660688941131369157155856748040343735045810607899640209221757172652333853365243376523983638881122603166858556040631062993182998935141536762115808750481187193228647305066299173477117491540274675457899422953984803325058603300024812728087076726068061984281268289486020633460184795742435879426203305533751715624641436910885698528782704485033410191345070408803744430615322889532278555232854664488630091150551984055543548282974161300019827296617619294623137051216415767419720875417083139705955701912421447015219320111854095575575481433002302750536676697805980839244878543991036445855080095119780872273927012034649628744096091687677508316089474402502951774699757544971116980148860520495552903876676172141699023414901208179902149945297443515936935257344069426402786655190319155037359419928172617609391812996898117192145108647576159688183648602675055584700648612277457817347626464363812048788464696773514609352198681469674572908614245891324517833740856824429670658871823123448545983393537166037529549039185734744440481311770781923506939488174505934088804492071580655953570374122296300272571008722644264619318043155053079735031951507756815295837829965305408439589684883912189994524947461465419669700791520010659133108223262996861958472065265111037021222522609644700003813139660706399362155033883484588009510233234117007051393607486516464028083973239683940249196544636809632491522414446331026972900083948357491666289059414585948468914451583389924010759928878068690402671275111277905239237240949235623526871412429203681318601831361302607861253836171465328001078428650266911632913129360778344431139449679546168926375682956416709054054041665667997716122028417276049682806162856706274727478417725792206191948263355701147978270640392487468516869238534793412109341168081453220994507039042316667841179850170032478283911989053106303386713255669977850646492050646090506869403756119773706631868195601752672224391233234507241314130196538888959595653586161169822598782213063663534992292397820570126120718557449955758258888307208670981841242963026919423634644253006781668259196548572421522797034323289820569584323086299189564849620101444612451448481079176241340852553402519420250635566669319757527438280375047429780044406635327534601749514940798080332772273240048054492373016485228347967009732438191959400171599416710469961595875811591753635684464035228664738707420725586287609398679929437692017122500157742138900699235246823608139944045721334227249663344029623480359651256740058889525442959321076174620483087761868525726914809334956843128686383452036190989913289226664287945492564668348131326683751885265554986990004384856159024477723173620556065981213435311111490382789876941277207057408150446616361792818685923014607400591636032500943397968307538717996124187946654229206700998499642864188473405777699736427462514610951123452039037122656203813984317339594338095940226196558429256347981255365956443211163731785922536753599148418215754956937865936689221495125046512475914459713799006200496227236915340841287126546710022364210092004527918484576181969595572526693898173652967726916173638374419804437664250489748056264244389922749312544484772453679087663473985521526195260855226143410994364169528097406664630334611269411535271002195876371009681592834651972704861273865533363068806531284026527043164034646105923471969499829376204499072326502823783256916362692314756952931537363913516428779031680507693217128461642796449327412357058925243113629994450951700374924591599464134757986470362154456126297864906098622010109659036924360392999714813963295928169840728597561576167379790125118596178031435208513839275732407390293100122212263187262524032874869509600437414737014761851093877758795405285416880981929649378328430909591456555608991737215336055268161262329058941840640708629478515293263130575821678329159724742732267314617801297156719595917170983135853230248835915227704475648841359927042447817744252753359001932912414915531185624203901524234723441001722162097891865482927036230869438778105899252788197527766065008972820670008033050955622462765280786521273559803615993106193667599556357552287757143688005773680630233185629427676047691891194713021388923239199329644267004937810550255694599228101068499207167025486166788458160992242849908211906535091928270155344779286793793765301251505954566722309218656082316324496608695139300045015795052674791972758805810977552509746786622422688043259438894860392316860664642797817997045135386423734331819546371840825761947447892388993526017135038911257894614968471350883480308608288302268116396718270248882153991986864918510043511865822414702980650468718267042366271841968595751271478763459488382426396057974609871388675183336185298090827277931656747750199077104458900359743175452332363808850156029014372036938174762034545453968330467042826793059412371134972261593939031128524775502724034940309494911470348078033984652273873119482733940561900202954075899523093489492601228599517157600570346218729997020871204113975573044224212816241300263824460654987845063696431619390388998998702371109727715702213480815764302610023439393683737730219223503654156916237995307991388204741196219417892346128949290078180736586014663707005881095866147357464572511671391612681274678409920795534639835823168507315625247679829599170494041360362351744418983872329617727391916795225821347384075719016076250673353214924078704448347618447880819996145954551547890195350128205110604780670274031175179509424530087115842183178028392031851487438224998593750511359592480900218959704115540899175048078878107575980368158373467260447908387502418779015880408690215352654097606725541501411835440057837420295474495850916831148088630141732707719395804315172408971740375060149768038669023749284083115988129890714869986406602178906448045447069378999950064418385894331940202827936240105780116022927010955710170346239704831066999702734186820133709664739404862122961162821341145147006446538777944380031956995855617074351223936212493017878276877140103558270462821267870465963226625343291174065612545579649261580119917605169888005037400593432012064173890918232613097451345562459603039515454987230021461814015051570590370663166876456330851107390157575701713254237318927095972767723669542503418600510581406069130961074526271938957992549854691831049761511247595517658645420977546982031561371312564916054811737944915363650808167742007950422770000375107251965073059768129619036769216554317496149340591021991444630454170958400247812368637873864338425777453938990778692572843659240537725203723855898155134328162722566359410173305188707626095559735455906852730180037283406764001097014426676042399916654333741764357227440872495899818741388874016669988524678816630536220888820889191910092404116354267652611979561935335610618865090687159072006026394122361746452917288260670810089639653724478702200688995899689570426535807006260221150133068834540874979795214851061102451044473252487390297360412605446205120989334056725876954555352142963329506042567556973021120655909828470500158166078928767621704819234743709118059091206875142245411734499032758980211992419462184574476281282773295478408052886506888982857144397188440258446010587694486495788037114462520065049453277673472672249022972405997960608649567813808409066807486103339313403530564034486516239904875552484482224412301005977784296556077026819939666520231980208493180629461533771551326144997905381266616392507482095505656694798613355877621519227213220069754606455768357434628606138492969580322572282403902333451195083961807839231720646817264527685840273917586912603793034542310982049680381221147795648923331057109843259164830113849271285827079806805855424102872568482028991760629155717496866975728328683287827319351299066381337619051749735178212598117422149867978517486615053309648760227338094509070232535638143310812913234905574026536610758533352073666436776585396366560451211837818821244329885285488638404010048425466978448987611966668380110200858103460723907860495125283927093797769519586298000175646296860141447422777405427581883972063715064718527795922228471076866623464592232824340520528975020364008741617139739739080978218184607329498258050232988683207308949631256507826216825337696552582720069309029019069875687443688055519028062809928377657256643047642517516159135999585436806766980806873646554490766895676051373748484262430780855331848403267443784431794452335527705296100685919308432040209131086592774553771790785313185095946230074365723494363351701744996222716418835167734577011939266628358160027935405669017220284072658998096110602160266474193130442188471333749019015035037043171053289569503138446501675540004814500724252412786241717723916410291934394178440329918843635018912999558554149333439459557002185264569298876889255016870308672103840428019485883697075801963931953934841327874217466468811264130590500304101991222946279794509026315059462799962002538060923702315337226030456262919231453695113603327606600854192268316034019747602350420239732981968782605885733464764195150104328196622798197195056354397088185153830497000289033451218696852173982019589798354380025102296180050081173660938298271384087080113554684954027158238254833329046344414444794727331800359022614448436500547993544274063142204881420371956276112615117937844873702443127907692757380996850267352669261961166876208951217342119024164231978561259405139817038248313618229720416654735067964085034689372653047006979709171663183383217102154971750115568942578124478417147276004143139662076021725512537472971298208746701663432989070365866681967590243279638806433824012684626540483152573129280204801593759685547934828882372499989977279153060960110095777568596639090121750139479046646925833078227274254652172557691025292610231056733147302076643205895628085946174919580789248913456890396468387698305403445238313175630253605393663877395691543654879729071461101553833763852778015745965568545932787701019970360282587845011017484934795032056905882980108103226484015139666478281950987589698640807111027219636211071760999334592126654522646914568383777031534464210789551845108862239079607392913932505060222646482297077630509149404341883860474949888343004297107397160587336840352030993178358221725925864016656740259958662243371481060638688287614678142429364679554753985139750704420623571054243848308230408245115700751089827922095378568967789293247499009574518605792280079432724643505802451262611650095623032007064632390633915153291140798451113524666885298586556745251507272562799762276877393588893224795777797198957288107982869922454360137902590672074266834014457765207918817999948176708241127948891335615525948411894505229329596930694538899804490820373694471153161108295912392884048970557710139138316373358785837137511946903184389062352640028377126162626848900377390520325784033479771964924549140846392756352980226051543584813639255871436390566498083680602427082826018746965845605562888527762639751658227398386179542582047761364493242616332678832119123655017042392467053172951895297940549606966292037913318797821680637847256311672967001037390988723764362838808576726163445044111079132536767385820166858063140795032303071727536669324712455239236915349370564023749106013694513443017635875558516445067929781457492261241705902546778493636975885844460428095904678201130382308486558035939820674932684683172129025624576974214831110605118536859253777455352398293741822036884446974744771332032738772773058079875164469952112249439061084168680363874333095372364469076949411240646172823199217471853604102936534945200009482770654588325587350072066916032551425636213907599322591568065880945495323938649858390669323653003706459717146203324436076157799353455272313469455557442865355136864015555448981839075433485146111041672121573166466793506325480082141443476511832562121116781707839101781920100372423242110462329023605317458532208647221153436206627100259244020312592428910155910621002414368005292505093614675917408260676224855322445815841390976579212195920107261603525178395411235159936862348507421825029328369675441822863936908043623216389173923836478812557798838870787867205834744113000631490809229040007985577318029048050190665016192402086423232670026071660771219947224911052526550965247390349962142752112185314567466085929222201453526727345320744379043378519094160178123673042270841692858134882504030020450807689300060476984198014763311119244216321215933009617340583208300764542488229466774348489502245080903815188385520157932385173828531420394834380995727011329818564369992437039633563814835601033145417294653149883099572488299139404217244475799526660851647338043003919364542197928890440144976595625040824794319283785345399068171747583953452539651338083990404234111222445930762649487824653180455156841204465590460492905192315482442494906136078967158892467601124824944653348924243624032351932728422959070216179223091362250570794081772100045577914295567588688679340569199599911180922321302067083870378802184326735674271055385616992056001230506584134563872055611212842108868935133129157610962295946839390908334687084945501051328389272526123281186463891702644295686025284847301360867712853375528714119646048924979934610556376570022430063441855479954068687191291279434191948872451526193496306939206958427004906946028529939753633849148467045545756851215822776358079242429921342776866189956568288551988671582060660880621749403610764013729774044054900671045701579215392121913474931987621055243879786263048873183665377569513498053947429817827218797664334531150262066127882387162219152596807281635101431038070560228122429154858722510909750034724402824724800006924200406780617502501823843052719261161416120578694527664052359064466158938624287627093990274076353393485781230160078087805212638008056667636788915062602198064154363703441428973679899127603725149836593347774699728712551650539095493490504022289343231718606172303490638082910004832085681064773593722496522590090465388849637406930957544673519864671247483059154048253432824076390434307591748708202060287648445567261777746341733764833157113737449811049440740319944269629566588103938661179726959679181845690104247204185042392034415184167496568325661764232588852912728834316133172278458025551238484353871983186799102190864209768655401784738598416248042616112437157526192197380507302671445143559109126683062999551137451051217244012700203864565123980956635465206094045165393898652123299838462625953840411713689206202586623080150572129891785245890222139660332939198128652427847380279515487796416584610407635651126819229971925224726020057379196159829957018038885997840407240517229188550825014711471933920329652430710972808888139984172574253280260629191660343721689753137671146357277258865017322748487025290674274970731006094776443914454460619286369240214592356830677905485958368946875045814867459475751469417581972050622975834728057974087893525557133137213397864852875096018829478736959178655185631237195655464229155357485298046629199471532293145979708409705485658851288001296232134360489661688483009281576376648424719801629768973879766130641448409146597788205206708515070579258916904399844586916795086683041481623255786771675467151814901429513751160161619430903602993525176166302463786272969589144412845169337670903363993896302094232011816224430210987730734362216813416970411009645698516366578908379321381818626036104625550846593600455773466570488567924496311389791261388049225289178399850194268420262791917905395545938780495656543012293531604550033022451741948710710978865979503301626719839798102149284165467427260010682816211951522840990026241792081032763591106951416501731341784959892190998142285310392629423803161049875733400536306913307560991122851169319671228752646082950800204771455231807308311636550426645331209400062710044249259067425676291030361248935210334566623138930416947374689717583932397044078706783055815168543604477723408638305681940789896702549076937389280790805881308773674733558894325346116260119361336133928476049660632481463608603721630133304115309719465427222190103740851929196773277246196657944208572426492173320056550726917549251312066590647120200335397960935962974047357518218355669681087601461305395151504988195858396454045060371477371666314021715338060951232997398637639535936805929203335407613125380083781751815063117160160256818465553423536078404219165567141641696475394556014898153103945126095198091033449573051817559165564524523365643762203260625191740473521199218532043334355723474011286367104937498421583758805531884902167508607333284826738833006905220648142396753245623217157902428935057253674432404205325676607976962852036474747128492652690233943185269358140843846640673090992444846621714747387826325108754833194515688003188571168117838717418013652899826927898625154588895936786059155633801307814242449763995675300682636135378750623574385419381015791095930128026112112323778661409717626861807923813990134022132192