9
3679284373472729312912783974451617525942278341261351427725959919651144351174981115947718113993867872395393791891395965775864241837956585754633642137584978483464969696162533787989638926854979474324929962339936879769244531577998379265388171757523436779726314132147655462526267499167948568971964729264295711441456149885771777138944363733777712314283559626329913337599866447567875229171692582714464441973628295716513661719889225547444695424874424671642528449974617176517884216663636677529517878665215893214761923579231161757614125513724199982238131146121761163513774273261273175978688665661811987494619626824311168914369349336865325177757987193784129944856543153669225923622988299292577129225469472863124292921839166676587133969145345755936927814461928611896899233686179651331666656527416975898166763628642697253894444922511325881242916155869148482773833864342356555159436439277244436792226251785289133665572295637316418823891399292457914114666375815686755874793838627928364872362718484761139312164854779146162132969325337367362646913816512625719632254868494658348538168319671542646122761225948789596427385337382993168189674343392832559872611798995792648173292274339316466345144513666463663889322232768482894343498134281458378381456294273596744636953898625453588196414653227571166445295649887586226672893549545979479833819557168716794148981577494386456391116777455758556592232551185624615182727282936575686731638299549157228837928565823595568366221115836618299945526664119835446447829479288182523178587469914457239956874662724919768584574827521426912378448649614452898178831952442679393166926361539246137113357493323529911546478493894615928557877218199143578497686945436271867577366269427266914498931537613359985512544158658987769623374698596957981386149836613465792941779474972999483476136373741834892727123212151477979696759732211272984294398235931889355237448365544853172884377454389891524359892276373462788313749519661985764971587833999631884844691687164559518181469322311783142111716151981697634546576533736936196591588458211545991543716398898547485328948872271324685324193836574986788565682623169481781963419897365121588648745773842737977746573863821674447924387469156729366543723779923714133768563134959682754929812172565731577688884833997298278375421883829577464746926645451377718786968825551814595159493528289157644334778858397793641882791614368691166742651339484562731782116965851534679583539885967125135721195246584441584463957758252723632246774128166512697361286347599613271571377826966692718232882743969816833514119669839643821184379249832962372337219263454342667582454559676718428434567882858615731174932591442164411188373133696513895954977173413421257549789348427811218715955286299844813636467248358927413821431413684955591214937738568739773614872256695615897668493266233384671785344793283847667983695913268246668938256338195782931332648362828611425858756115398329473218378148179653317917347969816125742645341295426297821516485987361515948946578187778739267755571521814717344153719571387961517558549898523827288135254749899545387267118299916618123396265197536242832651541191893121646146798312485549572671759852814517176886123567424572546511591941746334736173693939173624773766639252624221379672579741118374736659892212139987135917118825297851739831933822634924614496894478441423415697848229581828398635578419649298972783622793531393749578442352248396568637879898152918831966168988535387964942757736519695291988831348944227473154615454963851643666549861698794253697883267221376939825864744158218985291913849322312788163557277976475556648571791868664818525222858384756684552437293474325736819638912651895937746983313686266128918953942434198685716173678289169765167199598256726332589317294169555263193827388911158178786182937443643814441232245933791418691235498668913125248642811841689713241817786988592254234398366236449428196784523637959479295727251183881468719152756583493863477575664699469464528176415571727554121579315241583389729266148794284131952475413631512417122899118511696733363435565516396485285144994565681833478829449176585898386523171163398271914811459727555296483598617524594874917889624943682921781432872168448235177471727718787729887192846648154882753533492172969659722386181559534776115112317261133269767791553929529929149754667862847417461643583375368124589276458198733896134361886787146953486395967346958374252729413997245854359873467284598669699789412977292288424121371237986954894982619617538821857869457943422819868829561333218994738422753733728691446578878567839771836119461229153599467223895762844444369371275434369971159636719144479396314745171957162923483486624533254438935929615696934261822274479712593884743292785292273489726686625993266575743252367595467815576165381827291496532279715396734339646728347377839846815334897239984645468195767651131553833455442795241939495259152296478792146295617791641155969168694554666265735495558562157953612956222738381731375931225819179255865948777859866368379759656679156651336911786312138993957525529165187777745375467267453293634641148696369786223938663972235588582341866644355457223491614152899923899453777212832261121425594476665519776486568664775616255582147498464992558315671949655112396945671159284924361364329728938522888972881182417423754616488339317115273279419141325775213926856556962279298992132597927319893447932249949848952281971692579713494628522495289317384343489369599959611731358277895329557473422297257331245952641152896634774973798429334828871875165728984481751481313684571557952424112448494441472639965911695836137251199434451423218797767248851576575516842873983763538152946982538877552638916382524329592199232928763724515123263694534632545745412683133435651811353615869333753819112344717887722972557478554735635759928796467454518345179542894459251129744379738452958883962497212113976483256181275164251479181181276815229728745241564591388396322892294275839353399538666395836995125521194828247981747466947546957399488771673372345882465118783422361136173499513191236635594735961862368688548747749312751923498484518467211973557367532533763599841785485572825542284336692852735713241687868392421752392575557127331499965885925989128265629421144262968447939428329135595526519836122955537479191993442983634515916291644371179268492581743173574182145461468384123361333531777976268515642568879115128469437233639589944189856765267893844446718656549747623387794483555998567312865838598726575712967456292822918581239191657227413146555647837675587486452162893996652214897544992641365371549748213323792356645888795131165928847159329553116483253655659252835621652486686123447692157962154426369598956568891561656453556997533562257813683727783327462151792938253732199251838149785989859142756128217133114918876364349143127617538331549839616242655459561131884696649622572294348774628632719168632583629738251828388141111116868816267139844925644548558548125995421124997389843287921675576866498498788515589796488455982676215853722462819788326251549697317781152197378255985599544413923792786895622336813452495745947295254843294336896131379733225844359633942473952555572445656148563425528656939174511644198692436768221174666463723876165825168624445443897443715981697278563335668112281923383671739345282414861661777869187344396129647877263228295961868582812414466944759861681176252999279311545238594579537543147346253163926549489735678321535348753958349883721683149861912425289475288276447595798673563714312348657454187736285842298367697811665219698361878363572298866546681119169775862777834934729353811811895773259316997391661586756636616274588319888627572629174746417825263183862623379429237581221813328515792854169891813562564543674425983967454342223557683937295525914218934257478623372665463715395525417822558319637782127488897247677448693423375843144771459163829564423544861354547824858764936881212465832756289861245891384871881936497562179156168647666843922994543289486381886641486979371351613812759377455928947644651575544725999826551942846698153111454836415386831834128567362651695176617935517599889646361426584881541134584232221273619731378657791713141463674571739613728684253232435452618954137897269127332533675211279965457246842842564627874484411395849452136129256627313532862882365218492913828469988342537515632142962151342168967899931682243246432537569776563243935183287412934177732698244547649146455184276574235394217551293197631238544281494923323966876276738841674972121392633828515912584267313611792732974354294584733157668937996268265489888245598792468159858455152698576389838697733547411345749819655273165814585739469583967947892418614984442813749687872665234365226614947127381248735971484829331871274866595418379656695866798776792268727157763728377663232999577674545249916277915659873162817674837441221748437883769955146793185818721894636214478364757336533113885854116636963888154876328628995471889552937214918485826777667113171924217837227955446113869469677678188751362966591191476413368934732596633727466465412141257148412551192363918545875978984677417561561787166918486882579827467113258126722393121698654535279879184995556675877936691943458335243521965623199782349433567489993243248799998865998821166714684897229989777553942733838498767147757736613257542623895725691394869631271494248399587159518628113866873912426246184889748591391576154354585998597875648587515551156471717217156733296934674228334859831541345818126529876387198474365319333793584245922548248175481919833111358752243396219915454444327526551315529648258239664987328859413434875748653566421719442316255587874347192437868948981992426955731155754776552335113113343837399394767145578792293513636818637557922725173942952391444133785539111372778961155273317599876228139246322917912528838588356868679674194384974935898645469156712568857275563855334988434428888934829436971156578866618931717591871613291295652446116998858698675645845855329353962541425275933485979354775511795958989416997135622646913454434818696435124736287441931365697878637271671944552385377394854531493119966161415534951678943396224535521125965598782658542751473814255256652281869133766942178348554968533751747639815498595228163459213476549292963412252673468694625742485394481521735981226986346611748357685547629198111798312962934759517159711619429488228314497772622327287247278117827636166742813124742466273973653316992475655856329445852158393432122257713188618543127122842984274299959257817761952744737824232441435249831495589554816597899943166479452481938782163611479272478115859977969737842112248966213893478265951924597797811696315593739555949921479949728788298747929953446348365269931898528271963757171793529934936815756463569623339398531333714395868495649512733643585526787216593422875725986341498731497298846978154626193617755527457276849546251612111462936567293719284146752791891936928654363534352665228487367359952797122365699654175713438164157126628844383257444924366262466957617491729824667958373878914518269998169852217893528895685935851739535519628397449238695187562535487837678487122933681188844987525296953782484576734843626924656156649817156383755238479971435939584574277795961472319216147531588836142819396343464373876629667441954924944567713129496158914747632922326661341542472976767241884875917552685639856943518311399567157713959421295778939741868824439199374126134691584367343115546355263663175535673898631832375998424669877429885165727719825324954311388921797384764444226747142462599371259988254688199663365392449367482378184442142987113632665681227434242565679677378639785244255977389536984841577239298722145533152184772156193724624385477829234342718714323583844362688379382594754634865112495711878615623672146499775285414875752612163331424963939447976343728888974316338623815848426139491178866385727578858322153555574572367976456293967787892946583939166863396815181769537632278562578944272751269224166828846782827622928193297219524185869437628489461279488189839237714656297935861877715513385396967322932623119186756196324643348961153124314221776375916259483378273373714925182518987593442667465692952343641781578327562516352719985929273241287918764715239318387777594617625415369639153973892468297467228658174836841237396342141886588343149423196118737359464442979713915856146745417233268492599568758242845498938741846685744578453276359898581354348916478636461776391169827852376966583345871756465472353936253758396521997962597124249332946219938579568264312913316148232851744691556251571661982495317472455715748263219376364413833551695156429345556473918248529774722336778781225663843665316272644776442219222676851116637254398765298418429486161162625328558423733673494433938134195417261992365522751283375167467897423492637179244151477873627216847186248844747953181668728538112718432115579364562527298131832993844944489325669611329123295285467751988899355315336247447865311965952842765395628231875541969966361533519127589392377822818794339372622523361189326187367236568585646888215223153641376978634462935613414735939383221717569895987446677958442369681551296185584127674379213248285149159658196497255571482615413996811865664214818265393452782972552547193414784511149264442538664726526756924474366172415667424685336792382628944551791246987235657235343495398543522646323946499113526756375129271434846138567557718373891392219332616218954699359176465494513336476985779148964762396734174496834423889883668944954535933352834365554432787571976328811935128444988321389146133754524526928652149962999993495659191441123787881876865843183458357381471659337394879354642886611327355318231851247262525693253164889229132216139755896345561676144865776876579544912535181947542827294771437361562614212295748831549817859565621661971181454335378258833788349296282279124447973688462649453371789997918242838186923975819945123911681414686494975262643546957247396336783322519125278522115729447861438749891892228159259729663448371155134914135829645595551784611625127597818379133582137194355425715565145962875923214794237667148684287572748248357737941796518367675321494297932694497356986812478789728138721781228843432113238997969762534511512395647747959748535391532872823951594377963835777116159236318513642967753835492291796527247988142237992264513612771321934722435657336442892952128239223594636189713345524627729533444683945543513646277538399142385643745299439592119751461474592946229737661519719574618655184176798569225275145982342296693811579216237643146534658767217596543563974537832574838684395944587724819363155183474222541933371942332258552951186497542444652654776881644728726354198231696751228717669131893427736649688263364124681682672713585138997612837339687645883962211613482141233845713466944231349398546541653837317542146457472292144777733115625379562916734753865233815195667173829129683967253675854363817515787788647833548794188524784533811578432114367136434375544886265211943133468169713228573851456767851153487294164365221496431916581595734543749165577516148239776824477619983878325876589492269749167737624882614281739658874646652214864342412729873648314777222332627932261343321473214661382324474167283315436473793949976996433739357567111646894198884584126388312168757722391799587925236753473678344115243213151743254729966223957357761972286259475636523134338163728716933547474836487681923718979849432765492775322979969239836619652627256324745932827831714374227288913624897379351143193429731558347489878685511523723954827852765513499247688638911195475169235666894717475237917827455851772238717277814316996687423797663776546253823234723481113371937213856351542754125354454571664283566172134298499924358695661868113711713123862753978738193268979238319611785941237191718114891723643592579963985785665455744715979218355351558915361895368738334245969475428118634712137899722125521447878588341691813692653764194138715563396356336685741895294617577924242866498946399377797266894685817974413395725742412126795943433121451679151524654765234628951352296244148189344719232583478484412126429218243522425572898537767968599521225465687934193955629315255285216742299882291485846777282689119773781569778816371946665724624581857913879659277279736297469827793473759614522127199798443325183329585445786887596465299529937258297649118696335971479422314929838582492151683279126157277579352299338432489685496999716563497517528251489248677276256792941799332256384297855572276755947815748753471789454811917582865645218183319376222592582339326779288887117834546684642754785252969837447129553911374439796321416388922623568668784127997527546964756817954728576877567197842437812482175456294671426136799833423541648163672947989572149923253596559366523516393249234224338677222157698748467769673974396154766961628392127883749836356941317793844673775443615597222615735395587834291634784333945194566986434126435577856368652162417195747149582938714248184299321831393997845937897111818337349232241448122415185895885617331252366388281432849218685145877882116545443375448368126539196674765427851177521446246787677244611942616614365387892468236848399273433984218647416442253736555363614793123876516141155428163599658128328695245738733264169328263975695554957429292428814834641837396732126758577618388661924197725388481955791452271835936425997425253137516641747631223755344965489782433996961623635899423698247915247435821873134613454614527218522254734612914364598968319129861875136596587812262157887778654621934572229799825929696364127479463618821799772153911547838675411662443421377482562624397254584551784825951688745917335949388643591882276324297576288672691553713771896437736473982748918843212369359881654281488443343916225442356244289597534368681772393736951564873612464781538595625897582537813164398666518457917397934186676982391156517232923642335644299787816991659263454517739294513571161749613629854295867876126253367222182443337636112789379895129822139254486148647815632511912894196992248732594364736876967246544134256929268575846423118823466768173655569216689231432212447113818254599421968871823933166766936742181122118786766147243718382955963164264931516191714184912197593789194497447145115424894993741919819248882485986537717296361451332244922161658289869468194938151174455661516223299134843245931936362836867488797591873186687679195277764582252891977285743588498915671929244232218836398546484264632632545756876648267921557954427479513987653317934724679365785332283479134345147498755671949462588825627152554272157514598434582354825521564882176726265898346461642283249426623284899278992547611727921762323631911727626679328389971156176439429481152797639456354348854487228266169239982725441664448777488114619612598669294151493261899688957818957814713127955361249118813683368147418619394821844745534772917711441291129412484768211676666436469568579411538914734771336978524451296236189961232689513118849174193615323299221369221421214112411672193312123259261292212611732898887217329543458467587647721888576286898652895732388143713782449947627472559923941854215472614518279815951942236129421867928469275155659643755357189275965792699114569422675289798725191669729628153884842469439389788644615465251528813957899618676549899335841893673757536496243787766788363231488663415944557736582959875987125781111593848629158253129527219686687626891652566271572413233181747499179134269785733863175373446185972874181157529616813331563161557625932837678638328542586792747499882164631483313956195763946675553659911149359653252627811567991265165257973837242393983928627632137542239511223243439622472134236879182922833246488359487578992578475557639954583416344891778725561116769753191321854232198861316416972846245167242444553438458998585678273688491435788939765554393868675843562694973764739264594769526998345414891965336243591857718397122552821715338833182267937766567692783653275958267373166631377936984348555149865582697259366867455779533927993432699315232716441917768151759192151171573552186266831736611598613619657891118515297261719758628868723492512353751475446212162847729959198223498435958578575769429414214936364196481227174549389321741143657966514616214657486417471574729425164425935291928467294231593443838269553171153798517931861913385291156352467636476168145945363781776399434187615321124427834191268787621127778281182432215513638487158149726624732764883344585423917722792254516672969392641171472143291225566124229948292198135248448561916418718612411619322835769695685235995765896856786958434283732244633198677142728494136453726839182499247851922651953588769331249367281866846911195444218931144859567543126616795138448231233527554296516166725128852664777937763983632237788299185151427119765964217328997727715119151751626213524255144714474874779743715326567762265436862149517471641171626382496848314527467184248154295732862444355695342948443157467839914157562822445448262476112785584989626887121553479516116274632129981559261215532463873489852154931886781711254489576624598794977164632692616944881432881659957542894143213796173116385259254787976261481659256566175599413772468975922977882437845374214582517394794971569781474792112459599239598886841798835294294348287199949736329378161579788123839539522395925742547684453353435387229347739294347195439654786223935758531448763461894748117738911476337261136253342696516278868996428133135759863932573178864644385987389654649843179276953416734112829784946919316123728848519821893769164664674175445239971852731116813267514822345866644728782781379585235515539195667128887955982939452993455454719522399975473666519789824358619559677565812257697555437762623477333979458563122876319985137254776163918744956132663641142757125631821684979583757991914267959421482459847784968557646852537468496531524183578223966542784329269712743251487117483946915346352222476681729339167351942475198218346994956988884518612738138848771351755343111352121374186869546651515938238263364382698365227673724216927743168385554369779447697817498173378117642968835867426117737634851541214381162548379889551393678633752979185238945833876816253915279266263676479862939618223413819635242598926911193853655885175127642681582963962246491879286787441519546733937152589667575142775824668342534327375341987482558931497121273585212735723451696388227838844982413565937272321759561152725223254499883698711684621524785396621869746896757724175127585815556432485974548211626227755345778421558845299918961462236659136758883676285185869816838483375951739986595993379359741578795399252159699177215139992149828347263356226113734236136229191834549854465966237549142653563544998762298675197742745811255499877544753591119773856337341779556399565725615673766488912968823432388848219657732368159345125458586461271136698823737552954588346861778779349139383937222461284769846624548349368559262497416773656217651474218954969118849415661371835963373277554454237176543559542138355562297542854542185349284486291546755398474726835448366583292144718337264446937552277736934148419242947361863697724586979373214936129745731979651189676513714116697462833821875973821369631931479215398579556142314249282283129931558396251643764177196193314316352269774638914422911518849268893818864226826246246286169866734824689982663287791328823899362742291987244441119131812281925288487385188422432424414421412829658375874625757889228559589661625352729979545223933768627573424948111917941452654919761427558942642642325369424715672693257939194267388894746115572522637428438643351241614294659881153685416379595528677887241239234472923438387738575263877881792239311454381963719325592288158351282226434529799611159266171716714835467718668527522447935195675856272942717558291334126625973556174268338962781723134675261315812226848544613783884141547677158269844686146214472785749585399115988436139749167245628567186186583326717771677381752697215614251472952728775594578728427988293241325486363813158919652439249562484832456627831721575627622466594776911673255216263623375311859337818854169568175346653983966988668443748585483795451548844442397921384242569748274237992334563364272684731614521833622755281415733871354223554546898952461491853141965376532874453138273213288471476883335412736839746966263899845413636165238721785279776856848468732237659421387795662245629445217329974815833612967171633476896517494784366616891597549787365916745923357818488447192169884374737339454244972714323437296634997729565778164235657899529271461232977444251662927696557463419512618343757793994654297823263194154986151619898352661343658857262459144115983627763787942636442586579779267418284453946118733779227194998649458783986587449617538137427271226994281749473334976878511127238627925198925258544119851852564335917315297611355755739615751172553284593253378643296156431537572879138344572335534138671613359447431354599622175376133183418331963988237289376692315522752674679867679388215765895246422469826791558476296663141564295341212771825552171637831886296618739896877323539681363349968529482272848571832681716139925766694721785542423681541144934491959431398742884141284387578927913845964648816128136554192893694887363726497818711246645734984361886157687377138152525977475681778274931768452156216694231699656473666722666751361829342391255783158531675241266247159288393762965627775289394818413321249515591161837345263533263594417448896882854577183335452691141764543921215562259462916974176142476666677912126953143639935527665211767457568254457691583944789219285721565479795554692784263963879352296632612956295474778165342366376838188263883211687473997123649233939746114335382928298891154967258223724145464655564242257543157969231535971324661184388942246832645677173195551457866649753435588946543831376219996559425647185888522695722233231775697959768256988257628732943999568154128822429134785567659849785689879651882794151595259233911468245281358326632661276279479415237746652573135291317834761619122875448475668187198779156116916283526443918716415272286785286894154687877647288696714372899379583842528282998748328645724641588872824532731585215969449793752638719163225164575161894874148281959855267562818294174569752569554448843599679588786141815152987431225564321368146649639134323954166512743768552115167879391495881431494669515614111697517545924145174541471842232281839484874278675139157139243359233279456862628231135738742866777984828494556458459922686752228926498227562115741722979544565466194796452442924985263196453888486766399444534923448638254442279755374217569942175837652885182966483793448332438812466644133337865124457378411381435889292413198599845551382319342739638768977817691135263393326388341997894674333346752961382728542642321577989223776962879942895158278236915835992576754747827322938851331614112268734186878588761444477538738954626924691347114957385947619494765247587521311595323616377315669284732473492442873143668388745652925142469514681793157876749193284697724774132199294971544443751129782258459559467855797131396397265379914958784569848631761289995422422716574821793556612539428951982151697188958292843996936721798794763552346965159448831492561421796939154651264997871718864885854447443797712111878759534823387721454734484584672446387668896468514865293542917939648314174729579856365498597281234954351523368343857297955663676951375326552466642451945591856342368789343579133167151599574297223981814161964268863823778977798976957353447753539891966764522328993637761436778657544229451682461623398431897552395626451518534585724646525279498849384324167425886249781298137911938369664315773397254274976656548465231651127445959466653217761686198142943776161186641861435483983785889246742651213278122659857925593415169223132449351395289981431561976788982235949978576473495432428186874976479366914659887329561258745132667584184337216837873887651153219956454867586169735922687682913797331796344859623195353111192361983853567951812129544734843868846139376961951962915478762937711224241826811995185613377461121242465457927816424965282937939943169593285875316793211283886768175834932418839497698627894371277548842982665514364115794231236871654842997447772263542843956534697972169814579676939913397859299896912882338386867758987762672551141228331168644399196752829953166177891895658177876541622597713319988977532228995547698648417537425221853875754117857521451194735256321517972382167727743742924438941981677815911671445518699142835823871651141297231672531433425896273237242241863829952985225794211433236341335526411598929479781732945669682122652712582528476458643297966167323492649781428162825925719315137376439497339134315717377218791428951879512414735215932542311432225212162381663183565628738761873383488496562758914455237984961389517257712877676112533221516534475189651846483193236446577139456854819772329629931464112713648222592369592453345389689749912823852188127151474892759723523783978276878584511989254915366525812718396144494582496787312953333494323826155484432989521794827265585756352889122219251129592117544919644612513723627628467567211592445715964125476228964611329468513973358769296718584854875721661858184849868338176462648119165249846221116838646263426236932545428131139712564189322833425568999792714575721139151133354719699568628176447559444446562931889736587384828562495848484577655526964692173829868342179336871322827376373655431354462383971992172717434589922846372419786685683762585932723917523653521178636811168451522811553717158144997477562396448539564744437232511257993133766517353626859562523637326528683233858119784549681843653395952365658459327679547521776185589715278914835582435176154642199961467257639177119517121375474369395829572568167117718845372718528919966192717517378142578737489389165664733483299183249992749557563938212549758657869759813768314586316559423278843717587843573921451985826242816276823517763944188177449942132548121361845138526222856649832985776793786388139541735288161358735495673291882746818327123158821469817925914177657488971384166991961653153459114842648656152651746781995249149423586432146181154723811324227159416949942551655826197228529335155758543797753234732534285297512976839999653876148382618118759956628616472748353181241151826719351192648813727936949944124685518618762442694496889783974432781632497539689818486454651984941114242874732723551186431518813822235392775746981188632672452543755274341824422419272238454616872387622683933963879992737188655873534693774979357255337135899266418767945432347952484186465371812787481823946622859156782228389468196277461932196911678898627554362869595487685385343111973727942228167496154562185285282453935256942681285532639258765799983417191259267629873786552921818149758763679339217375918119189993856523779693513349621411319297572224381259499622573514634453189291529544364325462612865299597316358281626847373424599828757487921739781363989311751632497145746698666592789719774647877471944412358896974845793266843689673923237917595977446653145384349631833523362647372935239767182943826266383446263255767633332426796212839163578793178732164285754464546433781568876648743161535959393946214269135599353567519884713917526832835383197344993862243433274766838356566381578755978221427794376292737354392166554364395164491999162797126213767184413818237126122271872493667465686865687398889196184222478113662247616434213112719931266977232446115648958268339322247833455679279733427234156978181774117575482354685497613291998964365112649763122551319539427214549151294171372326446398139841294919129325352373897425238293113513394225648675955596117817116356585896359216799158648328938644192669294115663567421253145998398343352643197354995119313682599334657812991736924424443691641573927687776848439761194443417464645313979544375241241664814549993332618652978482515552831285164395455329417244395848821938544763398728758363791274956958682166286167732657726833318813771767485979641716477949371941316382829316371431877672597582491929119931566589576143282839968159861853818457395918225317283998964948227952782173784323132321127411123828985283352682974216297826838119897315649698885285813485167868847568922979757366646874371167741586377365239855417985412317881828436252574448878676197237814885638243288633591456856577248425988781119862122946521267871523119877878754954948599595273224324291977752135529278127624935256674661336448971896596268541965512967981523319288738354117194544631428361571598461195495194458721642567525464389398737337661332385432163519828746528232787818847478474633515378838732718489363899636988348665346219271118135313276854677533965666583592395625942416873425611166525763983444836977644775334239771256445567851436279456778281158253896242825968565491176784898614882495577162818347344722191952348578925521781414227497516599623469159511589539831569329769721957853793741682675622633598468554138397571539775127279439165991293821657598556967674516411899828119155715649145783242673653543444348718173175544646893168312544868639446542185349938334154217673446268622828343144867261572238452177738919733846322847984196849836618499362555176369967366849832472221246381798314399935597371517638642369337168477368818635586248992128949645483128888632178682472672455429856157835797894662719865981512486191774232922276445329728769917515672985175392735357228995795445993192598826989513225914473826415514653434122862273663199271612162315647948125131396585483542658678132824615918136674212456691357159231681182874431751975544469164976924121218542616584936472376764364766876639679337531166273858165532117669536449171986694977874337336192943666474572121317174496128616711166713148141171767117618469149945694797619526583383952788672575924393943984542669864122888835427746939238663738694115273965587251644665411673442732339524163767631976426384526788811652156313974962694332573141821875189691886373431753881193985162561521488115247323592599897394438579418228643463522561538356599447378178842277538684636552292244761567352558391947319954173176552596332475294188729715191317862911643669178477347116496516292272334671586333946556285746444562683141288729993557266648172528576889788558448794391953769999647325283837761528758743117916869581998279854886769533734523198946945663547815582424696936325119693258392973519542819491923423472686415592743586766595687838166323843293455514269727276847553163347565811451666427233717462668992548128242297748452632367424212465276878987642577548664396516642157624421175322965621141681344348981322439851936498512561574897695627759634626266915252198477136596251213564179679184273921614252876976212518465372689971941356433919521651487814972978862986527798658614742523829915792878439199853713177217489378847925756655539799997628456273156647213766219178177628442869255627438694324111817578392588482854696345765166146682422669397573831554929424127686737873712468541584866617198767438926276412255292688147837692335126543164289588636348112772884384938143459318161584494561548876358962387316912951388634677455968754962573273457475236684418794669965223339564292525272493272638514925357293692652168217524676426717232831181245349159891357798468272364362376719725694619387212129245571688258939578839666276477472837985781583539393258776412249222828387345487416621497928122944914833545983724375314995786881271543786285547853373572951628645689857475828594722178263235997446222868359298469567383515894527238225949948784749368517186448151962455349917479396156744387182177213636526252272676241667255443143215856461667634247282816449544764247864829583896515675318252527841617988836115665922532347488172133721613294659951294327955762974145294414768664772914698174262575984424899664932231581387714759248681858714296318446374144427432188163934443972796333635856689797583775119395475996168643291169717885486396842231736689819915875643171599173385367815896785361615823863869987412293772349756827318574751548288396574796662133753519864818627347884143718821286436422793545268946351521211329841472449784118893427569588599374419554512712681832576424274192431475624795844836864596812211234271532992475757434773353472585892854944179555287553768914242622885288476429737572857547951112289686434965847584668411195115123972614898373921375116916596917114253532468541667157757396886586791144378122987693367986654212772876192894982751887674239449615773282461768824811467869713663131447573548421711655432292467669692348592434483457989198234889639754613744963317185884797174937813262345732961659148417114495175381424986171236138778477716224742683171587699393169817567179533591798746415324629588144841774933192875315837188937841124281573772848478852551243926828135273348522459133367282563944856353487238363265481299345448813436674386112327765865797131912134799127627758523898466179159252521522183757498687513228123938171112121275724672223443244526323214495322793949262395517948569778118429579773788827377951786662553293241128387977694387356811146264578569478974734162776366361886323178115792264559536243767645366453343722836272224837994766282727141392375991192475253428925196789898136425434661975217989597275145847478821267164673372131736331623361132157764121348451324946997323316419285576699433365658257978298629636173533555889344968745443315257754116252639543947812255474879654944568521364658338343778166921394651581527973695438686492983912376224355942291632581928226317444965389783992864192994815435278553971858137313612811279622127853141125937558729988996856157733137138521376946834724218894576888482234241644226677897776123681527639844897328876555232823172123675668947659445981412684871873138594387943876364394552828915118957375177355771219553534424723527255652476743754688941362634985699153171654828277959876139417965761178133414221895783384334911587573275425726795273311733123169796924455826386893223275486682552132577858577155366573911568612725862656493998524161451496166337713867516715555852886826321943613889539198453938116576997181259438371279923215814451951659574516333339221431911345431575432772294417328269251174616754276343452793315131935942492966273896132281421712714117337323848117719826858829999398922753936736496388873654543472373437628291631359246311754971197439971771742867672311375763761393171257121397163184119675741761178982684722318617827765237394211897156416647397977643165874294173877418161789386948344721239547624454259118145539454724837761432756161972774327252423885562494569165252227648253473562197246592416811832586319447692892516155274755727976586438187356595999416771243829467899696422851451379946869141976665624245331364381365851754751326867172594529847864348413777798364971129461344929353182359917833239331266389672516794928718482714625642359327566145426297835194366821955886422934466975658157582164158426958251676272637432188385688529215829866473545268365283549482382873658185338844569177221258286453598396737512857854564579396929269989451212295871225663591973998886722732741326327874123211499277648811985926648315625825854752325294273663227847397678253517548847364521832415135792616846689473999351432563865345494977625452741575596642928452891178739364447485834597689524593611383298631369752181748689138298226345197124877976951718692419222645134845132829423473222252273236649913425697537764976191217429983883224674225882177677686328216483694151352839936773349952662211578762897979863439653647693823759525794482467599455698367547813664233561696345289649365118788844356592441165582345379761448322655284338334763895322378322944197625846668935213735752574667966527911566468778132515662827594245836872417274976917563644283696288666785412788489125479698957555311778318486324235652621314958469447267995527749294356375669496339955635177749658183519165995538413865362935881688848734323774494679115397876934717589812177417765675194869453724362252347978644219518875719969386419433221885284234112472368286725767189968485898298336452179651117814819537115835757282378342352833212145756337692319436259474646866961435967636856698312247512277773715292853437886696729579686353523142226357136584256292958584724137137662474822336746931878151443235991136398521184685652456498612181192731561559826472516945785894892874919965945662612295673152521717187873366713873982458753884844542228555126313511744518677152395517452863483633616145913518637977712787935287447941431771433131792959542158793477428476428711778763726712671818548476918767645429771351418488231167657424177527484417558286999996651482688239967297933741431328773791858571456175777941973994661931114852887484751545531829285188177453531168533577821991819416113848181186839266857736826656365549346345736732217961551196732275188612983645865442495495976173571432429673247672711249646243599422653429634381561475438952291232386518479798744871313998217221337888625585467635655954764476488266927465789553817393677914443258749375744797968787844634968283957874357635322989773924421338523291425267688786643745286218959268119515273842586769278788473478178839435728767333349917854972879561583954739453576476149537513468497682954889146673276228879195934583767155958515723334119118481748815518114854325447847647576548229671479764175528193855492936857715752626124465364548977179654434798868459795321653341157812243613377222181511455688773463486736864575673624558925873118346818584949397658893794272482295785534817846512282451768795825473835295878528636769736594985413585195572323175541512952449869127527854975263515456649773668561222896283698849484848816962817837126625784677595888658255246838629372749996654122877771195676428245418287752253331887986343975688127845599614836914693235522971672344783744135625175297638725782996374648951411997425178851337416933386961991989621227992823554146374961851848799819597688934238855241235228888768797565347769535948951461248923783537952726679963857784797488666918793764429326681358618347213792451636177197545578238953664722857821417916659116929724168439694375316896461469952933228159918426846436962987982174385989979812486127524712499516834332329289427929561841979829593824145864886577433416392284223384788363542988621851571797118246594229562669422415443411212824462684638794636676219341441432768936279157499965576498443465431224731644374279616246978394747858121273591816867571977796279953765771129199576213299878495489655111193992848468678555394822786376485574658484249985424895173681227764129867262261611981586644655311722697414419378467495959313744716965585825752688327722643816276853211682166325136696858138656232332389495126418867443245199511744861799399739516349463861722775941119129991951465419595665832335235227116919156576435781262374796317818418312848471748754982351872551489229394231213978366481457412541551461682682868793229365995157182128985243329187419435724228916927824227458357976818379681471163744255899724391881617566512618872286755536946933993749381449236335999442935437715188996941853585865798882333114511491183168395772241928151251599639626933752328333334128233181144995677742864786818318212329413791257822996365844575475695546715728499588214688145582842485845415254112922389183529613741135555169368441577475726675948942495881717641698344796254747631668247216871939652121746919662627532143729712666876939529475546278483543414469846437479296749366185337658884768399136155628543251573337925491129922516967712916163275966314415217457144713894489616183622952572216819289557886856454626711967276757665418287762396767347333949594251681588254474949663385578527742699647453889273238467814646229389243887965972285921692945466484297475179556764255293287733361679316722667142557976284855961137857428665478523218626991597598273814771296948258918697546385192382658667351164764613466184473511774539254241625166392898335585542784797212262768287266188535979157426226242397215721319162558452183694328457156528659654798533632892312946641392966811289123385463683776349258454934942943171516864132655569294586889974271232716218262718637976554539847969921531347517359156611953847522513565589238864859498384677328379515153965759225954782137759575536931217681683178345548213159692194195762821926848383193417266465874239411312876794993234749475843255185124292861158451733669144348756267586651566481363618521745411125773237362791826176817871422432887199725985976463144831862893161771742231726352556738714883289355228331392826151723583861189993525357376466161122361647735524865389926651256357484446198541826344245781795419257492992845827452865333392732737565564547129753838351579652725451896259952726999724752616676911189615699761459231685645392792889859317263198129177549958127296171881587896597494157941853452158945984663211841245838912147242844442787997982194467257451965148481559238836925362975611795289926961874755346672759328378786677363259615938684769679597265731547661611913862246193143667139264939979179355367866169235936943234122128833358134631652154647951362353245561372725689774247923848974287624559711268945449121394991418951214174179863496398318717637433443858256142372999729471133775828192997419646725695623535783273972161712764336774246489867974362477547593935583915643417294539655389948239778877322562261523377816699422478266986932148278415285743663711625213795817624454862234581869722321481969521955331353691766647758796783633628251275434581254728588246398559364471823262276546384297626572417833814139335988517916677225364947218629443921761552118829255638348199933224389333523284298651374163955276484325556875275949965361656163592822477154461855641176121736875157293887224398643649252224791296814283893213176349354465744753333631719131337751775211664938241494575477489165221531586878682632988315953767268211268645594656744565859935741552566339768124676922496398653717753374341132499971219849694853427754167161298186297969828294435189595291229927536232113822264663492821923715556978178451575821159232323483828425332166192474489491512759932763185371881127365294245491492568866393361461195615937567496542327756172998117656949685424968991764361451159794498356797173872747263297292162591215884581867841656864573678718739227655631324378854281548419172992547981821347122449482213919197341139911934644777525725915824557549421424776233883355746227662324365396663265444767232843598521945464921226769935747721969712895331712734389282645326312382351882853924253269214635355473597575759942366671681853378715955612177151287744782676913783287547653358366928287344843111318951616841666247955689964363383178248622677281886444339655882189893664821448526149472236714812781146338361112616644767327698776869591327328588142417148798474959887819649388192233835694331725693484337355153166348797129281559887291825219525148817518536571457257138548499893673324165712746552154998747616863185582961134768773262934585269577916992113469245552633181497433233722721167871425577864814556768139292396973894241816386531216818828847533793126997526279278869531324866235436925677193811776528649936548971563921628898865426271163516482337538478258924455952167218846968721457361153486872167888552157918843568563791477564252987182862656891646895832578982171778855919587541221593659337433491265665593256266216469392944362378734273488914534159988172317434296514742532784288276974193734143773946188265474389876274447841127411919735372599577183427192192732722584111269116714145654744896977135426533433993386851225594181783334877119398527282113552859837159436936955696495415759834716411343835529888418857322294564194128391842729651345166365611919411231214375231344658273634624554566686813425348693429682943388634281761193535384626583676894557965931939172698851497644233578254657639535684479317962374621436781432275733169989785722163115773695823395511499357738845954419669241461819947763436218582833889893938898782468711219168351439317599378147283952863758562514334173989884592676862136872933465852151938376344829912589772926482586588396839221291348216317935983639558131941851875695214797196358192894887963839287797166865381199278555331523442211916683111919826671194155488498578135236225196653653967595344171863474995415169434639378691998984212691231537469722638498377264585734747888525486538367994799147519874542483831364198887247141789766111338591527835793597111178944553565315356848497647247235939373529159474957787441153766258975336121857243819543457723238935446948923747827751994756977769292895687851522197185449936612511689257832764862469994887346487445369942117383438417785318956681216998198737978799476816791458458948747699285165892471949163718691375134943547926153156943223972118411794948738223427921342438627457526919662584826417429662322166897587443591961492143188121325985633366515611641744942843774362724949599959113986489554831156228612451456357644162926489483994654798834357911417498946864154498767639865555575215818483777126883556421865413814493141418119698942474568188379598812932733791484521856665571429219382454613659991176632978121929758983343597585692255342242234218996129368927476681123236348647436937863754581148949342874628451953638813242344936941937487233217569358672685177772754392114434161994741918495161226546645967464453826826655151262715378775411745827498943457453533141897347392773412316449185337639619343952138379489123929442994854777963175812748549722665745229586283578958932775747892376688436954181976668844418187295652484978387364739513943741459725852349257784156196479554578448823146952638943542269113451183865169644695498732746747962871256652515865214166149714399586591165214771191597199159389227776773272549657696296291128149626382599652416265774384385189159678728672712326794231449856751697478125395427185397341226779749476188516938646266899911477442468976736429272887466366313936173868439861668746573197626929526692424498565248875985656247188647789128964486254743297812518363941853648975689163382952992828222195258944593499626811911182883992416299638967738498477476554843883592365142724453281917563836124453688182253587794785531614224568717525728967646195547598829264135775156943696315658398168974276644157641881419873792498374692355668332491442327676725542911135581423542575596354835378467479917948182328668384666974729455336129737948715634878576837772315895867551421873159816489156286565142886817883188167695491917554157336796574882677336865765521825547127765142398921487964425596949641396711828619748434764213796659779349231981855696163573752316373297118117192451166313577697224533234134632677773393548298899252463755997264931248482391171994938394783518891714632761658647949858237467256126478534698442944929722458962673119962322155348638591735431677877774915929433295154915547595273949348738561771164564197746153247179832777654669995284858553767463356413177432321848224968244961285726932555685669571866668954963525117253621285132116663457753994495991252169661662316542216415843343348445391456476121231761244467681425835878515917138994917453111242625991849441933733133756957961122512485417411772873148733428431569617148787754832245818251182937998682369124596691181915813115893552686687946686693674164364743987155613495844492759954471643832546996225618937192996423387669713391913372265865953684822567437667657874991476751929499535278924688365654689265255174926544326774589155413328633239532174496863192116537759512625666764283768977177718373223375739496614879566263824751961387749778247614568185356531426554228975898568894711126678729454774572942686455725736393164999365611784841486958329948254543368728787161297672414397212455781542328825923681822251851885452396427218691968149143937926449668111831789674468362564344788635544526574339766583647962449192545976423754721368622317439338472969591764146162823942664597344438277234547143215497654913636968884697859663973313956446599185953413188144241461665388847745139471668463676711666285977632144169926852128678645254541394496793794278379137981495858877117676835252179971568698972859669325918422618495451299896161836647236867118848372281169666637292824518298172788816891667329839911359169967135815485559161943834967964759442832369613518612885282867241175357374334584334513921996619616239856279426749281572471921882484368965816569487524559652638666992787267724652392657692655421119278985546811931184734888329329336124458947129137499777598429343943278972674565294171721562595778985872139475885282343388436813611276478295683199214333256735994992538348895995915347552925514993955888568157447961615816257536731398254858582377427786411953535654468753591636257835455459792256583357596458163645189534583716354578127661557611129861219478993341142717742512513499411337115439433593276316456794523455156599432671787418943592853286782331263429397938722962145454922144159482311912683779873417798893217235346336493761648877546325544347871483931386349916669391743267743671862881524414979988961266839286162351392623128917793718481498994238267328421311979259998936736237143764615535522536425127689192895152591853314555297697455265343857887962382547145694429834368532228825933276889257589462787429541312714911588312159885953684537658628928956775979858342511753596368958843419995879684834898947673477259481379857715287476261817243756795831796477875422936127621796466847816443929561653243894963518183773217418454498612881377527325572892441265514364343369911631177256488515955261694838628771687412939779253679639812773539497247321296112468311281258591441153875773363318128137152792746649916383599738531323938197261723614231571453385217599297823785945458496539758278817727598765369794623166939846626478927684228986348544146919572298181659969757371135537138985994782846642596224326669451358747925288742881592823479324338182683191853942181262599339642441598796772175173188238159914248287856514592917215126822821224823517246596696316797478559651943293717455993633292838773628613811171715194456664856712963722892899969468893368643293398561649738734559438665427637956891755738689834856721153714419978143525363145521171285356695573477628244348789887785319868425652213917341928886654974861592156266456169969747383781965924118623268754659613442619595186597348643327671432765825674172729453297527275227482964421627799734843585391722451645977948697569843199418589714666154636585141924123153811661926521874422825816227412672647728371368699771251772312569633394222237886763778744864911873191521624393768935698165466343642683744953338121589375811345497646799294426227275192572595943786366175415126643133279339722981596994434825588881998931782889927627968241787465454145114391173834429224192827352665265485582754295117315487192267763312659725233633363792491516273594548421833285411688717767264513867698671889329277948713439879156715462539352278863533775642646115552684618725511743911474627128663711162833373345536564835636482552658639867181533289561923551615851714798396359567413494748818484354623433147992533762135815644967329651755334576752855335898284995769724356693267442964453359649194976391859176619796131355217217595123297295755734237362682493242544753562126589713537695734847981366521613349221362129582865463598159219344346272372229396643981785595528843359466586415167256324773323996229156694244639354965332453652263268816128572415792224359623738945725336174313763873218159422225577999615824281467788584325536974673534815324361927776117559147493645925556872864639229874767397659152595172257511433318684213868762811327443183125245192422597364545565318515797221619751899635868225745584954765726599589431827748191548744299661229167998189643452485369679435546452941849793937165582547479813448532614573765462829852689569783536586933298624694579637562441783341823132783142588449986129997211382684762964912745723335323844862119475561861935496638949333528629646182167251589252945868229979734422528334272175278644454341223554795517824921427282626848969214572123794185117734786368254174422522781188589252539155859355586637795893642556698593878793259792461959124267826565742511624593739715625831592248612762724272544493754345375588248314485792735175449762389637441261698168132647162837956918541567626512325477164257842332176231782432553889686999673694711313489522667845793282248398767898926957112776155463575494261839739315915272786212467896212285947977468874142652888556175373867453199866379434592356853379556291598474991824273387962288143652691437826996313421927134837192152284874453962214395897279878173292568893189389519987695572479697843622729737588475134681618676249481661434172829332679749596219157914156454535456524477326836721521814458791246886223844426988928199434394427984695879399888679578422741162669118684414392958896736819916161961718248477573452924514494899895866669515251486688828367546525999566396722859597388914666318697533262644728767386175432151819553768931393168776383835839919865132733852156734452624115186961564535819814586819162562969566511753334224561142147294379335775741163584849944948756184195562945152499762755958724321611156151655884651815399161482443447153117585859829339245264316549244545282666536559573989329863786129537683246791737924835621888499342999294772733324787157236864787886895162224555813428229795173761449855866391781131742612119485418373767477344346419669869696236953238866589923643599465333746431743528177957212552477791173615768811696392122266393962968228774554524243354468987173268979846292543847261486383989215913786385448622227156683962882361538156599341452267725912188224266972511544579684455745743553858445696539986744167542125351646478838482269743148882993527461817779627643516611589577727464443121962635875535563321992637161472468511996549985216115368864881125766666398187597296722518876878445999428326975574245374162748472762713524221676979417812966712876946298518465142172762848418596289798448373687775949134854693211169813721187765148151436785894911889152148714218912944493881272258154257137337137221661748856971775181782315917739685767543139117516564684175737695151894996996756292559856229977473453743441996415659534145933669993167381478919463295518989255134449968115895721941381178182685819816615994556649576473281438829799349847273736673221437471342121154827535897454665697344368469353645388667482757296839255989815168686352979144654335249537517913779294381384758971594456196787954873391328784471428763461849533929147268937363395179395488331622525221123749968474293639452512653275286559345971381553398447513829237863786273391335564287946317239914263789127131586895598128832621147215115898745425763474356317419129528988862394669917342752493494345244929149394384917173311551864377758652482899389887127252146463228983921991829897498113215842153931232222113983621421641224228412413624724922163294257357768517648898261551757865289815661321974854569614678255772562918931136491756697964679146282481274165795769328114371273791838845252712187918899236253531513386819879877567447249864916156375744631696353975699675965469985459722771495693163928594849737372333399439878184265114497461986299338351247945362762119735723332264999892686112177377249712834131428317465966173898413362454757789499135522138397237364598862631568362723825635357973312997259285121182463836259856166265871788289288334616131125621246733791519537359699212213664687159428577321944894794914171537242963819641533913282663969811624721982835877257375532727617668938126198585299936468529179735537328837676984867513345252124666386168825313789438543157168415843548319749918849684888584424817261981954944627675154711153533247245339623174839335595699752966688111961377549572921471355432998718794829563529611647662215284953723194939382143196763872381685965254557465568768244421549496882496732377724671493634787537115334896133714151181343611452262684974575845249337261521665761928215552934447351975927183557539359794786228844731323939274826759618177688562844856148955346829871667326151244518113798212892867724435931933383273453274342416288521913996233539874181325445163814894184615958825324354788284363753151311884676297532899697134397492422489757366917286145637156795845874848574963769353726422981464941334161356532557729461468484778699196922564617379215249878345114113514751921748658952848763163563622987978941795599574349646883143342938632781239286528573159254576779541519632539181836131956293859793753614857756638331324744828887161222696369833645657921312171666788857473354527862554473671646295979526741271867811257514466176564314887894869559664414749457883224692281666512577797262195774996345463429969195765481689256544158694824619518175513561474927323962342793753649181346263655376573596765939283182115721984492157216772365282491591852959389383994579696113241291275369177815284431499899213322238744642421749273211199119231454227571593676483694712613525659951517657814442712972221462736612752426186429689775786823184654629759357788646513882553651916367142156735587138315451615695122825921582939732452886846395796878369317599461515674367886355842667688327263212778195772387779836574316912232387296663771457339986396787798837546192369394936813533191771553217826932861253733965275232277487967551637641813118625137254983678314476939191311252655279656813634879472471481495651167823593745132177293332371835732523762946448545354577795767249382557632274138542898668133736764918662688181735924879571854429819566733531613913489237312652523479942185234324652563274238488625418626129551815961368572398251691552154888968444568225345249218253348536323256493313735149959864297849461675393523776381275152359143888845365515873591417992937832218983528878356594523223315997197896136912737285637838158556356834446936218836477261865611235717142644253145673387354714736196899853278572838165881161423123611576793549633338716721862154393441918262214436216777753967387421411325435768378834519695313954994925567822649422752621941235514895449932285927282343346469729299623614623223732855279714684583444684155265536622228987344782826285579194546196218986621178369777133923366975685374935822747614225517742238686113596877131782194654317539386997235723425583783947368919937517229671723361528823448248229871572438518625677557692595316293149172812773229874533662182691813729899965377264516763861921899279159935553268627284461552441357351254798925676483838762785729545568727599866414675542729291244579451181976525883427488398492748663661657197666817535363193265921267222821677266718134432556147154865846894428978689133277871575741335895235923781783989665513187198588981472649617795742392419118855643789833893471935144274184868422679653821166268673999397672414569415686593219166255274739969215246695354574468974481663648668172631146382728526854828973738635687781319471322797968865136889346814944871881159656432744422346836229586555659524956129459673254765612357813644137738564521725191551776445719922675431872743332386452996556447595846823896229237672869415938768252732929431334991176115517473178241331372395574581181521256554366299325543989348345486411156372891622265454478112549179264781979941156671917617751667573942928922925582563233897852518892984774866313558662941525675454641818373713957823896847314648992172798169364945224618427782561677736533459833345614436193349286858591835618833292625133456465859798772332114232473785139765259128785827928239467646247993516317176566246968895568962762922542248684296883662118894969251394417265474153317527396593517536766483811325455196615364595257823351631553876374835351611124785929863816193629183518568558926597373564172424322562316161852482119466762994324361482997171218329155531729942467416594191212132847499451444489129558967977279453981935959296287143738435233168356348824742351154226967571776491923715177292295427113859827346238598894524623263864148119742455295874325687893169373163947262671967488936514811746943335831988984621494955445428912233716814591753893287622152842853224884133217485513354368433527838297519729457817122547489639213133673544578157868993531473483595852995342147712692744772911358633823355469129278342628698623476757873418299226831992851612959524392522332242825824899861954895224465587591772244633498492782213538965725881195457687326583694745532993472461884543173621961243676775111147125468665835922834282668979172774219975468848921439576372188345655543977751442574422849946879225768855518553799231314117773795151845296142391223234544321689975967576179199219433786997165952447284799699599442691299894398423132489448298121279189178487237431468383191893829828624443954787733559658736917878549984178556119343218971661348171968265928629443753549516528326412127618469393577722662213934554664314151969216886142252354698953474777764785263766972196455341576854439786292477964163618223159734976844563688374679849649745797984568814163981248221974948417116553332737914937739736221941551295326399189472244996517492446355766494392238232531262791835469836364784986799841956236118535417833319697367141145747357299539113334383918613726289814523565575897226316266436844734185432888367178698295637211573981524591326923772571943654691889829278189672858995988333681778559466374231226194592325484441395241767279389778127249676821849453427134952828719433389971864899131733127298159992129917983362164146447156852641732731319545642954587373756821893955185938482576923631715497475661168551388446827171151689326872777531659582964771685643565943119752815653849296364628864356456321481955249168774225991225759371329313827622497899378391765683613432713474423182929848714262323565735953393592693566236643774929373877987326484621242886952444361557355866594955878147542776912957681166715189676469112378768953611516285674539165975282967752912962468836378275661169265839839925152933551367723828835317388278673766919845516787671989617414372537127999451129875773722463889932633323367379256522794931218192254586612438333884162544464273287525186238951239534578924329447299788219994117841297987399343951819521519818683513219829743937117169998889637887996978742945634439329287941628417914778861334765686585288141872551827693515971439166574387364418489148399876828624361798424755583486325292783544871838669135474622132551627851247221977979496657861915975751774585572168198663338329625189166413951966854511833644595913817457642536112541423677126517777413265318827162193359951691368117214634326112211536432471595285995368689288399433964112959567147563321149978811197397491336931776898913789579668397926859552519998887166912767687368853697847647425219691866524249924282866628258679628614255459451668853395121976837688192547472438112432843839412269859992748772582715898161111116181981254929267338727523612523222219223524529353124674834174386386117457799614816163444742259787396921781649921636869343347225734425483446347398775687722522995326755888413132999366138179368789455733673875955789472389195873817281547725319687624842642227498225358929449398959423587589237948463254186915691532769418231914749954352832491442517447269359623596831923142975236879585419261419983983277474787353211631646676675762989616984628737891855492848325592353841291964752625145237969498524717726813177338733145849779531891562142458972744848332398241321356469684379443736558787612623557193941367311573237196855917262869153178799856259958432832537612517714683576272967791972224784924585853191617793473469471757149488873273233813248464212375178927614921133322525352761897384275745236148368411836192179898115687189793518458442949947915626273882849989725558641534235796293572546534515861623776187546155492545988328714755922528273777216351758579348794295247153229939554627364377156455878563683676431771516724337852448185454611253111161623954649873671115465569779785746931385162429428855382257126589182299515737568442861875577126823933973445971714889866414115796177274417715875253238777178446134641171751236641854629426259752125112186189643626976897412475576976173671435685162752491438864452958314356714221385323455131476569371615265576494824158552698144152112537974414785189934192885389489532217558916423216615794212149181192755546966387847416626839627736811354849467152772234895757329899923296233826883915375741462352242551263354942233659223169294397553569783175288453454659577897532787545842451184328673529298732918562135269167488245486394177267812115429326153866394823329935625814356287771866595876197981451831246763321317855432941639673745758334656686362894988141997269635556922488115173471275255779732377967995885283529536931317261487172869338755997849431551277115612786729484973667589534641331782851411459737982639472734756824199949163946635777624885358941338232937329872248898186691474416318319921997112981898458485734345164955134744823882725453825258654948432715176465426961343756511893626886393929462966989244784772133612231423359334832735114389472742855987211944426588188326363436629918628712143682478219834967618517279149233581527348221616467218935728641878821644355425852651342714557544316369785236711766788958494136557973851363833818476262999492947634818835117387124631739558753315785567968686397659612566321559917552348995625378239385817852742487599399741168971897387953226364814832795712687577394988191626916287366745784539248537437488977586312884352694617459183731527365795873297366716442358521562278756223442166627252385137272399953665818994656272389892419638423779258948413929148918158911741918923727546738632433237826789889662842585258812153365846525413469444691295985189395878521859295149498398896383212689431415324727655485253672982259992121542924587125421777765979878869923194342143573541226614579355146345768863111354365914251275678212777653744767993473788784251161128672855212819946324983396383484251336745826629231528746375623127249613284644667617472117569751364224423787252792539539364139155476827185699768991753589982886324894582941716696661817715882314683921215376835491472132519738185387416734496835961963113975774292832414634317782788987274642951232462624144613761558375738734635861932335675941996813466247411886868199567959938628744347187964551348293777779521494728426112456379199476952994933494145544779317216942647735138358662125472392921424668231733657413414951179161211557379352416236576769867763783838555489529143688365349896173365991538479372449354776756264588187139767684726642117663388526334126982649911665765532659492924314893165945992468911964893194425715991484973128898894274583814474864812299419378167575833124452747227335164992897635927318554636237858355754833686177798552814436111935499882139636315159239561161254684661854616236631643588594518877123197468962534487725464814781393592236123165412163518889257275334456948254583789939817621328751185678473631998881661432454228226683411772772559526548772184815452683641816851812465132339698133291555436122182227539652511324523677219611718821573437477498841196716666637418456688325954838837496963624255179536358742125897537122472796293145779443655134776388424683192496962716162554821459281648858978564734338484766791619662446334989342674592867436486253496918396239286535611343882516644244163565474936486419686847391713118353881163611141119673312262452286454451611614714571789896131248773228278239589845813882484497275476293914763746226514653182897234853933418672284724288475564276651843263929237499827645189496161144459641543383263727225255669762997751894212317588299715171937225791768179299857667546142134755233289986885879536288772884258671978876454831773289957135559426314281625197154472276989344264794192962572186514639218941355725115391537545286538449242176656156474527171687221954867975539134571913729677488474749536979771137228588345972898272215792568679481137862258437154364632787543472374159274916612836298356991337454758666966516689297923521543178553499984534282982674834867275929258156499896995153435722528819725529157937626921352623764554425965771462123625539692967292643138685532732983535483678388442633482934996294356794141878692755983276566275599167561557316461869976533148588494149293823559545332985278927756151169442676529952249546447112617613535673224999292956689389549298342887198487397593251178922921753722531479198837942958741833896278421467356139823126989872242768681735351963844145733629723989847799334319594987458619581878752422354675633922556426365351115347462639271462526156672996116629355427224269319914559748358819725266878284923813257122947726677182679478869148363964157618356855121968734528444639143792527113514598351613537781583753993612853191926176428987935219389649724923925622253141724244262115986377568829943246398622827128517133779561454776485157337139879463649574529886514928641343228245417255696574114596251274494398638453812558958488993821149579331165445589364183982153267913835849364712637946223338545235418881716187249843554876529932452131292818423416641926667559584787796865716845419391947682541919678255615289729758732499653542499294655163934887561699544797926835289586878147883851794263744426844782357962641735794199273515188356571277421392771971886247635469916122754674641736624336988425315817171427781654214627215146566146653785353317637979691194649243817165589729463269129928272295575171628589436642542334259357794292253192945498553784989814673173197486579918753829318287544742849677223213967258178885529783876723334643839544241917558336613284317661932774287177722655395513833687571646145753534698128567741898645618393667899268169714578467321871699855545459345115552398129196145931473927842442977215896795399792738929793835923623113762392169232133992274664936225392511626549742931147593985496935986937589553745748487665115796184676334288441894632398798257864222745153786866228447125821495896161574852428849662462844883363978836399432214979196379658885181953483325425712622249195873281376613734265626787891799386594431871243458811489168147955684925913917352132168975667363711912512791325317414399755471631532671749869291932269135561523666623696572491474599492857898254716965512742779127957221899614975561111384351252846457437487885239221258573676759395947675252555577681427684248267652298722867313872813471884598353473243318149317487634592851775912225446348268796548886962137438639974487293971624413198191832674571818427625766996295814885943498368299861327826436816184677896632442438358939572952569836516169293435159942899883139912551156965397693576655543845625779774379788447785259793976448715772998876519378692562848482152528698574935952711855929747752812772528811395465549931885469651726856647666111543435513958814874459113677277221463992276966333567467623339941986265273877489536262813135939927533941136853716322393595188889632825837392572183212461969757699781262782837935256482587451111868874141224917332971128753854939716111122493935132233898262454425915917147341842954233849984414815385998522596579883176864394574193572423561117985392777186442841987129364275974482459267691774762463489796282531665471129196462597725784313544591146938937462512283652172325674666268152787937155319496527874329844657725498193522552193779192975339119639448689824824181989176618618561494242223594712719627276927863711125236575756836897524216783853954466914578151638389781357542636162652199714866695552586239392998163353132417165421668372299488294419512552347878834651869788516837767822946622495668635693342834699372465926145511463722945127476493537919513953988248433844571118351131871966243967899173429329244147214318723928697593734666579883483814665966716455517973528495644814171555226641192788839777321611927962572136235294877743565525625311467661262671968543877339771381326972987145222174241953828837969555643456877965287363454327923768332467143829247863116438229485217453956338332827127669571318729444647279992974774341376316288923376983872967335657685315812693721328584671313768425935326565746766415863893967719383624261643398849315595681451468639945817237911732369727753779542436826628317381326387953321173215785357167885726344949259156367735369166744314838121935821556138644559913333795416597179923535389633534755824354893691482634153916268422914438717956994266662852367198398621389975564968614787924623552213321227673958819177868231465585797618364568349146723534569917476926752288111895577629165964691283757865565645282744549135474582647323777341748923266168595833897529795428493273397782532914392944713345174271498277429429747842311534139447376284924856729412423475866781527946337692264294445682967546677272894563678988213761856519255873852286443349161326211861665242436443977211215237647723687282324767155764774275949619877675797962767133419737311179157724283988255757986858579466471142461648542826614288944871316429555527352443993311114581411152996356162215393534533871711815815439936946565717959346316477956588481983529981576498937564159788417414745623571128812546952819651279653114352353232286871961825842786985421545758866453438419892951558981834498184727951692669755899687569999697878653622777653121978635614564251915267333987188275136587833236237533256444252868361918689812524177482925339415241132888769919316844935457387781793871746536557131424858576354312698652394847549672955712326556716669689963727673668238459914674129987973244799955777512412758151958645848297193669319448524428414266751561369525446371132453293618273218144975417925937152271422237448251448877668151745951993115749553696373939833886372361561134878227743935817185712737884875162963636939499917567741427795219396558241971869516279212871381319754667654649589196115293239241125481145498346346747356568462464891814443267681264878423269295574563886182659665952884199918456791978586749696991277566456381859756694157116615511257792411384358917313814573913938616736664189878598789136327629368932697895872632419412833584411313452149516768817647828966417337561565525181851524285181629333878934475773858898126524575597785577814371565344946696143482251596276414551973376735328566771639347886222198334997428275732893717384896915637136767584946125485993473973435137693449634245662162488665796398168282245458924129257913483112916724837372152453377967295396586157439956151386522317926455193588221125631749379489171625124462184196647721547576474535846363471888453114967793331673156782929816742141446915338385581158341131714797821411942769218223136148118486168118192367287917291714514342848748547653371851661639888313495258992667883877823876763673721326115362858225896173748915275296717333416318698215579258665285765487627348197826354278934532197536297711511292825133835378477121528399451368349742124431157769712541465481314177377511616382242395349777887194711552522949154283615581258857227363314496312629768226332296828544864293822873759569272281862524989298569646819765673781756816285113848792383348795163127697226626819579796931719294386156867428989846816498467375614318784525413287767396133641291621388731261478144764476639648799737581595532436793138681454313274823773325457936238976121449656138395526851543154852543477431933752283876811125419644871513594777886262742744373147525464514971568165248412739932673117458735881797119841913916963363997769247216726799791971476692881557451161643312271268295753832975611626679899916122831215597674134185552431421822985815464121423711264396338329497888324614654824741161673493233921742192456737299295263492625915989988223695314324749969139421998795595753283514877764665597585364613278485636113788244693242767127434162634235413216575888854565287694645158588618345733597853361929373878526386211672922787913994829187837465975942232219791179351268731567155547651779748645661576358314199454218285149913468426942771261115426233537518754585278245352351782395557297952319717529935158227345781418294324384835727233144667236266975316624917488291494768572987684914676975613512541715643741488888145541911252395265738992839698493956956969188594175755946996745939513119927766153537931529183575426726617372867929712752659896347829478996263864833987252122655425352149665752133311925226371722236331286751742163264685313273385918935599574671885243653869187688361829767924982495759935944691437498364964343482757659134483425254979265689817983546559777927422899725262143822975629496286828997869375478751747217146654236935611527965728783392115751273755324466151532389529629274272446768283787739857898769785293237792521778531425295861628237449118359336168219618184255977611511345276783682553351566152712753777283869118352476533137217472658267542432267394957259859586641466299233447167451164939987532477176998231837572587971867591637244723436519166314181976725867581952284734649369658655225592349235343624977813866721132682716728142293581271455126218366446996691719167185129639339156688277737798693412713564486381848754426196855274244499737355348113544253627235538967839655178878232535786488831637319164569347149182559198971933653468714726429328474372969951296431399562293225942268354258368711739775994215598614349764579249222189568878337278592476623637548756693479291818658674344596259913662799617688342199423762476275532611562229943152984259376893446515552663556759848252188657881531975931265831824548646491279121117519526199971324176615722623733483334833739651967627988141412649862135486351346198787481421674548652181725849437296844875922376231349399864716525998374766873486418248214484924413239694382529151863674112313744966826244375379455612913234487772353866294521545816997319558224447724232483427916615225179789213875286324665245715216714681582778186718163577147467138385334419326877572839623258951678292431351838575657518733527574493426441533379745484256497255483715349481518462899214854568815176499237376223212233518843533921561473111623832144384957319691746774974935227321647942772549693261456859259882755548695758616923857431346324398732581956725496671223336958376159217213773213759879113798526121929739916315481467477646477878861833732253782627353916643439295287441554822983517717361582492819634589961157398978694541771861714162848843663358218443519495464669844626773816715559691539965331293545122392862316374326292623533886387496572613238559267329573741368997545795827673488219266339456155889359829576724635631263198612171914776734394657119116325965172162538989428774473373885371777873814613544419647963241578534212382743995235277863176233886395424587776298616482698392488897438786442941711349387117145934567234767962132144963762576858314837294888981185481656794379118571199377265264592556126444243171179116723238687732444967281587584484165277135887929316934972621958443869672141632562244539792685529715752945817962276528576535985855339414895599697248185637125691123953322769729333131584384743744938269335296129321478686169333525341263772374215242111595427778212227483529839343532482832698597619257418389224456694686744684345259888616537873523889463712245551438288832627959247163433546181924632524675471373978121364962943315356714249166443244279555747877392852166961595718125971434211738993118695644924835321353663545335635584947348621942156422664186548985369184845848934565629927562351876774158532425761232113867982969546941784724181192293477166353285778637898316316325552367872189556318997827447968424548226424268888678359983679411764565196411288935759747994834818265654295124816382245934316696511966466976257785818381511269619715342739443122492238279386257216739712636937177189997815438149592572624316913619698279612515364511572892483743581417358498834264111389537781849878594432115421631758691368442228976399599831883868627643477587274893732613692966737592737476283571744784953148612359423159668715777146541744695628651855791562947652285357717168833816376432416179397623483178862142668291431846755526753951836938284893835818573923598882764366163553735325963263512289356772287532714225621836177384219776894546626937598679176794125882461614265768417264271841241638864835341826656462777741855826692174418579944569636499474755494511849576471735588127955328858197172128664627275976671192876675372473238681297684149148334872318535747686595254558462284569789532995652291715169895913268226968158512722792297175565779692287991741813972282787243721668876465539628825124192825176241117653295957737239649621238732732476585179742464317378289952114242799296261395636353171855166471449468974994565181387462877594548464251659885483421956133872125942366311298547777772484752862346462182182845512287324789764987623611718982322439161538493791543793872661783825721773593762815985162327385467838995254411581979485416235661243922435776625712639179681146159342464831592171224932899982587399436729778865877379467246484123156527594379757373298922559851154696344669624252551351486351364623256512463866912935953578594856161629665842532613117344282557153114979453595545844568876121725926412346475938313759437137188579118122769252172346178771478325325127283296383316814672627358868471188396825255736193144779655492491239711224686184397774629968297299169979428927455122563468277886672568499281815325462797514281757884623442412943478437287495578257618842882975391144752482838653393187265361781894258397469224554842468884962831345974619532875359385273459541555952393245423947876372617451516999229543174367933569611346396895796641836252845189151165694162542194977682766175178175634841973182479127283899297914456739726933269161778157157656172655516118324228386181886459147292543242863284193691568113996625858972256463763911957856946616172777972417774973168743447887584661348588365552757511844522271535668316122576641281374616723675131951553688232259265626288555957931985143856961886457976719294797874377552148135669456826835114781218863967769334358739322822289281976262837668974857677868975894881496568234121395963548235723199138575487678797383536359622821823569998654434151494918979961932388276932365658787177865751753969686368593848717414291664538724781427255439391921449484746517875816621154982964916835297748425915465569757844344915334198839339765219175758971362884293966887764264171645443567646854249628373789996951584739473866271131957225224718756118846122748641725447957427282772565176249912864318992723422498544941554443629959747898231279924318463696957842715485396314395536263522116671841287616337657999524755845313387314965687342931871246619241468177574822644636793716376388224122767148192453923282799237148549515118916142432559729642245177937447237622854918868723845233925757368131195585271142325737129485121822932469786899911483274212523493585611678258158996214525755894152511568474168867577737283662965116152987384271717478287442437937543631458855735572379914247749583735779645127553689661975657595778244198598144411467463817566932745234984886136262797168714296368862258427138644823518377685222986292943646599779919746594915984694787141679456457321869259658926385987145889513344411325189771499896581878729142562484882758788666395382163956192329797863741496116644649834443664534399464412913666929892245381743952996236336571263142255774746832921543165522638823947495758331422465651112374146449178434266298434889899925429853758582898427259537427317748723887735914645368292833553226198376958438782216926198343654253879553396164363954563396541956242977316812237413758976629714216313143623626366531327889758169699993144496831574595273147844782679984213795733172597792484752819716127486869156295954992366547416927745329225743328616733376816596261682594177397958621857337877574442592788417293854838561256884226365443373172367649586599177488124557774972116869717345153781581935593898119675545169664741798772231419318156599914759123182867979119829724364243527418616781487377358131555769911641411979127745451262117673562525556653653326752668868425771822477932286416961236813655922993249732848468165177758993494573796668741587483989654443682939397753617665392581445779937128957622972637147394337794687298982643749982685214636395543262958113475453422932385893357562566476513147378461598877283838174611261355172917956732349523329679686621126216881443566527738786653114115724312245592943716665129239639192411535173266436972474395157146187228625831474961197326731525133744596178196382491122794755357422879475275614742744813278792433599336743292576639129437196138478391764982238682582415113525362171956243445214342573864225649747731354588117531668845355718673445468827637378434227642113969294639511263789522833576586772681844774889157988151397845422468552728196881578374393177598645488569468956893729158355995759187943868552131312317132521184982775841795718838158651712698187243637685265947742597466516414938379848444848612841575136666957765757582874624697645146612296862326954139481741414818457676152373868369298262291571316952667674969675685389519556577172227885169936484823863717354949951638935827566747913273817281185148831323967531131338528127115628492433527361352475325126727288917149381925941178588981552269169663672673165172721618654768654528876933138644826885639895751112988581784558928486959838384395473221388633423362756728657975412524542394536841926687442938558711944173524998189547361453296166161366597996794746462596716322816832572269738182628767438958149622768774745444686462995788673533518375748282549176265642499643882629173892945841467811958911179241148417412776822593487266364386399129859937528557785411937245863674659543283948517936129743118376739673781974723326828781192828381348616693864286677446434515343466136675861268836569913353877114716363747764636272272495672382652176331115467974189218776893947153686686923719117927784353546241598155656727617319977393556169119815369931681321296835971676586457883775733753663355733699246872569626188353519733396465478955199142659575725687825451877662169174239166447886476912988643739736148145678366992683679542815777381184541375755922288122392768486484737853338729836648766932779317671344666437311973759332318338985819266897428414668592622444232723648117858588855793865998221471534334918756632119385674585423565887376141793784712168516847183571297792869238498594244727435773782452427339168817221493134692868993135667664334946975288646623511713277823256548146463217878918179386177383837631276586264964862681387915378839946575181377753911938638245827812548946973657737821683487879658713596283447121883841179766631491639247579371258432449226768816869873439447452285428439895774359226457382926124564386276542866877312141232644998326923466552128858152964227416246827154698719584288484786425827498284544313251569396664294675314233577897122268977543741297638942298877588693481124397316158843962638376144372373582223827792977141978561897924263474664333529133228865944534951297453875925937138914317651945953778155455937739511849514598992269954398889543484477317656555661555874652696824261871446181547581968333472954368356399988822579565377624729155969698585367323368886446818712318257895422153378146689251132251966644275371516319867872874978164528935452492922896683759146943384176512649742729467632545239557854495559423494439193256768713477826352383433775773997574344471252686795136214561859587811157252329888281889245229267857752465676454363341254665572345919155592247563886891256613736227121561673338597265271831193614315251227548398914421483482741962475587131969749181119258322427555993695691554351452366997238863352512151195431564581279891667882931136135667693151967846892671763765367723463657654336826962838193618381616761525748418915287886257174935591641123744644152831344942444883737837292455759821854257481657839592312355721582666179717773555495525558928977133631511367512932483736528315917369328344985177295476127847347963783616994512211657258823536232499669259699611755478251494825945799724663523577924738758939514883744119441688389741625317268445719118842991728673724155869514174875669857938785847252737578965343718593285952446162223969746261331171388773816412422718673288222237155913293622764944791919822843647238336598664167436536416589743445267716473878511163692231293437844595243429171176334457465788472722335467463369792246771249986158289625341677546659127142139645462323736883537272273886889843277397571158311938145313891764981611447353283265877498677644122271195839156363659478234887388495495977872486752687391688316245684161847886559618446495234848215522686273738788421161562946755216354871243812743757794887452973496784897188242326186464198375414182459157771812599135444252782179215119766856885797321544612718729238295779358737449493863934815726536112927798443372657859228699342842934612556772827591313162185259253512746212484933153358356862776826181599728121315529354939996577974923985785795357273554544981687988376743213737444598933322371967794367578831675923814135262258827343991764729112382785399415395118397363644535562739159988417816636262415858314475471268918679342768898374915332868785574432354529218135435847924682138561695946856658291674365733735572439922597163871737163525787244376267496182277249945286664387714228858467563386279588144462122334118743489618224172866291313535736619948988698995282611631872344815787576235125522581634629844223681328831332764821984244118438786717599512678959147359761593262732479321478363255889755894128271328358396921136594578947347255276992721311424963419293827531147636797737768154383282563125218872441113878583711139275577977755897887165913272275191547133818287966662142358566855898491771688274639834858794278567416484433249611474768527835689329956388413363499765527289647568443962712126265222662379233877612917186178793195261287299376146135732339297497712729438356749352723945845673253424355279753677748932526873186428652268132388942735886453661382956262963181874157445979236254348854949246324728452758761285699484666589192563487562327435975712167715715869987642764597984464551231691176964637813253741175421433482587174447217433696693134176314443258583294845184653955453982315529467576868357623817442538759291127873458374945226869911774693714381625442735246823613689959219637778222394827589648896889811672339141268549277931829597578444666569586439346949931879527461626363299643556149932929969696667172282255399813895196882849495982219325754543723222798772791299399322686939391423581367536545464475434126935176225241883536962397831141534131641164143285871899673666618111964169563681257136992368729529515811766923928632231445217957998479555946337989112935446141839667512995517216195297641145226173732821462972571999653655157755936118134231288277132396891466868558362675782518111239799846431376982158516646556677657531963178776981731395931487232874871988755433595624116144767943239327982435574135425939495978391312991932478771213794633229948958947939167834955224586788672467251843749432727338765324171216711784957879151673338861267177657625919687572549762457453159714465855713459593368493137332393538913474698657872722914646755998788935375148714965955399863453221923341753513898483813889124345327551524765854772962241143465886631672947422789875198981127514167124217839917894383172283733138739148832622381617814822294497369172944995214254845326435874491386579878388614187519152538867886433418247996485136931274969738269391213812441842344352646599295234244324557521654187231779589192394735179711876163775843781679718271677558634131316879148185965662728463225527556133136735211676747673984435179572774456757724386144221663959816964418173755963666978934238117714243949214691856544436747457227442735744194188631963426262874626687151559857519684826432517758425129174949789647128661729485127518525828777549152916977995416166817387145788693683378968499994574391995463223581618513443232687897886322643771842582724937974754432963126484566614775167754128452547748386622271648944798919844987651388848955128821271179953332986924697583984754861867752174162752121868166342717693358365761725827813698332392161385129585557148728988791728824842334171626239981778538499381753966374425946735891643473219274451977219693365644617934154161495592212161387641911694998314244683893198917661751729119849263522699898698255211281181964879121289268926731142159158133521422439335126788792986781594744775927941452929798877455495768145535228143234292978613151417211653164967271599786547641772492456751956754693562214778855984228683677342512847857324117596997765123746886969644366766415994769251434912596351786242683162437343375765793437385918165362594236462828296538357656462988137349976257877519335998444632333956944548234765687966711172294488172426128494843648319215324753461581282831314477287198538884229177976268279615323123855743145932638244851799231532716268463755917712196165177128288794639894383944942557944655564322775644962256559613497751297638685149435551996955274859877528387781624158156632149424311962779446518894517161364196426411587421161731181795711219642181238859854926925893373373227335337122197487979448665892113836269869158686473326172559669933457344238196624955562616672664798522845633395681236386953117587338512865184642554172667867614237977943451714759156312887538841636221465424888793223499142835777399235666144814134353267448826644466832526896318523849573354898344835966656265827299146361649363645131795391783392395839884729972475444863931259278659538898785923566842123147854718651449217799844428629723597867623545556226199441292163312988648882346957557491418615935123876644778473117746787546929439617152528354555218775439921842812416558373626127795326227292371529965782943534213745355965182122127585778822343595939515813924225773339921244384875816296577889266479379473791977347866494272197534451387656633467942571888176738164182645398424128275363969522337625788397139439356762956898921672149957751593416172156736627574687572247277417914129781353991258815127834465255556424548637543333844416852466711443776538182325487738322448818852118562369481739591222444235918119865181938991738859983495986896772261252949923896695934412881457564579573564643392783114392236972339165311673813871281591523219332137658624994272288238188397329322177737236534642354153881512543631313115668822956452539689732185125326762552646279332178951149559981456591763369271388162176921817743382347563471598214411992972745974297743179928747177175363435932241925212994867564261786829412534615925124489134541598271912154514894395643544887847645635631871259579133376754438181544197984998855758875531973671724123611998783256943575462538689881251151928143745173629761519597693716698411685172433298357197857927576316463769813923736545129819467977513779768959222766277247272869519787753447368524241854561737677555319454188931243218553526173736346282578362384695339671187359973589537453471749263119218843729167921655882955861962873555736733414478856142517593681845326878228555331834884633881763283871672436849832219552731795114389337469953745955891973941432768692338224497781261266341483448397439241461247354268893829264983625648685587393718596678684972243687454792531682431198856243345614248627758727869868643155379729243884559432117982736839456438332621966898998585758232275797631772767347136763347959167646498454639353955522745448445199637373724759933385448781624133876612773247139357782459512713199541617831423347115149979951259293254825766999799193181186119818113384869358328227326434823814615843217243163865597938319581841224444258353539969562373321393315647142967319195939167389318538993796772482391784799427247191878147625754873832382223936744722515365729115398526637731393664614141513412931772324997125379641143983233315482513812513941993196394596737255395586636928827227635175556162571939482974755456119516851555693684523518974328829768354398757115556796683824696652585715579271625274733194462917944524961888848255626726952242846387674651334148691251756879164672338684725138877783857545449796828676857349226795981723265934596354937762673242649511726227657282475231377482645575447967722349575987994642795233776372943266913591289553722135393739822227728957965819161373883164955266927612397877883711188384677172664325443139797177175883249846112533966279248854541928243126737879165671584358612694517729472959855322469875634793134714732835629241376243696964277557911993554466583197346732148792373361525862418717321893997775993129261646686455177165355931519711627671148673171785321712752723774532434381597466976856931192468699732151198844322897488396423282265468368231563742379297749957963487222935182245272182854749534662472574162186513619794168911376494659956154694854732238818834474728622326675951223434114887333695456587234629741873274662383652987535347698563539656912129464662324637386132374138638821857292323785394815932335196777742362583749269459932155553939694728966239246181163268593894753135811523536143248555294483857251641683835449653587996334618323266235497931895143732365715536752463793586564978241466736278643878247495842338142177649257922297912559934255858855619523214233914967969264648524974826127538728215899716278121316776278922792592972953459259289756473253313452657732967871798552188492723858812684771457426161379919262446216375642676497914121929835968569285559615235835227218192577334232676536159531142743541688311613768312815748641824157125845895961881861444298278564375758237624692687621931736583899364166827176234975977849587776693998571276888286673356314871439628356473852759316431159537578439365882976242952595598442188821836325521923118248697531637419482113443444743557325857829559488587632865238473284778459394232979632827329166374631464294516693666646377384719163998417758397564917545262532436636476149859595885639955297339993438931916965343816691211824712944747727394737917466576548728913365946656918618244881534394284329792466147897521898841259668989869914598287838817671686532411386275525442135895652519162382211727369893995464728977873911221182717576764291573259936226226235494152628937964189882582194616145439681373969368145283482843356888636653948974678297525699833591463128312218575383125584476615641842663762428745146584931581945928174231362136639388661517592183789992927129682599346396155243511399491193959298132652355768919138866865151959762926131597396189864459964958825915618747366975852286182466347638297951687374658766363419933676494178146753227883518848639887516823626291412289439292965743594964335844984192824734928583622917339824292591683965355193355445267148557797655849364763997341857559395153628992938494684326491945864259521321492232589721441433819235266286236449487458592434714635232749342875713458287329689951453426449427878222831553411285231561284235822623716851971999422467475787269412782365353342273229857334149881948974498723839151935557841837722527856617789784765229814776447497273723591468735156136383826565372543783728472876587916397843369413661832678756394894412185321249416477544319828116447646167162911538383792673374927771276872962124932191346474765432459935121122494593427153439973196988489491539978219825257143243742669418451337258128523236541813868818543556269961713124678648835695448674299285254456813666538997431288416214638163652817541349162171811522884679843123767799686793774625783151833235491179937696962223682886778171521526427166551753921198664572523574114711464539722721587833164321621892826369229382338821127548588677659274195924146917928662321167722539948439843423124869979975657818792534417638848224212118563143921263584246929831242342187391591515764177768541554678666385435476951357924777822267933552985422916942533899569686487622729261341924976355212159686247418334346438735251669765613236967788113745427932887854213526912678489643174765934718937369759827654516714189563822625431316287731182752169915187348771611317881998163267957556279946896726595583288484287833449332922583131569777526834617742673754812115241918651142483166123488867977471561326228467663273512387974611656787319235791917358365152413467135744657125125839566161399445238593867568979552417893823866478138314951756681721491673958484396916411465922184123181266994323923553678969277469767772271592783927164861876523488956163222378651467743729469788574279389326272296761141876844691898826647264463948933119693952139812466181527719593793642836939928154553593263122381544627211192886249489795996124158429139138116629557416814516819642544456255797652382872322713756899234638298762881167377457622191193565385169247343861695346454464611237523545369644693117633167427439172325751794152343916112853575482514987145449664864364438675213253551255688544828254586243754867223227575328699424762386641936636937584995765796162198652543116699346636212671276275149373583941874537148195112628932949197391466719513212712864666641558277213883723943213378633296141867588765146331541676428748342437165941344966891866598371194335931325447633213188738455454666268289523365586784646479914261775583435741398866121558537844811357699974983768468423255848219145795791199375919852156639441454724282181917497471475938872815276584692682331957184477264343759387646795836729418756362684949767521199563144164847473531924881442451496699895279915268249627562615644293981597487892616567213363736936233273899578748374994229481974497714893749513439628839777865313863241424465597548331117882211496711742277635379992912689799837597561677229747636835884762634383128174896869522194672857111437638445813498331438784868568591153986466695526458216693448287292579915565815549459919153861589627617263653197922913828195142193654379623833634714195794297396652988941223465735133512822541295483175285322784286426698742661288385883324582898449188743817935744222554782861594492366556337792124358626882841179196642254934234458119787852857856521646938331665475353136111896548491983616662119533734434513956785763134589789543714147477672339715917355224167237621357924936897386912522827439181116887289768476976117287829737747215923897625212793411283955628349731918661279449678687772343976948838794611635482339916139426919892561921974321543334945867467336471473459789734156459936661373721867913871843248772754228246428593292377352565442497818632262911229356171126559688369132237438439263761873326275112913126857781516871856188714214394416981648699276251768537846266585184137995793318483135728434873479673362831161789182563385572719666892974969148146271499956116973542638925928611228268153753349593655456738598611435231394628566712345918668327441863781242987568672263928758472357535549737483241346437212938264816358221858262186639348432246526141862847743751393225958162613216283476139214333455949746797117636852454464786921514477956545297682826242518211241687261625245893173596656556479427143294627195293551115659287128721939481991511655754218126737598592529528457422796296917679329277318259884626794293793441362277818713691153511731188333369477156926275279428491488212547364877459156573413342379281223858234879775422551764981798721894797284151481536612891969739729178885171128161622791796668539347215612613429579659627262924946656117367519456211961776877261735335941781625145231197664469432854357326277679282181756183915181415136652329237335398997297695635128683794616338767546265824376877734193463876752496912482728315977467693881454683274322484213699426175263217565872182229539798721328744944791166375496439319171292965369628535241689223233949958134659412253677625646848922915718163993128365136478962753944515221419691426828366251235529959371321279212882616221243784679696627644554632682393415683149898459214458711768997128686879768613522757637694482284831428384134285469111869297395687728556958266692613688597326775547291775692151321469228839497832551637176172192237938711741523577529325823832134737596569512757419239711993195466915652592667417228189278487712412867917162792313211227855525755941631336495525835846621162437929972914543184476858599595748339327316669858294788537467849762684324888864572939782528111966224456723697945137195146935932643187558618493715494917491983146435179939679848388678217215429142458341217181898755576386736521655477496194174957485993574116169517246845353546375665811212728667471955369613238595175184356921747832258117321278565973397887852524649449261177824311548127892144497331236233825245278189778862112833845467748152568367234111221383556192755559696422134434444573628316481826765416599843287624885595232394779299849623831582769118621731117927891762945983258957818871871563242218312899114718578355432477681892531611511869717532154292959938171142181966836579664183286978776879867863545192958356464151937594489165418817912736372665667317645641161942632694229376731462925478584567621878299227789835825353199446117184894714462245635251459474884572959229655869322746761717984342327348293679591764331389986499531255864231979155377385283812764868254677664558984723229391576842657994668914713963275194141624778468634524974261587987481442718535396657934451388177695628798532869425127442479275734276944687773713114757884699162488973432197357568822619868764812618952951666321183232128895365436319414359881878182374162577121532561896764851658876272438229262217386963247313191617749542566677395881215835134994766611646393932411521893495683858518563182275315356235464723117857693891997426852465891261461135794963962584277313682597633646194481665723129849917266819272672121975547849723623228798716863974971514187947197419188959535732227157465948658489397182944416527323958443218146975574766117658269454287417192687134491199654469294512241951917611149948894238158589594687577347332325194416221958917256813426248369668188618693383187666997422237292981741699827136782462212225823111275224296897465592612822214414521922241721556995955136347687937919133293248627223635358815597398391429722684284556861651119838647588469517835369856821821793557395131982563189965446526485649358752659795182177521163691263177943116975374581223318467473689483673268786133244475112839197935293328186788893338748922811594913233931598476599473263244283684795178927855514332547759168335683189972656195528562236233965413621697752252793558671373569999259218964189259414361487633422337347234542456387613631392643865489191444569297757921949193478816714846283992676367351269485265735198796994141766481495234749222621489988493458896925448692522673622699447562351832375135275343693753687242466359476878386718967332671283329953881376185565351173239238559444712738437772397314426447282936486558281867177787138562369461898544262347944712314269376322211144469683286556776182929532652666192959177622288886888831885941449524529281398167744426594978821862114921949845418849488666456433633925928893323196934791335957229412893671793992584863884379181921188355324513752136315741547639538453874234488591222584648489232976243566813653553611953772694881495641219564719168953221369647677949859895155951745966173936782475359239744238292797284577955272686519362674583742369717491817865415341597846191236296936916682132555694367776788318981571148241395753179656225155843789793516545919216261782186551728797947681971891496374572135117876569227395383313848285397797474921842561988219493211729598235636711765854664512723784633545817567443917373622883952323557936683326516133384463667688933726363484935537766282357924816177583832233676451959184775255752499772784152586571478646241615744611778263221778715677372332785145112918231296976432249261339843332523335344839471575581513496528661983417679516662199249478129885873993659611177376289126917885362662836676773319827728418986513668639396864183164745465352992257911939514823118472927343532646437321159531641477558272324477119729625567621667412228349786376348219566327273994124858816544158768723334951341642936895438733497279492886829873974543175848987794632691282267454687984457255823276436353468193452148484299571787321745161878113217144454381358989953459446346556249584812836624518854686299753356213583565226576342598128973118728156312723261774834634512822572377897968374352534996447518666793562357174497659948562223868437684718316644498382137337623556294564384858276914117739491734443778297571388887387859897779214481389936945722441135914771681927945847531912146247637994953945628113745734947459112781275467728637712275668383393462488824586348928245619427747983921781138653455158517438192789971958959815138533283915824973871864568538832774992182653949326292446388162238527725879173984692635363169271132693171986274533786212427334336484692688295656925535676389722259617765474838429852428156828942893557185566317273324119799483671826524869589296327637416454619781232518556365996658498932383349462512347873252815744536654767714853977554878859412753417774544728116751236911841115346914457718527182984664657648262762995766416113211557821585381465455929559151469415286343662696142422467361397237645268324463176117343979188611365769591836123623347523312161187563421594115456778321642848956592743783182527184924977151835473646723121162769941437232214541894475666762836721754356466729897234689244337888953278724395264886244268681268153279132459876164777182839845641766759894861375743441524598152927693561956874447671722962675867425562646233576233295482458924566122265677824536844383527218554155261727418661335662893423268562977948679544466823982232448194282875732575819581778899144742259346718854344383369147159423538452912796121538765568363294436271461539242284149584319527851477412554467574877726155996772718348584829467834595199588255215148876157193665115513452365776279956561269326726266491526974591385931946877458963593543941389428891894581224919249483786814745425413749852351265192369831294646975258224348354652877851861223611124935358183446524298264175436436739355162385937355962378811344915849345572164778274311271114485878712248344712538858865965393779658753577857888773468954383651415379637291789646872655983338378715556266344297774849437659367137682397821229986369182746763475133252933945923548357439996142534759742945427551485927817429663938791994435181118618389821866158838817259656757417324215282896668358964827482122744254673741397121926288936147292516974246165777768386178681491552148442157624289117614372411454556271365926334235875213353286539247364655278581968578693819463375191354672529415252921291235363852876342383323628819827839465638716229457667939719681274298561432952886553234115153178388244276361549173396696182389117931447163116913322881578616426198232827938527849927965624255764576758541282864756442894219685932696439458534918542719931888379548962915658137871841833811638561467556121723499574565746797554489134735796945972228683252996245248429988662968279948244333946451291187934138845737652874268693612518392594377841694671177846187247156295531195153521527292719314927537969979473735665475545465767498195981828279546173526962536166864262353259292797948444576272658164297312211371174817254661735431749479699627623983597854836367332168127967628816266842223739462678468165827696213785896169915161797692173732441518987683573877846685683954988128926665812988772339877972469261141717177275952984852557683519413563271887363569745889548788638864181168785931884372214983734519927923881273262687698195378528529391488496621679439137654496246166193932483549372284948377781486985277315658576684966683361399777384825478226775151629945964741458741267978545841912885271544578442357944798272362459865818266989125828287115231365241722536235145517435235647662975956999611114664216618952717895388987737738175484944748898677116883556338135463856229818765466844299722525961245747737593937412839791933338352725487126219949122999973395929281628329939834725824719949531448589321124196468848299192145977716738748147782465365374487874645198872675333568995413749525868378154211734971768298372214788525329738792197954863789899157919431313173271975251418397293983736755952168254568598337946324595159544559363618458381983595843447381535451711535363349699963296823865489458392827151198985294774969497232161243846945733343519895734446542555748333795929268157529863416662135857136527433238871765916552755139732373915227985861449994268551523541721231929416349248544479429762634656747778311224977395146192365639293851679681966686198598714275174469326374471939637366247443941465496134459452293839443186379226646247573517617998832139756667222645482622372862653865738385996958495657774859925281652571879465213767435719699118173311297233553829542913872771578898817511765136879979246313459138718548523116594599493923247149729464224525163312242533646439391236548989376615739862934566485497941728546916568344437773411849433584347836472316748325645628459798921694241451924746298759584554245315627663653917436392248674997427878433787977721341364222591232818659917514364487312624764776866521512152488716446617973239814465595699737598142792388591572816355714777425328496425274311391925484851582994743475781112141132569844883973445662931141244256383256544731864331434437441664272486931393377799632963596561878996598516643492355341589134211191659489954383517931988891211211355274278496646329416276295315329637934673336967797414812442854615398655878353131761152385469729258994472216499565551688214965988778225224864618164131731137525492212624989359154457429522273612712953351265161514156997114464524719834951456496819417217543884345337612556186666696216851238553975626761468925563183777689434621172658584465722911378836768228216361927354825825942624299999711426428143414895488551968858737769481194245524952717793567338995833932345796181359928264786676968241365644242267258955322878465288315768172287811795117394239557377843541669259327717436749683318982236283197837587339883641861658861588687369827638617851846991687735583319299952811586579159127889336567375261341379825729631317121675383898821748629192953963674639158347919183845843837223479632637451159957331694877587815767839665678563285244521168848315897854391946254677828924697527916681999884598865546338687438128576565453783677222743412145936683339674842118828883223436719377681447732932613599722943613539277321983175245474355448598849757477466563976493728252812674549276812556643273545369449597841766347472935352516942876726319375897434627133183776953514933869248881242935242317892133325581514392424497711831519792833482332661881329889862813683765983224371358379257134314561746244354761686412436148368615778373616173241771713495231972458366426923235282262582993181215939562153365773997145234431542835771975291567756558961213346538914981499455139664449459684335935424454488889745178124873285787328763191779744241142437646124845691999976839243256378142553936586575462954858173789583648839468914449533817625883732185867714514847781971742129392419886556886269938825987189918147924579157663556338726514494298881336139784148661433972312721598531933911415279212398529679639472464664684199919148889757699635662127485784764768545329178822487689336714279535379799795587725473315875271124631591569117778116435712238239583432577368124834456826937749787939166892593976391873375938896689585154213599929187323726595253981486896145146144665936575988277225794397791394761252789177984515973393163291666589747555233573969397594714769316379833345592887696345615979899317299533972158798332782288256287895746933938797519687796519227716371952354932673531391752763343958844158359597759879943919232336119415329379844731514884697738438377899716599962921399669331964789469339878764865985851663768136162893879545921518883958124827423512777631222262949234935417949289357119121236429332624254947756671371272384724647818213595361737754769878259523392913252777648324679656469421539738944999654584742616143164227179862352226564847987599796117714599725836472755443192962562223572542914541715149348524579781837971162415575878812544891667651447444474821497277321691666429343176413794734551172131185626551746377646999344351453352812455419946799399313526651776865998529323882711631772436494878477229241428599542528652291688414135938161818853994748767824555856358154234918296661436218553936561365677968787444477187841933678615162857525358585183656758195955451535177511348756922495294678913155552213336191692631149496296491845154267766824177981831449978962466883458149436234115148136722958526752565398999319813696377572324889934452141961942212638474595773665991114299283283455172521196442842842251267486621137279278823915189213119848498491227935796996593393613576216145156747327815343673822178688282696279899579114359532637496324473188867824713138981144874314642939725496877179877971348578943935796245822429485172185842635728387811481631469865874456518189718488426478424399875119769567337966818335266584462862727653486182551484899437863948118864191598753771169981766959751646945194858136131928984688654616299687163774377468266624488748357325112288695231947688937891725345845143793214398857759437399723215699877188417293866799427389619169845653483192487146887616665551445799137337565158747498944488423992883516351666538267852289139218296546952116568474168176967988796341945936681527823529916714462196188582249289862113993574711928427275388216292292581736197978719437865674283392349311919616477419985442759978112942133992638258256689764652551644746935187813717375249615648612975567964645895532936986349199385731427871351712795383816724643215256834758728997326596967431532946618983753632362791397138182175636424589852867146276867675772245776124998174778485962627195218675176465262538377753815523934779276613138271996562741172473741657328529337326872935942189353317948879781423998172566764588818513279248278466263318883232912852168872688315831252838242341425412398447377659764846669682713254472226733597473747313171331655872993566714441614325531464427995184339798233282514157183333112519842712624732882387974297317558441592652925193221816326956681423472437627137349329951545993924259482943654478289163116515787913942145319535344249549188647448533635145997522735779676541364116268763262814976544392955971362887654868148435179318483879995983657933737669156975714981879377532324696241256744324522689426267299547161275639959319558499816625468164261633417447482231111663998894219272423156775886886942242921432348479683141527115697811892824147775723935977676144724813884288965437528115763276647116394712597949581491967274736347955325475157116145149855128752346867494718519214516489971746868444173444394293544172169133698432738973492622955362467369538361533339558711896211456173824639682813758627686116251747938382248328693354912513226291883621734656394628929269362971968228282645164526496292237335311133849894419849489999112833354265449438767532479358169232456762315246992745872897682595739395325738338491887966624764126156578941864512589275836292513297844646622862119927399828969278943396856942142124753734529446231359735437642743918361512446148163945478232394585311362594997894197544356374722152176126514294582235559186457552758369811228567679135832566221385111189991847594496787924535563953862859934583812489271534969254548524516854945173881922327142575326677241635931328291331934172693349963126417439348261353669628952738928559382215922946293265848919712556575675266259878974357257127261717264669284152848263977677283363978344351655738455742388996223429242665621173927481418397819151964129571588779497447165846851847248185144819749363978553227291814613116486358284472336437256226576776314838545983194647251853418976595868722219319753477543672568116693454664594369515148215351162711846391539866796299921554659839824333475461929439339375631512572895131566548361294221673533679759142286839566675986833185332215119227781645211688262469892912492313172935444493318444222322342572779762395644965698919239364491667444562925311669468362397536672315559741272336161997115768425545999864979992697796397873694157446422698597657425954621989273816546696446111642135587574481772215864597186959262511257585552773168417116791616856861629174232536367977546516172667629525847971696393846486184148819652145832871399573221619924884757861342419538485716866668937311186919259993731299765439122743841431345233495415389832743917279123245658987528946818971261868878982446245885568139836843828695474628232518155867739323594353899342154195998384956887237652849853857367747665959537149895868733927752415161545487191969445218411165296691654182882987811331159156566926179486555642323344348244878369767694349714934157579394569496463922445415697992639568715743478561693124573262324279841223459316365557814119241546329241586515929465154445358391833846884534936971375719244963945338826268642137264635548934338759531155819812627978432225457112144148628518669346179381724335539843685445291124622549512944576359517942551452824967827911247873733526551696867153734524448234496647392342927622885236571272629274892136217867146558195912163189369471982567361815693193219496333268256292937917467756176815447643466976167757484159645135667222356943448223742146891413857668793386629421795818488318484249118445997939998488215946775989871614293886775513213716463952848798116485852381412781317513575454165782266285334492523262429844258626733441863382444649771654978849511644729938162425393357655427367422883775681722341576239672487239397575932994127163575532669372392937321529821526873325372318437519242293974135592724241372113744758867164456814176389416516789254931645971559956584524165633557949893399334229767118423866121715683912834246112713554839431491858139212526226396531813746775859652573624246764417487741218684549796848261835165792466476234578336721546518115584729366968315138719663294194542914848424354867527572782199544634997749165549181737915124967328718472467711618581272662156687557484619379339168284341435993747475624552564571288691634132396933485749986232249899943244473865183557444966169958832146463648156492135529226111893185522885599137341682682383261468811978437339943919168377493437228214956668562752757575214446157767251717662737891647167491115772486466122395874937733472472938967514225334719993664891947129926566877399661659714294386997888435923642597553434842161751428362742915255998241524639794736451435624148528442472744613175591543985387149862999263632829368312699928722617796613865136843673722714475535315865241642226483653814251613232527821884995544817188493453555716498476765327687484123457693163691436992423171798119444194319468411191232428587397229519848775515614525657486124625666549315756216458912641141413868412342795326949641884887827113843966136666159913971358931641925211714369864764151175968931922432393628594879274272658449431663792943883179175482647361313369537631999215913441694229249564317969158967457692641952876822342947743527352911164159335716929113786926642842947353265645237227394886459543736551666229533244874253787631913547493114166371656971248811891144773883377894758356359138117111478665873652926851365278977778716461948183285758774281987744523959143851158433291627695369519814718972977711139981741266117987356144241911913819864778478167781384697687677847823199926722389418767426172855436634535287315255921552968234576138479998529923525559755577823425353341992984235671545881572894428632631828232588522999155335666429572553465512264353257679124754511756992433548963277744545919358424913144397173299853216516531462753856376974382367477137679615889965692288416633279962638589956953421538468821237134285933728413544587423215217819117699771511854212744953464154964614481449425724996282527821216566894847877349628346477949969495974468144767728442178653547486974319113478149973169834188725492823623959853849146938435196525795967252935319213614447845496765352966158667578648172755284769385479975622458221927182589865883229297657793494585293342317786197916662339569918327651761448947537273315351232964627684637429162777997512524629871639991632537584283933165426314367146297349987395587783335855261875483196994613262831152535142128466756345615811173187239744836771346861421891897195718681154521644339251239218818378936131472445757662674584353171774475313546111766723161485782759985526869459425987383221798854752392888622653152771892869644919138216976222526582662646611991894624211723864322578533273172151592812774959382427279376582686725996163458475427134952519757438817413757475825527812852827458239879234961442983673867938663484461283679613791967243835781829356463639489658643466658115197122548891737582455672235936535137371149123771814452673165798211748743644829818244281586155765838691955236216129337376761346737487572995515996828556123946517346874163512911583427829113653475952357598687734965647446592837332457196864536922475119668732455579289764127718845334291963197545353239632291164497816812211744378581443552548977657247347322648586529764828616462285718539692338871846237987633731111843682825712775397985637798798782959222592659187776239797667434537539678744641417819688454976438272128892244173844712536833466372373152255562846216359842277684821124238763756456881763971649819812223979253778366332529563353233354531445712427149271126342465679822965425567259177179683727275167153693148654669476334516323719525663967722177914637976597768618154259921128718162657397963633428842833924785581655464151313654327599881158516561917412332576817557335339288734735354576623284939542975872745216542888439647929773969347599911644622454318999875162984534534677848973493272158655643195347794477274412629814778223423856525943559899951821287998229314856449684462365337345845657677162594453788824436151643117775372321765132714246751715116772288329395686867272645716216773782513442899575283345816335882161211444523479987111581214682797796849282528315116963173331499179653561612432932516623945173979924279138261342473144347645941833239942857872918313536299683676878872856522613433685294153428985763846398558781157566871112919476549278913781774429116116295232775692483651627968959459968471548986135389441136811746541368322119622148872965556529963188828818769863759835379821796894675444329395558441967849898377735168589318753687773455335162723239977897672939686831443848819122928697363456324995938312973874965625341675116594987616893961357828232289699249627287755942966547359578537441382999564958144687223168811544562641677961675134644859631683938192148735792284457832785753135834947719278486621394562845138512885565582218879898144227621569648175522532418387181592263118161967319462592328137176182392197284814749888929711417116245344952231595483163943183874487811285317456785981374572758187666684115749327615622169235934589257547911832591953268171564812716458148222261365679476432712872496219111236162617545187266333363883774796392453297615329843268446613972591635943584914997293926586863921983466715995373982374822397589576712372771218496523884113851698267395461379128579868269433473299917344462462228114819752189287178891137253465274654527515433139819721436652978323655416738131911871813566664484759278752554644521512758494642115823787831274635685859599962953544721393319663129584543337422676836954274249451398643765596662245741157451374313156232672237441814817552579899194716872175718799969693751638547818494692163831626575759712655446165525611882744382856737982514121561122189263681666237816866367323314413327576531152723318834555774295436173526619782192874228594914335842193642691718885286936325647232339592752622599916599131495217249278342492541432171873922431154951675814166188274262463585588883959439725323131546571629278966259172133454656681337498215191514421523867222789792432241641681832872257858926885127232384353334411625399182669171773812325447877938447345392287355544665219886578492925554562287631985495473938658751295542658312399738265547393177295548693423542414239664383589288642499742884925336282429667575349478342439711243751882747495917845778899771775959137289828218993369238115271565466165156877665981793513819965491997392968533912971321591476816994533629561752858879828856536925467628564638613599481175617218644416251523374623561567927637491742256396424876121166748491141293327836578845446452926746758867178752387162595149231795369945743617636343482985816875391284657827561293341439818475894712166857494413736777547464844214329894533872235612455182565776297986338515628187222539676953552148751492954661363424361765919123977126392567574715241216697497585395915141797158461482131661428757237641519295941188281256278152764437486396789797515519137732897239867586154933763313216778867568445183587979246356667145811556389797945731635259725427997843472349933495457863743274864537864987861119544229483699175437293589266256219621559818715246856994929544144915158928789293766366656599893283696588355255429146691239118337686234867473714717367379171893651264559386556825642257264143397414757775229799344468963467686436691368678547462786582717466989558663338173727986524684429118862518731637818696148517848739514663346398178837441271743516456712945574471253886893767927442992295553988984361849915695248338438982169967373356346795328241983761877663481615238897328132928385352928365226648417138822923759275366172683145875577459542715622146744882195473939665618778241244897285473929122977437385197922312828356637437534366985575367387468282734477239555253699215743478296468896598453868127928592648447973842481226591392984723886629316589727729368387476748916576417855826598413242889562253799449923595143774186275939233413345247486879146445953454266597739332879346259874279414629369921844129944568535742671942967759833143927363996479536529615379242345536353542977819461321747641875337842995281861896917981645722143627726234219388879576621171174445126528938767544589132138135458769411293968622969962964766292176917916392154248124229585994191671361789974297989489237726125183198175963371179897729582183591799597193339426314885823821179149998598729652263559921293219194982741412476582636527637846745934297247364812174614477941514197416119835326322672197681731249771481363884315362461228381384262299226483813239475386114132457566377816186498335753354656881536163733341761692166481745214356751934256233182397834887418623298289595216424543124512243183393129168488929353565825927225445647543479262296542932434135678132785912938947571774915317764676855344427229867844234655422778342766197718695478789244565641465632131711668185864767913466493955958927173872356621322657286481875666363531665227348393921568545991516868825436151879961116858357388874756288773669555655131955683479844452229384138583995989448675568883895622135773962468492249684552731292394779166191938153911255427437556823728337229124395228759492246827988711421332752173948886199562359929152984257355547325914851875876772878283816359971451836713281766842649838442338473465926345219783846728562785623757349863263131224885539787249424947913128322443711262231835766158849141873195366272473566932536399294389488994421558794396439969988315254943484439298536268955752563177371617859659512926811275421527254294988843783774354361792743467876254947394571895222281454799366981374993341328749857772139966554572961284226988862549643638274522617625925413389432295457264615764325716256574416536969685945411832392917464883535122989473823894924214758136468861968895177355657867332143679466441121637253716492225218565491935146988712873512712232178617619993592362447798759972178928677556816942175844699585592384949695376758855338788536176384586445962436311743511342859467715357833976587551899824197833594927691988536181161152341132371662421329152669766759784775813857989929725971845391367535914389177867848335328757863525926333329815689422833616383534924547767757316247229561187339631974651325144747368214212835787784149179473846563272683765333811314121167331876193251437849239251552557179167665889821584596511655799496392867435325374724364318787617346332154476992363688919877538251782887324813938296186963615429487664385555848557256742192633571237554999573238942516615768915917652141988211894144694269859451125229317127917311768175969995996497327828617337393291596585973413125815565387917317355794381531842213658176865585211771998942914124389186662221729786675468458861287195761873833612368794549325333142517583756925141919353284617911151718974564877858773991451242355315192437825589367556582685618239538661442889815559198157696598352927169147127552461264734464388379975989589334471486868293511337324712559471817755339148388411132492546484454128551554282913915244497935361672436461778968258673191794229277319944922717522378578647968864694488778848589616463226711587946384161944782633177378858897571218514587855118214842726485142152882249835225946438488937431635724748719132525147986877529573134316176989239634332898549486678919515214115968481569393231798688449958258754692646465778746595348234949724173236772349913653175887261932439652228342241495612279885977211974286819923962431548326714524521927598489675717759471152393644646385133989451124161955284347792239632929864765259154662995755878731822797963577483837935581977639622789586723451532325753759512562539587148373235446811175925161324261865691992345825933415921942357343682672814486878218589673797329688645625163649449398245414145183846418814176919839643173476974157678458655345326179375513198593159994758173494191938589688527632619175872121431523359227968531681677155265298248564475152813971938734158678381136463867847144226879283939758751387553347939342728636828873657684449652355378451293674452616374796552787213147946214647798235684249417927329914633877646467726139968669381382534822565191871473269125152161222683638137114231456348743849859917261163762175119733696889654543358254539636136898257734698942377193434386898378183756214898125733856384853779587752352741542813188625981257195769884858882162361132521534233698577952739935252263315258661821777472545437932156376892647628686222455797371575112779843595453973198578315342742819783131566752151818627141214385263465419985988168729424434853368514944922428235996837279654771521894285426237626299815759236377266585916627378987757232235742367915414856583461136757951325451241579955612847849414289221655568526521961154836766974885849396247788764777149716312791274193715483158425139999439688695915165693897639232121962921771369766226495157879971866157934959815536955459236133298613494789679121626151953655764524744222968869929435519764249581865175271946846878219176489337213621936921593261971877595427147488489971939345242328968389993632469356448262674796581419297561695539264978136515163183913759618261167455356897392599878933783697793438742431159217975777956215873196771912917826613978663262548848415395485175636822688893956739569998437833496977235814217771627525458942379767481761271947999651985888895872418485482475255199197664354732871798136272687197996743277649635684397914172779379843169714675124452142459526543427632592858359695788923864416748391441635459417786667853183746565519462896636413869434641894441981836995467987273926278368792689661251686485182383811636496564421525484121528747927881418954394346674975937881572159191985214637195482874542587793692589199443242579656919147797956194113936249387243732635495199618998281814732545698761381689549447166146418652111776885853796629435938568313423489167542612363384766522342562719616459619635842318859172228488348872742584978118882878989727541428581649137736524681479341994936865828721484934383439253242644229592464392584922244158472636947985922442499789894218135387769457858972111978867387979597163998773569679667552269967896592881548685531495149365241729468637789448992831434459853834879632289233821993945379255437794646764576757846139566479922681935519956539214896752399279336429779764316235694369487314226768634611932553993428257976378853515975156191489631555132558334584171575175912865918311556388646133979576876962342272316734677169466293771366499516635298655352277886263188627577939549313727734412816214965692394347157228881221319829216765894217992724592524634624544911488718598669119251594755298588537316155811791525555929438177929539243713773623177559481287878732544895171332638363291219886668822191596518661486786796674249911929167698464511178558115528597488394153888128226169779219959798527811279181882488354275168137888468476373362489225522937739516353179616832161172424616389138753961821412517594645986513326282476567597557397651249689821438476122751414223887982849729852689289364314616994782765646511778677612821282772239315768328284142781973991177379198555375193596565642839946553461316734232471926471553546182337457121333469461997942275873115738429342576412411994122599798261993827864594623623923263143857836128714954316566867174366449123734584988218665331937354887799962411797518474895997712999768764795764514242421919661768625491868235664978118197854828671118283916352748448338122393161161868258783856688412293432627533619434212376834664874115267829161993292438912367654844369931836825145277967273836229535438511993586913597115377987941473223311558148388988425213895843154374328231157836677988358741946363584396491273739436251924817442581911549557718641354345626358516596459395964728743267528142972532166195481852625921572275453695691298745719861452398515951298668587449811796721849681174193849696331211279741825674671978263123645555562545416974232128934335688134581634274851263274966398746548887758264548554762157686541194973556352685531996991658313212697742466635177966555521249461428192227879276852497839953878819627839516422997146829614882762622494334774864567248117596552513743155422816253866566315859919273487918998513788335865339229246473154854684852774258771793615232437821279554522946614763832345478259166912463546197464745868414129125625651984684338683168788199911452826814262474232437296995874919281661176394625747366945333723721676784293464927753347769949391458927337572964639952638422431465366888535621974868131852995931456144976438436892694569557149185687975617459938177433278972871328915466192984681322639526792634425851559547895736999839489651872367291244723286784557585349437552272275446755222666315848771325522638162646158224734317164195546798495557252873355665471771124773411856562757962537953929931387436412158132728959645836829747479129114826997672635127799573191912812393872548692113762719819818989117485438397497664834615495384185823245974713469732993432859256527742327687823675864916181986646299322169759817483773381368722431353469233223851118335361232374399535347658833844677112215332651594127773555739185695715338492442753428673146934483863475114358313634381583275413788926526849669813249197494844113914545138185165279288828292612891245657545841458256147857917186189554288671715421123797486984682436745581551982994264792499647889453892845934113527797935898565419578662144555795574156534371899857513727963322867362824251331295855216892934119726896311333342726345825916316267756377399424595118688178698215979696326357516917775472241951447395826431182773338776988983926644236668776932164941539337528162574139816399415799732654394991256549439158878357229385695994828563414418286919632659119599981636857386994585457513513352249212787415194432866626766881115924282732221553649282756335345736145217328354516524598222646128611922652477738369628539784284945146291436188724775627585813196519117149647518875226964444743383293886759499276697173526889118217586251989995543359512288288818656162969849384618658656464243988693887762699948783557983316695364642318467351119354151379928454797837762386486322515532513447727498164392829551681243373517278818624132214257225229445786413283943346566872593194937495934252445657394871938238621369652957189455274551553365126131975279878724241586539655165667755272258931344382734699115561226644748441554772955314223768771233587339375642836356677933689613851473499763845469126698957817192138268123395731722481276866465557473164484856828946153537264528355561988373855658253495112453287633521447632186981231731765172725876999662769347469333317794966343843887953877613545764434819443637814598776436689955476667591864543883751373931735353828567552895183357375567549854935772326595193227945481234919311878919558848269853382384684413581369394187893677994923479719958974894192872149628129347217292988368667833945897688613324932121946692385677156724564786179279263723941416291672137596113839855126311341851927129869479552435846566589574565366243169823956438974522578834349943248129314847634986223815337232345246976351813291712982315117231544239754733953122219449859552515817772155449641761695588334474954522736259214279339677599846122573655269279675497463113985596534797223129976426151449538966529887517899787328833856898585146825664443392923695879558396799481846269579561739226161781458386358864892648721622326394338156671566945118869832953671893798365311894314289163256394483742667188167497695681715445773947193792587225875434413946513716425684732553931363693996436697237794977112394339498777219869572131537337367779527474194168926128171683428975726553852248139631427485626492874428713817629472423152613143339561439511263199241446596791922777711751766865889823462832823999669635691187665545761954935324379233581599254688164258551971388299348487391749455759694579698316331168787852776251119466335155776783659334492916126942573977345912256188427417118692747934757257363971792343943791864566832535361547416531634913979435916959575628258891854243531462742446384734557327312525867792876199537891334955674725291869946635587276288573949311821895797351898514122868152981163942411235124855356432237335431634765768279554978512615347879831216672489334611361422745422385314861197811261296227392622851379654653433448466177796768842868723177419644389776446912695789651857687532859727359841919387342227975727882753477352432459173184789251838913331964187223119317676691672363674571978688889728476826863199256613589347125885712493879178883542789614215792353492678575363616775625935414628758815651177337884355748378529494273538635367946369744561312251467719572997681117181436457572517287124393961962669682227863814521223642827813167826147623813354366429591282477169753324614838345876734842868674539661921392125493164347523361613568569599681239335758399626686832677615564566498864693644113684751411946383913887156499819957333362365973174342146676545531263478513981296529624171525157973219959247256798649155916411198218182916611379944838338857857577375575935152955327249834699455962518992495589911625696965889486636425445992782853292897376314856486821291467543852931667286561988669788625477643745699327852851726674536872625778337258743937887554897474534911824628391583371925394931384683764916846883198281618991937385559941513999399216167846847655119192943232251961655239713567967867149362576472535938819154731415999925163618741334123917481421829891416665439452753944771712694573513168582436591795161221389535775979838961429588885896824776253649523318358296174454945412915369312431256965562997391749831456366318424919455544264136128943568288939319254697194316997791946754546466372649439768358927912675929554272245176943777679359496887743259363771364541286912852439283397323588514857855545529651669898529867597981565918459325371258999874524112257646572492838943732627168479584148685724917791964125819756685997765237627385382682163947596984659162724442968927224416955544898894965299384175787126611253542311696225943441917518168173326446416926518742733373278976297731361862491264436564861667276748874758888994346993368324821494271555334124446945151872263192518543165366689383797775991219348193388724272299568236635634458266485255573682637541112655189895443957494552724467576622139918543737466722882228855517529428352424159621718829694135786616432573978838898689547849427968692657834626485253996781721497257212884245884388586165135155879589667181568786634239632137513441297895839618261673625627376691629319792652456422564126743493453473232296341863127528173312546773976296628714916646554674817474772289752622111575219675945773949167131283373328748684278645939734436444669882754523938782174947279823189166231573754622728123739611918725326473637187259959213963153823245881944632446331241337421613826383487748872584497529262222492931368832628767216757663674714916933695767642242725471737197478169329795448562633169132731578374296175599244497693695777734541951467816739168627877444926479555599279642546418186729111547582931837799753473272642642696334516489158932368575548592759373613342246848164891355114278195355679784366262442565864371989414861748164779813958445852849879256228924389269444376652844711615227118435441374792356448818868381171723346363622746289158834661658638852477639794311215988343498151845962724593813923422235464268242638791148328619951954489715619862531544365126999194433312862647889733157558158956399538695868537491694459244838568319269655498936996329333615461281197951489183772214236477723821839514642659915936437975556727798549913967848341864559113564244987977353836669646891789936341748434148432986731318477368993866598812744731413433259775664849498289343625665887112969426719638556461622277655454541563942895638275236354899444787724916185547354866499779513979641931538972717973611677538724787779722627778375626572325986455121992142798534976433664252786288286379458392688222476692869467285792735555613434552121195141758227471935386527863974973476451262999972599142827113591728362367456342482385365165314475199215941565693721255652272518816736319346615877882446544784464146656689241627394437971248675887542199914965585927625738486863516715695981539921571933861356496975434822874856713895962186635221653144232695265344749838489791865167479527934457732614443312277672418269952487149211553663771447578394397435139149983248526449296936245986399283271493235779778369873261799617725753165532399125992218376147798162368811939932329531358941611317534323315387428461385167128148682822142669491226253558349144792983995152989992515659574477656844133637624614643217154381155638939282842393555765469797892355947854947256391867213172851974468144436142662748358565649536961865287791846919625469823775361346745323497876838375146423838852525846174761444259653284466241382755363737761176932259685298235411935298863861454577326635546976968467144439564811532194537215899736441783639199151258612313792754388356618418213327277398476631157783333173983114721548285737633491524739828128499343249513375514546818799691438353576526753292546927795645677582648289853953296797465928375123376184968353573942577159886377694293588214541743799484372898657956293124467421698537854943886572991392636258216959745938296744843763834549359855717299919574957334495859664648927737626574857679818483358592483155726463748595485223437285323528998535788538955466698227748189878629198949635272731551215913888541559343395612674727748228496351395218537987155426199819658363292613455243848369868648592418637797932345638344221974734964736495977211653376788774147332785223721439484621188845248971239541722644672832849723237923835669731794241234417378571273455811783762165187426143881997132413571745841348889583862849552682838892375399278126382475329477559348566194991693232367888726562495341739228288419435213175622751264236137845684526936333784858865178671354812263855576744219985481248274554669743279843254151488483399543888663861844158442571418637571758613799772976829166916868515579331519466664245151642227966594425366312857272765738741435174316842461546253318871654686973413897923965579791577533871477618886567763219168115857135152812599136792992817628292895399461519512171271352912722999428354214155242358372463534623644468778172495619436662824165328655412228456817741496566863484258689719534115778616253738166462228987931439717567172354159685796494286118177723429535839687247785192513418979219253634583286754363523643439351366427866174659965195358682516621162748335689575984428266326768874148861328176554895612333998785188764885792347626186298488256764549817376599261767267195811476728699336866781846562161642568138888829496964937573788741987689577358287774966623881764743412448162881546843414782756239359493299477422994344692776377213132459487928118541891157774594797842879561272125113117775214584267344289295397696896663164412827441759668288847427972288529691333497353261844676273481232981913242856263245693118437349447327521616212324873183916539452183834884415436813111489842777875157436765217787197936928175753257899466876644333935416313678884662597184647969352792322589367513663361614218133382313459374925279396356776577796826162987378786725259726454123615291388816784256771541265466726135153934692926472435342876448941554857297387835967589567291995949413133651433828557513223311694435737881923294948598719829978329882579561861155814764556443364242388233319315684141495948255568676488718638197581429912726262828456226189787526568348529925296942553159937668293937777778288762817122914669478662348994713588677378468733561427549339799848614429266927363395948971839723583825829412137466749626598461727198579519522157631573121867848547285234176381932978271356949774492713221747731828625649332299548529839893565636388752665875717568341321566919537391466734195849773794749341183892836518727312268438791624622891874534395924229961739781132211288531859351653458521577481599517359334248284538288226954894843578581813532865683493978467641997736696957133681729116842584583245814499112468331241723862329543923343242367291214175461672524725948262378186187594948986238598993717834643341989373161662412381559233695818796623827774924133187191248739598159331118398692818517522483332146869868697467447387838167381473969856515341984712495281927845241215765289277457675994185768282282757256974617365854252628436545619424811269995461875925867492752593873889777224289782367996162229497675442263482458565264878989928575118225463587444859136934815753253165411558381566468159439995299596935981718754488183935934443293784362332916335144436827242569636153275365887382514295998144996611827453731559599818397182581141222845127272131911739447585488591684285892994873945779517956794762169658737925398774625311889255361225977668988755216646614528944164552297195861271744395636439735178298987553579532869313855727234153831475611564649561744315938332494441812856311156939341843555694938117282892896498432495551919313113729899988528349578923914843954325295192843667624415615878273594913411694861511741281677595644924264313688637691728776415878271575896154816565536493133511226273752366646272634263355595527933398413965573645942266615156859167898985532874367483953557122827586385646724241879963317918189738366729391695671467787488286958774344362322777823481118815419276499825146114775123124814334341779751154754139531732912344657625589594859252194167356479734595943872256171289575219846729978451747753459476424734698369255891853537852799321783952877683161146388963232153112316583341546559168864185281381422968272226769666341538146274215299117128783549153915828425835245245745494756642842323254526139443896445729372446666771232724667846371841667812358934946118464147673647713483527219613213948342818262832171322133993112395219389196278475496698887187326726554554979616256616484182793365819364559429124774212429588714294119464384385653963194842622931432266595924578664853246396588511737386766213868244458977525376438965542142437341575362913339862658111325447161127644734956732987787717242756857511863166638736494164768842426267243337981762391796172856997613216448136193232281787862551111421854746445556674632328352362393387652175529176438549275491629857511618169956698443368798751634374234939925673417533412376328655967359251597837481621747369123528244257217878617678742467379539353758467145995652425652368121155329955768147593733277284195199521425889794442695891529838427369391779747979229519651542474199929196869565577437293246463663655454939885432165883995622887133577869747189375662852414582394542116171777695259435465724832265375972849617112144571941213439846332526465276369726619739952846468519946552168939588462456539156996889343439232161915131672587167555578822633839738321388535232885332192154337298921947781294362794883998421921723815674683819177466755486578559629275534724621356822369817652524322874245597612293328298853193435592825353914223545354148347678228398723124434767183497221977688417379671913378187315936124683533259197186414311832435126483535748657355986215398331732379522896769575163573992734797824755845419357753181379341799571845338759674348536562496465492375896662528842585139268794223359738484534327466857773641953287151888231541386762438683767985779668479434543197231197354943499365182133566676478387192585635669168261416962599336935274646192197893843438578411993519864562661349533766513343332462458694849863715971529753964191245894377254424919852725912312324714131835276555541612282322354724925918434969522482699822145496788388921416248485544524518957526334125965678316859291642335977699991486843663248156111243749387177124597854167873463487641558356867316981387163319536288144969634254753771486796548256169455297523987254292751214929625548968729917632931116126426267611517268157799982982483923538389329945649428216495533734175983814687142973793332775857254632923472285372641863131426239593674821828344588564866997429458625187978793149886272751592436397886482252355323848914152195713481928232366788972862266375745983174787912571366442667284667155352738427655581224268877232836361433273928477477784661384466992934241533369886654911138374863955468411635524979471373299575869396135188639927864781199946423242844442294186751138237111642865849263361778244356158858812998571386523689413837433218988286824843495652682864596816514411182466515969227393651232771221218444894389292729974186264175184818396734644725612919615922328719538191564835295385245646867747571488435897215743246619275848595533374744464826131791617981749172417772927488192161921718872789819677778426215311212271958126817764522252873293223339424225815579922236314522744965916436816253144357877328591787287719478194318732419131879937655324262151471152383195171954728149555759787783921229625711172875739284153721911922773353359436898716121382373464542766181913693353954872118234677643241232471515791187276998356919222325562412971878586175891499222434778828995973731337726655665798965836635223486417178643118567363756498929247787475348548384919284624414238896544166899537927835186516838696359555124976658339747378869629343388689176631354226854639491314531488385838853165748282139151312441357729694819272181184988828152167748687968885984182369259154261824683477255652948175989975389462838965779133237134521518947874855631297199311923463414297864157621629328259249476715124791214865926837642455482852353623623918488952615751278453577838181379127813953527444278426118816824734514698831564971712321191683144484853635681978948161279247541789253415873858543458464377129196812131597782646771516944535544114126266833176553693286639972363673288652858514662971523328444692718674769598854941983114947497476333698446212595583793176794331943292934544784232411517266598593812894258616928149198715355293463552965625216919828687113421757912197658168669541298918151216815124767563428352272162965976455856232867218123349444439926552936658734454245579493745736382474938681135349886615878342868894387945947561348898376119286974382186579116249929746256264651988175612522146927881515111455553351712953256647335376775721364688559643858413234661237618733181835889164914116573575345997295387755562851341987144557946655174849395588513691393747421186583857785133874942961345977964512787355857135438625647134729961238853337939462213667368631536548312534337262373638365217269613434587999615743986811332936996229576165915588776357379361859561397913413861646351987713897742772453693878732457434914274847114248496774556571223514921414914328257814167715725975267297596828632393698368729316822542179761432652811546228137629752869736768824983937547251992876142914679451748141674398488474968168525459313216254583311946332148888322353652267416646629242456124845169214421161623175989213825288585495827822974289688519879288135575956628795124171921797715418955348891679281497578546217647431854643699517535182825535198741716268427357891397478821331194263679511235824834572343465473678935866888368732289214449876943834311887614486583493736593196267697665416644392431793343542968726472923577887939998223466562233771951396975677656477614259372647532541148585239867537732668722455519692451773649271954121871116555415539596859677752153949941585135577536111967631736139923972464821452953947589652254145422568838873178251819875178482924169832618915621711587985723914428292452342694663712498771151382299334457616872232271947942969189892346986563565762764458544531311433921566712377343777421762782635925961441557361637369325493665147533576531257221935867216561954696944575581291284769389824827276861117556575684958885667939756332332986533981275152617381264676718996438737743347596125139487167846478349823146785496897845541224751675656859427856445127679681966923467943984669193595261119294885921625892257166396612722541918411562841165761481942112266247186122296291666784688688813437125626835344418967315973753184786247611244573359971477642841318722583585832266954989644836746617645984466662266554418681354914678156383847953597838695621991367262689873568816598367728818834549617684939611158874655435217459329977458219223111455887397932853859575385215496431828647339415789636955464914456537381992833291244649175366719342869958231458463826623158618523717692395438364435995288158791951611849273198331829338132891876846821747845677759562374543431114585659242799453319526861112993352815629877623953984471469659885855427394156259438874719754632126557266571185927684964829273374938745281388769537823284211447739594812838695547318537746771532471651733682144655497972647581737782754992295469899575638487448916271571679124193951423249984774282328385276576861792926993369687718526833571155125115695921878548489963221215695116665966143786524511612621171581937522116384935475435596583639532374475913396622155594952294256363791189418871976425719829233768128937958735732364734715528883785476171854326552834284745523871228725898229764836344616157324335116585397363656169429124745167576924443158313728649542815391846537869965895155829763842351344876553458937433813778962186211587133367269883973241936144744692494521335393499693795298572822961312334754183953111631376568553574795161457651752813849485248484743248184847913983366284597335698922831293983281596915354966436236397326415722852452866263785297826447186558733967944559727246828451158714576752345681661275755581685455681265398747693729184633681915573477896761519671678931288278626863642227258114162853962778639124477588283893397382667645487387623451279448668387443215544262823257264217964882436736289595686892618827613181323776384133592161239122772979982158677989327434347337495582471575332939851683126649388737863711233425391457658223249912587767689921449374939849954933272746414485528445748622626819115289738157698333895557628287198516377273732554724379839657345185622438799854326643415368993581953184844739149693744269158396381487861133936885158464369187616544328322514181686433769767437972483225355653612345519376927615834944468723172115545572162723194588724585683892336873978249358796567895363441664241437241175944478168474726772986138742757331678464211572139338831594568271347173473418621542215353598415438934261312253295325749998729352944359488483682124586475247152255579317245494694952588992696612148178692131391774832622771441455242891913141998479542618742786189379279472562289143213966134633541466393437656459778965677949284118738872625261138924361954862162935792863369463153579564849946137497582818744957285141434417919659317488252535354747789229899855774522236279793167845646516581967398511927997293876349981538524254193185874573769483361323154478667975542888164181217227422758624211665643548746846457298364914335481754197779344889687413794236664648937514437815663382651954519862765414746426883121366461712687753283566197665976982437487546311519754363929516985236865528248389144569751692399612288638452268163418374344452322438192835942836976793136362472614413585187151748317619244271331762819327922185726576389696728683763684275484854499118967538387553711138575859287288984535453987258361917581319118896157682871596321311959988889558962719887836357388473261947893697767745428943762518714718586635411165586371547686446726455117547643181797652398842413146547389843151139784824696746949583292286389382361641199663356293323421859877193956145991216626946287252148637831435823924574168785491584357938162442743181586254782739264746642675848146174698976149954337781847321124622981877371265587365338961963425412578215221668373896682677818358495215627672419689347414184818646166617275495463277817225585348943594311741376684374884332655448798128292138787994361792857391169871689782658247564432617337344229277235289913648171341953675886713525933833195883815899157535215356838111329787978456352914414948421222342119886621344334664947787798823922911562575897263557235994876976267212359748554799411881258654359961185968813272212298214967392388395892672889881918728115743852681278225312381279951841223598657564375715923839724887719149994648975435825298168447217121811164851383674274979713424124294191585413779186473433574776285575523863221938565788145522128476827192393295941418113553654381862561689918492433333477533951936273231111848171283429272366358965266267151947965317213347873657164778473467162582293426213366162328255482186345343575174219815947752281388991434672279599569863537644672472513869976725751646888553999145175451347818373325814647847739346679693373199321892355938692525172941377575416585619192852984381474592247778336776685868957384332771783549362839487763658286618675543887813986824589745553213978532811471768249588452816127214945235262237942899624694315915219631147359944932873243652143554315428934737129216428684777922243774567738449449882759126718832187443925859783662735635296978177719919574453617789242751346933613592559984144722635789713496566816961848253623785253122452117687273256161222589884196321522278895919615526763642141572613621499889848299856129213159211572611598463282257757567762782647887836662989914668324891958121889562127315215561383661556457436372383114523858975131285811653171218518759134722334341822766973993642516419789813236397464859248312553183961849153671217593596337371668864847842988117756985527154199875357921119728584162513216415491815696697567415691741859591828998358916562282641515599448421318244824578587749881239273894734636997444392965834855663842114475874618937113586871335419619846333783574264423988991541382264796954299516946134933167195212579174473324817411713198797227265261698839218848819118868689295712751533443235115916683439358628884836169272771351818151976746614876371397374498589384469833583869387417144373221147363256494768797438122458671664391525154419379911713848716752181131536876883773743927897363569563515182669826191483962696833778928426572463172199285443926283874725363598794893722345536134222682918257116495765879331834255394493217918557923481313385798227466777467292782131959286545467294669396995273364268276729364963238267657264391715523185919396627432196693931991552759249168521244443113315395459424327323175198323633842262795536858589876284916367432657717359845583469176377893535688459174958516642538266745997455391287582333886939845429717453961978626848926618582923793436622519461944746396135216485728368528445348612231733254881252987728653185845967931354522636723585341448923528229234575647318646169113815156767779237689219154569569749253828485397955975879235979844757928766386981477854755252245519292177696283229994369785898448358455214622843822348126515339253997597758931212325136685297923311949624416317538141598918618827812863192723474268217817677458238314513664892216927696352986698428868124494424114664399577146877744434864214514971398146749426279423899119559845854767241162678699888789624516971446168975131971967734576826424358953749151258133796143735255589375549444457361538133394619266294647471725542483396615976992519862499569122151389849237715866641871717617893829713626287762224312471932711973843194612376398727854947996184367566826933562334127512191618934679252743999233523273362332914461375349637541783998213425525752768292155798765953674915545929195894999478244638885275529111198588978816619962849257717627626564361131692576659565146897458994329332389337872838442911645435765686813745532715457546681124498956637911453613956699358361518394956636661821115765689425354283577231786767877334682523947365523335283769436158426567652377837958467733656262982537292328891685521282447952151293812933812869412419453158342251431523793888817838773987891114147198268455226998876163753643146745551495717496263769134297491964429548928557263449332651389364716551341185892235167221149866335879793819478481886587681577999476446516554381469917774611399245769311854171226916673133162984559381366664684374831934239227662681626262539846228211534445191259329736867741362172224557956172882764241813948955266511296783971146469431724528133673683252447442986819871232924371648743986611798388265277379586638413699251211948744351976735378199358272383286948374451932458258963781819236631557882874918733539897778681242297875953344115466335892749653762448834166367792415893956822187321193318924793934313698378486197116435137596887217476283911629229852454193689481136643834876796672896115363282183636928496974541511119635833841214794524121464413423375848932141419762152188438659986359252245275241345543265139926452456471997411434877184476367991135563561181134499197435161741843389535533545875783435929984156375236679922499866997589586771418821476367496371859517445122252923869584223748724664497798813985279917438583454829249828698887383284916765911372386266925713432749139795295222349865556926257321233183693124338223657248754484596894263464787587742466332579929599894229497936791946657714786534314716655357827821465236494946366637283626498169115618157531167629347587216813792363256898884546468116716495675791995474352615132832492942588957946473797856459532661754992786379826285971525458514688978236752644352837788333984332238841416679893966643555742165378162182638526712374628182298626322428582334793829371179388149572623561773153344251267175869726776123189374617823937744319271757459556484734525698362672689554288933661943383843668736884739137839175178396689846718385756559232939446366723616276994459114826118852367848188615284529439719319275311893692342869222954824853751272159317542627527622993376542648753583326476228889968384737992655893235672373951846654937525671269462827944248223778261812369374221292975398299477273253489216617536623142851887494618846756417159521724897876514775647223753347187258427214655121575296451674282986728438792193241658283249556645316948726835238293999223167721231635595177689398577578774546558511959466924953799547324657382132227153753137316249871234853955166661835137767272148161535619226772755258913631745549482842854429584898589842826259296371555786635914862756936441261876722389852242527682364898913881562789563687738585512981772861896964729167648487837125181266145642922918572419193794281397892345435616464594493552879998676791143694329568897142138927774444457625137873653356458359926368684354846533787912557272174619468782166697865566691326424773618475682241926461931861592868138866424546427154146131161257959835367611242836249832848852546438855514527691324287371946189622595845396966977385911914412362412885394889476994595485825941171258688156894584922469742235332346214898588736118334317329843866577756695466967789199721794879425191758185671258157929987365216715769667925139844536424149451921385342943535318661382584539419448962155388729575693641192933856642846355935783232385474576851324588114595973284422949396871812349949288675893344428446924993116991818776265478719543134314613293274931646172843776178419759178385678632138212379877727582589216764515697427554442993641888798263514964694348782871134112971786146432681114872958952362448526129652829911387472266282426266768633813684513259365973114619386948228467727142976463754214132615426263743447533168432733144285627133296539281486128382584892354956265817624752454262219688713117513994655929253469689537318517258456611192917244281134854694319153613713913535834946321789211914365536715967441734366333334333659191562147781854278719133355619518555658326381597477369585955885639994725344383929745694287675126925386819237439384853161717118718237816729442279645741792412282994674345279396349713772813921111468871287115639519776956246247373959178779232172849524947662389585471247168365548481874549777514941955569476929757735178935685979164529557948813676273976434831636967812496286544141337861142294791471619137671874896672585785154189941944699777167614851228733921925117376243947597873994756957148539255768163792588767231736438272185562466546583359961133665473479826152595153477263375521947284275769829423641266582933937645951427497238572498946139322875369411039652589738512194824112536366369234472343984184475865898524158972297331627935262746125867262147267888851533958112624119815928624392276238523423674883754135987216423945786928165532816219687397849223671261975418487198946575357259317322318848676484268724248944764485516389147784181852364157423751392739734392791775799194735999128281153482551417786784157546447255259487532572251717222766389895429347981137252222933197635525945869567651364486578667439871365741595251276625251827658535552924973487494945359332996648293285672818547922456469657121939356713783535317451987733544536452911388439851696773455618941585575683426311368726151529394352898445677197222994519559579714773597154763475574923857794564842182676952178534815291859316689786744428535377758276359269738595278511343778434151665582553313718558472648571875822278323542712647484547284361643869571734913157875228846352425581348421611925583994787313434773817647598679127327675496638996277839688435347968625244696595112784541374887472133647896445845913355472759486598742531154537137351888953882439314356351614316139917882179112133467992952382774774553659469652887465561778855223567712657522688335881857533144389961124666733546124198851155574361362726289543144553337431867294129281819653867311534165251859261978957812288798841146549525439317191771988658432434978939361382881968967722454596884676592638627793588251384634322687227289149819257962889353674632444161964844758344422456693964298593589864137852284327876962471229568444646431559872458154281293248972346888932899833647955974387974117684476556448791486882299896296944372835469238366744843722431924342434861773598261555716858839254376662628777474517878452334258665239372158885135813547769185831333359463241643113366132138411434668584817861161386888181711754118857227813818737414292172156356241853543713485126536633838462175141384555794315856498781426623117136479848278652182959981542742344881865672536635839717851824957436492868111664136816671662956789229314294368662141698653837585416236645851725729778643826564984516169544515186963826987543841281886631182678265445934677859877955618625772688921393669345223827478139596744534654921844455536263965824487749285576469794246751946426755517426863498366671245249879554895525111341166623736249927951238681181224129682844557448934946795793894195153136579214195378958337516816311523959968267785679393142622143973277164989557913942235387571678894699977832523725827455983949628177964546687859349965552745696483979433871655488475738992552189386227415561818646928817152159978688438865845718318189783987974643565341635294825723691889667939265689552951442714963941716489315853618694737787173377356985815389649418761448246374197695165593456385252185998535724473879317652269774773361114575813999839574681657933259259596866266147984343397989283198846433147542138553782471388687362894187731843678956173919758583763251723895153846544644629477632847819187682966611963424351923186767574343539988885226631522829386934357689487265675237279351287779194752688395762363981714721497496672839658934141428398669798437183165921713126957767433482235823238729781972566342974212424795916766644621767381377687818287667234886258324932968627498215961584862476296598783554284894379337613749259897764918325795121153793976881769425815646126517512771167646622544124678279711461537523277638782183539446226242184835132685552659993727347852959232723981336591471742365959245967939317441989935988124617522996798618452449242739541811551751318969895937841994846736771745756652521923796776159621388452836481631622871457942913132866839476429571667592386476678743326263794541585244353889446119431846915358296719245412246856679752442966684264266597721394851724868944483817114654315243627588964857295465265539851364524262167431149585991453336353694829125657752689287213435159318688589954639796614324566952771538467361714583243564818493561522358973143391593748138967214255378176369598648812624419229434861757373232986656727258969992377342159473559925696411295974192724828855989882341871889376686747938892289268381368435353811475167846964979617742565989361287783366852249119773929326233351819145619823833789971811534748828711272153345693489479422774466327234338542991238175916174418929642963717896819615296793143835798974245833513473883452655938397284597979239466743888943434364861219997919745418686379422846222233232822795226174691542724435548861942119631227477531682924568333327527479479227858817918354187328859586423345129899581315613333127965696939339218147168528641941647997589411429324929661434418571261818648779691983849871212858974844717464323412594472572767563757117744275596655982139386821285995679986426179567679596988987376832721352859795452399987776413985256271355314748867854522142349754361394715178865539879164196862286216676173857391276173472157176786243749924653551257484688395863386659531895259165892261989465793346288278672487857953151986455579197913769817582377571569194642551141495475133259897843752216249154283639133337315889163263676682898151953285796285179395553111281984179276756263569589934243251148555362937533788736528932146241994429611254423194755537631244132464324438761879344786338352664819241563339326249496939754829298211167379191713543235199471291912116744644614957159558575594584684246699959344949873621168516864287757642564957735186992832417716479144298573146544133215245915543546755682896449742953476766211454928367555189954247474131751784176812556954859263898311265133439919155659143859138747864266418489495769653938731615381695245984813367233426289148566526931427897914736956574377233774466397176767138624271697219576812531237793495357674733443381871923936694844359916377621949825916398758232546447874534527499989598373185238762349692142771569429245343755521745793886963919839744377543993976436614299588461434751494693888522972379127843875241279437615546633749641325592195112843693137688853796737267376776869128322981754934595312949516171973815882857241599139222252769756125494678382332143964279234218611141397125338342528834756156816919837649152874935618972676266746639373277265567137734872596151713631838554998691352649687382352615588332621469485547415124248488747669621757686939768179583222185749692766324827774589428648747111161237758239916344275948892512618621285998887491727122981141299951968457235765827637626629637423427252854339791354924665427268491194178591361385786933474298136936344173218147594297334553446937569867176879539837561824247631386363968655597471126197421163291626812666114741842442962978288348818954464837821953159346963777546442867251823826221134638986549273448163245315825827288167521437662476679191472953659446287121776822568466493497652696114816773363418234864193766925424794362487627441726226382982423882217456998732713214733829951339349173662335495615878158943165888794959283621172558353147432821689164182243348483217512245436483389687891933851271921935467195413371949942226323395396743441862199183976186518827347821144139328136323821571353966647642943865667287468414438624277839823298654372917748189942257831821229975391481254862846859642523634622942979184579543138982134396647841847735161924227915127447811584566239536527948639139854443489736347281732435286988964396434495839646699833249848633843485713396258728781895877639913152423741456236815974359122992396347421546158648135461452551669294825868464237939465499545591428791286112333126951481434874815675682283325526191238262547827374732831152513112224939984665482753835821161261373654642917445498781372367273399464827917641989757864988616826751922713366464348924392252633287378349676212534225644648711118736669526126278581933397267157921475427928545382285523229734415352883474326655863223524496627152239367688343629949282519271875987913561485645538347497394361768558794743286738561299828245211965824296314866612721612516836822393692122517168239298339821592622861172212817521539362252392443538525635726567519436449669793945877339819456995927561527395579156779649674263765521562281747532118962827234491841895993956619719595676489728792671259555214174833479817778647794729753263569952278169727571248421386592747732848644616263166917836475558321494268519124331829693139473285224539481282514584433635462779282544471378428775298351897964873826152279922697296922989566952124628845726774483184263128513724976758229897236433739842782852349724535514226759923815863957272944496847257722623793288473289384613286791463613982119945354381531848426453514892891784328635578652483116267635624683113865423267295596921674234491791975595711431869461437731978947934573944986163998131793689473176414716195691899592551828765172613873573833812669724795461867117393541833994169939398835811511139373355554841743771554934973965993227662946919165229412798995583794459544134949441482559459796966319244555847772829865899668354874888132515372453328717663487864242945186513646868648384633318722825413863226813666495757177848928469645846516762411776373146727663626191642228447414849134615461722411374496229859342255514159129141177415927892615829271565566461476216517376446927734871315852887487947664287778551837758242318947741496714472226298863686716691373312862218229848525773343893828258224444356238179656869949332135857389614236923877443447358561945552423724426682235468183928913467698869191658761395113395275411169845754718574583893232538179165948413873629957347558512497214716547723974878682325975215826275737399696963732843439958439937499239177664835928152145888861519413319875358749444657235811851881111997512374228563375664649737626725565581992848965429884755327988424862851124829251148492933521451637712713285199213943236477312364945225423833842146348766486523815217648822195287812688216757837457911783891419291257958524297841531618887828727741526377687359313363232813685268299737484129139365568659816322131193642943855771327971751472574574737821995471582189164181238674946627625162191297113411433189473925575171378298898138169467294595952459467376156767564599219468842186923749245729566895725659434542243396219671525115575929953316418737347214256756212784678918547411135754268733253411677568212943935419815678892222289934754847139561431888776888196889264536239274216295952549438116831384896712923621115267991782374481761331432684683199887866882329386317349397655964832418995217244664477397952447829951748258862126454274768992672566531345221332966273458337484549182215625647723339474386934377285485835498168372228456948465982319783222827735956681373118597627585696886469743312339628567129657127796331215534656418254855721532281713722254529259864348729751778837998114465378264587347113179842542342678195819256761579777751995127284973363277854899876531628921638916242468233422399942814794856556169294927258377261341629984437133833234947665379494354142483176368681963739156975391693732939465323229572475962481349612815741162472328366742889824775854217223341453277752828899266641961771994949167731793672598152157123113416411272252429667463466157468618148145359481256972228724559418212926441368484969182853217937747938451587424611528594713496168741585634255695757516866115611465423965278648213752438847387324754949556319138393425118836557832225159681483312543153836571154354769616654873917221593149245469734684348524815436475678582917889248653415886229755313161252939843698948416937792223528633625599868553372864543664815657818457323266394579813267557911681325946253871236126423167757715746239754831844554275481145615278671645938112456764392315765272149193685386529196515535192527621439777115666565115667156118859892759469815552962427113722587565631555546982167218728189137774235371714313519228999887798466777294365695845657546414173928476294621979562137679121417618446945496484339432178989929779613117556174317249457245936913854153618295535258182785178678852247596216658963769828336182775989639248713499765647369968945533485299968317363726453338132574713222926846552713357579372428888999299773427588713358375417295995894862193731491635551182611299689955954227156217553651829828766652146466161672426571552433298854958583188245267724858982212195381939247941557337612491611698227229143636681292852191941999812533425688246264349448432512492634765223136542965898541682629872247669862494689168812861932917111776643782939846726982885964665742495572765658218797974359725289229675741285116776452677648156157814387416896463897964618422917787125755324969158843213955945714314789192486391165385669963422742218918957575672198554449571745944835629376734733677819766739224585157964636898955635511173184332845522773453247691959156365687769312388623926676671576192559235155273934225773439376975121932446843235547114235261648249132365857261723313635131284997819936411137187318579172999398968961591693391932778575765693489175134173392485443299665124342259661967286424858967723324658763528514222763237833594826271946288848251335538219469731447432159733657579923734668432565298393275439176168222587429465975884991532438144856994635561967435735767911713188677939385379913585951542512729476169996423314551946989929199936542439961392546638126927716799253384279318342814715295976535449567875794538598869378775327851796583952493243139847623154738617254438567871273157618813275944658192847535642936597377594177442241424176448521161696445642485519542748381233238197721285323864717871518611834642313421742136496163123874955299428641624726355851162358643252993856817268893378374418262466565748238854622849665995722857494857679464725998754344814878528893649586857357121445725193854533777725389913514648119618883145422982421391551914614555433646968167287217352231692147479723419114732453177299358442188949279981454698884513537362468253161968193351139479613448464388674669468683785622683825652988645982937785853414563643297374147646628476851182437681798426829573134861446434565123282933614551654931163695932543751843194548593885791149543677942935244576326595973967829176669763275422144683171265846744419364572823126484672697271853273298536627729357724873589474771989733474146971653939268294461468431666971668512815611529756891724679365421271351712753637296267624559982188122172245497126633374639626624425532635265865427644996857329659282344759126666329619274915878877911365376722342392219519875753443468975546669798899748536191435569457781457315285168911519642188922691634365863268948188932231822181144468844159853651543645626825928254837342117371324677139721112816298921132758771247839892891971599271383457235237829798767654692529547772494896677445312876235487331197246415963695225292824452984973676126513662263683754188286662829439179245451619875283911456637468366288623673561978258193646472297715566733188974789597751388497157514176374961439377942969797492133448156452584391984981858576779812617232279698577974858695362242412125242189937524898657184297327528841858839581861725423841563295888862655592678639171344379579966642895354491252168282518456342796974418748754859766897642355534132461233998382257737591525958359395318617435649321969911495229147667337179423344341329268779683339953758681814347269185842798921925181848828343968865358428218291798772553367453238652582292122979846981396942154818956266456454337825944447543823617313848462795485869312945226586216489226385733318227322734373972511522138511721622353424751947187128121961941983118249614697315116728894897984285918868227847347917697975664971461247958742465946695381746143178283878631766259729248112715911739995657624238291194714974355427316772533855764663933328654185815572524898264528611833696815485933984463278529379463623213649133321555862513431366528649893894925969545675927934685348227496687274127464865558815348151778436254544371665119881313217184917621874381336746724754954662152693679997121693265638923477562732188887577445751113894131887149247824672324789889178481567262275856213434791678486224279995911486916238597565393814221991399438928531379126444734146235254196787531547548982344757269765963549382325169756981445251126412765792824419285782835349341882157425687928836314377711724892886526185776459178516175146414583134632198643439369776278798156348712811774816833691216976771395264244391581263423433938695624949344673521536868992193852414717722987248291766556554739969348811998612329385831365738624447327315165287115696523995646178791421926425135584125324777274134175156698199537838368625343745142446115894756438255116541714217452942522786327243644296166487121215246414835558791919614342943962485116479833692692563986171275413813441213462621866954641668187368491411647797874367722876564389138168123892568994665731387795698494316474621319666138166735384933453888341361226729614276794186311488312437448928979386955352973811731863596397274193686191376566538514653281997397554954182627369119465683672391934438636897414414441888155174177519362841581821154133837335732362297461418489594796977619163188297833963891748198696455452569378951156425488388147672116142968644757288726534238885184687763637883619579123535222628976743114783943888889922443694591175375642836113871772825174413429946399571172459426597994345675468987744841975717356144367724259948622995982552185778114765289164914114591746853411119586993899371771939113678999819857446735652619592492658547328313146518964223152392466218841669854594491611816135261761554619684833352392382884399465421769528991114334452439857793234299151839841353686739614474686994818882874889947619568995354743222111176465348917764642177449662852769494828618374748844578534618774623993753589854537865616866633984273447785769921697958634297484781935683249939188883735143681159151418633435333119372786944948833774635867289481317475168451333591852447146984914651156881893253138361965464744198114672652965278984189624988277177434489575181889196957345152759482829676175153952546279663848676758715212716912955561327699557121881411562252256692634283237739797837974288293852913332435296976768355663472546646857191419997562396842168223776361961999889544563246343155322836822811789623178382815219549613295485462424611448629139973933243571915247697731582485471663977234234738387959997236573629716528739183711495385987534885665296969967148276695193745113567976552447141757326724997487642339874918712676317878267995658771646946797864484279985774237994858552122796134431338885196886271125136395897231262931449927434435836545935647662755688679222565957692173437183357726573483639933671767111718933793249477731522678744345325116385698526397249316161595926427945584336744566486992941432953746184416881236854442535577663836334765342353747171313861516788321676111335598314335619559227848716425437877517921481345246829699229642339178761788712225795663575438569567332391961172542987334776622567281419495512655753365642283348946986826256321775991554662885779376947452983949548583847836393129713447645849783531714596125326287431184458336578538886477818417949146472293849682369996675516219114641869144982227996664195714714968944947336446236781199579838335129412135568271749748685666589989729923468284258122888344882761742633859766271882969883279446419472666522129117293261387321751677732373475375894191138759724882455672818325614114925681653821965422492233794185375833898971966487537548817215632115484189175614346989879588932142569867763223546944811757651654799665331543786389661625378333692458889934192728674525942774134267845847246317163415999176378784367841554965771911499496932789126899744239516597425364845923815493366579429177618234518199489738944581432339899722262952791762445794747961759629735921979944178658922618673544516986984877274938729889656799138637225691218599462241195673676448158417527376392426525881138671376215866573993244675153265812947458933671861174431735141532625359142498474461614776269212462887791939766292362638245265291478157149115525749793626922331368162765665216579559691282414549336492857367814858818835976318331771955581372656436118695135858935829377484448871471331643127811381227845278955182114166467247165166749266151559758955679484289686251976561614468363631678976834449435982942478294456412318791244976574667793512846487698467579867413768437777861598246882439494935292134681467415219888139868362871873342467917527415217184929986963285322992653383882589861759346454975164337544723861846821844379666173484128591776741433495723679266313715654621385317546918264171512871445786715135878469275672621797731198668972547374289637798856528626383288232958266228786562113854582698429515421942719455556631168138959819341223494337772345332233938828641663981213989112434557839519363427525626814624757111773524449662323875454615979571636988222277399566891369756713765353164279999845425359234794161594799117916979421946857336722661149141641138969952536348811977179962926937723627778383263259756632824425187348924742957362145687878219717332232595691326428886554474444177278337886716357935681927351666264995663333868659917999624678285473948252427272161769621977775122495319451168174239199276854264494714658744441753652569244468798269423287522486742887781136914719542769321569932119778881379731664731662796598798666433469431387769725885443292167699936867886562423892335645741499472967646371423691732276749677515699353979911269233359823779329888823991981986919124195262194971752141148127616528817323422629783887879781442883763484626876654822519477591688854182543929673965225252782748524822965157994291611124283256197478564867557976936938436541159777513998653349932624357791815782443622476711683734958637617975218369496965914176462233874679189816745331721128664676954211118178642164135137873248634953863661524621112614382596457633927273324665676726244373716569751477687944481962565883163798673599256959388263318786981241816256971655682318638496185299279884379445882122874723422739647525752785273464451822243325378921484553968285539619724935452233262515782519952792672965518622837976445584578648796892331282374861514952498252122611743752978354414798837752853113176359546371592771553227293493791325269886826992946257867216376498813779352842134558334143771398978255289363356719433735191111888693191126459811843925533633611369578571194184968261512863924159896652652959445352211386678962851515678764716222342368925721795746292177437159263288989541619183693818542246242361157111951968327487231454957184178777773768589317931964358156354131797163711731323399734529144445424129381353383693655816711145575986714738965225561951621524961457927481285695142126177928314358159878785244746848445937748273876744512925389964886488953869945628969152579464743361266331335785571485422367731967973515628987533469812928781676472612154951583828798981648615242481596781728999769556519479874812942618579379245989649667544924118158816832656144898854417889288184864436681274562346686364272969445787345253598712379895392398222699313736975746863752261381912269189263849312898163277396286382389394478499577473599328735364572492847667624242581493274719156286269835586919156286393763667375882664221611515123743919254772359525836896846346619899694972116957421898382925565444384781789375196985723893349783211468447473762269731918323299499445279895172297258248969279219132558348835854468273968875775688722456238713949756942738216554325569171842235199673846656211442987885868871479337611266777721918787262158185998758764331112992769475678476965729695927937126282139486323728391359642433134643745683195477297222185217519864237685894439949651667177737613925774152484377232297884566326616173377516833555664342697228668375582242724968324748897417274199448562624918741994873414221429463218369551413493779111423464399599325279119439716616647873292151162578478312171631294861289393289436263984981153162457465373682524131328717612927953677215564695117137888649739424582392736186586287976729582434882891973661128626413975923255532722797954964726366653954369612883842537932493939575778284155132415468151378551398764573967379591145841766512531396654838566416499974841599533662216488334874313381774613655719921558381756186415372631876346347273111165754374612763841465188715114911475692153127492548936797397687624172276377127359953512231788449836843571281895789931943111844627311547555534992874876176151422931184738271579656943548243274377364636444481445937171994211526143595138466491782499488797749453592194821561428666594464237162329528991935977722361795998693735765554547143694731789289148421777222665268527889868776681411577299355761512371266934482532468276991577437655769352799732967685365322964627983717976848935782228649735176774944731215118576687441413729376569922943543299757491431682628365257451684713687425357425576393717442499771137668183724362881251784834899892567375646163149145124595785664829546998585688692914354821287557491979737286945245569831858692241338211838511933579452437186299323142124765767194947169667376197491592867343943335131986693212832771966599783915597595144354536694681238117316745583887222654314762685575116679127496916262482747915452762339231961561166114277968482567689592687533539239556231959114762621669322664575429832917816372334489321376623244136336817525657886717744395619922534213855219897367942461822723965366541951839566359396477458633258792687769624239158675329983287166214881631153157715336314532237748225188293588268681211554765439241748567814611478378434799332145119856425875812648471759661774374258799266746881637692557524852276944851425194245894849681876982575959891419614184557415582979127592482511371678934554992278178628755886822879761915394412119971645124694882856756366716816683646157427815979554281749328977232737478159546481798762683579272344171874737265234998157383291334631627179695127426221839249163334486183943445275785868762578699138646939263679147524371436286198862454269426421961488321839448224347663514135131258979952885696821685925237631734522325594952544491973495157929452473922216349668655984378969993249431541174931895373699485285588421464461763732258317245753281122256593557721935756478844162163378927161843735399736611826933359131635798972599472933125716831733685255152182928221422772454426584918413611613434455532657998536836776927887138464816971658412975532223719411347627213268998294647659828858873534234549339157421275966731527779181534467352992998484956918775573615151765854143982376876643991252656622117391698614382844233146291762862482549211628792914218838883168296349358211971171481272951256966589413324411317345461546561156684424755185115648264327863766324766931437937491217527294371992357848781563292213854573899887812686363499628838914369559427117354789129889663554878732664374888367358136192346524386541857246961685488987211752979523688313888746384173682756844895154774942726344741898163647125519986371543966439418224478978539416943976272714545355682478321152654841447517859374733871682687741114148788473399763848886955527527822689526655629813672366627368949118151626166947294329861587471482275245731435943464349488935953251673246378762917331369151655861927332947714894426552457592987978699674444813254717942681789565235282535816129499283341327254776185236727228247165378498224581188511271772595291637457268615623353359337475984146771387248598824149172618296699166285898557437642537697496155959578947782435277339889638223618664557226457765587475337158419175429241666442889426848643464369792514571114172123696459684899869829365365772863922555413893778569595119587653744899431619876733671171128663947325258218295768815822913678852464988718617283874445544711574721928689441257343667911481427788769537462466198455155183924682567529255481978714318817118477522263287524492372692573263991642867965695145162331367673862725989575945539945157183739926196575523926467342745353626617115762294485939744717341592152753228448877368323684396355449624845678455971882159378894447387561126952448326521446336558276832823417442263814748469894611282364694447553723296831729161188223663896641813122694674681789491756946589561853922388736794733797381848794868959176839417671949667631419685479476859881556549394167188956483339815773628362191595294998427658628186457263363323732119852425277975518224549751933133997148565152592323676641623725115717553857996237383846898178578958682877676279887171749457284177745932687394273878732776474772445847994632938225888154692158183666355627811622119894362466375521945596275227236216431666382624627166674285717327761826544616968763329538188719484465998368945611932973672433461796375111894244247324589723858817424924913337631362619671854645377759248461124148299166941494721585388125125439238144636665146984592414716337241144386952445944383522892424137239458142265759987137317347759353297991216672459162892525381315435123133681836732811953561471823224526884865438598593739766747967319898274716555394566422884671411378196365818448793324393768689616595921512345123334664838796567116517647672272395651934893447157517361127244453826818287322116756472474186412692262989719821485922168466996145262368238229157448543388867462976992724524419954718945722467554133394645176961249833494438173485795158655131153136364616414651229624378772875268694944683946957919345213379886654948296479174865687196424383757231959587484858317826557975349862856714542736646438882589993889964544877949414947725873762148934487654448478773445831196298182528273527344219353735733253152182989341854165198361623938322331428342216622911845896288899133954787898459541523113521399392586854533368212163453614633552689174416742543558883143485639777684935698742997875179318761638396679238893981666163983768721548216128887174949646834198879814734325913699193955538838714694965377677736725821462254825273558186732414985467494517989395649548911142448984623963652589944977767762714681942327582548532728585251239687661883431584425597335758761627284352484432763311844318274135842265414746812943125545242554938944564838418512713257762825297191457721551499461775441422949639763435389218143119543573555528384626944853667868712948293734563814517873149825585688416789234414754432635526865423253819731152416848992443128559764955816911151644544677889624681974365855859923455722499352619687113497872852287658887712861738438676453548656411198769846818651316942275949669767543416987741771463581983838695447678266849816832279167341218742498214778657231438344877787651689599966621434457171557235981958897683344375691217352964552445224883116433883913626713147271792171271713981171332982195812871177193163252258279378377857844841639924249354972987725589272554527499812636933121782239146282533262933185777988956178961579722837129228676264958654341486358449141153819435629474898737352285178174254287658685964746371577974772196414968816293465192938715282381719216975595741339333293511637698618296644127249971279421582241191811364676379176283135174287286367383759375173689993498716425951669933759256415494633493125518574456721645376715178316618968815159712775292663269899569255935548599565985251466245189195497959789746324638553177675564914687566428949292946352898354643992747279953873966571769594957246318925829296382839894842226831361263544542179253931315516299215239574738924838131161512129921443379652433716519614644645637551787642774145685544898262514369327981247541999442711636776192813691514257347171342383859468548887747262985682614732997942685564147752849397357629818513662116319975168987712473364213458457177965461169729857172481636361168764399295176952669798749476471246565585972566712681454491838942587134512656327475499738811614752454884858479216646618488438793837216581337147691351987821689862572129132745414329317998856832978179182145585917838526219883979777674778326716388939649627714771337694515175614415369319171447558228568966526855489219296149785596342147698173511411321924882341854958697594743784795787175297273676346175458616985444141559256494836434967728215659153997822542834576762523343797792981672725897244818951164343912999156127686311671555552875165263167678336856714858394471977393598245977652233517236563549178327241626281493533145781935831663386338955984336549917989472537765387163561874426326914841993768286982236214446176567841929385113581594214548145781364355274664912951361625528976893227734188378563589549979767247467131328156812241984871857461196788811626195398286564647283282759521572189418226863216823231315246293381231942627837428622641955664883885888949622353115277172528815984362166917232433849545696466854279484874587731994748317933527835762148596357347721531223364946422525374888613374317319534738468511936314254481712323255537364213216635951478447578774226952263563935529567391946813225819925271363715651379374854255635527123948328774892727192417868429112215136914383454263393879711711731334924242477683912298169138291134515839156724914923728521431533873254158511889271542393234377444558952712781517641669873318932487172351419468123988966185977116713838968795696893678286674474943325991779238717164972537855157468857925947717492779832616911646422224616376815173964114514667218319578286776273467768128474184814861678245752987752553379777967443419213577765328573791667263896136957194868389136385341956234737311921215923924543966961573954675767666167348683978464411515962426172677392159346272513562957197684741569574497914154319494192751124169926346936332761689989264265561562195577111276234223937344789845833471271187799111213927396378761188195193862662672964683219174973772372547693869956314524411716974219243813188164584935356426124334147428635531879261686228829231544386948481567473432953733546689927511348383111343347699943492382142965893193127359199883122351553559128337537353352139342465491655446368921746861953977912541484838454255218794789966657781728292836342752629978773337896868767859474648699676353575354749516281127472239977691847353637567185296834935733572556371534281787286768159532778923449582899777585152856898965746989837917883532136211889665139627599299867119222722799656157919758667643344254426685549944744698555218542756288646189974356625551979714887585358856844178649184172942338987512386861257121827325318531438978297772797398378199521364486283992568738366193882833869298897196242113838537726898284182862462974985367111672251957366543679766254579268336441445251714961836441787614526949983487357643626148216767217792679817642395546151851537136895153932685814357952936188681261655746914473617383475972729834889264843289459277425811982865253268442659694421252632539715229546369434384735741893944815335268775626144496869847931321743357135575288517183966669789753978679127625365164369824783657854621622374799295521592869124697158118335515423974914289171349154854766326667964254663461494398683958669226991226672817846265932126872783463483951129713319781883469546783911315217176496365333679423199371391811418157573916252194383319438417448243889179595783121342164894637441728626574843245267374552814647518459916389584919625971151414164888778496255434495873887828223592378198513955375862948719529669785574334528146421525286236173959397629971664285336754266763947867629525681989422177482867261857518459816895736934552648354327976711781369731423667732555877464144112138991933288959994571217511821123813895924898797135155895877878259438839398967761175553129715521352134953749415422866157827467382595878142982522697193784321158187563377475627766465633164157866493721456817573118561765269845464635561241776976733719215197533876331434319997669839859258891188611643863852517489353278958965626679855249289928754161955631193569444857766658422737712265364419343626393866698771441656161492315567296471939796738783388427547983792338411389852729947778423121489511442459344416499167988199137977191335259699128834412311113819519532947996896678929149151439371113316995474122813716621542578479791389725227298468129964211957926844715216835662463469679763355837297628291757893137995851286568277839658724382695473867874329136819673443772821348524391621533214971324681761785646855817958279476497754721888342836316882717744372856327295129191632311489143479555176795286996167377314218444389786444853452957564285695528845723245629854938784192551992876236559911994387955354418517575188633533523941536169491351997395158391542725778374213236225744348167112273649367578881492975318994714721975999646425355533952752221582578867722452887421525698711757894689462496674325356624574548236694529668226546962533879123735474725681483946532673841741922558731387326518151217481354346581362389921569464373191934457996922259141186912347446549874563264268262179651774427169846192397714529626581557998583466164393863214165524568247984239736145331532847488734548237559531135667611793331194448251715647759215965933265255598212372735491319795287492916356975292365893724682299837927632138646772141322679788561252814117861427531551518465121245235625211342874939978795317329832274793716994385272942562182153279449629298536934137163171366573527378287129512913619816833579721547365967727717157838519756637572387773434213817591232295658414532197341649929767771889344174325535357211212167735793626923355896212832831137711189442943266545256347331423193911835927234887492916647679877177269559362749378568922779556364978834768823749586477634489115392274441321594542169723959961379585929851888332438288484368396244736619688491633342279595435948391861728557519733851789311694424588458213853726199977788747188426152862236498887883551324123743457643656286975642896917318582817561825443939483562152682449619365347779963891147232381433284219643219296475468971198931359669422642651187623321319212237172923176339338889219241152363971152358889893789591514518534819814939626695753713743993746126896389259819484753817296479969459987893872799164454254689576511497276363432437662175324369719758556172324466232227748165936919755342464719321432916812215795668193338797528641831411631999455253375144895658631661623611546961387781161525276242294453497992939798814745253776984339569258441319188453867134633945781615439359256182267868322594973933565381214893928614425575852254499828848228519268691137513637956927791512342367126128759911515197766727742867568169834825875474141711485561226913895376764299514574612157177767947464939349389646997192718474268794296121938892471181241187493272581282175853891997922918747154291298315679968857648647492196415424354719695469123776516725255596829189148675576753414865371729311327222968426981211596923985715735547634454842853891583771241513156718944337412699748814827877172642435757498566539311682367165227351826565211752672631656442853588661196526581636899853397563721676585135673646325181428265446483939343899152684182923738261799972915185989136434525788694672469659257554367999341719568825169935831574998587521582446227623625196953343292832879813423174435745439753861943921991132449772346787643839823115194197231196311878632814785195484783415413133191853133312799237516735265467666651844173142955794377784229876431514721925111579896563775551284135495496996844723358635989988371729258738411762996748236134861722636598238295384967779372556628781239942751288573231166311862621632426581599345658564184268321372414162191935489336643959879887137422532624153174548733618587279821963223417714157829178826534494398599741491815576373264795935464214177216286623259555735227643154361861478139344388651172735121346332378962875293966862944446469982117913989489585271364697243131241821127156894319336585317419522594415299787117121678198747679819258657535344146994792555222293926872524856349838296442863172263849982276799772492135221417633816884811589446686798298348991271858349376211758426146959758775869672498117983725328894768645129977116816695965386275552395715691392872531926545962515534884453482578521511155549688141428853181127878728723377125927969843141142728688461787488771575449543645727465392378997865712335288333893548167184972658138242769482672714519227515669462275241178345415765675425781726734357355177528883441772359221884218743151881578893879994924992392965279247384164359239431728948233651564283688892815747728512325689545853111989171644395156367625568153353231147119429933549211747451666778783482324215559468423167212679547675716916562598339634345512355112571172737766598442855215239729866863925791349173257666279151826592784263277184398154662555546175244558766463682586843987549146559993769385553791474562215118663653928746292469487742852463238473664437155171128682876112314142397639323731732589666265376679718551483755627756612237653111171836954227769444994117661971978959445756512355634134779766753546588954514637981493759715381433182976225567365394478349867891298284795341967486823656532311211828397711817554136389942152262254972643633377679116919214319534821965336453119811519339751593864969373826126197137969934982278554572652363872675369153449666491747893939396362778672815761389363143434354778935682763238267283486728243428392841125338953662891471175415345328319832627973153178285515129459381263425922325413329769362196133138369769882422543429335334837239955932918941184324246668152675461943143935823254567224129265611595698889362576932643144959499459828696522678361524626912952886877636187254969191363964157246723476875698875775711987393997667994581938725383753741469658294983331324194512887951986841661857261291589841118792781364319393119927965948948798866782122831232112718292175744629198299383295386556265462746288186896713931459994511846119627325994574776811791241124624475116586833219799768672673934362771329893112171847613769952477454485464574761744484669545563316644179526781854292557591847177641947879357422631875624798494957151847671293465342813263882386981964619638854388468664843861459535885647533841785542925191245188457821563757734268369759762361986677624888551867682546313537535282753231975959517752383544196594677889875361311975193337635375542229296622642538137359111527972982881543595758651375264216993181279223472956619637133554943232357269397471832894586721924146261967885522615683121672564976672667235686835494684742896374821976699156649279438792789497688666224929683589423182269199766623134526483722753951256154921481673934572843928113117623195943191382648723193892113763163556656564738518717987187453659994558914476126987675283828273962316916442954532288615886613898928528152246589517357746395675467228913226865615339913542188524245825147713173596487739747588992474876447754993542214177736525652839563236626879988385157518162143989293754332128857352912796819297116372684695579215395464954853562288256515153172592927321696933151864515919215454445166225716811886227518528943376782384653334411923673324117345913131495637158149297528838661151354483954648453462993885541645768116281655488624714182535598865664382346773634114492545184869235553686253526726264318816273985531888414645225721151821527725278257996359771242246128969631258953652276143155359862657529533318563679272487912886931673624945791957975193783761453419652945414318184584752927951381236329751189887336699781385493415937892898886519168136163593743245834914782432336139535864147351733122581523645237188564857682654855183944387719416252537384548823331534841529449954216735178869172133317357372265576158455331338439651484112218664169914436558279245273572783438844635977411238243658895962285969322718459562385541319795923419331411244189316869889759251489293242255553474158936992817844764976181635872177969648728491765952661624191297983747517236393788944995394413111463923635344512316695134465664791882254678928248717129555929378266469735416321181892636127944859385257797428426495557158752126953478146867799437873578343445839275987664324156823279883227599416714568981385877183972373932953533787676594161667964991292377521887645193389355141439447674325393946444673597981933856522953363666199556795483375559191384621766374229778116342786696624974941567887655456989157716367564947984562326851458253823438284477255411532117132847127361168414919458482681384567168884881619911855783741769215821699976137938992369633619411981941847538129929145997257298286271245777689561474863687486294829834292959895842327474213623993976394388367749851597817168357655174412327992886835515211135799296545566356433925465776878247155688144667289469815373841654368636439775593438418834218263479241883759289421351134544251588492469645553375419591834358396935262224657885315164147552371972388498744522943447749494532417635464328569653896569488831879633167478135981268614653434411463578295117496412263526657188125351961569198738745895459247948463468494314166941338763787481126352181512717392323189346974975699797747818537668976791487784233282866546398955741399348915328537613256685568942852885674186837488693169616499585662119527189838688884844473339694895645344327164853226553665533912476919329936329421965322774964299789612594224155259662738134442311262211522836341396579261494624749761612884317337963889828279644618777855276918685872743561534784451235642232971356521767798266619612165177265289731797377173632672778386891319372442167765836184361178557677594737734599973589895992646314953425298437324562442921184624927259767419131586721713711162453267922662564522273143313318443558239385439772877172392522455699312339673659646433563614747397127339397452315858283444717427938751679324445838646969239962564338385216659932884561382368425846664285759642629156984211941414971478843696867862369568453584979897771841426982227962816155431321988972993492512298478174497539517293383532672881617414743485235754173324471658618258523751263547944165413467327142983267264427191317837963685387475789496746435565138734172419146514544116648175587249556675578138472763326224562276121677125827653829152752118324826873473864529791715771971792173748876151492471431816893873878232919514453578521491179466643355546486621768619748656681244479922449192176836791555213226653454687576583255733777287498154297545293649955416683391139824232976475638523953611748839612133219846399151344595577449419422642616136931954493741484415345497558151542536865249276416839469193997852195681194999639222256956345929128476484773636557752345859441341178616174336989665787362196129226987585828516462839555655356268756514885635261343188653968483357788175537944966375939226863286855652214887184792284195671899474949948326933492419629167245173465258189672892121982998622129355679566423513695693782542643467834861491751899258536579633967658935865938927933774331283378134826311684574256433655653988872253683751997413935299665742628724971145143863245653418872933893171174676952256622961738739198395312668243458919194167838727557876932745971861668965636598142729311484981856821726179717511772513531827913494564271141792858918261242923162427734837796861651366388561766897579851529196152178595451427997544527569469164261821355476164727159715751556852842776194691162857737281146721794969669138134118872489583144123418355167859269136173921325636956682186769685678265366478931516173271757614269976392848721762268565639299516492121294865931156792344253194642744743238522615184398613912365438793914856815423853512793828352122312676267618973123392672496497527585292861657859977134263713555293612787641425222824139499643952212469933955465645958977921226435572554858284747241937729639263618754938746119634626377349355415371673536126188448976688513954471446589192698433321889638913349383931839888731143919772563897624816978766638532833791856925676966544319963715896155138639187683237557443614972687188941948695828562196356654792318282275135615352551985531819839647854356796322465553916985857621386611279891827363553149515365483943951838911536672774734159697882166157947171647714176472329187194598381187951621137664785694482642471589374245337983342719138293439376284516937726841911914722854882491759342914587588678849935413542416421621869527374147138568712842464425491353888382984739689763899249679694882698787158117974254167924872269228986691591297592897588866972873772331371379928217756622227415662883819836728538293655766496842819199972633464383547814542116187995782945189597841631873974573162539723129179744786763959396492645415717713577945511796624363427858328977234818367336888215445119831627349721446267746555888498371332955917959555239764252981718741935526211165678544849947117779762314814919575228582475974759626846126416353764513649136499451925437977692966497559453182915997339925684779319854898987987466299982559816736621999778476112722619664644217767856723569969131282257419729486159621856852665773887537498435931781876351526873261812451284666635622245386874179149384491766329779893422987393297125354429941998876296395914332924448779563652338848566947268451775542487652774648484167783627584127166821976331168375943294852344159729697339436152645865258373676537497128941555718284618535782334863564458393764672132864323335721866381121485742844919422544916181628721657222395684515569959458599461325136255623953518494347197923845457962422697838768181879451745279875115354947623511576422595912787287613196656886934575624214272981641848413991574822383682919297251234955243281662688846146954668679165568686543699584186661937794798335993656725753961627719378657569867223794267564524284111766413388119378585331671998388464914132831856615127984162881627917219483467126518295512678731521241278394894545344693651533574677584493782236649918374325672938686925284395759758575896454545393873492721295168925484128361789977295477385892682129412237216992722258887355493694535748458857118222199733363513865429153847537259468329545875161582386568321936861682635923518566685141862953638686839332572317865378354457719667241163319341126543468693463318121137347279272824959799135265957158763471497468763642544958444947824251281726593667819185938322194418525587135391861779272993192422163612215634611688495483692834939389418862322379918446695878272199939815936943933766336813729837729619981584777944576166337299862621528566833626874469981799776747777533225576152488387356213777445197317744348487295729339616249648268933356194813274217167681644469243478986366573883679237271596429656344868525793149951767717348293736112953432635521586366989798972572656998951592449875453422229365321818614642776762217438559364896876737191167623842465218245613291864452568239492648168862323532516841995797647789686362483635675359357726578146194529667829386711635215852666254516462153979541593923487643258618145249435478327617745419624364277681423849771431184634495822237875816199955997996458787279382969449958843332129654422249966152896871554886897842284497283788967535589858436119317536244423217751188163816415325168673113222896915712972512943548396597797987576936133274277411339878548336872465968275592243166942796517184339825622161374468863141681488711682143359375612587789747885646694717932758318456124188765328888258941225936761262659336856535348123243625281117362284667329743545857119527638343552827658522665158748699462195349422175816973377141911836835468318415886563799493582465947573392132629166345274423568952698817119251267891317638883577645425125149256734854516384521283614126529434916472732348689597867269711653143771732755514563248964734788992257121395746182395171353622419415226235798296315812736997227168689193552379811381453952764461217126361488369487322616772297127728334462397235756916583782483153986323342953537917554712851145343955278273424115859229394398731925323241482792266187116435197287629933951128244831432153463271842724919911824296338334668876848129419299271589212934399167651352283193119267177369677574138253361569679575281896743489782695721856623561977156629858726975457422973228326919571555326812335166263485295686642685917587728215729957467835388536936675345256537522157739267991584151564979522263278941855545583897743239271386592285269713251421184216213231671788294164377418497727237539586564363678815645475146657391338773199355144587134426981719732499798523125473165597185256118257126866167414718357855359851566276752458187468372166582456512929594728437163789875523668297499347518341946314292643898628446261911644637357656821199859584289279233595239984564553438385694529423773295984338673915633192343375632941348661428698252459683819363456478233265934738864721192927142688591816298569446617796887582648488557176722755315874452199253981725523184258668155478488392681652213411725479273611558287445391591741792248156416451378911448588552522635539151795612492445273137388449882896755216344578886198725559337516171481824362249648319854686325823851832367471334154938387728388563546763498411725217136696334179433998137958939439132681213519442639432127799733645692612953887848872973652515668127288462541233918115358419875776484219464465665565971711697163792922857183659284672642611316576668743452715624889144384324961626389634694246533435854275661622149192459773426558142458794864967967112188419855667892562846233918527614435329665433589563275366116766298528485818156992218635225899499259198467272761971732144422452366354981617773759722826257281316832329279846122972253657376496187198915898419595611865583133529329111589329258728694152354515436336373295221871739135259589931554171381791787759752166925717852157276245213877741957537997672776483996426793467461193882448616244333974533868414513871924774486728915358535465625882874241587248138653395831382768845159217811614468698161288354137533542123274418366963981794196759183294591732547144331219618172171398638791745448861871721538635654515375258682568534516548211664914531944793848581931584314269559892985454537385388335664971935814992427661488815638983481472852241372137965746398197435471556669696789575149568368991437471136995573419913859785474515153245734279421391675443878229733846318725566675642175353164837111641492957495868955579775257767722759834574959744181957563228989954836382676549857953687999777562855472548283166769127716663229394622864682888354354914569871798261336684852686911491746733792516528287662629219258223784954193645552297358269274985252646846198443642367284181478883146629228963227453151468496175378949842736957682887913742348675569444416911768846447611735482947861211799665548182742794243335112912171946489386459428742965455456643536164982527458322496742286739983688176236862573612375492974963129827439995952222349778864351442324956845249451564531226649674895199684196939976329231794751931539486686378266886799768923916958886544161876454123188771961555333876272359894295482269255218621918615831719938567783598818769869611172132934779436685565242216967864167351637561138663186286883578864688649386287943341868536673568817669688196799923917751318454334881758558927828118773794537841318283136718488298165343595389391128219881529438235658917434443345165133184926738283983625959383788271389672244953241412896723972799826673786181414344533184471549312879148646665998441558886941951147841694259649473427395997973966659618914968714946666154742927572533422698478762328823285376934165296456383158279951278685277473991545163367185961977734242889978122627852659146132614128286983784936521765668161319611439136394686337392658463484444485277896164786316562397445669197514384899267797443452185651569111538897722589214458556812956855898677358485496631375965959534993758473212641293139516999742142316143453416425637677167131224245748173314845317955661453374788252158378653272967333367594852677661597252468555277412149435572147275791826779186826929862418512228797678245243824416292422262373232897622226597827446576693728942129871892531113755393952123815815883862113214388797972973353643221497517817235193781887193365576626265845566955224292991126563125649134579164676995184186633945488391738643181679977384847131468297159812111157955672956658684493118978188983777234429974632961269957755553729432763759123118224118772226487329486649541741562863539731377998837492345419454639871754861669432179194534368629497471847892735832831273498149189725898578749222395491541455352124693449212124342772726659164276524757667868283348511174971387848213868654352585335332629757422232528362787844377889159823645767818634883476883561465446799275856717286432111366382735385382776336945576766682219372719338414936639176533291211248318231961354915893455665685687427229315448639218443898355713454265986519372282826215939499734149647278195213395715297136998392254762651971289768177779378297211687732627746593419277193812512678231393156716846752442631872837751879165635218682726887954146891876773235636494675253847249719696264476849478724249312935996765471717299137889393133225614289626676386398966885188299769187948515233752447115513333288186789539941215348949589712921629296148932941565268116177268221939533324317454879679376982793886747859289924399266183771759127581255173974393219716963146938775681188374693812773378582273939498585223572753911147885991383222969462727782973985664953971392486422473151257535172366563682628241387583616347745861426664735638667316565199863348471936398762617347884383268482318392832616767491168486512449551371453513278716713551111233178195149389586367937162162173479279683599457173665371486484721637684734667364621947164612973945584856313938399473978339525718365549178352989817115937769339945489386211318279989372956868762291237637656474452279274851626836837599255891226334351644516189652391216684785228633586946543397526536983352773525873455999238869512999324491641127353842763558489588511859793894539713779133961819649513483562924774152954249228173924251316487765269354558479266457662791329996491236661316223747493452584472812923579418139383922267315532722813259189981729991115725278239311515594382453342353824339143962822462681725949174245667571656847173232293687573897453999965647444666775843691879595883689143776232888363521696646925372175442855133959191159713493711916549625937222139935894133394384827878261872974967456848168495777443369336423818443116823642127741866788431692544745425679779443528196937996149423855412378312553343835534227169443773991711855279352714125721654839118189154561485655945527562844855662567722761224618159895869244699746526782693163877746333356716579129778847944229994526749399856758726598383514593844417346321885656195924274613786126749351348783491893218558726338891825748417747725935771553275854825497338992563146613767873358631978791688834247697863538863525512381339112415175759993888138579697629429659156521511687579326276746787643557197137995631553161543292855199697391989452596712665965159558318937136869919569724219514457377971562247137973835246285531346932188292894681963487995537551154242151249498485723412854699694928113236175723274424499858798199791992598978286526866741511319288277436123839572157721771791528335957568859787892563539588549362766422186154833978239178921747723444552166439626437435116279959284438534177137669412712328213222554497614416163982261283193313457777347677173272386414614723157725458195892928156685145426722593836736115316111568961392963191383956455964565511395434531749757151595972437767697229552624489184124521753329177788643784123121432784648978776444197365677888821188342138895428737444811478259257972274963484366999268316232145843949344573898377393133645758232425258696885612232535788353955287712561248698722863332156341859429664678327288273596781314378228965421253961787136695615833654559882996292259852312751234487732719898416512486616671793232893953842662222359811468447648727123386542563787768795537292964664993447692859525284636345522787176418967142984512864587938197813333228821119458534872574473963294516387487223965453599837122342782319947758854488537519212445493533316962757185837577588631169391532138392891373929678339435354497518336516433625671413345769199839561291633983351371594969878642596595567766179196156542418272221779226982488488982534655552573558569157286934622764128663621854699594213794955122434279539414764623133281685186228535477418865126327536584182693445872591477779291943591897957381767817934791511495744623417135199789472732872811375536766368778645682764841922948381957583359912569635918199173811895643867768994856246944842132121564759424294578983576959252452397662592912348146383788783727856612751851975778396664432693386846112176273549268714145315433126615723329563388158453972414515266636858813131835679756976435741393978668961834389364762385758787174849624696935951315433817666473646517966558153173526795552178342892587133947233573942476673416585623426619321458751898456785432884135775596642417396141618931219512168527271391931533582385495336433373979118189143379517946479912128416315914916223164657384183294925545145434936332697325523841332686289522815447687327669953966233741683763115863574349234329833296254429631215453865777118181391915355218228653828385994792721792126636446119372199488867938998189642265675692791749414196995793566763231689759712652962541919255821132289144815968254317398314785697895798189466381612339151429788458828625562288348362376397264999771432987984897634649368874264139172269858238881354169946363665562676651464251275571474991255691868523659865872329455754678127213844198964451472216671927738548733131837252288317965966648582444556527133251971767152625463597832483185499486442946297743881564792999438366799874483146333488747836768584163949388573114433296778444382688872798556755177376844687916264841911855329726543127475174579863854938341222655857593989336322596788512414578953592891724444473142881132367163422582552775223526594595722516747895831117528661119468928158623491774874525371381226818714565784762138479896824935625385531999264367115884576869321748281288994421229617945521442515324241949472482332926476421561983215298135263376578915656692688797316128634752489189534283249128749442293678817714667175279261134167176433113874239835452278261465172794114371684577911227844789395465764282341687277389963241169595971478512459176894679993998856343471129365171649917896185769493739632546943196996675273658588859892856459759348995412676515298268444988753677356886142583911825758937811157781369853911211181656557137133691737693884893912165519212915274246895284473653759288219481896211799298634888153962871798667287256175727284198385362441296824638234515224624432857981989571833735185586956389463141139986178242749198782319134448442438935758812621388518311744477499382856537788716545275239577116145119762338289733259762698219792312277311228972396262432241129249456266176974183518731734835648672287794479767927779742125578245444912448315916673547748185817432632755475865432764448135525247418564919586837884317921562986625451749778261848369862917985556882866823737621546433422111655233417899252713857578611819863386516384288369653299169941926244784312721547412521427411391914282512674727446497538269198288596646813274897445177883782599348813583798168691198876145394227897145395199869858646339657958747441961469445321973586559344117851956882815436434672136949349924998486566998531877989583496388767514141631482359147885114642428168563425443677571357658923253848685835469626463387142833137322279662997968494623326418691332449395484179928469581121879912146165513821811647595597484474578185525715785749387836564881338935376756325877615396942239242925452126647115776295887988813194448639293784151679957745626715148881798967372338223896457917412281259944672794516895438938659677672475833912352831264145911766424559133223347439554758248294735989983384418241175549352962434832728847277989976521445442674945126899526223211753776229366551151641581992392466543154971525539673521629748865417623919862313261412463336112542293483267377593423568881381434543781195723562694959727745687142318217778914174468231984452944265975742532938264985973397491897394757818182817214692829568647276542121919989698157149175838655297297388276134849642559932776274893521347841223177221923198616176437469133144441143234343213799332976969273516699793135435514437623219125275725694816439878312963273165681152412791423399129295412728166161392479421639631549971241937443462598539581444497385497489124369429252919144582211549377178584325249249252489599652468175814246558472285414262126363968548852496233359771197298814918753637766388593569568176857257122374859476235372217925619325826843317245756382493285645666147631849554938556785994447893387148913868359195553141374853281774665851675673937132158543651628164459596853246858953686851812517942881365679353938296871851992685762798255169363982657632722779244323247744669766822584745812625156369122378253734871255625785271716616734558721218222673941558438987651994766776487634827872614411166145521176614366648324475714828423764761432757311943481752122963229595527582213315632717718814226164526274395524977237797587819496756463781132428932791458138868433968236238471263232356258845668863575288824939152377872765221886233631423795619736423588888877478642762842393265695943721697244197164347565671241634885844557956652974521187289243521994348123686774235132749753814793227929286743154557621586855234446138835498693147698756222734267769532962831234883756368331646312355342423434713966583415458889993527568791262457115344669557347679235193228254844366622475299756667176376291464889442587987952518294732441377655588735432117158867339453379944492254587787492277899824151954473697945523362478167938343346674823525966281327123695428642218571631226634755456615246999219966928829582866391751264763673569149822669745364438344719176422225196262235661983827398295726836345751963439428691318127499862584959146377218977897799437214461855748265886662352121952663918872436253739286411513596753142829162676838856496556695379563754659795488153692245895231277453716676193818157179649161278813973548147427213828683688695365562824637357168348196354993438885856328942548351251775275418385671292985248864978945562892629276286373886662968763397486537544252688965422527383512249883546742891787328469187336549328561234313471981726633245878719466477717835833895466679257916952488158831223593837595419919685723537311422671853592921812868431582293234381365423615795781613669889191428443884245514972933278156844876618986499859246338445241724112662469188963876498232745617916263217195991267895627772342933648758467866882552913681893996259915741437994248438696676865478368733775565788522361827414739566438715252528368485467196379326758538132183918845381971616538193855657755945619236324374836546711265841433793616237555828461942957532454733194615441831667759854686632995393543177959915678543892554643151415612486387643597765821164369419869987516168417974454551777616582471221626446133467712679448897933934985537131367937193927795496788976517219245737437738398737395191632343366738562233942725434843996139255737473584778859382665854545361732378516874657586641135478994866992832419765513167169586485661359442672448888184678537264639645478535767446143391253858291153591342797532944364377453362277525449618451544869386121247354195639499343386562488971194728927571311133451996134832739192883629659552885775368639612611799852715641628285611363334585544438417862923741181227539876321644473268369522631741483369889944282497222174226291229555433437755884585691112721733576919242815483622289199351322478968872952489651759668573594631435112397345199274138766124466398899829542952967268135536962681559341294389475171984436921178113937156574419817886137529516316619395951382362931543283244775434364659776782884837956368635158473837694273451743437853715319946329979396421483635411681191994616493322764792163584441441338679228451536795991248562595537385296149182551148152898947488227527929926172164878958752499291942543434941136513318273292121215347679873975626856652861972981494152138426776341715981967166285589793534191625694191187882481848818149558511969368376953272165844548483233239245872465773878342796644857268962558584141337152321873157763458692449733766361471457652326561229453325681126143187733954699611545766215215619816589765214964117573293694154935683657168365566323422779175478845991786513157578821987985332196694563223328166847745523955155694151362583388773446888272676146549565513832697841428125383786339276736917157749761672199477999816378867563336212168367293871761398174739942543658474183369325434149423315469624461768883815338632672783338289524579457736159812968126347155895342277849445234329922555249638253369933976489819712856269222936252155342979769729895419322424129234567645519481369699612752244157412265515432568526477541755259788894354787933674311854939334213182516774567723943127419323743941279756992764967268897829183276274148647893189714583364262578195398152731138918246463877915614233948111213183816452528328887191483293213492672216367189766575514723932362328439955643529176515887168284316157943416758654194681387295526221824143627362761128246755317828819294464199255256951636156737627537762169174578174226721294945787354569456894791113665683986553278523568147516516763221328863279831276889539179744856887663861753769346298915868244821576763736992825524314898713984931595767356446986327686456644946886452177511198728577911555837515159255895994766512291355748589983797286775131682691734398946824182799365778825885857376958548747896822398169648133658144986759438911248934987689845647135699532432335117496153937491193662515736858359187683885424534778938491975791698346534965417684476195192651791534176463993641967676984158218151557193381644541387886289999714758558675729172288966464453423798542318879677785569216532853223975295872838596953962515599811987496884965715399584625973853831669247533993431278621917291373439343986275427433295286894931263186374781312945353779358631647844562849969153588655668531685278625798674588826681956718866382133592358616588147932612487914227466482342889683375445573363664391838951139977215638185391667176969764865753463835734263238826522487762227453645217413735416167295859972717861371911273623218837322218378963981971986247458231852962688474762668646259984695779765823759916171825449337577145911592766667263345788699457161451488554219725148416266191796749677522832793185935542149119663539371463422531123576669679535778695629851994995242697654597163713253137136526839998753192786167272575277728491299164263432127734871387969787717792127469452124411537214171842412512238273385634576386683757786836949757975327764293851925683266759725312743599818173273632847423473894867216186784981343426167494684969679167635833866198714433781286133939583174351858638961249156658832789985499385137823936731385277344222652668161852134616635152775187342397114278371741294697754362886995616923731884814163748254341821489881153222582898172876119282228117121322571548346422933841952852552483529563486827199383377452486624864619847438137155372996943695861222215947759454879958552711286297216691454298575461395465484992613372317635471816836463999288458676696357794784366892979888623479838363922388614293271258929245938654944973823232549465245259631495788285467779834768273686548688947864391957838214912179624471375842379365847757237344296532657232258284567232955667986539784517623529765587671937735488346696357587464713558652324852676234758496132492646512533817954476751579172222365824956246832168732778675786823393688392875981753821667145736955213132218516479759616221782376687989991849376259291722789815474162951834851365374345493284629924198181355482818232761968239221529328453881861783758854665677638549374553549696862655912558119844871226359219886859439575475368635735369289258642675522958374136519935853858721878331414341544183985469644495482213253466511818195531474724152262465712351321929562499859164378415875998921912857985861776182913488778668558633321716873489671899776441385148361349827965822992869392429923739763635431822911186915156848211176249682653753751342735329139126749597752836181224396736529439993942697789498419628289732664562865124783631552313121993148395471861339491535566766765858687134111134963115551126681166924626116117414694148249797892483745345846686845248142111689827291525999547939453246347495376985136524578161995328952581118696198649185882871382277325425274784547445923199128325947478886153597249631939839652235772549154494116969952724788782368512316745145741625787955833958788828482886368419888573954248996677415684228949926663848261941616256714924718699254438254358298724383764245884798141955369179941278444846325684487561996893787784536811533989327864953532798466718388332628539115599642711536117934767827659661198962221264863466842422185931949835846952327664137258365858841713196781892556858564299774457428736384363417183839158915358981753471716936734916821611945833998235294777351731312262265747936648147425249292223348463727419172876527121849152375191462112918295746447432425442841876977267175449983714746371364331937543349774662833296813848161954617831887244326436996279975979339121198712224755345853639136969851959839941315728383556559154938924896789718389218462117811383275554932913731632467567246155453717999278352414449285798493838997796614538568812719389928311999768328662416286356374265985884859571346376985511237543921418783731854489167427429173365415272444428755652472124111346766263397649313867995116496429984699829573413678368667217648646985877734963221136893612276138617184666151362365845995212694465163437922947263756145555714259555797488682398452156591961475321889527285414248343872777895335313145863312626449637894674996516729395625776221173752119418949511449982459969976251361299983834867746971777755268284392281562836611287263828244162472698534627377486982374186492538677429882517235634869168796847795446325454157529815721479153823346966392797448318788835631811225691329388832753521313765844755215337255946211453472558923397827349854447847982219463155384964687572995689376486212416833228667325494952768396915955537848794435874258324143634128661455214557933448161574727138885819329664466689495332793315282662483359674333263685754964472527755971847359654722275672918259825322214938783154172638729534415846966347115499816977839682922595199613422852733328912768969118417468699874936248937914899799649265834811192616499289478337271197489759648819448346283914622611258133987777511335942133584644669462659226876898282474623876331376321233828487295332783871494529941154334162862294462648678929813717131435692621957129876667557728429462922173177778755322955737468494674671987654419949145617353191448815883547888672675125751959183863341685362138285687252246944229443591926128835383917111615935859198199691473811199891751242637527435384322592511578554567629361993521842981941987731176837664654785768857841738512528181846291468934718483456296447255228847874666936864199618242856267949736972573158456317922285612495357944181386121642432441811138454148545664165128262385375367213526279726132534458467893328939271786757259392545372852174966873851425131951284629885192387865149181583577595756734233351926531337485533272656239531855847589422248781998154675417583167715656678546526421667117746942612167534476137657614294867461521626478715216962611931317952994145683543863568629613643237325629276311596751512462625847468829637258297762723858128692237199962686494171241435126984216896692649279675688619222728128787256411337183541492313473385142766397219827161289219447765168334963673454159268189923689185828393451694919815693594752549931759985844333224774812266321213277154548751171437727834554565762476829595591634214876221576943179659698947199318686288244637924788738431129951717426139592384652414145247242112843556485513867917211725548548632965414764931639341412865619461557977352745616639651736286922166664388562922583546429127628724389698553635673826567358929781228178712165622793438963855832833739499615156236468264549812184246186945549153688493846616814228726221664668826555828389859261933654619966736381752581466372364528878763226854819166992528634175853627838513984789388528382698163324916756943311138771697746552773954527119439432119167831465532826177778799632842637319445888969555222882744827989791633211896731353439514876473343215515584266281323362639267481691941589895412433658821736564523427455324753986152933915541772122757278434712426519798242228429674289132313533184942756876717655862765885137335628884479839684979234622924746197975211283141446359791992255764452872889293236859728718824499835911999817129695567446228456428718798777478427863596197841473343122878425257833172682366313525736894644258741147395411949282754333687982765868577127911928183425773361447822579162762853652892358574518289437343428594758836951798248956989523864693877751345414227912691442726176463237151581893583633675747454889182796844823161324479944677166153233696177283213441435882596982384544131758868212254522671268486641943117993613826267434449268631635836524875946662384727633485547939479846241795833294756185548122167842554423995214678267629522527299334675955364622537288129361879792248734159421463271982897965744958721926957893119197375162546821692683277866166965683188233713773931257822437923561879692862148321225816938629865932889865168789882361863625591194172967563331218335211572932922328523278492491324844982184375496248454393342464748236334651979593337657869914368179692956933882294957534424851547416599183361579764516947312246885424421657684569898482212326893344666621278624493342551683163375731482418269498733767826121258631768898594444396571262763778549595474223666886333347524771534483919221466945567791432799752188368289216798245893846116879178783691591971884274557157744631498657687784662188333948691962981746515162538726548732591586684757297614855617151924163212758223842582876435131122427748724625818957134565167159381954724975545349943397783497226211573978422845837956724144764275233428169343735539191484659177689729535558721273162911465362831781634288141156353552577994975943116323226122646872828617815498688229431931284852842682272699458361292295212577651818935984929846756955465513367237139527919882455951476827133845557498178866991585622293896181525364152847446484945254434943983419614787321869253657181473661982742118849825639883682538774863936946819791153841288449216593685277848896811184113836856395554979663443922939429513177795241538484627898999932861176736251393131382162751742728715477182911213331436491563634594842639721841954985535471643972355417389352347534167494457654879319937851965627113653986652927847731414591952652816994668669443115145474478522792382747412344544937464791641719937992642764227511256525478549422211275341742493496938376228151252267591655783823415232642546541667316461838119351762826979623578318744826636651526787384236483213976368929564425983691194631842139764444381631128387487641713725571924241394384222849592563745393273496525744255439378524787197414653294677982423239972448257787132341597285436649646779575243844958917636157621464931867372565958649492196757883274361987933317279219218873451768174272864994692622432318552618426632827115465425568788543794536989269759295747293952795964495993798673593155764958137523753331591357686782347542343974257471528543392968973636759946362198149983212397185347992796321439233111331449247579259328859882794194136161173729745656449328487787289785682954816362895835673432148917465651841566756128685928922812547892875822586188855346137127351939226697745344129443155856571454465924697121512356551925671616842424773473333448983984441591284315672718139364163351684633649961526586488314699725883245498395235773312231571452749153683411824381621633771795978863919259321548599552827787364931222236147192849895875544269653664676281879854833419863288933279547154132127399639515812714922864568861862692553492872942333418744631625764897946214497539859634985845311581383894324865831783961544964922149328638924496555751784179571674595368241488123588467764612767117532336273984333267743112268968611734251559872187851159366162823885299344121227713717733338418687995919211223982162834956796643242732653763851966148433812365688851915171455452955777958184542326417824859483587954748546871912542224598436683376649483979159114326564297855182746674879765675995542961636144217674941917474763395471434927337984476467994368497934966368171768995621329535474156452167874731629171111954489775329426192474425323323317735793114156645782233644865195758227538832486844956219686285651371923695832316799291258766112138129387759881358268383948648741443461135912936852669863627489523749742142335928175951322859799963937931154545442847858124993898272874979323646738413214493781597684969871145516446666996264323979276243246596241796386891222499325728123773385454872362473612433814795973291725212338465624856935395882999971571613438889264656286754754759797656889667573747444919384657527282869626452625369759688942783491476426851113529394342135213432568191685674926854178272681733878667625182473947445361319472668524276573618893646151182139185836244781931721964568577779677959673841833914991336283749796481348522513793182114612886745284316968118377685685944223787215525229921757415872276687855474816338221384935393528167752298578291922849321749991717462579336145226299121275164133678626548152653272973979376678835696251154199426694882728375158527131936436376826294375193596257851953486923595124432839979683477462791382541142464556443292538373533551613615842176629948972697841185146315879977547439326376159968551982558356989632543269854759484582626451948791854969835218257584645281263943127413285616429168323849745148338958277737269265897989853366278964789453169965345942826251758545823756153858482875955559635568849214819993729916391845698144837838218197369359777852311113595277986886512437394967198198337644432921569692321627226914747491724914869829141192713394667385367747233124917926187395661289725589292592883574162781246363235673592631799955362439453868271637876128197983417549473769576628415896615383533276113377213665595974534962214431931257857123663968411717927369252366952643998294934115686422336453936981279188471779138669882426618216223921857824826782669691252962572774858538811478524473597674631816271933893839671118366114376355853844224496353454289871117631216489889228753188495262272834844473351363137325154469675758132468683618891532926352218784586622479739518569642376487354593154272253194848813939567272539725142156455747618899745552594565968174617161821519473817167313899695966652633783629899615325594554149594657824175155914436986331634573838628935431821353832355327663855697488939911834217342763328513162611493473365685398473695445541799738966282648968794953486741719672568175129915774178416978949816142748258139597813643249124994597751464366226896159373264564712467493738441828513438645189469595135496239221952294958446372321633162774695671798193736353574536742999357715673471644378515858431519334185451787851167818393134974917395649798462478148776978375765384757636363599293961557384749267533384819168977364218845229934787994375271967683994677287979447125443859845583782948656443387879413597562921277371244768985662692841586577484211224589388744992175123768416727738276193866156352643818649312873781288565169674848128971791878146154999496463736426314383369162666965894439682233843161385271246821311732691713986392319637751422541514663533821449651523396227362311757118399423378321549152777817872472211142479299154157125784471527647541776586589883685953381422285738795443881867216591838861977459227651848824634264257923999544455211284165427733147648928861214724732137558121324986668454464735297398933745876154721555881253662371164436893418779724312226572699595838418747515577896927564614563945785548299646325896552823268451828463272134655135789861176812883628835947492894462346354823912264147539168357683717331623812926321853768583241419133184263465175969235173386226229427634968356852775372589112723653316611536112278795844753824179399758891592528477751135316792622495364313454292766868298768819857474794949358434899728474154148665145438363184474344172486788555958591226434852285573521178923428366377819384592949189287188429135752443369618882699618325146159524566792652529687648458963567318654322587528586249964859995725579812159692438942737112919562828888983851884777749559649685776654533627784152635689643599167521954224873377349717651919996556532843229447162941715795673227769944245178874878747316663974649543856363939317179799365552926869143769151871677557374828919585388654548535672426143334224153581345589332789911515747157452699624162984163843983456951795754725112299695779978213798856222693193212151638625435614378981148357557763725676199568785573587212956622893359959784662998356967152613692925819787133223946632336486646737217175776997282744856473147599221817375873681754138676868528448428156533789854156813488339173814718251438393617387435258254434794598531369529238961375189422789139872897748752437463862792879761657836518364397832218378554339474166695521848432652478223444472776245676661593567794514748174242765322867816161629971435142445629931217887483555542574877111562454564142889125567514899689636669126429697699945696974833874441442973932682565933521813981434457555847995141634964943242273597353726424827878254547849965215839281632993689493747421316826418317468558726546829451471961591321946881652396877711848734873895888476421648126886858622198478757583125977889356842613893639493149332838617531115174453615454657681753513245346653196347871336893968128322746311599123899823491675586217472992941853922993132189637258985174267243444524635734576292979476782596638871233695133651738665133262734529622789282457519365767873955385246325233467218133599277471899323853465611212914253269717786618892938488588678894119979648288967269886745583472672678532351145759548292541777944981833856851415368277321497189477451545228259676482924943641577211364675599546974175578632679398424781238963551967494155323143973331333138484468197513924236323645658861798134833572764175717851425291269962334472646953512197139547553448661117162755986185887641485728475585271444932541938582528981738275782635118351243181132831892527186147648463576774766848838879677371944769916473858433214892758575467834825462636577678166242888324196477913966612368165678655577786323113298658773568925779226784425615824677445799571948849528748398779246969347384377152982766585352255741664471787591699665213647743226262597476125264139559722586696213252989599196419354215453912622845923772772312235556981272323396887255212442455919696694735954532336857989125524463122384778231264838426427768113315533891613638991842463149749168592872842194883865182384267163822999962161358534932149455152342431326523446288589684528824946188119652976595342389641522816413313377465914347565437479649188499726452841255819342177921838777548273255361631664669342425171835632856373435481745678719227319752836553695244118565436358177832124668828421721576119734429113214559441372244271771643875785915461294219433749717759937415994439448768681764744419492142531863796552311386768199938131273358527263393431986785677488496619461176296427415174531158997448484489199532371778911126715449376525513466483459341341821464271822363698236461385318381325732723839197899546574993621652124284467276955898346625986941142459886512996575418869357842855989858498586133663349354927991588473192841453698831645847536675391599674697757538582175737374794744699948624366224321783529888362521515477683294626685845734548799739256825134586145428899244993865879462864212795146914838236312789725889318478881562954655386464334623633579357393577832459975317678932277192721167649883871389146838835633795711465342537446449122795267536196132456687332865866935351993582284337876618774259732266245593611933619278936359322347861399669652813629522146967181775794748693863934865168554362248717182949316418885381236551774534231334345875754172284728785138541663986463828234242613471873636771978514886597811961397375446113198959326765555551569397732332649535346923466819966974646779832873216798833524518295559135997975285853545896245854488299679365783168412881394878126925881717275471212478498666576968346416223669579517446292749435268619319655512463195614877718225174894869318545644214572152963461741225144987341651988993298434497318812299824977966666964717146777547646637814699264851211814579234987541221571495771781861227239628362373229248725693578699312252887995226121982449686545466462659348758359347371229852487923178911786519523349351236374956354944112651592724649652287573197391691755795875338284311958346876834818368745277976396399914699173563488343748446965484385644651815953766939663269697134578833913487663246213427377878336297388527372485985237844532363863689342857196684115689932157343581414599298747936595487583395453583932742515298757285733953586744126281339749513121583777926578979587411473224524573749431888765613344371672934461635667655429869293529577678195167423176517583492643689356155541282488938667896169326141644188296434137984674269981584558866765298691299456762659617952747393823772791646212266126712884514796853122175684799391961958488757342533749298566486482565314179792745118927763492938265785182851134524326191339322238696994279271523944543555486689348846353269312495838983421968883677211436347385758646777863652718528559273719384147614381434514345199917387196498268576528869394692692318928667463319852637456615864994884548364585461513257828394583869223148586922872187778587845921842145883575662761436265848329494497885222566642675381654485414754341842988552718136981328759224556629717553623514912133818711964526486241312542832934294965851312841553573626797889298584969999973917264415984752561428714793598689395735233587644664345693742619538912413651313568972349614773725694635999911355143275136412673132595984874898383599113642899113251748135413232472481544714613728792594123446584511654124375646326474676991647898843244672135657283551158193871565788245346792419664668567745799268971315974915879225962735293218896936313613188991497568178389268751371531727517646392189916712576513545527377921549748637398445995348688415987149913665384238627941718638936621511867295696457151121873675236276242861331865559669656893225732346432554428774641584164476848162594648961747291148554889363258318662356331938143887164199395224989913645637431718314693532933321221573936667727457816158251472483329612267938673343847642777915246996113794651874967621787477871479179348793679965636694349927863859783542798684146695928819595761748971149718293752353132971556519295399269989255368471567513152862481396394118625451516366461646674614232642484829878584129183541892224377416788574412714691853943154479111678325655715165158351545881782738568914474861265189133512678752486387523899926314327658625578527145686975955586816652422759611314773379764112682247267443393433899126982391459562288921251483662663151289224179286977182129275332536543465751668266953155972593636289425789836751245549936184447945875244237781695258941639973665142666878547596999793746643897392557134887546125984267721919638863566953696298686993675664535412557142491919767467624179422951915618747738614459111498439434513973757531381734633673315256597785169712721772935381591925664342747616768736828255385386741164337887554336798512939557121125438227962274752492584538229331764585269367641678836368189911977324739655398364246862669559646368631684114739242627873737781326988946336698512774451632391322819692235794645712137199328348329279483851214774866565377191932748775851869225592247775373366349996471455367727832597824241664563199934551232894953635158114458568542996918198582745248849374928863853434232869942456338165556332626857169346149374887692146669729214918733435352721379572127989899289152285718871898644756443322238133242612588557322695139359572274587657794549361339732656582719157822481834759871643798456525421181228111475353417686419862392381492212347872912569189165194323452572695462661716724719227549773738898443598578948499211955713185865697847773575414234217678876363722415173229759962473239817533695735232543596492628822712554613185617651889438679451522666926334884548526468225259291366857471757191743388989594313348913651525324488625414353673897787942893324752413843256513893461144234355519759842157698877292116518742293167941146895682282491941624823127811924493941969118283153535736526597946239325225123237479852593142736347269672163376923898937241413837643599515733324693486199139412965114953536766935264764665586682982386538985686292567723262819898936577476834443698359575756625417964691274527776581447891463883578837745196763312345924169337564346121521195315349631126948785117799749749259783645747231997397157931894729686849314826814543237921898279127691521812472725948739619535447186148127255327819673523375897596199891515946616562714941518258867846886368929565645947977893577341718445236163626118695474629234314938449846297697556183433456776178893786385954798396439774441946726894433917376196638515837822583161413684311918462112584275323418557796126116932143291517138368213982584193776889198249752577377575613921278856755659533579297953314694621486961426358595414198428677138266652683117857387786517375967773337475685479996764314931526283415143511937726472692194936643864367527519271697867865357712987324964615521581356832356127215836122582943981916588623334834426827975158355445894665977361681163868374118532921276773387445451627553842685775783358486119554696341425572949427533371882735284718741286371212964281168241668937892719436347432849856659625527287356178613345428393757727258765471987847262593312587257862647275173855552619839978683478532237644728362322314391958285936949692973799932941369365173456149818195363255338354371776111514484273618832355181517474975925453661811693816324465912498889414578559528799421766256384173994249185935694536591115533949227441458731391553292392744937859573627571699654763972945438212969329867826771256333436878579675597483154631644267499175823779328865161423476892539336817175996762376318555123266187667364762347354874638139246734499126483595239617169762775257685586125364786647332217465779436975576993369824546756481858699387744333458439774348866952799737389612856788665988865468438499128188273731585184851295948777677476282454492991474484776542299836444578817916943461647291491272716153824424117343386114134152311816988339639353571171572976996177676397351284332437385563162668315744569486818941678125311476197671827764344137185885496433832588571236559863669148577199382421366478934928173177724423359492427944747137824121783924248276217892364866647949117218522327838527643928662365255765626648422262735126863987482868329973724829991492978256894971892789961242222261457263741247126384279282314439454169234347957586883791921343287684617831516353832111282216433292542233274798172171188219643941195116424683589686684594567642741141772149287135694143378942195198955158966678237521857651759267163567353729542284268923887713498653467539482519825617886655885659875528467516487847625279667122188549475935663356998515469261369113941342898922621471895821747647931954233825185122192572636299891986488571978479588634787396385472919766753681537389657487194432511576159317441977822551259682632789384324147943725879874732795962881211515218561156934386465841129939179599446331833351786269362155952999924556438642629146151165451658531875417272324326822927462426268345686492623854426617254485991624273721772156588148763191479441767928995298837641417715743677642433322731614366396975447694267319521583534859379866399159365995845993346519546423931835752251543122334885737468562644119225267469582861333969724877277298695349278464377563344621337945884227244968396942265535467151539832554948767351467819345949172964997381266891946625549942849924324142157636618258793695768651181474588331892516476624191845842978326249227267794365663647121297129633543259838253618953754763364317459665557461731425781946272583136183437164925167625617214352463152384988388884546885695921165469588886514472824313762253259694542329878316398728994118424274637768645466195756645855686914256731684939537913556931488978483865923415466156392873812618337523924254579174793771151311133774965379727634993379384394396564959485346998387614531859268725999746361868696446698663579441729793429395154788357213459383365234555485889357172782926944279583828465843767464533513197593452544278742918643985235435275418563788653743596894317741157597343511375548787466876451366915748989915459128854422156182682955843633156968743174278776834938392653757344117323531497979362191244519233534164417446933958968162513425678973314937539824721426666897354141471763416387648681235714449743871845276694357215227678122995372246653222455166567335936216632846491512645252697419711322774857476526679284253774543665731125742394742659153239583849291392766985258323227439377641559478634222536358569212138782727563325736889414259169272948111766987459136856371376182376276242739564465131667574282399816429582428653256291858356476366897844166721144654737553191515295777273755757212574328426477976354152236791411557968619246933656842964533563527394164188561625318595847183334954458656493364784523996794127422746691129354622974362731232762844594516449712897223396398475568917257782751739441659278916342142856524688751683658565445879973257719266932989345199624191997113772688279477482799741939139739996153871716435593357451442214193697974944575915348873896916215464152455792383695482661351971427822965424542691237294328315355936132563826975898617939759275767359416677365753593395179176441175115663388762912221637534167173673138357124214325378929236922288482316197326647264846767349456294334734465128724118674297243753174456781282944443191529222486582826584592786111429359261318856147684133291792632557463483367861428721141999161316942289415172223985988877773793286384234742853141628316972241468187499763847241293913419613748546275141424137146325555426789534151564595817592133568919566529714758117677436528775565322962832297916674215867534169591586668868458915336891542848777824481356191881422992945228995676913138627696637825819421219566266468128778349911491332342298795331932818522512542565797916775297281361222262426572931731297716424458359475595152334396315975417731556572832436558877497884333996951588671714248135665334665955549587344393627328874317562166418456179419762383261571336422962896493333387326441588411143228396836157365997539678418591613531113618244733375332172711772815814265978451587191216367344524814321717542589398217734466798178499479223372289899673117776563213249159375484473339539286623932246941977514841163915923584676881474461919473479769151498655332269596585432778644549577233754861729357791856629963818631886361343167826711352356546498466883995291872341376491944563419987175695672786723342345792921718426974321489951275418877958838669256577615591528948725499282937852518358897847632493822749933626766671349124776914286358142392976523557458725216514139843962168699934667438947588889663858154823616963795487225893859235939392651156316644355843128131422451516529231794128512713515647772822462484342644383564713267824915131268672835154498668974666855458373229392796135891688944527942678879688767351831987771922714862647516372117189977734635796272235975512612399296858321889496518986436586626425911842829768317295738377837379771754835691321148512238891637593567749398321223163285964926665911683512324346552769255556912491568728941353718884798143643773729679463388658335684497661837118965882118863686244573229291792586965165849197612147368268237375871367741659319414139845668285662687352317237277471353898526173132866986699396942867236987574877863559218938623798312899556934629764773675526686516596551133485361527873314862492159594696934358319987296583632726666925597822642539249797968229786276626497652715528587273984851468939678323483844673471568953188872738558887269526754719594713679752487374871723397667517976234987236743229281319175826412114313124787899817848744216756947378578946726516389953473946631256114887569998536522657842484418918387932822673325378153181421211848632693769179597491598541641734686746911828858586536488452424862335835926781448981528342473749872464854323465153294827954328216332616947263767966357943464275797858441256422118733526753268638422155279791811673824588784646367572987757737794975222181444971618786551233892289691798833228269947573585864872821899772972798671328566932328491479356443522369391136638859789626542184435541579563135919968739483481832386322258451841837599437776657865395411256139192752685352815682991532545956956121288613693259349373336721315827835685744168973911242793733314896354838234121211124284466786165699971783984995195414641218794263159227524713212742295216975381595416146427647819939549136564513943557188852432434276179614165358693211975128251577274144539855714934911523336383999392645621991382673533856373662582745197186114252413676214469617761279877466871812168778924874549656433179646627723579361657891845478674547218868126133196775769296854297816773583176365843318226812132711378526823449823154864535647697734675157481372577752295657317971337742361487434198217662473269282844171997641848668424562768785759257257891774648461816982649224229743412488652597568155228139532494635653527675232926447258292231583857299855367469993627526538576759468342868413392553394946793367214937214953273337556839499624434736446731946268813495444215658919553225128624495643177586849731785985486147587841247785478431498886425838667341444123558382421198749222976699633124258186318227181992197657518711235923544354953943131786536397318799153377762955158125667377817676561788463548143754329147726473938197733177871945466259821458641548291418175178614239211255918851771719617194864276976981479264239311359949324632228827754669172112126891822284395177632997995114195685667674993599253351931431739387743499798947852177269292264192755994963766441547252162276575659148534698332275789984991658112116857117848146424422711766566767232843525328869289351436973538142234376797583492436468955397991113439998546885826453157666355355687565329886367813217863377892259786327196722411612386513283497265896515165216266384925243463989567997494913439166447852187275121619458649971766319974162678279141176838715882491497684752668662778251132519747776445729875532798523525665528385827378265718877528778244575393774492217767444985762675922451728167277833666965431687178292364968675468624219743791496195331626384719561889753922851459882833359631576555421622786722699772997869817542974934193774832698777462342986273465765931393462237863986274781926492884913249352147336844291292732819299514338432154637947955127297117867289122136488263858361979669355963863965512328683428315272195572657942482523472712533858956593657341478639857817959233937577722545572334299889574497778516187221766888218986844362848789387918865543353141623949133812728419386629844147199473484664636575383844737129838765893348711247675868231833815671269493253266824498321394465923938857272487179498228348683174366152767995793532343266823228555258324814473625758964456668522837648138465517972767282657487669233935851312997163772746475222143335899729818624871954681992184326895777758418885989337325424745313789443283861458261892324686917375118426612746553431662829529236747578139392847179145225266988642298112821994691594925422919863873773853843192142543975166942338585679944253367591887383777718547813897111446185964682948518353943212822845543949396479339153346556638712256548357894617422734389942613827469285754224855928445239398679215223797127492974718231951897726237486296834122482214318278759462199618181583721841259966749576676535433482653636642437191157514166598837982244798831539435175481938712499513972745787629227554636516545595782944412174975639973623277715173166597794999542448691816576964279729587786739863722692248835141123861539191177348597621483896997173235134131764593254283361949557769263575551899294413648622666333259486839719729159313174221854167886459439381195925222534517712571116958877876367778921261849187188673458136652338129125118916623479514326879893713715125915565793633954441431681852362853288756899184337469427492536799917772352259582227157697848318318965181195953164657427111931759646155154548744118841541434598442157452895779179963996948287922226759839495392277456149867568669144137876394411155648615369116821313899317758653126976592512182193381212876631943449988928225425542553649212296429216118729241794848192922131662473173844768727192891182384349476573866222983682762769987319237784969571667835982167945675678336622568524386785881575931486319771826666985642931167551598228184155621318663865851696545255963468829949796171566514157673168384165167937644679129524279565383699995798341796698539855792319569458827551529268822815374484331264935679621627418588914342764689173649591553293941631164249597595648587622731124167163375224963327174726898899396892128631926257853225793582512189291954836459134346715163213311221314687122134567938424634954164184442944137472174815268553758247571773276713929399725459734647295152478949221241911455417761479875911794625739628653184758885752142211572134885749947221188563567678625726194467352963152797133899652932522957772877262349943212166257498593261347863886869189285798448276582516281478945842751111853661219269877824618972246246231486487313289861211917121535146175613434542437438427928161564171532864118349883524325121267463515689189794783944355856862497748296114173541743168543128267931649359667821884281935226822525577593448139116524515926598649986744167879789331681261821673572144451138996928986993164931367461794817516197885484681982998645695184735324993449798795974736296694966587877119978747234597226765262699376976964727431878489166471631457953548819543419358255681744678263426295249471494319668732188995346764378124164584449213211991425979317119514751185195395394335723643443284568676975594834346716979293412667423199548929254624311229451525156456299872895266477588323474978513122819187593139778599837114854154244942781883858597571272456752255657726713977737574481525189194649329888176848585933875383292656476455341834772255441868187241776411735717274289632718595118185726777258955373135295944455343714271996871397511929314747251331648647324343983973813377873895969733344756954241532747434514199862986351845258291265986346735629718233396621439555843466929479349152372942875829283528911837761665692775862342351592392374939996464532917149364213342477769758393656736349356666881927683567376639193625541116684576235479117659669721365375834381892229228874738699636252534852821142853741193763725328572855127921116478468634815225152146637337337753599352632142647751314935747322671514667661824578698881345876133173538184965323162841764151754851193982377718915178954358413797896984191871651168852287928386865453863849915919775883484293788333599782663162129598737155324155395263329524725764437132564967586882123865237692935638783178726485586772385844137598267564445163692278486869162791626272615211469566394879676745796324474884829865484852717272649371617896276152589865834632796722773562977573621516997461539191278414491257419458858673625523639469799813543477262918261511863718777647891127843133848888874143819563252363137349523392178472763618833157451174935354451297462622593717433329622146371389825176125474196338299383829837729227727154554176895623884767438449991615951356936396584851583326295256641676358778336791748879579184657614238995726386341126963752216866268857438146669662267433653137634429251955511457563296459751424765679654193948684884338284225589946892181483241528841759971418492971189127332373266221127958877975973963685723929531632335113691186273531991282944916128527885784491543533652746935647388976444773826269423686178532259147671957229835766913511462586579135129741623988578719745882439332733715656954619479353722964886869129684278437364397679665144738639587794536253572329285687959712759428761375533654572941626596651682458574937183538721773221876734869595897615858628785897973536913752241811475146993482178421992175389369396718398536643464454461988814733313222965527754178424412292575714915291742496794535865975222581882411564693263426882488881949936266113563867198577625594587379985695841927725573333772929646534182655555116663975342433286748136181635246712988411544852434326834887491961159791843228349671254533261356341228193413227174187539645669294215124264566262561223167633542852253678924539675686892555797863987234925358225774353597865641848551842467178545869198675148222965959186782645121121877371182267753661138382873973859676675782555612614442528695979837584952196667627951993752359343881285474929671365354629744667845753391782638654278539593757532997235182245919326168917272924994625124337638658155954662743243413895337989744549833389464667897287518296169413385624458815584193633543147977286647182852399698951294497183892466153148367236911139458167346563967372996718219311236131753419585213212872682612613225381529457868189265323472543744253393238825723528159276429783118327531422773935728636377245545266918948116388759513139743186691281874784312176926228173281641749835214443549131643549757721675557958391644547611744628488346781586324477721561445895633456125173514949711747781259612846548945285588547512289294163257791594912459283934141849246559228267467692519891184277182636638434179738878757766163871822575318615487353118783288465446593913663911625935783911845279827118354554516917466767639256137837652897347837563238781695218989644832556338974286954924544222174456699222999217712193446767775119568578758577248357681146813313168715671326131764322326896116323183539469152117447568157658379477729556459541284839634388115142713647282136133415367694484787857111827821524864288947365633397916177868719976393185711172412981688463233221749947418425654653711455767989944837677399754128389223798585489763519248113324232954222961517473714537437658969265576662612358618862594368955961596963123247918884933248943438478164376589279966449753456689437223549987894799433287422181112624867755434813644943685783784945322996439798962455694173231524946126667537323457917393526477871473837679391634325944386823599536628375394256677961488969318251622448867271638334372157977783843976662367431253588774471248312589154281923838185953388381921269975382363556353637865673664769667184221565989353837384541897862561972817415329512239574564239484471552272613644766613168372219535579687747992466937233959169912459316879578515297919294191881116846524461321648329228527515516988529855776738659471333963423119752726192754518455576773914114978159658724154899435992382682979783647518714292135634741919187165428168838147348791165154963667999795578282816765762266453717597465893619799365842846581651499925494655514441914988636671718611159513953397376774436894874624638567753171698365687277653815367123776873943667136843486776293793961557841997698383422189698867164198782771441257598586445222926326173249273197837675229639721331848252179378152718229971842875959764861787482552352148223398894658934992649673898912833163832296887277339297467257339534817825493121842659396811633486855536966377242496335816858195671123728445158288819389865765221233313146632359131168844491713825945347899125936922894234294476878483172973474955135447746283669498694782927312714147712329676515364623724444414727598628475924449792863286527898656398235626969928294422164743687226838381876777576827923396645356738656634199747429121339983317889643395594467198899822799929517461681228555254133813973853893649696617552966269449735811279434393753588675289134985575583425843917255912421332621267595746118398123513544577647743382865366296187337582938692465594769394723312943692683533667115472381662972975323481644888599946164118296392724952914283932834339639449978239514694112394476898659694599312253412712931367736491449798627723963143134249813451484453114875972264376681662795834359569847323339757326472441923347283175687929895525952985977291819116564355233574168266653262242252617822333679885681245452665771939621744992878446359884841427319361334623711533157945429359181996938488558491716499921855843743344962826665735364145139493666888275265821382717912513352617275182517988817977777727942192728227467155935533281852545644795516252955438981398273335679148599113217731438547354476933836675475675347289133658194686858594942588822641633886584942527466849887778742783972529913164799364152818682659846987867163332258562632479544437914689375517622356519647581833422771788338889124755618355337568644613426114915379731564186732585844186785186522485431728389438822329777385725963485466175117888899767474856442779115712212989767634371756398355356736847934891663889954472316731393877569848894972966393422185214489136819678866952672822111521757751339386172666723883984935191865787694211367938216514816495462738488897834426236766256785321394131811683823445192626173695623825915863145387787837445684145426826392695923781573396764968481161589649139318454673238524362367426379172112736283495246563688239746653764846544772295732988711685139495788243699818371378249286698627185897157137845872785613151823529198713495168555623162366357498497267395892657127313439163712541247876445519191712145841211254267944468827717787881264165289415188415395966635392328724233162661412929315966486626487719825171919982922318946497136795676173153152134365158787381958415912216411614839334193831714544134254794744136958367531491854147552829183495989724556586561875519581479628216186532181736693153891938898698396848945817466659849842529478298762655945771335319282243179878654799293669672293112334531518372741659824772882292224575626343496451322789778977198345895528757382313562448246745579158599363881121357592395877334238978884172272297846166543265677464342658754874657253785112568315627772536822386991269769725554816673725317535124241997868423793359512941774185488587164914163396246239397514152981687876372491994617536276581669527214639867957317969566295261113723985861655375961826535852942213491786742157554535278663757867297274836842695958455222485962771387669254413996742242389775842861525549779159622835943819483669519144121125876858443533561727576571872772349824767811256227774421487464687569835525529132617947976712279825897357799682652445942613628599168793462321485418812962224963869737963175193544434518729116282154758956555698929371142142669754228923566936827734737832987852264855191783354936388162259844941335733792926298837633747721294117589759849469242814177848857268816881665699513693881665449154835512567817858116385341684587971429566245821519248563521879566697643167647698512457699776532181834148683442381435184951693711773176944177196238636931981241297514188486295616469962958963883633131778488749485369564451548781974951878752689116961385338116113597585359497498883921334234634873631954994623492772714116468756998193482743171138298519145919418297435598686799498258152443382192744273941599349155949283311519673999283231253168552469589639587786694716712127852987945887836594162432113114798987579958641189485527627837295974522417169168196548299873571167419559164969769313222198246332173917723218174815225324247761867258829929826216616148442117184787578369232742492185729939728997643478372455584573154935897685249575292437775232436718298846459386715938615126249729637411945863424926776167782643594244127694836216682287855918168561972731914415962189864355261915182344433663168175951485891881388512845192486283687715193261199849922421458166324974474689788663644775719515136424851118185842195362822762264796179171879453441876947213239698295283279114248325818519831789599996214913426147528468232319358147758957389783534359173292126829585378196973226541446556746237276593382869281623647291855477184732959136944995369878944471188341445448133432846733627864852686638263965196171743994679155224776672867366873946235582586917264821896623218483915554692281897278268728838767856381649758738435231911774549234753716771453176698577655999921385556123167475823671335835616724269761976792184449472944513175481356344913921454291495745932478413137317618643962991453856883623925545295158244333467642221481662125635139853275412155266114269372734326119316846841366866272298271593992923696269285761478587394343543534772397295561698346974388531773141269878335374197694122773741144151938759287587256547614877971275257933941689394847697874551577983785867935853147785362717764452639125717281494162597768333677721531991597646942181755478634495436435374137621728684221883221654386723225877858716928916117152479941252629393163654344744549576479574645564769114447729954991546474737273638639962623526715847485846563725566352594654333716543827463634979694854118431691334516242494781741224525347416428868382521898863974426749579111886623865843738125556139977867845517783267539331885377264851534174742957691533591927633117969465738823573424653543296416192927489261517758113357677217895887626442582256965281846547127695446889927133627234117761362922455923815617877579889554689771796287477738494142928963319386445854581352192485686361582518133517855871178227565982149289182323917485471382836325428336233355635372718836898539961773385529972419679441121863657625833474361411357291293268434174667895312352367975184299132338795463984117334821429638621743612958345655467748781642394367528622446819436119987939169485236896131629542152948522537465878357869811765968252194255771358172767637614198813992317885919715871633384583362552772451849619286238566714949294362416481341257761596166559368684624252275189765825431964989657119333541848724295637522991864564386521614475784247887977153498836488348665243556225821515755427156879535147382994466417872422126693556949677866383723419532634282426829776451879149389322474782834415482826992795733544771148221551178169658828289434792784615751757643516388116148427585755311275928169786596981821569133563671952857726464863835871764119366351436117634128392787853254179695627237879182912978654978465424885587265272261368133529255676954413918325541566378529433881566895175817351497924665516874829498896476192231822378717385675515394931549543533659511249696146575856889844195461492414362866522895584467766211231269585671223392848274941559562577426883994124297915487442387425156644843243553252681314541263667221594717953177236356598625771482531999685881613138787648915143195974932411461764432285975378667164455686522677921138515842798494747385846994685688448832891631994613186665933492224996275247335685883459843281282581198412134582971394388585593652649479681929225155563311759113177915862953755368715934198998394985369555831356126518816795424813348383754679271721591251692972214932297654471443481596546642753145244798136179217355899453627721244514416813732567947972223895717156587978251496189675797966346951689376981929528476944631164748616634222223164991474836931385154616927138343632778952544563967438929522355517764658711156352984865616749391866221971975518796172542116935911522619597147817413556756357757898859818592272723167633258833692486356995193374579332546328577714438927536653999811964685332812334135767432529591596843366455577871435158119158196569896321766543475971782675484939818339495949276662529677115497486229148621438984146193792242779489383935176755157555714937194832859233638313618352723195714185271183235955315929199399779177684581714218638129839848725622369618678998751552543327298559785745493382156192245466275938797259698926921539633179677168928533492273774726778175133627429252481518864246792698181253883698737887653176555794513527796965737515261358812471721162739226798448854989669785765761834744224957732118964733218764846191512795576677454736946722294784745825361917643915519181198557839392726626479659191898816651334353414974511365354343122686617932263449879714339653854112562354558793679559862827192411557671925784949983879942651781835492593962255244519494458536418847886272396798158978324156686561348755884453347234954359927663677553939364577289575911892657824558741777124833789379258393983338292168768242319236141769156388187183869762782714298174168686484183368234313462871687174831568766183895324569657614391673629595183372683938882542861827277126515841999282971224398379997797248621619527724624943869768526149991951813663835328595379111623692696675822114534374791691661811978534916116459775145194959131937778278879413371783272576469453938846723654871948345582137962265157618873259243956484586282497791552438643547731369618326454223266489242486158175145866391712126755569717312118512987516586687353787557277387127215855493152765834689395823535245621169454411983252969542883395866761716156135458445398477696162748897383886229144474291859465527386915283613616944263247973424242743151311561264479683389531834917212242288183521488516457441731441444542359682629461816638691634667112146185246272152614563426772472575173596193317367713145512648696213452151361996656859399453222722965151175264729314233167378551555951967563845765176372119844788383378925397664161698888862249966384175494159356424113878892788496793233527453985485662441619349918321563317585913478592652586476297253363111591737686732979495915628844944984166713485472312793243927392699984555783229438597611982612771669114572892635574224322572638795585943121384639951372427671449898382573591753647764795541585563291337686662925681959393441887196138887452433981885715948127725428296839972351237797191982564185894376363587519269977966211698187414921268918835721416836986784423725731521383753783375863421762933494454473747896233727159924116356681137389179692862566468868483941853572478337423669294979718992177223351173713168988365344134339851276283454759647363786288411485411927263527471997266763514532963964769929646746462948387641736921386177142716352435253896778369388995699868393535949229785612539319868635564697281982969419563483368222657927634733718749686834169971136738489742113876844326722598611273911875165243736156727877627744934991397812963478138714576249631931969639626962655436773396148232216167128615871293769978681494413928611561937956122119856985236426286333335918529529493972574124642255476866628568396694841131594618956523283828758417781784723174977539747938883723481547829137423166939731529681928863644546277474977841872749631526668122628365752335313475347478945735877713267399719956478296989552949618914643514597134844541376569339211673823262865248482528164986917853235549625149987139845234723418629153915417394196869382553883554448749179898397873791856124468713666473362171757926191593938717954582716823878679278337521389974423483164452118925737578596583924253457772881673144892641288489884928685863829934493557676413381672441816197989439684331861178235368348847636668426647724621423848672565318764695168829171113497264299621486845259921938949367963483354293866279272265967783589817932451536243259365752429677647349464426839143968533565431185717744175667561757619865398415875549846391147123662557977716384736511938123623888932629388815167717619512673841533784613582988659318258315578531719159398587242962886696143885954869788536259256433882485673157433411253757772313581618975371913243357532398327665616512928929233457119239941695955595797678591725535537311269665114583241988951412944564581446846394518495381331425751298241725344674423831943183458567281352775142373665649947272928635659627121346492955738346537271734686486311949133516439172788651119547267152954394746733811666657511326921126546829473553628274823744336347971541478733883699872134556189775839766628896156142145581189967438415865645351753957414413398832752147591126181375925454673455421524273274672618189524871115656598815122488647446396664674128767456758986741575193769915316172716381268842878268533424944441611338355138295921754994377722682795529931739222396684911672648797249941124935964612983958112981785579579763367627816991891987956493349325541392162651631618392841164985438456552797759719439514699977421155618868542493445495744631352256626393257376529958412764778994545274477115656441381456723512755261698498953597514648299439515932992731516854415857767699639223212373334898248624488947891812912249461639553314531425194173274377223386231441794835235531747164775912514547517888291643616313671269321664414171991953223833999115946812352559649644755927227127612292326462334177452753564266926134255771792219843917153578158551965322382481364645359496391155231661788836952316739669289284696651629411995225687643551478728272334163153664932685849876738445677863277334726773365342714548884571787428779356563986256599388635793334211124761967483132959712272594714826283279926118393254479419889351868275166675495619847887765789766574969526155425499987643221176623919861455886425323877287185646837723657235766277365963662135718478543345791317133429775777338964817131599529223463429896529324795486445376287432664643384116574893526953662494469824141542977367618213478597943824126279367193644455691449133314526232257756111455724847749169411923137812413337717192865761791792995675814147718526592968937195284641121423283834574668462169578943944985383664912277124228166859134422859996487595395526413996889212285273622372792242763961448458467875136253322335491686629444371857458964184227755613363397624518133929227637393753888117868118911112924686415571758558233133814824115462983438413358161354635126326751949183932156952887249541152526611518689894378565278921126267837867636595823668965856957473165841593932524769465941536273488952991293344711556931983599847632721649974334377861858116971633794757744966383168144954641513772146718195732938832126579429686788258167429692375576123154923491315119751711837375975161562681519911984955936654139545571648689579577962454918212255793756614462427214337638448653923287747182113823236887622566867976648246447628832429171227794471935758382944735856663765433671754227845139411876441616949315379581265767697775218278772692128176193468226974494211977136238124624869681368697917114716338931492768625641599291891251783584523688341714754762741656614751212469284353526892965128678954963198116321572251356748595379765963763385342546569234872419365751926244767811356369555675591954956668934695638245198556995189484131824374635549848793293681537921192328571125918868177335477968157288935936436312918749167863668466258651384814115878884569724651265938956447647114792937918353358641545268732422789882572396512375338834615657635613859978428546977741281655316766951837678433928693612565986653246138785637828767927963552116321823591162733699481187433433153124274288451611438445177221414616122439164124157891397918158417818131947447743322441141735565245857941665338669694696669125529813695552973828776935692683134915263628814985753445894152363654958329989387851184574778814158453264162989664773219587456761495622927125972348657596221686625276266867454487232869471438199516132717432771483579316358148198589751483659696833663286981778537593431696554136482698377344296835978927572974512671587212521193588381147224565721768578629628867795788491746217284931872843628488955784768379176378455529781618393851235952848475218751718779587763875379454399799674535491248824182527452779749687949479583374772823567534588456149976825142417679825576925768363269841345375132913469152417333548422545873465465791795835568713444577964381635294273655191869113451156474436945342697195172971216211647989562196254843451547557267222819755764469754187121775482293364238614141895292894951499517834236986388378776865351389149822234722341167835519924953866737858119334349912462354638823486161972994227218243467731422758364351439751551374599372313378293637671544589517856783992238848192858712241191675353432644437337512372485493351874127271523245875912149478793671183698749864242631734561431787685854718674997159122477519467225518968726115721622667397233845394189952552922974938658461635153462356492583779962836651624918355389928956132137119664725126941467268954556757457492664265758785519293557112755475642857332998437356591292366884347323155154886611359368484163496228512816284754767684432728866578229419117483648495837998785423343173973711874694276865742274486694881151146496714389652869197756144248142771342668524789598364867272185253375332263541489215682417414938146667774816945865333454194575478845591972665942463798997344871643193179325718854123912536892865254361273643428738929152641716229545552815147719611515669639141184549729314984744784331172986984348298129397771947469376564152485294196835581684321246792195244652141633189148469363932949552726821873171175819646938922867138719797915192473436817718894496266235935434571713284943722162666389872314651631838232594698754373349369725876859661719178833269483319289666142988168975748164992223139185598787574371744539938939243231779557385692565818781584496518675528246686742322189938267817664925838586969172268261876557394594976714399315322237224668377636823584824743365466187333161822413541931284511846533256562433563716797816366249783998544677833194663453978671558748482858441649995239425163227171828893736699689182924521731437398288451929966875966397261293932749574575461957543162787797998163919456883887531737894573162967268183672869512574153418724811526225471455396443648977858238278691926162589224477264938741456394296892859761998613196759793323742322596462461221429894773194378418558184229232264153529729136876721528839742958363594454267743323255936919214939178414829483613938422122932424239969432371531833664656857878289185137344286369525979444231948847359162471996847334266578562444278974212299684395511168814947444231441541598817368363144436269573625669798468284928332664279226366831781526335537349495712723359721888839442884516446826987211173251833867955284728391787597595719792967642149421349227856596975844949793897738742652337976564156441218587159823987119896553747371382149844726114714784337591237256369243523124474742165814827642277281332643979244459731213875893591633786963887211184194271758118961238734912522539939256222123828831692972134286278982694796976757716893996394819597766245633396967546834363543593168672144353947691174498741989285952155471665424429658523611518913197544489821263227968218149949138771129192116217892713526399212978179978178689378539671219129216914891697445462294162172972882462651698243767877273379466434561634574486562339946263297741187948396645279312295711939693791385214767175995124585677635794832233698395794196454821574153525648796626175585129391457742983447116767264712194934157722719143744319935385593895289852132135398618591927467745253148241332761422261163898553967361174996262313338344523467554279277566973292424157598724479687593338735945276581329171418376834247929514931587598496536253735249731771164911659488931545717211183159255445499337121163434155143257251784233145845751184588883116622781992285679143241589357567129286265274731644858995721466176884599917279232517295666792298886234225842754994512967536645424836346729983373523718459914536728341813891217357427352253695166899989268178793544268482541947627514419226985239445373426529262791132153631243976593735485391469573577831834131679943379798734762928691574986854837164933815362353112168446939212917399589994938249354188571591579219157846339153987484231279127946941534157951358885297394295887462424728323437115634452761249985117478219532143594838994917894414142842784886135417397687376725227292379557259799328977694155566386492246762721652348187492857465914117783864818942739578653488777188857223413296368215968296964671445156386515142841446255841116151565173633135129254758232133636571978231444945858234946239392748835647681964458351754357275248931484153948373297252576183617499437831924752961675723321679219142624625189384241712833889899783745117515332745615787975953821194514244575749218677274658931839278583739394114961687143844916734561744763164469437132324795366523686962277514446158278537154715854448555294537932858611495766151374228737981784868728758314817845157811517685861642526246526289684375236874361324464977428136995321833519835966492878529313892333415655547933652729479491681713943497859552797868715644792772965295979823992778548912372458644153531322519776429219346471133437771612763629261271193631643875642612766838743859848211264451894963128711484757642442457672651955357127166432174227442118274267682383189521628949663763679875533662958719862555421686843729252428593363338473814853536796612843582817139867146422763222772865193273776752355996953363531515125323598152277765361486738788389711958754961626153181543321248198283158445496911298253463486286994398222552251169973119347855444773574629733739626915849524167424671942814276137627299932246868234327416723225976574557579266877398837498629296643178736642217826618446297216769166738472492164634566186785252166638565684791252498195663188383756591159528434663471836143862246784788641473739967949543838942499878631667931826419343625318548315278334127988538453614134977617114836237826668493653965342912622194615386851589845131665765827916356775359317371784849324885485199677992831558636911841219656146192781773826678259322332286788487455522693369183995917136594333977528678994791179561262722143349999857545913911856872133246469458433976466757732327421524161185827195641215868989729772177175456156419438815613574441547234668363894636527877224556598222587394673935676353864218758569617337694786343757144443317154114746385663376451244577787593783146675949266791715152721469746831588872886466525829192137991583631417586122574164164366955913265395154655711916422737322711937457841115564655285358979141232876449449895359668283189884886163615549428853818537724712189686845479312195466317888359557425888425336335761381878794748479957698211844219327313182455272167735546518838749361668892419515187631271954827743798577717648256798725819189754923768538282986556337716614588879955887695783438861421182428296999577237795927693644642873772271227841598981641994466433799926938612551447511499725368637417198969924958698727689125967517326291183486245997766567153613334943152289793283858495199251583866161278157365649479878893741916612538432947512448326985267357717969881985734767678267672387967663531538981466923838485514289855997939838854456738566126435318817699572366692264929521153473252812857864533548928779874129335415578365617861643428496696628169516432882567521753582141793598349962948184735799957151229468292178271979442722716311312358177175772879792963133662693827524239616783563749952297456637388619568237472755558568393865583342198919557612155892622786334457666445499159254733883852474827473117546441456639997382428699446746489923958419399917149997841413941822116756685466179969643673966957157733279625223117961227424917622374591452863963758871511891552688936862157344519385235314359327211886989613964881413834258179788667255115391678718981394192969725539849468435296994923322418381724517453285795383674895135953825175618826485812258546948423614111571362999379584227812643813213259386465491248569331384674895228237673993926762784723279658958872428717997463441712928973778544785455234971214284385272348182461815318685695924351757971679815885315263523124348413189246236694924429772972395135333247758418719142917194233635157362945876545448439237659812417134227694247572425237982962293794115764178725856278966162261349749314611573868475262767882815877797267395572328824991587777144894528337775895687966924679373753194916684153699395885232259433722913569874134953439953267199461552717684985271413317413112947172141799187514445654385696688386489469356116358714232782249168686532366956579459762939943948786339354848485329285367262454223844679163791222149665472427838912478363532444656522148289872662798535866911466916119828794849129861237836952452942934612986986872885568143387461554823912619285464818613739466411882171231148674854794177912542529526638632487762941436926269312363825677715461663616397913943958331686457883849218737328511795617565289868141952814545284252613258567443156251321664181496646852597341446969981946344373836411569273226712618793416843926556581498619279338117348912293647185224874781623522256945145398816418795174944276489873476895684325185572864182728796932412879281788236392619671539913243338357225136655715662614695828141864575977522192557617967448242237673261893191145896592336141262718124194383296766225447841855936837236544762428939463156231622384896449725856639576789382342471759374244738282238616534558794767785999452279382153584849618974742332266374282386444827877675138252267884293421863254821677179975191778187317284497879837633511919976774484192442128912554894885771358676985229331121275545833391324272779281113123139574955274215611678585586887281146332848258618665412961547256249872856672431386627823766561184951136692633762313194369815913397489859112387427717132913412621349234135253883564166347476637752565966481659894299723459922676822318846812791219961196187254745966641321399298284394893517772357829842861681498727117446114139719693869827866648347861561874644682977859525278993678635612964333418183125541421677439889986397538346647991942988731629696235978792356135138227988159819422918777811414896618316199189912912769459488768439258768766756746923756783558382195871646211774364439116352279279656618229195421853663377383398154615526324756832296413932251165425776388662345344864166271266717274782658762285562776484511269885263418174292747824451792696574999328236444517378513671641388786517319853312928679836999927785335966751961153819892489372949462867432527422713582618535739555741462514245314552512465926871345371521725355699859985476844976493434415831391265163588273579218332673255365382786835743198998722888113549956924596171379167849928729972866358718495322228891883664452526151721441871982671758994448471975946981867955122176976398236133526195189865365463958578382873133632139916322758952899626694896168361261781756459637589258537933748754612776321284932735577278542326686753474582764836384991745766324878214552628911638927989455986373173527678378331222729754243778965316864789522524684668972258944354939296156397556812618713515839223131645264918588738598847221132424477892282149912751525346258379716485513616585659792225638466326955394564112566545646998734365849279534834181623276776449864248155817398696657955421165831354159539257916661355796793285198493346251952497522982659867365115438933927156798986152937653152594386678373852641335337972276324642389116392444467888475583124576615526245278614392239677778125686237739147887215428365842644291893465468957657299915398451761749985412315971789569188723888742749371482887956811899671758623885712831827512992161827992753931411583564214412517599287352634675622877288637777426334958192558829996625467144775487773672627498497157584387663192778826988627465959718226771981157937526277823417387989447544548231973499271499127814858491844656644782687627627398772592575839573849997669321139796936983375323496485131861854823416994239652771417711786871153482872284147224245914883469464692777886189891215695983228253422589367875745866214612722527867915841616181566166426696748424124597447145181685237785459281682821565368667626148726352168216398344669525177681462185191892522334599542949518644742241339479493753795979839683956269272118157321588976859717913527435436229852899786379241839981712354765741829697224237111917178283568922193861572874574573269177223925114488544612867394529416126327638956798248334953494234735467118713472286118494623936398833434214531648248167429612132814246556898852664569192942254334647272641435589825824927932344696313467499847828391672374497756386633362245917635783821149714433984218333722475943223136997431628938751821147532743154743385345126891772885637791994358585997499178155233685354342756494983722628422934282626948113643831193264985977486446929828173355364669858355982426127988885911546883767482889131532219187577511198255984972964915136934679421428333732137214494917519866798739553824125636175466215172651423267448649293798245755342316346643377139149299122476891931554217524137129939731868446538483613355757348331393378922665494663897353977719738146737894422788176891988658429323896584816974761349236182724544823469749337694527449137288442823159923835684836578361978712884177878151598871427243239919177474161766715683724438641441447965461445925463624967711754876573997942432876128424183167435971271963986162664594793197731237254239428124178527896186769772486898749442758589267766232298236716569412576324239994526635348997444375512133445334775337769449283519859943286518865387952986893153937822129679455873567655125428711382574439265642977542943574335362499742647111187741844172593829958822986685684457431736866247933815983441989334966938615128711189468792791622917699349741521528454314382343533272114978929969695116434666919127217594385361139621164328998799419168495912914865861192971859799686535925116472857965952936914863415816315733827593987178768144475854474856136775963571436249566842388562164631127464396829665358376122326779861497727397153577493913933689666695376995519765395675976235271631257746286162599947324946553515529283682396345238761154687837378386545663286699575579838512339157711266474133979526499359472287847842478772168891549464381417181664812778965755718643152992798755144211997562832684989178147913415625723358541598976863677266487959411746578536413999255771417193933895353295736124938495445245436515149348722223615445877381723373866899762882142475763591552788975555521588782829395654789767654118449498256437266729978855599899644562286728434185182765325295158395523973825224612788398718223942482579861362631899618588211594632879744761923112853691529569822988863239222421596755796732593692466669582522562136595267327675711467314465619613361666397944415441962396757627833889527211542184179218863533215583334944998995492222917159469898221515884574993214314917954833634673142598798918338529224595758114428556325915827779691949515215646481912492873548397371221541995533623652838971899526638682782234585741723629699551193851917139367831813163912865864149131732668339419514715879455858641522777489331361641228143517371332488126958974937138832183719832969652256852354856639836197978153918124798823217769632321817693993894263944244828761892972632819188394587991272948936112274355252972439118936129712322528743257444576377271672542663795678882416843478185142185339519865643773257494392785893226276952515673888526945114583614211715845212598251834333671941451429794314353166139453729814837778747168372578281116376247419286969655482639347447864577118927612576994166989523398645356247797833423728396357466329844347816688831181821434179691664987677236197916988821227267223511267969569249846627637453965214239926862686558219863587883293615596171237683493469617276494744193599613351589835776483922286684844893127166947414842134252799283451652458842572946157462531348584648763456612896492137279294952394171315865144663766473483777797293223699292558714251579745315934246415213457238552589443973464878417838263866529767692788934391121713518885336212962929711149142111362149563973158259939933927137262255291376572396287179462165669774282228856975582399335429875752979279155642189328241572459823919826731284493325137174218188389361833951478699111718119817745551543727764524414473374154727262215476132582822249466761132847947485988125396519346821924196879417994716235666599189171469147987677936647194643541456583586174731324867676931274228766993698971992378935528435745511111361156944262964495147411951152166971564879954474777527613797713381236513417835111743493653333649662223452924423497736882123276233343567668991238881478478696317432677433112124893829756615134867924655965166435625579229523998681955449945578939486388349539298383636619256938876495227171189817168628633215982531943758656536132893655966454596589754518252754843997572926356814878237943118471679227418134524991614496595323389311141743194573444773332753171819893775184522764131243327515585364541147389554845959279821358684927131867692975561468459365233635326391169246782737552387799152474193198122671742586524272176213591691491558523661321638735345575644563627469636656798471984342685131472127978543192848936359426828846947644487687871663288129682465968612159728595541858669528655959821915785534968953719651496891861852339871267952322276125794671755876753768463574681292751117172659123489224572831948124124632876687825737273356239931321783869427198571277511923815836994279212811567575224215496889568885785765821457969381818496243819477744224269855673654573986166193767988494268735988335523939638784482329546398797529961363115973322433485925773424229335545933365487525116474716237159414995111549292792448718321915854233644698517676728588319389774287541799559217778625445364231557282251195116873523156572885838546551661161537788983639718381934689634631783351248591462289282549312755633967971729855863861114933298661846533493377864139139422621565448172221546312525527458519455899796817761472532864687338363852631392166194246432689313138393465583589188492935982913115835269598845753583675173353563944351319983557796953458673718113447457255499168663897544725515747472186425431185355117588849393929228659282188614124752645563755756411428536387698164216661835399839961813431189985295859833351234119188421438316636299171495596797695536568388841359266295634313963515951778653687694213765984379419814981745992652171237634952982972251333722987983195657152239326432453624711397596151754867788321455716177116765459514989657488413874472162546171922399245772513889226312465163153272286554613992812333479875179386585141499678749872118995482228867269199156921897997786215236912737636539122199779457957461861132784336338337395239824551546449517929543464283695566911853587446148992327635883439918994353885588286318969458789571461684872311228758534578335372217266543773685559311657469886116722466533881335255319945733433894139672769883387727792264497676988836912989118889557664193651247931521718629597342197486652565366318369231178793892531185149565275112924921779959993999413358766266257547614689588677517732588195619263922379228965624385533333784611792838839625976394846168337787656747539371877397771366298766411875526453429258815842441315735823364898239944814296331249613293419788591585765274785799559768918877625663938544813472236193882678221686889732112338441849227364275243721683783816638622634258566979241319568757221173325549476973887916842515337333555998835322519199773723334867291681464995934944799171294688398465482679173566746732741118937663292358255491974447522621313168376391116546633966618669689885612239331974426612353118967945496428459437769338544644549223752394137168635456391655198929275493686383245579219254754445452982249767961427438353717151596673696562257289923647898593542198258793818626597751439179323511335114385255795359472388211351473974411726374617545663574498546723153115632983736292438768591962266567929117379778921686536522747384975875692568459417951592665483789376825971715745549588655183352278759247227572935973737235561677442354955692794281464176632588212335629178248655699896448586316338889887692356814884427276795328195163733857346715147853321843642258411685318888392966297371545648479446957745563658267895838392248972666349785939846434916735858545791233282584557198479143516361731752151117451149976879128644616679775684328323211787578442792358215573983714924981738561628753654111397568861368332977948813168468397144839855677665357137334179898592784667214861385998731138916745823277988365283782454556255729391517395911438586721175589159978929748239261129582587945759736538412224949931879827611975948599331332614615682573123221514352373295256516964111323634584798815123638278764165296358686965746157499227983499898423372766231735364376973222182933151326948891336744431641759843257268752541572146478422596489684399164116953156692444583122979318294594188384843976415626714633442781188917381587117568138582625783881581398245756512395243293671859896725539114553783196225473556426186539429774932331741388433964652214136812214326389417249435781799193773882223742661375217765644653821189389562517644155721284638818826735589739583986358465628418289752298162919287822658218848766641751655756665246411111995861423598553137573196647646646122152392135247984284737491153554658887871393181488852489475529974641338357554692476413449882778933165879435774891441773652729522727284126593982925982346516366537145547186374476764887337964516219663461978315881168781576825436292427525244722626585531113644353384135458828971527969161224648876368713475362323918914925368155761621967493424614514785312115582544521249589859388667188288746888231155893886715669377996859337259345724992563937844644218141765779241539776867642114315128184661475437484871635624145545254699636177796283244595819342866126978475244752965314883616882582178715239594699121498669257385483353874724182973113878773411948174351722129226417793451681675473616768761682323881214373339766936682458425546634644151283169751419544375728479733138245552435455398625186713775977781335367792221972579959325713479483998676788875912896727387424461641317975752253342814532273518663693471846951274255696624954798157384368854861386635386679959745464889664959966439766414397261717985841335122744628249578285354952435457969933374298945853278663795349124826144453356732148793973495397787481735159522625384671819238896534697281942283621977957879658391659367361568631627312999864673647553388324186247768957732189353198325136545148724618282489214414135538272675457796514642552882284546363429954533273536681868976329845186961413619862419486273784667165661681841726867894311478735531987955938191576255575522484736825519112892948453819351388661242682682769754688867781719564477544683657623971747414574321657391667822673869833463811242296815872552618985766993373395414985551595655534818597725944484871315354828462652591362656993279399725296932196245151316995222131193512194393896319321899411523512752841268447867898878718749199264447353286873551337197872871696921645953549784716515293478437137992486731697978428947164817699397425987946633374257864344983822553941535186423737523737916386339624665173694875616888578996529579745232492788248826663452114941723336466534357138785829129313484716342895219823679162953883221481914283513585643558644832134262262571739167432676439622834149246483365252994151684555626929834552787211381684642986346938811245323933949998362459972674454458978261364244179194992257583827795411536859246255644759597678448778731315328833375749778346169846717737368941267642699322938722472245859653668422461493585455583596962827173894149279427853492549236427925214598515447112459414326857557857396146579171115154485969614498928512258156166561897393254583373134148843447984853682896245362564967642874661956313492195421566952715793158252663891119431487972243693888613859148137971128716928267456116381183886584684454835652376876494493771437675999382646673261799138316337184563481534191416375388217649347673811853262283829257158712635382472457673782963977771652695123269394151237323511177221489782997936321332154394291922959927116717228251455674993185278169769339131856881357546844251156822843646711388212966459764768449423776456475395571924881266989831118632279687134125513528216188198741967825527928368619421927717581576357799571216167897887668216364887656484414891589277922741367544398837257547585311883166282735254926642385924453342636154216631922575593184328542595298519961952198547745177821969488128924918197852515122792788626437227517316982142543612779632164885645365853946189238496358565833275791174367856779618233987459566135931457242718559462559383238742234369973152997723878786999862985411217491699361547325714591788128238878836752796427888237295997729586268733912443221843552142712659266949328363684567812924974248254647669496653118779859357669474848585424988288945739745411348711669992399297891363236665688458515494522322119135258794363198848377528741831743347126543632525232783646629683816517151322453866943297858717987536232142377552156454949898596148759954171635828454846636475988763647944997488223597149586974648893586985614324563267914691964844183679129452797912693951146429727974875819989679839924927658521217585965953719683464765429352351919485779149997133418948874989988716383186965578727512497876663343952258845482154814943628165498792717589928223494887147854383152322879859672811288792576794917129115981946127146814141511999792592999183675378857351212381249388387275432869645359478586599527355962494678632166993742381332855451589856718714493665683616799224373246717687925182649918466388714828478236737345387187913542392672429232693326844542232575594742773684744175658192214351718163231488853249614393413747717623936863738842792122452624395145348714976751839941965126545938451322528173256948934334978362216237478285581984876118596333433955771698147134412992859572614798276324127731269359433478539918735347659421337242975222154834796229874694726341427837833225574285162322793315347111894124561869465587655876418299179479826812747385849437867776783629582162345964456389165642228479328434548834267885682136256973814647191783297966423526141637918362969847155841472724427478158784861754369842878939469997793569856821255128215987723712471526419882996498217516277547664615254233211851552392728452117468872375496571625744715541641376153369718356217661141674537554157374143968478234147284536281586113517792639443745463715323469869299779932765829455525146372257257125116371863797258752378482297818398825891159774538645482681371181852349444311653427764923149156142265118428473625289672875668273379788511348618917864941497314431398949163723513298572529339562671374271442592711568519421477525442858883831192156896647774315659834612894984987566129786217572445715784262569216717785385132275646113329455465946514932535642194695835861385789338621763216225664155531549126848699765965585952346797652653235985851346784388493863637681814382776611279696535721963521699828985654651421952423418751619681379843287338223454585449319267295968286898629945493727747643463957766355116919337698363937362456212736237736659318235437943186697779383954619549352683377575234811847932493335251227544281694984957659788111515436169588537824229875843543584926522579223894215292565728976367819946847126447745892363158674444337822514136711279314519366799123684843136617625544984829478389548811124784455899277569486223166857858326769148156791539151456949634455912925619268322126141544485739339411871687597598192145484966888727795762592151959164592876465336195462511615619624963251895327816343383343794654159364243764434956275498778934338344667833254549256686443335557461726498613166972528152474828444526156726122717759665782262816347942423924983658514973178368882676717999486651492787984699578645395994822385424582279649586349758147329447978326443486333866621424245188866688221469983267729851275672557196817954841155836612627175228838419184367372844413564351663544374273418145218548894119275428846243384296617551349651566897761374612829479125147992947626382319669749686697991799883554162392257122189647436495373427733853967778876738452981597748421695891467344816741838868433263222691746451749212285961893928229389352987849759978363443623435453387475959925811647969222465991228865458241621674269161297585597372697529572638954859968526165682842493449483286651547378874442525653986935242796749467354686737282478151555534296243757126678396433228363626935647823513171898331643368539923476247397694663485438765517517644358977635982239672447887526289513319963542564529753441973681442771756811155396351684572738773848814493388727442481747799666849628867286966698837899579535119952846664159519481171926769368253237782185145973179951637453267571148256659146432327489914239876878683347141683815442323735622198967271974942212644776948499518493911998491411665931534373222951341331959199165557619936257442565587583583497843593595118742878326974222441224364623923785952673161471515625142492673751345482697634784145648677845299123552721474732945588356138547549793753779143145483327719453296964348616511714152473143988197683915865494464778815118416115763853348777293571452952782381757132364141759196131225383411485178295697562561973174592723761367176435281226222419858121386312919552959171692832716596525155335189375172131212272832464877299697624121224134351422558826544414164465567769173114258131574815211556182768656866271964929499829864463527363757364451652582562547783924659815549974839188133277844936399261624511993881593818573975594521672922911278236496354449989341396488678585397926639864852775794322178735254845498375769726284516623495819294733469824696314665226444825743115341223682212567168613985368568172183351351415192952249664329116215449564415924298212167598318819453398648138438359455184823794639858721524356262116514895255427292853914338855945595974478718427613893226119594843329756426358129399511991839213345219741365256975825813776787921441314339845432892262549118791733743175958581669876929929778731994292795543498365866857724577577986156598847564959533395753418997691241913669164817236682731629268372473638533813635184255216123959176348181372524132346846457633649253151177227521543237662424677581775773484235278381146177434982158625754165573491594192735133136988463669226455494794966468562159985241953497837316692236973186865377463592283813362574162369946362198347356636952189495522514931249853587148634833762323354646758634782485247539715826142315869723191228643385254725338458744716994916768987311763284928792152651932498396826882991471348454418581531249721498597524548462813549693615576515453995458285465629578637275735259558893791236687533295912374798634422781794462995224794822281143384443422846946456724296214317535878919273766391862361782112744239929937292721896923991991965377368151758821998588767766762287793616572464353199966632217225984245882827252451346998118739118532899871584729742332223975886637796683742293166298418616184546325883255365561189729678376729331728933468895812773649556126139191883137816386453625551152654454532634424142677837482377431775217361691994152735463689332498818535584563978141586745576616486239586823229833861335681352888492348921142923299123582616694434657339332424732734982142689132477991833175347591788891159952289979842158661321289178263167375161945259896926945831647734452856959354343844437719853626969945629555879142574244138389965968429354731733881384596434329795636461743716174992442974395365727353327586184483616693922547919633945594212648889548749873664425729378588641428263136914379521982897645418439255457948265116194274738367199915548233938348947244526242851842374186278112785418749464547629647145663452639969734669823665638322767813155941813268251415867677754433527929999225931861336984757191342933913814395471414112386185918199479551889336357657775463763551578434312234858614389715981136263995425547822663989859447458975274795149821186274259283837613139498813784771397522429682452643572462538886814565596554588643999225267155526962411956415268356268685378821496547632252657483198856383264294756398513678315694578996322542895534375532261629966856368511681232559993118169954628354994963865119997297913817368174473768953454353863563743458266482667452786191387543717932647276331965132721749582751343517214636722234385468316372495644365627289311739256176612632195429862589429582597184544796895436422569511358487285448817397729351486336369198716348129848419424462975411329189614525398139961396583923955853813254672385279399746938223697877182359577894814777469289449227815148175763144529255152196896587991797354667818712217415895443132919725961741412632252631164477566537824887927979284246342678324866547835536213929344967134856232875448889581782725192813277799876411297146125375684864971741636267276878589896464739136281153668376863611591125587489998883258175559811858769297945734523627424878857732517437129682932294835212986748898631242188282391673173261725513355467476384313369576783765115438875691229558775622389556965498274633735588465925153188574112828279543991746227722129777976258976829118171672344446413119725591973872687655779222653842713352349526575338816716969254334648862692358771559929615529832295969929244891846838688239123231516517411799784456224937837938178518348318286522932424196687474135848778586127129351659197835237622487235736537352316225897391952198822283826541669181568288173173953171353896752761715522328536721917931119664848798249471223894784476486333626585399246357526794221857481752289629542166717386717672421574683655497594154882442918248285554797136865269547761761574493947296918584891744511585433761153662253991379344584532965241245492615883811834272624719223235674734212582564971122483314526973345665614769146257386515866443667223684958763377995546911655822623879255131357855498999954534575752667159175768288976879222568934299894799155974652348259395297416375644658144499523337267766516233696952755195146278984651291613863557622131523141837283213263558613364476417711783391511727862621857283734494452672722783469421515233594833176244395463799531671983322695892524744279438371337416647886275316679985838755777527979658265685253252643417875416113166982449965168131461146577177483162215281697389334337874582231526636144292821653965653191322254827421739891955242715824835159431953924814898412473864346741773777968349638558685969283856913189865698451295963548566751331647513962717727122466112666598652382587758421931157756813452226345582256987878983546226562663195644758346934722875577212378577131486228711172167614325551498191228639599596512362693148266865876648577526976192251553369755332885543374879479483548754539151339773899167194843186951393217339287466463152445653147166476298116652287383526962274871517216915569688425557254361656697216797353311942587212427472932651331944264257396995136763955911122116522936655144546922397796718917558541285688922623743412983873527361378736438579744975273459599226233996538375358556863197946867571769312949454318885193786363918974895898833253931431617234424211689978741945347469329932464684632638312415729554475478495753126378917147628463891326256631932458248842512457726757473835818943856631781925697261888179659453537281157149697223399916861794147764668373221733951831516585978544999726837919194186236774251113483464946636645943554131446356675821293755319793937341464997565945955339849628892535662851696999584995879739629871326391359757795974552424385151262781815689448834389311638942167245216674517289697537581373479182692259418127986748586413759558716812652553242714453973347181941521685749953123457644867476551592569924817218453117483129674524669661942643476776414615573823379134127371517174614965511692929732243769899596956352782852943714927282162929695138287461544724116714929111159552479115258529838519811692796641878779184936827768737796766321497254962355736591252922586917146752146261633281115386335935638282285811853961169697239522974783811479555741757697318351547816985922967321485154674588531211619281375997936539886235877987947855872362963415474886473162655439716933938267794182628815878392262865956662332739879751136956163147531186219281168133936611117321863951572488484286588139149851846121167195933442989782684569642234239848332655743611769225178381694576499554928278144156553371328675394248539236941434989195127883213616468379964997374283675242462523257884779168695913359674719861975753129925884483598545814789886341552354832258416259631198965578523657938933772386348246932489332586179962138357861684277414337475181966168983569527934565897534931937522319565496189535824677151142784824768298796648129565169163332513878687466918621657262168381449617475111691562426132227945987848575985844879921522534228616499246524197484365416658971621269162723122759285615351146198113829889291355263623148132631522714692599525132383595298351492672931279221623741989418144273348441447359311574563492315623846778713337257215651789919469643299151383997728262239929956898128114231431291817919919985464375176388421431429111981979314632139556488421352362359346166529531475913744868884918822527168919946446729995773163845886582372276719371268635941315693252378585155971986758242263733947973729125512599265179285457632228589591841998814411228653415437275114187177867297218973314636353753151748425144754541861224758913217382133537891345431443716497718435547889468482924947217757427159613271126865945439149715447152912338329894297739634614248743843964786666976748611961474248422597975521226689451455572895625774471822734482436369717985357714259231393642763388258947462142546458588841816934849733478482625261819682653355639693739676628225315263328543895754936872343255584181311955134618991567591715354652572666179431328365824893418754719965563415436241521819249815274269616846478882924114827797114429479963598365457648128687488739567453692528143816518377196877824567726857652833573311919496277522284878533725962272273191717458567843696956442569675785846679326918367743477623479847321877718298113887933685811795426493952771572741442619181158589128313488536511444614511416254155875123856516449799149179684998475876269898443312215112979368114581195975898128148648636552252591599176566358961714666111325474333331876381185146492192133551983294371718716311959159251596584694121191861481375269184133771931342339315344261776674876233236258271192614939896453741353565279885994955437326941215348585991789368763196736311331654583972948965732931592223156129458755858635217219348558754354399153527381791321245979855189498394646464443464487775759157996826171696938265593279634538237798315365757674123439382635547316146552936683894237955216661371975429612369558862556967522539626156826133977762816592253396256652232835923698778327421541165619833115416764431252883947843313375475824388721645724116781929137664946363235197668978446436338875378785987496152849673215737625131889388818413686543854325976388456374155795153616879292688216841567873242637887465475542453936973658873935593249776229344536223476243445883116973684517869471517232455734134732988339914941891613757221433796883616517981978939293815847116584844484171168959869158522232789164413718815599465268121233491496735895665113959476277388428456918496863463757584111728669494975713398534788536846827663512899279598351528461944525372522691426365189141867961412838979138161695213215292877818981778669566435945255764942631318475132177628193526973356518548375877974644454694392426157719637914692145489737256398883563525225575768115978683312181336577997544991719395163483471594152741483873742661276493741871265338376653727983999548712888894327154698969657946789669657436857552811696652335814751515247821565645695349463942396357771452398851329633679752871496163186325191121974332295373311826135655254255343665774381422513114478873388612876354662714744943479366675346424147494564837132468383841465196489229565847559685313686732121668661516889634471811269633734798555595982844172263278231394763617946344517925131257961999355595299822263844456461256144968418827698894987322757862465762612483142822229832916682828493553681985265376259348716977615841117186492927533366146723473857856555184275927243745316543736412956455762242956229639383455184268793178383377887741658893399696476682499536214878834612741681337784914865576853745996169127249717287573929515767356851763466346855592893643228843427484639242736376355618729693824552813737998516139481252111382536627878557498992938144243261314864551396146834927711125321351536882911514985475146136548463415193273223412838431843577323463963269489729713546538766497634938235963835894157699465995656948852347539819314963888477743446211334986976796181368296869992523545823519187585521429895794835188571719697456896828896375658156892762632456835527397923477272751837988123616157776367684292366337136836287782567184742141277719492974592261295993276371486146985163512526536935242768616211897494654785338839343519379791779518853322744627541872718677643593488699664135779857926773337687914663629132698473254821154822592867238121279926321693596877926192694495512393824873133619491199258598948167349636827188927926822661454259974826417116897588979246269575571853384183562211816718325263619784912329565675654234955471641519791921866323678971375823866826795776752473649437454925291781369736311547789632366557167935141924644687465327542196782484978979333581226646371578146273551248959218339893511467269776921124729639451329661516312187788771141914957189935985495513379137141231426113185584823462598492115127257657846483775991259189298591215969653282568858952851768597526913767175221815781875839689229819175762383373631717179836847737634119237553725774472364937619463663685229481858395421714363398445692114942127756277237463782525964173456658333849553298456496983288534178891965818227952591178386937434213219698411195244241159652484795925875724713237559644499537896497874245625837581334773625395823519814264646484426782944463844184964371644263594162356692865363658176939455595891925463549955219916498433971459451886139934444334872795982926851928532425758179556735213294888871613843217124958529121249617484454537757548734665666689541378513955638273955312767325368286146331773598892323487119536444837451426666445665794594546978461195935681324679258417741337153162454913934381294944617739435639874255347665674168428171913465342656171736393698439226217443957122629583912269811713334966242943294942233348228299411796321414613916128352154872623782313243514793395228323791852118238553713172311622553712796797529354534721849891955325474943694528861232295185279691136521879221997118328835342281293843829732821432253925548557667841122184176298313515148894661234335444849458279529833713267271592935318243169812794163379186925227637451746526794191426224726127871494467829487787719331691213778818144735664441112834984993279949844317873196296487765154269254237558135444852479155659874888292846658172366594497963749137937121785573518267497283356258851453429957218813643349574189864918159135734515768983849348213514497319672112588467759673494653973693558659717654217265494758944293447393174837148854383657351669894613829292895689198353977133921372454373452919898634811514784712946373517798677439719669937317482127368126783425285142933653391393127829486537145658749194223352454225152714418864546535947272315627922272522398641283767473593954645753814933686713979616955158412976255538696266463324897312152237752385144651386527897527621744418545959424443174654315957931361114618538862159424843248931866866216968735839772156469352328794415919773265222235852675886666997487345451863974459525994549138866589924999286521561951394317173621522812721362417512441751458511542721883819948688712876811559594675753934727674444421992956995252636818179736159499598583982596657137944716392241281938136274728431114583122235243235936553924766767116217429844146548183374748414295724455337632175873219572491811272516938681786273472238467437454693285943919516844966791333978336534137227278743137587528816648282584395911775176834485265728536574893294361668239667174554397943413632957912734589387622859553874136122712964222249982976831197491992262358669784663651232342989979185218165932397552565687784661568888774177395949296544112558615384251557277661569113523767517945269314921666622422773848589284698528729876337468536718567575734575357323745472234694549286658996539141415832944212556463927726367371391773867267322847149821346963182958333159771954666637551156344448261454231216562215861865498722547573985995559761136923461233475222519999354318322823158171317728868757772993824994217914924796472246913192473653973672964433879183573781827172369526612144329127365443524121357297658852273174781233463875899418264848945242521432678945423363169553346751992835191985316641846671994568567749248236656219292758847284938692616428974584412477261978461321461112889237566794428415251262398397475388923682923754257263382111747265956214395558774589727828981696182611929474251488451141849989587746738665978127843957939827666329992847244145738114715685441973761844557841323113382749374451626618954727748859177259276691552112915267931715511335342781845956146562254324674786211378452846449885911321678956565682426499133922411432479273728276317956748139179112259166327134754348912714611511635431142754119542332492752713864396391465775528741979145225391729349375753293176153147558187148962899373583788493796352248843638717534872939879138663667549691461123488682658459315562115964199911249117252886816353352847247137151951664743422947162344957659264347313677818182798722216861786111831187878576735516736492571179153151837573246696277717843751764969141697812561167747521896771156851819699634731413154232798894477467316178442472586997266835172817537125857985142631436928436515256958334922525677619212144583197683514896947494164165177425624372512981474113527814329951422848988176123322653243664548689653551347848979224446682146784749883816671376287521278372749114882272738765383923939856929819298315467223649732124117698689597227653365528581683993641498347957622947488236285463537656379964735828546368766192344998535332794264918523389998923311244675744159541382511489281321433791364668612639779718617538471749764121871933899769629272918181856357435427617573444351541258333857699131679327549864918913745821579471448468113189568349622184241977129854753951896531471589894791482377642937997549676625694872911127789962759313259711269445634536393299354364588458464297759112632949764181438263197527282282344437394791734559669491218226439872411769843276142181181812445311451426299426121227114284237657782724333274865765366675197852521781924231495872497964463138279247238631579166185761296598215128741583531545153528537176986597469417641694298349292819587146761681445494723446354445384986462521555984264487923356674953587729754242556985766991556942199871746151215793168747693377477363336822931399595469138345973698821512584612662988989713211468241281348798953152739699821856769787611579354658621679559544911767538574498653413359395248647514357983322186316631559864726476692389511717247681635622972518277294945115727476449891986127943542935445716544176855943544227471564187566919326812384538941677633931666266187666784246829877539631777383781456124336827895547419566175354397999221892671134763619217532862549461449687689955214114667843887723756594352346656146512275453124378838353476141645274381835136554435159496999953369687779371826159664593182975191959735642713227262411627795114119971324585716411652612472773283969991458718259394553689766964251949183943768687932279145741145149957231596255847964868341345838723535575289663359545468481874755988544853817123976492249227582171724297478189476816929939687774655964791497335925416399256924378665924963685166516135849431747694985271538135574176659582565224512928962863311627262199246556816197794779189149765755768313893483252428327321285661925846134462676727648359367823724398891346313874537452377959221549328432862249482126243837838783614437523736674776289571254922283515267339886354862618724225323563979612599924391451332632164319597457596598926851873926921341291835584233813497563744346369478361717919291338974247561187114738798589498431237439285393883256124863793535546189197526894918511886255318742359259919579871721719314734598633548337275152123173894265515267411243859454555852131356887413154166452386642116219233822543757253787795457567967881262325689214462241575329116794791831379198535548696927928587857829857756599943882483274922696377351825464258436574771962222648453544971484227763129226337491226469856784215761172983516244255782667235535911118195446959364732987598142432432341774368295556645384278422454577545971778124788216634454499746481876843655923834385619958822469436919274775848266727622492537461151978335728644196757786939675571666499761513922576255838685132997635592443734882596968726229228871419554726114253648511112923718739684955555768122762763864944716664958482867658834991267559839485779528683347128527534279151999467417175398991842593811615793549288875314193266215585544914268975842372671776497856399688995781275392458525255829447295184563669998123874378841674394812256513491293478714688656874255368818136146273943491245731145572451253757373667786791262276724758763137654919678147164361932296962273927317264867562878969979665772164884598774531627393398254721826295444319753614343572387758741449782992966326558794922587361294161361466988632419882149765683989915941448291341328423387646934833326251969993924855972736229592713438434323514788184347869718878922753174425683591825591461257147213419841398447428878714727412221452334344176717584354624454466599622155352922769184355679125665626729254244491499633181182546897458463775125144915223111265754487223471872275566177278383756184815132129235772377884622886485866368569372748865544895973622286622466274357233676955452614713353498126341953311894329488758974213113636731841839351188853659969359422175168141965974859123128934874972476371376873147957158941227624761388315871975669474257279831285212943319396763799113721693512133215445265849118817279238378381592935441825824513321223951887836928463444716265586496781658331821657789159566993532199244877858923681495449838182279194471955747995833367249947155153389484867546928244757641256641878797182735326139594258272735713673271354785497435841656719389536744778156594127691545226944886451827523261562121265675269558293264825221276377373649266111728145436738734352978242257657639522164625498823819722836581244196281553982763954825997645659957666611898174468648237881346132887447427124449113925692725337315949671472726637828376447969679273149177347899482297741326273191283289793572429538392333841139956265934382423364172293576578364879373699731956364473719356283469397456427413937374544568176212239774316147331957311646542163275153573265797783312466899915212625852958436295434659149938458519174169992611944498391284927766674978868928913341169177479134692988763554345468464371917719269367933387692148874319399969986811594721579674461779617694492971111471428476612678538387626712813749871597167124966783444914275357324364171882167745978368775119732267664532648391697524389889753867523876929749797448676643517794445621212175935568434988139817131592513728292558381778572451254213354425234478216173919143267567782134446884683199381185489235814115459936374583322428757669149359884775293631861892767323227142929285614856942921286818139843825743313587171363361942654536827281411667364388525598664915486294235289814242183432388578126635147455235658847989217954755316719435957412376974894588853374954986371122238726195433327644838226753754767638237669882535927728383667933684496952939973463235854228711868317913285172327631216416276263992672888376417268269699216823911277245152782497314274184665766862575981159278819216514769244819957435539347236147678953867246231864316241752456223817294816529615935648622767377658277568219169562915666733559214131676386272227317662345478288672647265783985695361594849758615678474852259599935963256221181646464758863812713289414936123167713977852133292519551842454751421527292494623763717782937492322463172221572857217885176695635862959169216381982669166716178644749645555273261327232883399163536389834339646666379548777673826453325657591146773617373931212746967432179274641891628811932184681323429336789778829699672671138251382224882857639587545693715511538549926992654593336796165494446281162751724264486165559999433951157212284699938434978867719994197718925385267918386172842741149818581117424123941557621784696676424425257458742785447416774221762183697243995964596236683914178287546151349735174686345545833742385989812784381659282635128373311789671849257312121383773599838897754827632353544461538877651439114376938252396642784651425357257574976782821474542797638142757414811478568595739998659454639279549576322151533532287212554571424372892987949182298828164411442858937125718627736627413743776951743445814765338878518882158554526859239695228895656423528463624388311169571359723354595331482811539636473597368583932444483563525466914244879637829154482637987324915339716678469364513765553284564896767224959866325591936344681969425147441326848386488992258244176579122143627554172862885697985533434538899433731996184542331773915368937861143132639973195151342776567344247448591576685171195271726448752486245282749247257553633156921259663271354368973617869265766861736944967392198249835732296773755349636354553376258629739387551975737343687813528278241268723899271895954634975692425421291471496565861234511961991342451497326962558469899785874897932161792377522266245913589859453548527744385492914514852826762925766329757287287537811972658748213735698317925667356354528272992265514434125571296731272889178283643866377724734386493581377185347534941712284513152489427925448181475455653913217435266857371188236661226425635367873457175284995552564194567983751995793211499855981299646343598597956265214278566585538152311149744459879276833571923728848843725241126934525852853114887671842345347839381766849249637284267381714497325281765678431248553272152571211637793149982185749146259397317379137442348437811714328347977684587211334265745815337161757415853463486783366747261855938578942377615274498962778663945882685793464961218994252817191588737296332617637415831911529567439938661632383824396387247183825618555417634816335853576274455825659999642932555931276774128599944733787979124526523191591248233516764351353693255454493426338468935359374543757282621851563318182427344676859478538514649879777718432789365392953893257144999761593652577996191389695397686552591766814413991939977396944588647613283523723725692321815254916676884136497677937258248543832499977471919656459954766529693832737475355229754649915565525797769596922342316661451896347716472322894936146713747726349919556787866248743413576247772653416973668272146376523137793848978666822648832458999292879243941786277441113248148857933837122279696429438753445311913385995113962593336289433954834153442931216265587995837112494888931913913529166765237948977355136937227579465939443137824448941633244981726318242435925359143985218587468178882124515149933132542389936734412414854347229532575693685157597648922345956898955315573187725578269392786466251772137334996443258188255791316363364187475928234922636214233658874382919391213594666277488754541968248177987236683389837583845939633349137651397516388936129512555788681345364914532235847786932499157279596886237449823581172192916613652139741485366514511621729379625737681628155715144196176992954415164126831399693192599188372593988489973991869169317216922172279918895984979975815525116314429319988577773669941492712422653574561398974221224163133365439675822841636938941445657873395152643737788381274217662348577983145318975713729239976999846543636267853423683515482982865498651376869281449689227315481829675612186195239197899629157139996346554243565554142914898592589113666161325751264354633482539331696282213678783117361599642574523241251528276566391441394441793895919961677324843876885218277456957832998621184269748258165781374956235186183498372985771249265569172681178327143232618633549186984141148868663985145997141138625829833618565652255644446349291662544614549915929583726448447493547917362341743681761485228858193873699623787845829848359143852139478239587172553546262165449542478291248946981224848134467321458277279163652673856758994625749566273177433479665238937497862717324521342589445848639378154234855296121377319784547463268571944444955982692669992638854691684928322819867924713956839299147449261331116896266461834833747471375397397787493927911483556293129548367145774965656684839448649593338132597883348816288122866725157859898686811779297998174545141724694552942999828497214567962932481736839929999749451795591584512684265156845897743691149287437576881486869349112261274172713551149266653676576692718126386541534441114361717266336137656299343786676982962677218722475995828276733322416564174945983572952769433643674328635919416753748914756999267588349841681245519291664253178826651624681595145954919324521392846898156215528994394115557585769448143763293193422723267826282125838194313612843915221892419419782599729171253353754732762693661719771677682826182344529689835894762838476556143177428486257647913274922565169477118845451214714112513559154192692475999891379771821275171489548675964854771737728736334371214951456739916979741613135341352546661134924622475535726251275328874976367729756218571285292633429716432183968567325332742894134994527726911847577999163132444833274855434418156744639843875247454648162592497969322295371885431883789848977563484512939198449428687569347984222562754544487328176631654342753888954397624255153624767191355633427737489714328478735544568912252925743624944771543986331122135337781942335782645934555547758271839822954413676178513966631447428391485735182688439525177111852661619972479538451392618318373539498485522473298327477217935278927745385432642463199719492918798363782223377413692662591681459385453574791441691666716765891627253498868992952916686262631691315654329118193184732357429378498852274274873279543677397234963747855251547755799855575286572745521845999654223996543852598672223197685441742141684869918765877175843286259353311686586353739437991227732756966934572296377211899711573647244726173382718539517377425677491663379597578411251878618166785751967816662583416494254959628193998677333471511249554858819598796564276513553666591875665615475931347887132287837825479829456757661448942151733314651632456122787822615711773993357399445136294875935395362561785415348741461847329748265311378717241915949912633596423833959621424514897787941299831913397268291531819588372271153143363978788731712669376493517611936323191853833878796345575235237758957923294481351774321624246911815496515953966843254326739329389627278663848432656178531561488251967622995747911598351286323137923784873347926165789797328522223471756979562267635413225966977214278865721726478817229616213823249925486567114874685545256437642543172626325613962416929553227371568628249699996136527563773419455117921881878372823578746175919518291277254171253498263659159989888716439837741961776942835733712572124986758755733325498861231288388676242916478699148814827845662439142232869638531312794486743974876188275937771791969397871167334923839331197176162981666561284576759671771476972959116661768125689547524549136331232777743544193846687831744365487454127361668853492174147364882436737454319274413529923648927159622366586594844985975239929724686691258798162469846458359211667237343111717852736461185195151873586787757442594149137547143128366835598223363665668421923224949622969872997253519239331531834776871857955651819633654597671958534599293648629672736275941836677917925379131978951567851943589289871498281277871826611684833741737766584491177168727776159324376942688927825621482158763684812515564445136488526631496644135276621954447985636288227772174679142126551247511128838516693869862964518422272273155894464648525621862713729945241521955499341692687747129893426467451981793752829583275264494139665642621976167915323737177468425789959136631231753935721366287764559341994926972263635551168734267992181481178184446882787568874674762618796614947625694241127473749719678238522273622135937674837817674487237444694897281846238899655993524346595964783666387166922412562885434931317564982687379491446624157349369115412669285224167618924657574475815951878391795366147511257584965451427156215649254883998656943476398113524176891288568333916152772683834231711727673414684198366523895217277159816935383783529161449858566271159643261438681486429384239646649592797641598446977895197161534474633497445288864554853559691137399628253679445879164427277368897858654711755232137468186793672365219581555866969785584153219325835774618184779647185489519532994579838646114867676114164915995242224977677964611221426716395728829216863658819821852422942412284214781945825696771913196146355665934926488957534614814416131586177468996791342792172311813851457174874443575745842962141326359157434767814477851846949961596589233598178515289273766652691248141389186837346352536171239243946964862445168583734332344357541136411644941689952474418733567478119153556615499526865637864511491315441199539371965428114454583513157956888725711242942386725965359843422283653766861188659145561434675883157314988987631644989912379757151871168945618752158959166941545523528213762527632426322915859499541361536678321452873963558387231266218865786722818194347265888894524391768331319128343158536325666185151973994895728133776396752369865941239529981773959588954278154538541592389457642588273681484727572421558482145273199457385756493534487236438946245179697151691843371182534428832329288893942835252141292623495526534292586669974178186258487848479899946693598815594228856538276256959618848717166467241774691316711779654314919554267235684795274241195425795559954777134494812225224754124577353729423861232253664828231567293563415571683697853235147193623868118555513762445768363963224399298953393568613267983268479618527493632877627834622836664424375194267233894676828891556888314794118732929466148737782469189449659522513548132815572697595539393245395537349529966135765316236549867391924876853364839361863415282992893378754888261275152392899988967284158346261178674792771678465173487311816822679938916163817315542172243723879763563268348168413618823983271146392517431136977138999187495498927167781793489192771788537956757552221289427325493551292977551285496424246877495549568756481498947568972567197549594478997846629375162397916661599846625498951787293313112757617599251689565444152483573737397945969927853386691837175347976661956936511848498471188591297743748339881854784512518367366149413135122187465615756572317711742944544633367737392849969731893896249592737591229413318261241429934973945785696526745551554586587765958426874435988433588936474149535366844285773515763544171473325642235544899149515758155192423987198642831735685259855463584871471324495578946351346661918376413434774211195628641297276112643866332752761321184293711319463758372447413423521729988919855128945168898149372353241121895317219615384187923958261363343763472322651158739134759865998255482613777772635537892667255971498458725491544986664739435921959784556195138337982354296678672541996584987829497622941688355597596134433114934785968837651981748432764973466633119992546644527449416712137589891878823477727442483943145882761738519746327959298372576853138292833817338933842668796282594413595765387179453417277795743274332887325132956186794462935243574541373764858457125351443857983347464629113847538953986369957281826178878252884578876393277985166563458253331688464982118897383848172887111278814283493372899173869957658664343752891128196814171964629474797973152243852531848834386123483189483487662814886668987598735142879118873844222877675323195598774684361645967144611223422861637995321385869464733745975152924612234261637562834118485981971341553768821476658157886363361483438694475412165869647264499427641319646186272768611317645575339269133632338493253374947394827733744197129858164481675494775457721129731526422751726246513947798799762612243418478182643735595274139299414744569367522684233639942869819162418344185153565617512696466362593326634137363734374423968694744965527739455617944475571328782177519172916566168495852773641846575482573128624553937114367239887325562762523967269759185797675315751727968255859825622172637257523694289993477458711817971675426675883681927652522492277144575132519677768423564613719523869361491467123964211471752692867693732767469754264212265323599258321586232995391711736248486481121159672761389341323936664383294399355439447472593684341668887216922464497244373541955829797417198245584297524767752233183723522325763173734119774986285466596628284582653953829297715252781353161428474777958867548153211246343473211576161957799594715729342588698636242236885724185555479517376238742854432994492856483334161573446522854953373457186418714752985536612995233567165696456722819462912912534769466825459931119945126226457614659231675566567459851462196867121934999436972516591546545221721714182125522663312365727328279349638849371346667683163775682515578342268293847595791177435575922735841658733583152949682139529692975931893151345448396399141989276769648943866399118747541538455912875667854573483256899842576177243599374521868183562444682287791141867329286983247371638747516519585316233822935752715678328758696127549821912476647194825699458949693564464691354954334682526319277524859228132527848296456877884645819721433673367266791486174527997869892168484199569598114545223999778964792182136986785138449739596382751859862559217628442424364892166241936181991651575716132412427922114623611665693263765996946737837288548594154259426824417179752471313152345661583973323119975212121326449994153349571861858368361493845735129343288264349165981921294765277181399125549334823914912278774472492293745568848138418624482719948167339776469262992753281352155859572559185911991955363388393777734868755245234238654972699866528894668173695917772168228294755534881786955436293418228938293645923982566119619838551442162324715993959568429283137969265396667157352197837745847543558978534239854953644398782534778666417829784979223652429573949895345916973371193357488335618587911491978315214437964786247985684624792521931262957335849527885345715755848854948652244286874296766231723487871646661178644964639232293431218153628625488775136848157391291995267829456113525198994723731731336818742343584983873244316377489979653766925393589783113649378365229485986416554522722975912728239267655285749171243339829181894718464873355262275498489387256425352738854458575915732658374814438591474719656147521685511891334173121571424928679636987966188486787623665957814656344149547476934596851454934388813216161886389639224148541867638858554433951914824227961845617583346678873864144456142126585324447994879155459794396498946467782481767762197976216845638264842879845591711497926489842658931127191559619648338877751825617528228262233186899775441411871621442268371568257124556587464426559665592548353144398946772123667624162116831125554257835136392144439649232134579985566959587681824767669772237116451946784442513878635492514213748732419642783961712342493612986757877741818194164278417567654228896659638447743161881436191512382846698432115499378311818958177141611543643271118838819793581294263196461567667448128177336255561871415441296731641538252676221317246681789352314457352428839869674131298133153587113245928993859252262954258595315428829598873788894998313943562914684533311579368546376651895986333686816854678423958593472969583639311795151872275915242447374547468446841737934534948972618143888611274356959391775562632435513363371795489427585931183215765881127296645465214596593723379647759368812357767927566736142116762597477582367949694167671861426575211859965768527823579565596143554638535981732424762527966568813376127515688731186147743389169486988538176848846459912339136964642394211785467992792925826512855975384443878667746836227867943431858392568424187561281966751183178716852784182847866952626524721589175343641624499884936586858796792225469431769647949476151821398591136968945798582428123195124974876452335614452584385685176362638263385836261418736383681226478285423916522552224841188199646555986276617752873146255155927662151566137791767172786182573338334388881548624331588197243355288415394348199422561368973217715456975398997938284119986196867391898237126728525925813422997627797528229781522113593744933674443184894851893994233416787955378576855329319688892132719394821567142554584342121224383222583548242387635868969172398529766919733951614188784682712462447128989274234433211668729765997689477375677128249395157822422179815631188671594322726398529626515867966823862294364983745795236722317988164372697186269638132793722419215542692489816867661729992232143596655783773257914874864866169218663231417512392688154339835745612825854514533771575898771344894975348697949216243621498531791286529477261171694856985638797624266192726824872356745317166737243643614385652876459888475148841295465793157224749626563176759868385853167778253114641847411396224699895563376485849724354483894353222678896534116877213539728243355421288742931518227471341944378629538481673623445162984188494365216154192353597993181599238564174569978184343922229269971836323679556354786968161175873964574741785221678273179976553648886358337848886693899796331584362897629393172622891769491348755934695525732884864939767891666148518959422599885176943722777271121815646786653969653723879597598678143611156352316577865715465312215454469994124651336796241562661996423411713967189659253298455453184225375479277132146466191634822233669196112715818434842884276489544444144214675417792979386824777111415824271522379476394886243843984555862823149976596973587672979214781872175152611287425182277197456443548144193111743351367166792334477261478778743157183788357361797323451228182387975242967693662392626638436554141555741498665783844596339864277121675514468836919458189966262873921371616577177913711686212488679596565113718588858726336465212251686296366215979751473118537642691219845355852726753953785458697628592937411662226411569114763524363466195152263783848749914254679915514999115374557411392525972952492881872398543372482443938134363441418537282427646779163865381514545398915946798465371646164124467886576179648575191955551851277964511117961898397382847921137633873973568648367186261742834587773169215168883682297171244582258453364679557616825422435783818643859125961731392633866235514267543355859812841993269883233538272596889861953143358236438671497536124189174377592313845613532384885382289516255376569119362479767275493343857374728628545672547355874196371998468229962439672396773962698786412323229452298427984289458126657868279914223854552869794595269846643542743938372547415755261143687731995397924267898364888783141623712131732237827644822781984945395597579682463926417485473765285725372339455656286824361536155516843164999454162653978921525965559744143178375338615396457744387152565752688919661291834416735438674949296987853861834173645987835339137725499585667963227625398739533395745683158734946798237999852262635192396169463932744433316513566875193699535737881234443183339826225584437899688691935243476446968416748527484343226731966491175816489232878382613265261881887478816828894623773988413582469286965546325677843942873911956965541974595963646948116317492186539516966452615298198637366364817857443977127646445297913438828583235421123876499818588832523361572814824219639619368131281395453623814213276127943755752782225477647168484985689853318566786324987583329718365258479215673385683341562433248653488319776995552764719942166911149859726425869926496371475965168944725457722713251768715189585378649164646796129276856354292637481487749328829736411835245497145173737648529392922914426756448844117771523452644733964638262946437994144378342514899252966258782461764272915155434348434948715942927434534138561884627111881375466198449852688777148738716833359858692666835692395167836417633417267434196564673987561291863213829562752386644842697596572771952897971189654937175724361338424593189287142333939492726759571839138946638761954882854527475457449243786652745924218559286721454468635191254756166811729381335752495993928483978658621549561926255654935662858794655618554556161524897353447327662932876139636766155779914535282383459162923589184551531783391338663568561898616951184962281313959384938998768263351646764883177885388268943759874838494762979757275182775149826298138315591465183479546848731459242971321446833179124696568513316493423347821126128376823652973491733966748641242858541815182332395599253826939125868747246468587837853133626527993777591135973766331433784335824181739641228473915957315527918416479232343171379763484845535354982894937234151927354646189514993972364976371372186459957887377464689976694639738353256845562317665653292454426241455939475595251794824959381894828411357897311271643937865844226167192769489596559753438921443938637694631571136919343934177359212872224272374774687989387821722919921347555832299877884575547736527551396677785662449786239882334978997465232697722688391178211697486232534783455522332337956116743345587946381622844865561251633967495188716667831116661676637822552961739386968978424472943725969955127156532337169516591862257142644338771913697557296262385898143464132121461114734449657136938164476586513524886239174777368165412158799841338841657924549446877973833626648422377977321354831626789849493334551137869783176127685479418731965167743611917419267694534385382687451621791541456116458777315463197168137261215815441217837362462266978675794274617628391917152257744519979385656417336326922136791941938856411951663284875877446449433297737722877176443739463996938258821682768455889252186376878683464422678413891715813531116875211552618459638618188331332828329365425269122882681312334425237153484891792978127938269591114698837326485471372965771639738188971611238665792898266328199818696645667424984253877489278157915469925656143448534361278884564119991564157492143458566453799119917943348976179325161795965764763456671467164985491559945421776921677714318696145181873395462963129681819779473879755174511696797655645512537615479976226265734498852392434284531417927544196435311439552878322251843685985638158181836912833947931179656298913791783374456649322337183792582852838155479942963985783963911286257962388382467665134418518517122817946753899656157488338278779849534997386241644473294991767741683872699222276622731129286759897175334145353714977987995559349146569863387557844542129665698481947823941686371613625671139868951522715773388248591967958834537568649115234147987872457221572218972962585888576353497119256367263258496774521236464174988524129334264739182294629927315156566489795967965963335326947442986525373778554959272793286831917657985351196471397466685266256891598913112649668395962377972651699399691743719637933169746982951879737711971723515721784373466443216976963944385765634951186721141538114417735281642947944515418551362792355763726918593833473227253412636912273863692984222433257486549238345511769948269392517236778671495854831815531458698312878636766149523493945989758579655427973586437676851248213951715355843189622378854876686972842366759967839156731118776363437553227114785671253354919635857412614414772239244468768621186835985336613726639975641412491883472993453724277255728747887865981169414675181796166821617382671766696853341419824596455273249295744337552572362612146652775775258689334472597657851315581948454211134461511274859879427422256566668993954951334211232874888424179769163448471782894161357199586462367591337216384679694493342976183733856675193459329748972158656939124661168314234198894188853546346692598428631139828126999243756214463184856858639341939832197617943252636111863796777669758519314537671181266435992558523374293545393391226648127373124351569822431659669234936652854378225195337472247248541195389695427725148876988613466455873731362833447224623563617243629882817989333135495531891514866744824622543746275637717767134797978439584757364726586252865224821643589755481762429934219622893956285269617573614695915856945229837243183739199448928414986417389993211483482224996835124654372271481438656767166639149495722847976817772348954516319348719883568959726949634173613537396275431225186669532829269522141758279292619364217288194946159223931841919724234943652945549351634726617588991384449632175999152423173721519427761523739238134265462633764716482434616618592727354416673933461593962423263234848278745136472322698848153276661377151553278411559234138354899726439464672492446358641375743525156983448678692236981916471732236734167714673785363364981953165646932613858225752976275361555829411561756578943121746261196687527574649186978189144769768336168724168975563271274449315237734595892699245452568892732345917457836985717243488268441663963787369858328143371987721776962339955849772675792789461428123236121595462528987956892933633936527666112243939725213395557849481137547651743615226454999573511694247912976246748282671527777726149729995529984611866818585255658639429951858119194774522126581444275169144945743111561553191224441846859332696996943196296217542535118822181679264453172682435578887768876833757173378327458886674339126688752558876616341228775998898457222476253713325327284673562396918135659818141662289556792931519313777658462327436371948139961982357123857978611246239932938926952752826613363277879762854656249313494944369586254239315559963983222524841798224525445899695873285237591561381523966534493879187689248395212264458892321417315954978786296322547436548587217793189767467188242874426264884553752537363961773859282887275529784847563768635999927986682244122514251516377767657346795817118257671521157713377191569841551366923974977758985574528413457573965252549114992458691449675312696911245155433567426359226646786475398894246572214739659213761287727695918546756129873792968987768417996659325916794173168957522353932595526996675862277153694728919258699289846421538233383664465368227135818449582284521686122447258952432365112221553621212345169955996213613734878939849164569544843553714966243135818815151985377522882177691893373253657646172724892998657546873186341995591673952141895558934222845844484441635738797252953464548131458881844315275889974319653455479257331661177555452772736171417323145189186732176253315911851572765154162624832346666156239277453848253314586729265769483389924218813123479932946423459678671979759951297281274815148995851748723517626334251631134723317482242492153675189142144325646473487626731987586571573814467995333984546644382828775156492189412698152795924295972587116124954123827986577887384431932532827317589286743421138571562514695316965872446786789526562723171592177455697255723774321571676725832577836649122387718645612364757893585949951178748593162388654232479973767764447387473691555777825892178744176795442691736213883363568322539289623682745254532767992824965874725973147462714879568749935512872369564398468755682544446876863188134354289954422476819486872278172596715689921167736564251377275214773241133238792448843868665185363676777981758882566842698196431787254942916895851434573373914973686171162739114255513839929416564262276248259563113285986916563877885598312257458766264754391577265614434649374141656831369296922473695158975379234716732651332468637932828244157427999264187324975677658561866598397212528339527974647474569119828638689512553359523359594515386139997756982226166281149571998519389963542653358865978925994643662556799764988664152842432785141186654521817773177261383452855954417859739416613329347673657142462247111949619921754411675388524737437322371363227567634162893265887529656661873538281685664871459112855519587739547595951447562361455886735417352989384427164288223792354693318496225656352561472649865123444283895369884939977939915317652968348663531834819413482923686773596453595688968818157338485153392937186635422292915738566961299482999552184294294766592188116134233177376675995379727826525228639846554212699116887679231652494477932442492483961637549493533868662784924142238381833862124281145214694997111828799175275584588989248637327398977875482949386275188839452169957644172265183598996779624721695369676782371431329885846217267683549226244375397275658269875522776577299526145653227143828261437984693445948514625227418215357845284428823753115427266177591273691933824978389631346843472479737731992399226978192664911148912783773812722429218264554658438515762142213344355961324678312151537631751974389775617154884989942784768855373149699295573861864822388962478682642451898184151442661356593441613747726515829853917942471625664837697338629594794578725775141413161784544494762219871337841861977945379617984183969883665631627319737687375673969958113565537258221788515162356241841176628343145923763259374886878975537351654155221435253532118894446972937321742874399541642331754451543264237415743687742864849273217523836566849217772857331157477119473119693593379354166171796496333523483621857773268765743373894146464526619376592358722147326639256598958876424549411414235687692341945823454717548577981548218323315886112372135762559493313133254632342469461837163911332423748191214459384366973253375317579378389623441857443668875394142868786547781856591756533862355431298742529684224297849125259673692455616553975284977868372239497533982547824343629215932145874626714856628942193823415518995346717281753537636827247597486999671288352595357738442192738428365383197356661333176375357188814432531255711634931558973681469892845758328372574528396554499468642927848666713963872327666682445646319265725921287328174632676238758654135516525246944387344855531475677227769273866274718183545572938751425332597914384282446782875748669192131832159568792269456819556564576548753599457463387877733267615258922371195741169745417634384718481626626189285159681333661931869711461969866361229252497489555435462547323849851765894532467898344378989273157234513864191761584811699526822534883978467523561851819861332474752957773525661646726591622759924117885135492555117566616772673863542944483546837683144611756943386461899142635373676935991593721356335129272699866449839977248264785386294354248873665542364279437865565891213989244598624929853548994473484672585943795986971225915352579847886369648126624724115639676659347763726527168439849283149794638393564115712544527545649518959688835325795848281923576325111168941462731213121912347878478484377293374384686676619475213141466176313731179626275113523727753459889141257928525135277548213347236131144735576177594248949373184577481843291897546958653568766214842825244213866341214361236746129292514915291725734169172554255164225695124175538933841984488793213663164461814687869858277956266522826252232589265249955549155616686291414551467771764218124564122741771226252828784294184349642796773774388461248557856278231391866133459385318153748255167186171674798736347142414139525124621766146998522225345646688179442317811481342442865338885773616747326355388313579992789256415968698224742672828718876681232627486317772737817678445113225276814433289261831687421831132548128461678594666634366347449493395131286934381843368892526565694985994597925998234913154689157346836275755245956346441818792535197614989483987591245135894945445294582321617367472974352755288697145276237853688876199354862632325742453237496362779795171233364737872274913439596566963985212683371487777119869594981388799857274122788478364293692629499365962362439276992312651812851775252377411336925155219381554429935162793835316722241158184535527922282453984555668762561813344135243378565821376953297368592884397524369751778462581397956224553195421495462297435455159652986295746685121238861395798553652161535183584496372391769625868974126525663192527747713753149825226868234323474247817962274146567243845266413726596183218613258772156562192473812529739579785652756392391548638779632578556191265785814957828684556693456945962528818313874632976534769353847989779589766128325758224957242839796734611212922587298484297389267731189991282329948877186714739393489489387519493269978559811748967894722573411537414248127182977557828165394345985317998716782437128825234656145464254123691833433324636182785131545746995978212543995693652254297662352748669622891449614728237883917172836698876811871143955743824531694262948628695719994457648981949255348189949428397632385173165978412329214144973636754251456844684714734137414756222645761454612171542855574849552525971915364371425598846328264214691681117434564913796228124433792859859582837217476987789122381454448387469171817496174864182136569388923821811541146433731832568485286468447481495127289362517245653287921658686188896723763576921149621774642241129689855191673776548415858172173939815393251426161719295993198371251761986937524593412892119837853928817499141389639719818891575765546284977115957838718577624189633131427227622384165812564852723916958651411539834324451636896197681456476438312742277141619218876811458981722875981684544454231711755634515692179247581835237218372735176544542455183155667377184256754397651784182496843568267583158577242219518656321565362118323161773983733586128964591682412718784163345584284989438386327588366772885343652958871698239878685151248663817912799757561556295598512467558238497272927951479828768814558379199816887572528499265945489115123984572219351989895387726516118396642753677665555863634284875694257322679235779265427745123571786527664577953768299852453519688228874311994369977863187447285915783914993418215981198822431831497688877218938517515486529591439277965675476217766295845684637644339776223834598228693151523165487364985167417229168263214411759574852356187717613439538968833779254279878448298421373168941217111438315147866798714119894814525646376771556134894285274554895358975542586188467886393647926351237571629327153741351514196731732488549372966338453494712374337465319235331753588727187323646272692514925999247919617228573198258398679257171751692323169267172899667573288353323444749665462551596153269195315559723777194147277782997986427851733888687192898566665344874558622718576365344181535159435879622792548164576975836331253721673741984698146733114646751922189243331589483956246591165166253167379438366551964523518913537733569493227753758198249131373956382221342117372162885897824117636737761861588684773152732932784357922118156814272576538631818134735935739419726862315168147849222713265295167644763269973656577647854452958511877283989234871533227442636376453162368271558591712346597125759955171887942671741864412113568452959927691866739726146246493137312212852838491472976589138341862172256438168295382741743565551647653384199919447529483538174137892939339328152792639982788182661852774695499567629517685473548414582949479325187936783321554395742736773694192693369572525744117389846996395454668516657232431158922511131574731572236738871874666817811746217265368831527594969539318282893627934717767427793655565383452513315766332962732886322749175334553118642647899987519672578891255546388452131927657414552431444978416332333324178728162295247625364977999232638399295315738579815392992813155884783323784522511821128218494872341561738181239321212112951247362317361278181911122223317321145175811816614614796817137669653269538418168438897377179735599794647478273125783529236299658528872618326516185427348847892633428578391752459872494377965928259997835899934811848266951342157146637216198488363278862886191694356856556383118336191289779747172656391728939742351469337191796951471542444218432466389888967542688632754175817954671569256899867739795192672256513548553923817579448856994128668922777869149786631315814216962754929595498367819741239549936281472321759575346219221964965464491521584431864475376373657193332463321754738165681218463172313439761734116913369471117314324566422484783473588526626355667912543682159385634586937552917697852119214133684822414159258718572672582884132523654969763643471537776854257398654858734987324266923598823543386661433831542857448787568712849515548729763858482359995765748698242913879243882996895361735693416695873787165255743258231681831479857235822347629935857995987924998522183216877779244834322112482342359669246812825298528538667671814659673253334833664525371948828383349454575868914455872966756574887722978553254678966152635263541213319944368626412827978585737748967951386146776866554411773557242737856358925592255476452797491573357772564122127654197356985833157625862172273726125841338891915766133239245426127592524214294668262474397728339179211531739185991948356928751748568591674472852946661363247211966725762918183377734769963674768329885175772118671856753119385217995582859958796881455655572982671928993896776244388644181278426427215484951564982735134159882423133561955912388562964378257388581746832422451396492718624252999963546777812941569739581795893889244611381574521473321391779958852112149186437364685614761564349449442451982627975535792858372196949274262333929462839115721929514421726957238974166166537428469681763347159846151656289821655524578712496279874737445326271732179748977584461834567989596568655438325963417481726514353918653195826213543289161712136325171479852473515714629678771392818834719845995566837784551681751433893777267613194652117965139962241517313854163527728414726713826865586761266417178719281741922597946522527157844624641614695744437988129834697958212372622185438126838619958633553569621728262153535294289941275531583554469565717236634437544196234478714641121842495747381788281517377741743626844417135114922963691363326587961481183684975169339244576123718747745193399786617521967468728591265565783741211752838473235973188434891155275249412158461848246989369364779274114218944927832428334151526433734144737129711841764168999532784987359962741823978263862794963359985869843824111827192272667783679946929292591571271497543291356349831759798736753781434654677292175248116879444613655129476185382795594271915465621121856555983141579897886323775676661315683896834812499911377634299219678957449821958959966728136947893778421291286179865436238822419767498517535123917449152833863848587437979572751494288461657731577219896753828857265192146618665375365849111884599998192562428756261743644522862751569725946729246219554795881165912872466837849469414784262257748835162555239165985462678783567349736979381287685911277955392924986474392411157558576261789779257784113242247882727344392177173841242355568255326949369466263447551575921735246849765692217542186934425587892475442891911754841443774112892937562541531585868893259661849842676639681729395184219255238913979642419471381788918814336116313255485332359327118888221621241466885316441362163851653614627743222541274211416671635895256911132286284614544191954542966547659866485736189498484746932585249115652225623652399562254392714615169371733177215162366695666126632458522638339834851599965466118243984145867731125165151585185899177482866639641146551489976465353981966639593697241278156681116394291754792851564579365724824453761745194278224551486958239564749723322628441876823597329265528598619862715671243383913828369198969735895252366584683963788698473346725241366814262457725574219534195518644125431555226663973925334884637937468494814479657958371657919691335255545872847421247311911759882396739216389821945665754829696835397317845737621276531813762343762483166628389386949929275498564793118761588417999781518137884264564229367997776755795597365681926348254853511284643281897454346978784168319326589798768393737334291586316348886855621359623344543582222734513196558583544776221377487661191219753591745111612648376121129121195344327728779833669261272273263687927788455447694411536644949198799457292625474715766229594494262196825176513874348869898247563672253659289477799574454267894251365529447464933979314629418713739281923759151338368631559329683419511775678792426277233155914254193169626485536244955259749143353658519158589194388893676561894158799793542441878648715359349734614473636769746591361685618671922358511277131678514462922778769784634632234281141376568625492468722275297514617634269921459485356463873433882444858741776624238774142284462515871743721261684341645863287337814868249165213646699274393125715171885699219362832738167357727224393762663599661734539154825646965231386635481443895699982544139543571223651684863322229352643696843954217165542653873698763132615899111715358324591869636838978467457338754575815991953525213157883515379735216695699831342556224474892853474923581464487642353598987153399582728855183746869128916712929876948813221484879781579148131126621481692731127985942846758749499338387451551247631715378142961994721465399313165145452255452441692647165185282684128243777799759822428926534583984617874543528398541331884232411671456691942761525637614937257124157627719776726279829322926637932683353229781217189919112653355593637848797717314295195269474833285877637397938447847363399572878255827547241974757373481447415331812556369256519237475518258571651715332246686699236677572238384354866979537277199656384315133558834421363171679524142463875229893224249446493354668894181582461672996849579615961749147175222379568142988937333496398916426553488282389162795934463253885438777585613518668261486711987531397955425665421335374845833575694299739285537659266449823168518936889817359894899444324421362264743622347326696549851393229424887149272884434976851879991723291984719887229417182178966147255243424491112153751856643246851364515844855149224297841964438555894377662956977286859955387232592828664768354953547421959652791872648994738123366818992957926993256936497219424114713987588177492984514223154445724113761567295283624835149473844334498445153661823295698535717141579424827273264473821664144757884735116713938354546593895269847229629289482116541199278785568289141958986196641748665423878687589684473971445417252693869727375334651848982322936285461333958571836819697618891498834866152998971562411271949989863248843942738874924931925912887182875158221197478771852342429227394798419428156832917931172983713162813844648131321813811198367564653827172874886966346256972728983355862948336732446961557617515629295289913574718384228789528989998416396554814722144812754541421262889334614976178558623866918924982924384771387122874269858541938129358614632334411726581444436237252813265486737788346379612224948129345783445914836453213435729531355722155555727452763994555418432793897352724457524713157677429589768494665899541811115762492449316255591979824814894371418553473997436434395585964381312267414693345877296654149466587694334584717284894468762697345994326664934752121456122279994484724371563937939164675782671998379696652935636533988457513513439398752845317969247972623972215233998282512296119796847134344646835643783892492379854556879234716268447526656772657192678581752368281742416973237837973711886811729793822528721593189461537927178957248479251299417243376177774669362189994913833656873369946481217415394674856111677913896434554174613968333943991689878591854252512616529812191158944674747163293263894684784878661938492297417632712268636993758852671691431983153278931521785669727676617585881197788721798145115663122871458357935897865768158624735813847673364743428884688541812472665322436899132818266119999236382713755424436496322922812724341412586138351891422512683755178119267758684562593543712175572373298863621957195458628635262397516372543537136662513275671819569176339473184659881117475445381287791737846219177167813336763772541594286697693319889192677944188237444113763983961851917711218821665155231527713787788448458241285679192143713981658582316139957415413416787164138876986598482133463793469166468344723373112214558628755761216929472618818929364115781246265756783852632423447648916139546929477652715856179833534236279651597353423887484367629831437472331155386554393638279152183711943857374829338581496311419761755148665146979837767486526483457751616211797669444983625263488262123722682347272669811336564361572632891834641696577519155581437581761752995954592242947495537376342295394799247351554283635342764984313782585229363661824357424711231498546967783948139343984353455484138723472575386211418833157686898668996943472171121983287846435281879564899897918997215997539147134979348237917886417896558542144449264186776455185764317142255478494882468912418774914797712358197466512291321288587867547653451186637656777895544328972736861868522285653422874295982244728795547745219441417736334347699567922775195927968621244577336173873939538829614566671926648245431623654445495841497389842666197268424757285769788426319465964679591766384858727568188934429786635591138423274829727599839787359798692522649121981631412471295964833864838739737771721867866362734819393154926783655541226851813283122216698266522975886461541769159171749445986182469996959124929826889724212719945845448341631523291962282342236621954767739771979975183226338999983259822788875662169371893682579885766834612277374189269338564443718291651766473782687528364688767576531596144491458111925384168815458498891229255165947576861641175913692614628233637463859912928399658718169882134679854634824744698469265133336593477731122485744571485998221769915678679618272539468967668634523971836796594747573368935687939336318877425888546752544992683526135813554932865449673873932372765255399782876399357533725731997422751729795424339872252525615346429581449871383171184345896329762718733619628935843366844456422482264324386967559775358684316345469781118695338396832698919534868746846695927847329478268291587359833482873557388325942741888414485624799155772513896969148888226676836741297436625212215982792258842415324956618239241638887192885915347642392114127979848648715296729383411512922719684446127536198925265316396566424648258892499182596916535271612166771658687595644234687184154359726671538376831242699297592825787353495132795717856875525696264788927429698158744439971449945313294945893698553794572594498738937221699958894153518558977748542263223227995389529474361825757964384496984522464399625616982766984423921263498728688138726793381732913138368129887589451919147119299492317919886544378359353954852691811591379822357172987272547615695734862644867664752478513164523985361424799445619746696882144332757798167182552535184652865176241821735424468611117363438845469541412944389139129855988862216169189373699512414478976743863567476384543483532869557121496632468186439667719885839441471943278976598454124912585418555449656442181825237527665994838372236669767738341882536835318234236882757439243221374957466279692269335967971292318692438945894919822427994923134793825628297486378411299589893262343714613252877727627575453678893162413737714574136874328584453649879952612948351837259916441694562566625699524596311191634583948173634184934274793793655914196893255643835343611981144534733422645189472986147234237569842164226734561748242854276812795891213784229393197273688169247627628795217135335953212918721571223993413116638123333423194242254443672983435236558791118412526751927114346759394163962893944529599118432997725222416585778929769768692781361862893541198998864629578546671746835188178757633184832685232295787385182856428617189247651669136755252336966737534438183148952626931153748311842374173366159211713697851682566693199326931952921289855913968528737569952936927935919499695547291945849933633336616555515947667659133925377598169613254547393857868151668216122971386539258433228923169789381477595947952795995887183841878895444848533591191478276361346215549923665824914851567282115615268151326797277452416114224765172876787456964698648348669925522698277912588847511334288989432681598188336919569582898687638796735544256845791648626485147816577921335718376321162719214894331123146515322942948119129498732723926566997972264175976815776847129665254941966473869448715487289946459744839455631664434872679673118181453387851816239526673539731537552771555524127968535787659591246413456797299886528195659598612143477956655633375174537486336449667261836388595992344872594938984619682219958447551948176578366625673683676411255249846484391752319566623343258752635263682566685542112426641415568974233378836479578611375395741548852188861498345296222641115258933149825944777286697751751265868161942335692318878633617614189885879993452672458292352112321298775664798845189899924125347255123568746621128996987398812526927263846597598487975793673624216821115654313142637196344695925586686941361554525324958317798346985587513558899421715535213837515853693847626448518841361643373867125398959693334217243395423698299729524562794915628847479538456328268415574954425298935778412134749578935321662171963431269353636673575997953159245476482417679227554143736932945472911231987919653947129792886423623636625495259543253213291732982344894334759693716116435496495527896228683442623223745284814365844555424667728929284611182417881246767132792474393753752982579583159741718956385541725893858896991865846639268613673953248127716783266728724484531825248849519267473143815333585667171854714628356551839352519166763757227478393847821645785681257422122768577752533586154511635266367432379144186324828269222737353994212195312934315221943194729927427516947138468969963262533423955695389881637522417624766198383753161948912652782544719318136399616691481545623767146967769387236785823877238595197782368376999678149425147886385953288895485431144176579266885378686465993446449836483319886314172617186238762545174485262882187238736458313465963399695773971783465188719154531668618285473449675174844748182156827735162396254759934397195111782455861181695869853272881391468683978166935491385582659688523471666453844484311758814762422757613347522959379344134319552616376591352437244168571811745995423952976118632938786765738216657853939539383575443827389191765349531484412659173364983882857371123251581645443767155333417244234459597559993268863396536148452796544288177483159488931424367426969487273811226954736777192834421257875144255759122689388461692516282686991565466624432257225366984241731786322873215331931567945368421488911276387718692738433857577626495312841619469531364447285955575915288248174937953396995488926426934757555846531769447786678118691964718183735691535313859569427313763671833392254675768615535365542799773992216664948898242657292461237526646283476255168133742876889531283782138643138841123299878622738197189843136919821239295966128826424497691181962973892378879651282521261278264352539757434388396547553569365691743616449676496939774128945493467637351127745348295496289628945697223233897421231658276137821371971293572294315261177689261386284394541751971586484142967185613123476331326455993396492189659951287718739464853172629828663557654335197923397594554524481546292613921692821579823274693646154295485445526573454759219362766276594148489136261635545462646343793296843836453415968594557272541759332515249379874514957675728682625664178994871332627474735593744119516296682614655382654193365665595114662812376794859358473929478878234415522182465379126428255832755175526624751377178699414896161477828479745761468226267446932977658585458825851663378912494691355193637519884839156846875224348657819549436719614276663274687342122975717477237545219336775419511697167894417262571593269681449498195774225821977125321279213152841327637118185785397324235438513433985775583951571191513845775827225673131325352261312695162453164621713734258464494543149284488748819172386123561825228146374247127834153565811891312195722136737418714969438326336545917111572313183388222132765328719419466576875112823816962483353184928576142552633813318556761179461226721965127317547481967964791712483478979599242981966652931992141376154112826194189645736736838855451649832531739772145718289165599552434576558416619169877874233967219656199939579385263949352457167922521522459388894287113337943634765716841878657965665878471733998559134111956542997575222274473217111421596149249885386414749959659699648233147825444973246131896855828732935696939436549243231795286148139589283914567571683653269753554413319519855592559724949715951491621572446895931993386256751689732787812499892972288614168236198165845875763849947816213925424221784362626899794473174264715137985412473953822347535851212723412852988272562576238593624785925198286913248385897656927275667166984575788527196651242959415911599946414254753327449524464855994798337633117238971833358643221591322164354177863945369933145283214319644931527829336328532949351571433826878568581193854848752799732114689435263253337729584653535635983925531646878448377733974547935226658722399932869522718252833355711572791693877628789513686912482448416465632494263113461959187321951696159278584694731835833544548688292299848397778742123367619568276386369998666429521856517453269796413292157598549624264918124993633843946696449411627197818296558732936584128958928628298927562435516954455349939881699381136267618293537959843719778697699215975774837622515776642412961872367835317969919576939268255242378851462157847894485391216631646539456541235714142569661312275727751295398777971126172992198569234253763449136237725723823668579894159383295717478849122386934912317244453823559434335353945245465977413684938761183516899323758355175244526393291452931852237962458872123742951885977953165751874652863135129296683377474858835381456558959857426643381665446965819453248124864337555611955632921855268869236667322662756119299274691366389845566522785385195912451487915887333884942469978368413431131419242428793839826643382524517657451582351644524178395445796449274223257391552948677211689123129421545255299383149758816717918949983417926854158922792362952746734973665248644326595721926188642837284697451873332784874472236217925374928984226394579916127647329756146845357876224113625467199954567141655342943243593829427413659462427849823146474656597238583328449133914217744298747559397528352154344755428836611455374925739845377642973856516449866266739614939683889265795348324739491342644513781696166599419773621645687137395354961418439386457599868671389715199149962771324854749595523484782696671748768144427366627944223471836891766671912638289764185322395884749496485637345312529931949437712549167529344663814696691633293455351192926383563822482444664787312412593212356538765719264442261481449751876428285655469813838967111975952583291665912972254959649636221368577533933228333628682544156172929762865166888251917151455961142997283678267973963756782277271479188346252858944219877885513549547371774868642162949627266329353889846231195391485255852483317685569182181511648963548686915763218916225265128914167834414871189961571986387278484166587864872768795793321938776281729315772756526985216298175573545474842916656234654263168596759176559649294717162477572421985992447399298679375492158389478866999538546493229658753571517382771633466995216962736183943662848899126625135732794492685949922711692264765247317645794187179249398424771284913666126435132945865616163982372626238751263266743192697885912263775641656873536646815583973187365717773469592266645183379578313673441675535642295693821877588755988146488941951421792668326182588372819694789631688845676173211947128177446217265947585992313316917814448168675177826314345575975745189884642148829331765211617171588376731843715637613134284881838765447321581954514816234592584359773483541525875256858198245579446585838971357771446146851397232779242949964531664378944863585562566668654996163489263459698243389954818297894133848283142856974768238158837128292929323387785161974868531232152243963382858363359634477388484687884992287822247999436154993351938328347827131839662366746861853775497178781762627642396772766823352959738613655327547915179751986261123772147568392992318264251756758835127774584673693528743797372964456222571828277328282351966162596127354345952673589514699216255756571895398455693553892811425899346335753588146391589569691179113545911258953663621566326434323575156179965222372418949672893258754261256667684834527484564777543957162727485657918645972347992285882953689144733597984217896915583687835747111459147357935525154211874447147172976691393754248468545777472178275725644817231967611177824922737399653934736822472489962453425234198381754225452589484417659262571398363674198257974425281997133163888234534447145567975953556762849553996438132568264749185659744798987421322478184457345699674933711452363599387532255615561843993137263492221863976437772756956358964293314381577119786851445869745164375793749459328813847332296691928488563597528398472294213862853682546685436244982289519685861939163731153666153162192969336437234486491666161466556641673116837266796752447482927581548838319126785358473911292849983765486488855379116316326499487654182629415731642361982512549294583544475747819135223463516424753916343726416318729946286727283483916378899439281274782353961198488914883625543559828843138148767667935296649984865647941743429164756176738627992456239193445242516213665526125341753653985498547257414856566979954219497835688483123417843431334544473156423341553872555888722175512797238463516683837316276272722881693438578246428147664281353439389623479274714518263672795937865726952869231571486743712185861242726912814861819463622739216128299679861246226942294366376887685553438542153657766982619186854498631474578633388886937845429757591537864626855622315888428383142184769222795267377766497325429527883884853478985751279891331272868937413648447991818787718726791693324577321899879657318279658796928266877856743616426133987856447253749424988247878471668433976781864895383916774511677411597265242531958349815256214934984699114355359163843457177371758117827242755551734979767493358158739353417861824321376824149954717631872467548869887378772655826568545689333119187724471534116553316774685996883554991843334879919575833322999255533617839216115952434655744759212453145855466949972437711275185221413998533927824146716723221731752159783163744157617288499462437422498585859254814632461395538268397156531345616958994823466272992615247371731326215596842349538598113729783714325764337551494233142393272442873348679325353666768888294248325639395317732997554342161474214767585116788777523847842988299665213614371157798873466554473328749998326319179856182646972294157847768398395279778833429648933527294923752268225118449383975327936327581616437937651578765385888419157118641333987834691128596446341932886717985777136136985517241333411871579945658151748298912934254331388271735449593322112214538842978685647189949251362463724418585443817415498413537564835175824457537377716546678434797214785121773489269692358191569288547148915344158927143841886713547351941565869651363546525285439153156192587341366619359768192986181689736369485944768724533512129188941675514917373144596646857745449496957336853257495959633387832661355877462667316891753981753828833319144211731319374462536727589729614123196915842377421981639599451752151552134152783871733662616662865719892396473559631887146692767347226346873127979146649298374187698332898118795589253262998387947758847737596955868164353971763348132785434928494281615812778192994162493885524833983363538347336632779157598782968294337161783345322225964742838637151756733956488518994467548491195269632926654393192437981729739234987268724143342475173144116817315912883186429446843156455835665155123331752685269464988372726321713944118176592438726653634344315498898596155377958593764187397747516365968386181831195494223786447963459288786767757395596765498185339247915589245863422987527326747652342788792188418496247868432186221388268365296945558335166175787725521356865357712524911526185656118243618933793853334285883358857661811613973146467785263486162826896857243347773531146373878869548133636859625778872398565451384996358743785362938267913447456854479252519934137943633876512285523436576468861644796972622731382525962617583646815512664837754995382452281433823464628191776154683736735757949385646445492196544615287652446374727351891899434895322177222747119834793782635193423511231394894776146324486785916367288398687954548269598175566182799628376161425231179865321828187848775362313625621597938119898582358775815165537577278969949688893679159556987645361257141818687854758782281844358363867847695379644392528591826642937691359776721959991749822485666225349216768752652624695743188699123934619375548519969422639588481673933959393143138871143989827774966351288573785662665752633391697212228176243698744129272591459169272167681849693114821969994799627723561554413612984179968348311871237262411762868266942865695673584391339484461375878955413769927435367286622558926711231415496138644451993157848428331372821312266411581884578318131157238258465895843811257977768763475189815394777957962757313279516125915433799394198253983299139742221564824753952766143263166138249284566831236292695991217619423432676359351869928427537287127359316949765841732563216834625449361854739292264499621292454977994978249259465795655764888286765152876881716276649196574382867362549926997694266255693929295839974865454113428144592684593975971256691891132935274443692988575599147137149333739163432529366715699412115947111925258499325984454294385778478371895624555934368676195562298136994455719292537484183427646538928354734643795433621863525257858763145399667199351336578983677343636155811518534556293981248772125621199159892256765953167933144485385381369484141644948522724153681118935973377231534375536842299289982568796498451786229813812729716843621251995962683553743823773467628643632136274439693874232467128882245246864295165331644771471259453776352771265598553829765871796973587743759317153245121596666162411175449359955277678537274788838834257273178484241993699978641533847545852589894982242237982934217962445584473851975177866958269855888436772947134441226612427392779412988261864216327866997637784625722528614824445121711462939482862114863344688189169286488336312412688912461158964962499113743883151739975879674961299211474662855737634111967363373273299554639192853254349975382419628673925833998223536532151291962728999472761582735277472499485656356292368415468875522651588143658176292923458246576732779472737433152343477291748211377225377929224347475283346966894614931611622945682191314899478737128989131324772872812271228881592489382313679756736844956634673711638759815871553147532984341621563437227784749933574662995946993234856524987769826273461844443556931481868444435951176159583837329256332165497871887482431613324148661857476953931658881749152365239295832426518664352324228344756665957178738475818849269183457994398115867615186868784791935725944743229981388864632999972442735198429317334129373562458582565163995824436837764819934772737233522983336898674854746193375888238327549139875269433932248636448269914815672197939222246199633458347628175274876677892481233477191852659166542118797725738964773868913828453643421182455251628893693865698853174172327742883772921296666459657964186759747194195115761295269855353718682271589999455564979844467538395412459358182538935819245998626156381295813966748239144533384798415415984379754656669892129388937568845352236592146125216145738573366782995543655257657361833581715483662925279784448274247495465892948149555434757653967615131619714516452973247893189758152112171321955142365145343298913113211232316619744348861171779979281192233784567981656753629616624524645893158746691366527477128469833312615479948164525152763519472611761297182877127533697947874844899919716793495257416119776269559439281869198612343842819525468392221186995766989163353193639447548457147512189996219428761594247983676426525513114945712741155752918549192531832225685768764137327171979122184295754139915216838535632433532952416728618128792534996928361356487958827618477521818491217342761365146787624465344273373896163187589968629945378785812281896185732638488373799668158276345743216467296933293258843659273646856491291692812126899154861225711248258317587589267153548659121934858778417265169865998862853745139895636331737693183867932296617586147661733392599865568678138785279945818137276243698455157826344236725528234838187832436127641853434975697169878551584284748833165552919516483236284482865547643287367227855967565994178622386494119731495891556946233184292741151923152432465167671878388351255245541673628124871756575398323746379346498318575641387616538811337351989618566129148799452222255868967828763355268938862964188564459939895131546348114211517353687579558151994537427746697412569116949845843295726599257778834744238212585893365813728575367529842653711299525195466214628379263428698616567966492913265972997238996756492197637816132529718321121785324422274755467418368181181158579721927393727468283181999193841721893531793537256455544443736796766998967221936571814358429988554244941551643188178484224122867261553597561769555484696116282817752182746711566985344954462641315314466946172571914388634776897237573256753911891229971348917539276581155334323334231353934786613251255678999323634548842211871975199556355277429763547756623629118963687193744619953526277438438233471971344594488649246888621433659757771938366129833411262293458423989971796397279511627645971792999876855474299241292865351421519386961417626531648724158288328357832863624176129891196813635559133317568865467335444925288632544755511386732565197589997659892367798727398343732578467922991126785557176919263319145736925927585949746325242462375757448931578962835447961196223797439322267953145679465364976345877888994798991458484828316729316984783142839865692873792464384772149342434311761857936252578845949873994434491475167582637512195871171423851787284832184834833499597438713881618982189563844174913656416684644433531476549956347591132689143485638565229113625274377435339566128874275175337754279812344199692567884372714477785664898397355392969497457784553819397926631269256184629388622793612313866871786384645563334493654775151537595123477924145574748116599552199592838511723361633434974827126176158899761186157389686876668155659437314212716444392877533337792634355665835467787864696828587648963438711346114689949411258913818142721834333681664414439311589373454427758927173414855775624551875227782683388629994472923277244655333491538489478794896113736182514744795433378248626217488987147412761293439233983684312219893533598518849642749997318428497649888648411365548437167998628371359112742777239962667356217844868758833999611616763487997672957723694883644794368597285943147698858325588957263122739223315975868581137822638828882892132529985742844635777458336426517768557131294646114758672212752427162873873247747193759769835156663748925339992692776743625919575658558962851921186759911392248612447343417417316971769899814764998521752482212799765743633998287148114251452531496869122391127711511834869911841426327447348119161144428319493333954687211121126139461371118331614972693794795396231258257981842338496655824353855978674471454575314768251574669246914349375712233618413459724728228542568939952292932267137599311153318189883993195211813551571576696395372662871399371535672618367897224489567485412454819971895674286523557295536761141936896453761222557266618284277279869384569571525331892618126724698537862719761273252212192763933774451621476482697816826982275441775726664192361932624211327761738299745154281383433643765339482299164668977994136489655987825934841286174762164692555953634126599526134399595954198582744255695546148576335818217966249544913346851687329688599294717552841275868737548396256966425169254261646517251889584178621117121446481931636623672988848849441574112194167719866163747631554591811929324975862457731382337787658749669967544578241269482269824688434439163429333359287493283531363696512742664899726356673726742112642726962452213847493674247456511671267483513887416672185719459326342171231597138684782253277199633831752792484252511735942642514777652739878282443495887951191467923294179797929269537231221265866165462349142947881512634549935632157281283377946986148582483845839548666872566954667396433696188143888465611195451178511871489392581316865865399317166133262189246267643219748668264765172279183798552773646581397573989186984254198266428867986533839638337642941846478364862414786649461934128192629335621751127672417599911618861784254119219866996745625585461538742243153127626389732289624656339554667859521147119127978433956991265841782695495316994636921421426819867925455874553726417357389868745436971357793973494138856743616949636661228416645146832595745349282647668598162456148277742264973236791649334479172789553569866178637681513859746924858194989575348986946331194775251859347285617496889591419876482376399996366186573523463451977114533422147745283423669893881579822154257829427568824693979827898113317197839574355715911882562361482271863629154615995973228244362479556727622172551957268181497545579159712897952947652558688432788772652721416619375319277911188846999162283642567998815695593376864879988153297986876326775992478845823636745532118639315784831615976237611144354117926594876935323835595698123533125563959442964246695164956298489845238172277571949455749348176859253169375923916841314237933598424729546926227791731133635974716977821412124683654747918586846443223164355523877241831777262896997313637977265868941817633792381911263759575961745835587756884874779955892486361733271746423781957942431469194157373346877245149823956182989385823246823535947829224612891719399493974226619471381652839811739569756167636564583657739729772637492997558294552696378339287249877966621439774844569372299813781576126259136418755672791679948874485181983423387645814869764442778376364695833596976243228552528356871221712941447151361915257982467579438623666361276376881467613349283935381715723459936873623847844246654535196321213899151434918321975437836456467545449472662494489922585119735488823859916144482463522922785323194378258652188315566647725246445762575331438268614257829333866343579992935751521726517449725448576475567132963945595237198622479996452154351544884396985756883772396412735768256575963428915272312942114589494941336667458765994987288446476769682258973759248547346979616273131255152326229172786283242668862876371491123918276695998263958135652681692882799369748645848649194253222399568484357991474237247643864983948775189789826238842695762161253919418476257769542791266252276467417234658424367525541155263718449151426246563115558653269341274977119623368568923878184927834331941782917864655832539921514826828887187753117589732614654945626414991776976724576747912395757386676753348991257721412631215733481955287966971652683755755227455541857643239384342516179592147671655498611628853114612551763421474894655717592782252215272492428717253622261448543654269298331111835976292234167432647547469479442748367479765597669314949876811973718445322751416436629596275162432276686661611233794653269765997113561127276289459723848895294894259251867565491262544433842221635541636373892816961392676897859314465981161252747876923592176117343821936941114789372521737337969142134627627186914965928641236139332693364952553847338182194616629778983388533715448246445795356223912338172232776588122571995526796838625737994442343489489831599172742215894347452679526499448445428638117439165222172721555488828571471113919421527787842269941886814913213955995654447552445423194385695889278744176631854386576814352831748412718461345753491979394477449271341186918474713691619946569586591597177825275444383277833771328357955736243776913339812168989715418871495562152363343548337217558435554819914149464618431141895636262542432835869221853867845318814967299282658659634899584113883188788615869524477766614914273579348298575426854428178368775822856655592843526768654489247638713266696788941515369697612354123338988456349389795764424548749162859684227235195461792245818714888847257869269594574676157837315179794569485234681847532224844442219656483895253246889191474717728763299488993116594482418678359125235264153353812249379237962863475881175319571683521433128214442831838467315363514556858668112185167882523948289643317164863971476955296489218161481287463759786271789227147743772879525789756364332243946611987155996474358975297412695255342847337864298974493123171596918182814491798596935146454493983791862399279127619113647975264422418437444245995895267753368591631472995418798277573256572212273219218739599315963277724835942242162925874794289586267559943166362363759127446375891445328533148174438239962578967981312154357264686318295343237825746951375991348968777291414985458943169558582368146645775963418212497443289416118673149645864675613447655576186843156899374732292526279627134717892571418879987129536487198458148285325993871672534963761696411128549138315263394799865825555556311312133547777137912484748284894734836281856558139367549356626898382888863427321156798633274854671758535865587472941793929414661635477863319947931991282122477449967543762755447536554645782525491145222385739463916379857988437522833962444471661297262869782434417693845172137146752846895927367836119517618313887969548931546239728758329249416913855747682393174849771573424193286661327446643926883749171361688333265897551743322594482328375187413783526581722751289212948437267434576225285469567488581314829652918528936461497236973194484349429271964699739442938138466898831648743193955888981884529198971935697996182571367436686596373376735425923179195737275834461787358781282588377848456938274253877755763891637292947421347651748493978247291921193645568324386136322936745736625978335156475977598792265736287774597991537924673433558811538294654243285877233476621311354173537741958535247485146966191497649323327159563391684289788828572493524328174484453661637418244273434846553892226483344185888316558922666855966595639126595435869662617382778426888681349762248293254973259882469227241126239947263559664632766687382393815898614748714176133781428547637116856231199496118267297942694494979492491439929735444137296535822751881922813786128422139682263338416397467735236178281248354677397826552234737335953156771237755437972194567389783877554466131673451669916633592788523968462537753618699142489567318694541673348517465269318353874742184141365925759366285919286549647151266667942957565854861414468172978545337323969343629651176872969722235856131864225279176753848829932316819894215622529284467337239251741519931471523431666389982997869919811848989112277894693871466357336319996817913772141227253887599119918677377644738658364542299191989747474226689344279524532531528393149341888723139971233385327256348363341222515392415633155768283129354464594933263626819275194384217543782285481652133148647876376928386594842996118222165753369751569118581679281891196669886749796616444582498387387843729374242791335663792529256739992828132392423779148299114676674646557677618876779588487755211675229967627414971819638493823979489375836566843833886525686963792628211846411692869411879456735886696678229378454474361296757145695261973888623959384393858663132437533712463658576914389235336479922382436792548948475277699247148267299868812696332848598522225932731616487657278352192943154555628678316961677491691785981344886553363958825545614672161973452896223397287632981347433539764844345465183835933956799832796269493839347519992296765657635232261453375826716826382746517929136169376757428889427592932733625121147612433122953692885846298699613363595797992259337712431281959285525894673687529191333331325243775263521768329238142364376799866383624589411422336352678147933659811369288231443967924737431795685711518431464559332614446495853322363195131585417477811449825155272371882721349987666699672976583519577758662659316875832938475526462937793957778454737829545197544745415598276991253943787387949223742191917595521694962689374284457656656284625684171138154362697452996523984443849742547963232856956497684138392265318994227283866495964465284391721511911539715434829156674983955114295247916439822826363751956455854267958591471443178334338763336653447285133275462285517383495961294792314529956264514222451947955335555796781496746268393386971513847225783723385881611838436465647368836116334813863856678114568375157657178559736119656466821638134778385248112691566192673735527795423945746795841448596767299868319683156635119143982456265142771729924476976979267293818312479449332678266743658378448277415359272328134698853779423239868484389322135584377534465677463391629551753199426168594952797936987841996114145651481785745447935618688197591954183151624957649299157866595599987291243537391221115771321779657365468522339441341797838895761376823654776719732792474353818746426582958428481559686911372155676135319151788843791382419413851563984888766539888926947887163199497664449192871651245922527837755311645534721675798281442914679299363626986954322239262453728647452623291795215338244379431394837189498477888411224541484412784592332269747577588833879119377617748844728465114886162163888539292986457274684972577664841693513791245953321517654419683641892251375769971931684925763927115221347693699672649129585876476997911671748686658649587955592291882849812761334178926711261361447531319576587985686256262386221863892838386165433937553571282277355438255851393576211467465662286628344818836164575629355792821472294583365862229671595954146963173429745332343381248633946533739872745357489698622474777319582469532957684544315541817438375519452656295659979413483225853313248483912466354283321533118237449278468594229436758819199821555562397157568499974753763643777233363967613343338593868131498111336522272494517356643354472173294656762881341976521654971288397742326495419586138182478486215889999638168117619318555483994481379232947747498338172519699936854865859623352173871929888761455621214165388496773764752417542994814211638567134399753893556636825245297943646865849119354816398811418193456942425416331611249829869768893386526957479429543415291165934262813597235976828159569574957373454693496783475378334171566282436895134693949357278586522149272769363622815739347285637731748813828989168531554172534295278949212198994746881286348657274967777867656129597515139884619986762458113715654394897786956955411655455725179598868637221614944988433994419448224987688558942441282471721744456853411255949964972228289244489954293327891796184215122926463258567888567536234644945236653977723591246888499843236648313481162391314982631694817471281529425644664853924974445181198241173537884268458845189587686499496649317633357231738575234663512264995646771483545383895251391416785258715753996424693198937967636149911475664115565754456252814497388324761179615181435139228558376117473388339737779162172727643242879216928982657464659731485619886695277176121866122184223673451129537223834899491598899156299392143654836314254292972886495324426672954474788117284361791332662129315642929629337654733756892113933377468339262917389554133233424742477219125315923877169282533886923634645155556823629547688856558822274679123794156998666542296877974331232492786375131674873369155477489528697214616673149375279716434486244864125683886713329189623151565939332788966447758666527712766249162331126769324279721482657279175197199664686994965814958664552162862627165655841331526472837933198269866311794725767394476968368174949471539711376895332826642448633668512382399887429481155287859295945163283161782731724133726626228725942358327489451754925586997769253467288836669744126573262847752886595377843815217753979242727795444961554824324989375179352839374751716176418886624221236227254627677275714583144465477899614864632438898346549876313192852147518632412334878865485673768861511463593536914689118565831526657594744185774132133778141293748496669968434826928286989198363191667563285667268966565474399599554181318764369166612959378326161569589245672677237423241971576633561475842888592323546534589232487415898977735847191733971884921651139835596971779731938996287242245927467153111973965754362176379771516111422418694168494591227184224724755894644949788237138735146418884253626991978779473255658399166482643232238995733147512321335963216439643321894187746878791386586118162394472671455921699617255866771899126384317699767728343628385363265882212872747598323484213638843321431618762311232469789942634845887937684724636752739513664157635327986346798274336286453647419832438952611437759367881155784667718593654785369384962977445891561329664933557365651847479859894835781284327943498562118983863245623722942735964711811618974297558829912164561829891851638936782573363568823885874857811513261318533789569848325599379239546566319586422315126576483415348794414251793922414951599728253922343668636927148443472253167348472737489979574317634647843566313465113889846266729173856112732968357646539236716613878488641737562225776678148787965713666749385396863429233991787267324976794233718941763852929634365542212435785478544738828771196659851982451887732994775642641285269157381368922121497849913132536441168174976167116781771883926659665462848545255712779767958513468814998632246517774649335174421292689353465915662935857365696626763597732222788869354969428989445694365577644321355532563361293763198535288611634187124358368643831584192953815312124348174737119257546641821342553866773135744748373845926941174361926128582955772965456158266581462164922196564661296611516153298495786986533898817368317823133961449928561749629355176757959236268169715788638552159623317321837643513971643498682554885596678332572758722159728963339788345267214379251345215811144992726232843269174188598178182472543155238455362669418396194231374678291936552527456376865288324562371473817959694229796324934381417443633427375686556978451689729364536667484742486183818875737652984658286661798395575352734389588833751316375114551976248676524397552583121521865962575433973313857196398339226711868482679998273872591224145595672429576465272458597418821261728768715231637772511241912137998764534146299765815928919112791566927221739695285666556456626663244866938898395852496939681147352646238117846322459843899814537692224914778398343227416385637475485776134754576887536154416234771348841215462149782475725338695717481492837931898925586928877338976914187778758551999591367181776265663339294849938787613419376782357679579963755522282412338816932677635521785136354474516396988946798349316819333761122649336931699423232812644919111164876578537368562642895295185181478125867593349413672971479876924714199749963713969156194882573733232195981261456352951338484657869968557663616222316439166521297183937674833455576198814554663262454211483727363763642897353668693913951222848224468557271436296596781712986796132976682535244682259229427987588676224476879147352263194771428275785122699513327423732998939746214716875824145776949137839883412872458839223681373275867746876153287969972239256464948612298883999795672684519146339189218976175134571738278272614621521217724225463536434151111452494414275586132374997291311344383723938475987113492921131944471633835663251851281472373377615767841415731715823859877214864249923864425476847922997617983396297572813249824525515365953283781438618832793144575891376693772825565356425728266555573932388478715249779342246681138339458284155568435459453122124756781517912457291735669952953437896946636761579442816881986317196679241726753697686274372893512168963933598758427935462532871886772865213988728422846899976953539725226424285926119789576161422382784325623124624682428934965173341673135335787144286978464871185252455787355968476963798274283798834391936521347943222938446725597727819351474177378479214874323185775511548934652488418675196485851491354146491538358924434953437556581784323365181772214418639275823881312537945992223552315332692889891934726126337571682193263441439313675276798344492511826141172912258575144877217357438932928128223969563948658474916798879669372677522716561387587155842798635782434683239258816511984142815382524771183897576227214418698927158434532712468179679929767559264996458619644441397288154899725195738588342776795413218597467867331178912269748269471138755541363269959266938834772674448882817124128824425198565632965743933734134826258768593865151434635888291662275931679966452384647225134189196688656632266385748361753951859417261734848467821646691895879729426488671416186149689679256126958587353383889594553429223725319258773111289227563683415776296222988277196116753911351727337958946843652143716896822983616399194677833136297776456545695234133489172364873449175727177689992339236352738872879239946584582514426942114881167861754493741881331834134412517283267687752849872954346687827436741589165249125319634291973624187226232645457977829248335486793515126279614491183996718146525866267873834264251348999714466842466142314731946978858829255738763366586948832338294175989452127343891474257488298485883717818533711747262798618447825184774626786859555734684337918417773134713386232795943374965894562765245462174244547863368747282358761186383616959535751624321445221219837187772634118169382415835846629327985137437223151281653236787728426828551263467485449752331982723393957964299937472336458346498627812618827711447451185818457218999159731511544288186556381991779664546586639837634268896974952818252718251133895212989567951931735795629622881291388235729721884363723674762772799513973745722247328665939197275126313576857952782437921921636237657894488274242375966957991513277856284991415431727323192942258932559958979312484125215317533216351245922843971372793123854174789792394478665782841152236633991761988435189558642746867419699575563384792646499563137667616463918136495658287133335891652296476289737373191883925394359468995623594222421489779319634569268728966488418556313233985332257918794432172915536849137659763454233565572662294887789545411745158413759825934422989933373446841661945837319641739622847171665732714386816851833774758566622983943461951625696864339984545632726152155997457133456443786248419995198588333835161594863476296296795543365547944983479615235744312755171525318616943793324788928283689741162823497666787255956764932894899971119666244948533999481569948836737693226519243542371326399162635494515155179313549561189995257686136539935846189935943832457114616258231714323214797979215715165688491451783993352958858338735284833968135225449434228149912511782177779381624555966779758898876164739667638983569235991778665261544489252159295217596474339745887236142345155565213859281155423135747761266713134498216311742945418264388859951371191531594688227834142926721738736789848196898579884965536619372941723512291847825221663314249423493654654647428839995226538459688933488652394176955476928763631513752516635842537865556321572523797937589973215891245756893145323195744631841329333617287581812212775147922143966235843582572672848242933936232734227465512679743565557841452525837562113251925171634397332573954519719915996493354673316443638977846736226745971437656299442248822584195769256188743452385497277315625171196684467781819358964775347654653122456115186919715173686351615725859441859449319726964578549919584437412244264944621168821612651882522736141444886883554624888765816978472515983661726177455321692388125275663818989596332643612729532947493674461318931185245317258442189447673713595683116646252985183116763933272641851493927125523813378562779933817747138749291462787533699582752435147812729655713455724752827869363142293267647873343697779464499792812117761457671839616453881749829129876829485458327952239293174975853324261696336122234143331627292423637796228829942435668638337559622481192874776919465237159784645783782868236726662174778656111587756841743315761967244999599447213686658979456443165545383335956213778565499133238762191412816426773538177869282858966986176726374525322117815999796384991461187439861961642141919537816852869683568654517629718652342836121169324179431182942797831822422418331736668566651839492482632763685558225961535497336365516782949494215611653181713349681347432361671241285382353575443356188214262364373691726973396621228937354561976245217794934575576378183337225827438996388635173589487619331712544334862614299458286846868949172594889948358293919583268952859988467361276994284142458343427326262886894584791215449252484116621787466794174194536342579878439398934694181489632265392279122941743192481538481517936144945147129228357399136276778373666969761671596135137635291937383888743711849352744596815817525893667847911836919358839329961441697389869953534368231952857881859566452445588813616691775463436273717841498178438998165591824441621384433239863752456814876119169287619821817162116696963572478386947838997694714352848994232949444225815674133457532231634737669872363838221446289392454616362348474655366491118937162422847162897243577226116899495626611416474298445166666335263715375315843361995489955577983363789311684899998447422878467682959879837226216848579646572231315392165776486869626679227339341879975443981676437984894535469446333766964921653341529962497429842118694984948262224199248869753953612991494218429739642437392586846945864284126988743874594742226718295513814492355432881145356727536976266595619942129132657218862458963512963856968871134644529654359699884169765531433796248183427386154569324766898167671488721348853298931396975771448475336369144343145165661127159886319834737252455952416417113982522495877581736121251781581678729858335972134645659628755822784678491888981344898761445816174439279247935959338194137528135467474387979464287986489941743288825142739565973662291983156365956458621476853228327226412127522955816853448658569279819812553647127692845518445262232113257411913772945394238744755955261811811967251689912766942447954933912117622671679835538671276567667867528775642414866713839375129796547395767898283753935851353322766475851539336411794278293424589937592444366916165372171322761563212346661269755283489511666622831955411426482818137966133684666642183124652732534129612968324987185387642814946348219395126414111638383462846461271191492931341493221456639255272269299281324453554589241156562777686595625949394753566571226373941571133536446811155612623349632689773824568938933584654877721888745127363256948297552938691577451843578784378186741823772638454437674442768466921111268439254586253696851596288188214836742189614852427475194711512993567666525891133779267448598597843698149428522688595349187846429678462414266314163575373957589545382313737258554781227512269993421641813538272531541281397286436591561822648772824943962671122751616788941727889263458515516672722491274144812728953713344911973211127429799871675945368658535745756377256144119584919763516179544962675378688637827672923511454749716334182844515173364614549894763486795867218615831281633513789117685162782542124142195435613594251756724878969463562913563722127182753139825851217286543713914522677871763247346865518788978439586373348452176652292969657488347864177921928572682777633262995771978659759497555611453568667134129875739668222762696943618419711687249116826983152736995635695652366266647345548622291662112566792398862585948898917863174139699838625753156835615382687989848731471936231624174592559348222984131123625776973323477382193282594495655223711943288917916325364692956577848832158848538249675924928676359132226918759664521992394251675676688278953998358338567982958495952879553842575498355942135854358525369544681231954437539114438379795748917128113546288198431258927572371882772126534332264377269896824812178169622954169495291169652931137834885179475214722718663655757448617195942552724973839984459182933643935269349536898797132939113365557964887739419377861952852977423218596168188914581576751848688888647243142722279227782766524392255868962244341262841116557886991467163375599516799789334911591635242468927866435393326617756618222267948625257786997556122781592626421372797464954699391468417668219236394939424783592637568324144946475867788966215377123834236511158523282987598934635818221871974626834122761463825415137113199451143545611656837368771371679524527861312366958764541467424364625391412447841797949175616933383822843876558638322228679362489769933119755617438439386212348124196417362823554386215625749541841579196377422749449811374137211247156674314577411382418629331435938696826364994122142913945867259127598214493683897978161546262162721521869128497174779734338424596547613523342948316387511343781234875925359442263689439454621624911593916849145213255179541592882841131614598127222639563512789862765824163864665737673723971956122513819184331793459631827992514644823822244314548412384173323576868238243664997737855152363628294816729974253935591116243484293663245121535836376376889926435682894295348729446963651442974432511831454135168754998933229552693776691112517371769462663518756923483483524259215151315555321892239467619924824338448884414484596533283174456777511488728156485946344542875343982921882596134536251684669283372563531689191433156995361268595542784642549573866466881896645198267529663619776421989978633142947698653893871312489377238432525174838217474514642569172814156553844654492731185331237227622267331794134215313725748469129225858817319528148391754688499411794574285146849768744982831651728165474977561436299497678643614599147434171113521461127971341689584216624525765712713491424362228539272532887467537776797123144987995137115842584359929621824322911413123586645169951893883224394333534872546932826995183493722145387664827599581179677896177361899465846486444442498177674311379325788336969383421137884214149151428251745564785897475885197183125938991456724294839297516314625997797821483791164174733364525915673254383561667854327633874463829135553717753447768421697933215217653712577712478218277869171491244325553322469161877653551488393734278381526431418162396444274436752679722244374179298742257571155222282316644941741523627364469872889119753945119169421157573559547557423526927823764858416641585329941292783555729185834587645166951978247382843741234562225721416312214732815279273439551922942461571954134631548672526516519646794887279632676543585225765738297575282145392755193495961433253998416529938113612751246279593683523163956866916181194621569828979375569245736334433794849822627534879883356788121389663644794447624692827394115133198352621944615965246766266668857682733737286673996672277733618366439611219867165631647421771586129989991887474845999731797745347235135292838121611674632295629332843353425237387433686795357289364588721333962694942511936544569728599423717756159399382845271142891731991675279998925198595519687661649595112119791388137587356191964813223313382321113851684174168439651871198328239414562868264996841838847658572412747833648937621794476242188228392975147831581559986599687489117394797379327472358997855584384112471117138764888667453881228529656665367134411377992279182932787343868561892928617724633715983616883737716897657328681841339579267338199677333954711784826764679291199957789974345423713488645565564568146133457879949278132677923358262764197775568585287334934358163338528384748587115737939344158462213932285144743196897622925751861252361774137336825566547123198923249216528142623178733434524424638548189883945141813945387638981744541318613916986279618261149922355485246426114522571497481382496833446877567818166285723741879362584171736416392891362635693527676174145685294473499452911153618314618966485823242976167152222942482276725315418515211715836939167285856266796556965836417199896613188794364897482875425213193653852521945225853149471771189334628661554166551744671748645567928765629125559533889952616162843618179971425367555438688283377528336122263589233676334242569291923423537885698945476778914823814145397164623416853338239512781174613318761912576719631579547544994224991171237797658685548282572883281288391979625484936745882969287295934111163519892465842828736446847247244384353397769942724467942654367786111348924917189514296351686355855878768258866796115739786321795282957752537196696158926557626934127772825523172777569214855457758526696158455623377278664198863624174778594965271998744153828178565832772977384374247541622538364757914181719245449973943185812275865273234147571368552869338345822337549843589515369535458372753876419483631482817758384192276542173922364391471955874374489833131321356775713797384712939722125147171647116376914464466238438733439582282819411736172784425398431378586767697679286254585914756772521286744411418922351851125682834832316655685576692576577844115398427882349786336463911593994433263851174952573119391251539862177362368652799118927942884868966682827582752641532226314589486934115762947989122244764122968552963447631338221334789991286921116359912924735867225124921613513126925217479845566157458498659851552152697572926521255184848633667763822568759411426824318969325981262317162192134615935631652149155275871179372543124586431544448856323339346598791139773725158843455686511169927921798869464257383731381385266958928713639943661744852888495989871649893786142225481577316894671635614772484586924961699268636677147314342798371667625542383841543374717876783758319763892176129346795472841915835791978175676598168595768668241619716412869428225853439175999951711441637558369754985793382176157182234868695459847326635741445942145321169614587218852235258642845266273133479189955976479244416833449751887784779266693626957638863747725483869766325687371834711973544983258134656223731813173169414791916718164564836716923327258526516186871137519188689892615357998585973175726624471369329854543392788985456917245371112177531759716494849538343768778976627672442982475327132397164861312958192389435857659678374659679765564682634227763638465829775651297456528828685757583964841395394139589361128583241436618737256558416322333261484417976748454118837558682997135465153626561859643377144234835371764136672546419736331743135551537929476521159922544528619165127798644286281172125466327323733493266673182279381826457968331568674229537644572544978564496332287419453126562696193748177681718459474585131381888152968637587331258596998936915711895646395926932672262954644114982546164456147394421525778177566599214559953772213154639446173533432767661827948243595428125477519775331423215928266718429946695562985926225616422982823625274619817388791359882988251312828288168886566581458556351372553361176854419947972725341367312538525119438332928179513639359491253652695436517414365526432362285541599931571212637188622847855497347339386497459258828992666996729442269889534439221998155644215148264243984426327396191554854457363676764215735455154918493637453619276585956492887276915277992262179627193732819426116533222347444394194265346177677229431554287516895221634331897518441585813553933443515828896646389437716851253396536117796349877791461955959277731321989413388158984188464472953973151981228123722228855373376473777756767568739949624141358894169725391945617591562865889679174946474457827666591787265132928213758273854519159227724326317138383111386636631541223544164775684884822374736679781934331616954443713839192668635528931889475728988261159225967527399387225696584298294115599141861777588947685994813213662665641517355158896394665885939276639789414828697126572959441458822879791172731432988162895939729986846843815847935641729213183161645227418883476848819729926222186687328196343825695456348959166615347136558639277723356141147597121723357121946798932636728378189159375176979649432584156883671574491898496459283349634222478425855934874398326458412733869611175567944263994538469541726765763328992318596858774526698264739941839859699273941492141766138923196971849756959988273357859751949537519374978976783817583456441383833859246933582862519845478496687853766467616771832715243962439214371815665232315484888965116826344333778291411838316912393983516728986884824996727316445523762434231619981479141651283644819143454424312358342296214477656641775116437551374394914231994658616115648293339668947369358613554155519338559515297924848697933337677581344284593384667325197329175724647946385622976517117748636197459254673123229869679243995494248952318411632617554466655194417211332272144384938363938437767477499616718137421247439252937664393253723525356359892716798544763177347699923548427587166891275573216955747199941679385764782238547132695215197145963347716838662365415925314917393526296867623749279561191372911243761247987261168824812838129933299212891515511283573665456348657478668698158267314569113637483139884634537344974338228461119311198551993626913234935872962782792546534686365577971567543711979923656123549996684539282442438339674275519498956318125359482223181496937866751379182596334446644673265851415433439468991424977335551936956588619556444475772485948131535963734677212548914253546437478865137584294347127431674216833629122769978392993535682913585845646612618437416768327416664137681251319143783358269899455757515511541544623846652532577942683234277221582675239473628323579683999691659615137165237157294252442491445315718414726321149464696635678197567398658281274129477131587386932749495312339621567251218826427482431761883844988694613395826654786751838912391259419637929564843417489379598493234286986843226467915822751699912329798472683328997479554513494624594321488619389136971321551791248671618468497398875896832712836773633577216824791179763833914461634779588961431448313585775211264541479376398332962219666287293546562488918639726835782498116359715944734486366848316445146751621194566884329992713346848323384384738297627515676819374195423741192822573332779368386585126299299471437649817732659217519238147965117869641313577477137138842538928584558589625452154747539673463322556394255689773157799656893113268887292659517822579445114214439217726989831591758792292593844654436824816865921688786936119565997579868443834882669342852887376124898732913472537441534513349839228971269417549174926476598472383979976916651557858474932858875172168759314348922659151226913529614588418632424579574585174325186533364126367714559887385616114657972384829579824892519969579835512731121967837126266253288171521784684669353953568282499296247295563928843137384191339248752572927218992295823222244147823968149759558666137248362666457542356321254911594316133298733576611221236636675896598717588725385396329872429817347218765637155574114871913882596216872434228666966443444521771281867819322277764397641982858965842632553568334554216294389165558791745191723277588187525511865735798287268384122831681922117479848667273911493586544535626464247993729118148476828361823458763461632522225952534359441575342477438671683176339545468425948975628565633731452396822663255953413258692964898136518664878453592816776852231923572438715641799871546112134226373515375839797675727328421621247596824496364932583213934995929668349578294596634845138527918874797643552891462846248979671456726379524683727891414192158993654171932399551329358658763651815322315333286217123977752896987498618941258768469656421519297836586478483348984859471431349922479916843177765249187119143925962852436633318723719411314685981166398851961841111941961329716722331115292185186179265286956526758868378575173689596994598151625419136873381547486976335129161519413189317251888575117518415455495683512236215953453293832366685133373494114599844953235341918412639768268618472866188513594424576451266926763939546387545777223757763454939312255874537914625979656881283113328714157657897385248727735834255825329873553281793674246629934415836813268476445682115657548878461942346173616265364829463249184177292698958665981462397421418815515674478224623657677327347127667135461273534888635265889582138839365473536893656161548576589362287713856345689184137875312148246897282725263971473148479672486966574645251336463666593558697274731184598531166322862116964681843952381133138659846946432888872257384387579345228792344321197323939467115938459228332653762482564591289672426327249394559687833372291157297729443352616565237454553457166838771986146791114747183337144516482561174633744116715127619969598743641112465665344636396383332986349249476833246519138656878167571595431913226775778533218914662611944133245811368121321212666717719192416776813513635645781352931839151538117267519973442567558541536478178894545533766813457391343879686555897449515976229839863149917652931654694192622495471575564128221275535934985134551617954366176194646238516917353414198524921628973585334825651879378129429372258496728299654641667458389325321259732442416659615349157978599614576621741215165688594399939879336977941951567925764192185973795482174159215886363651768245324751747253262651275431416219641895879594811964971523553164926996584343623619996936382577778477115339599859639232859986654489289612561435398211484263837166173944188232659479497823996692299483781692657684523283473141259187256225369927378586833926139137843353779661497145627718321223995239316263392994355126758669958352282887916195439921585251234968185264954554185877826339243547444851345689887465136669573635358743757115992637139596432594929783967668156318912851483522823892986742646366146321358591673951158732975581194615739678746821735687674212111472854892664246227665332542743789874254219623144791223476549618584898228171383652663899433383942421232938955119365543575714916937151243927538454987235694974577361363464195949327949498785142666673928327792713495435214616662337529339998268498831432682257379119832732547366158182249253889771762835988694219117221936323181257339737586996796497599921339333956837575954624164614695527459645227863468719114575723275819772284861195765765121573789259126233528426993469769817174188981594755586275499276166663161959998363711327757764378735131226994821192123786453779653146156546937935136294838195159353757392884575176585868776172185259989168415792449925682388475991887784523982135927584622458837824693943232343835473733867649331789872285218581927281466121933991878185596244235843878479463762738446976589892485572498344419573416993542432459895945859298255375874128251385365768244153856274769171985913429884698993178695861866954445687565924693989658134129795238685241621181468323125436395717565978949147973895197538958428264662545458255524823465369191716961115558352794975219645434494999991434269327614935988439869258247279585515266568146788764679473988945475881545339917863229966165947374763716248138795917892416891537814174586388158538217348927169759146394922726569279992794489454357885276448884611591658997833258835442976754114152117916688793574998285658159354554244782461617197825379274919444756925151111711491828734234158423913418428488528499271684887728829251881739571329226274552213194998987159895925837453788899118597276889769252734367636514424253979557513427488825677127559764961894545676324285542233877743148127451827448756111323599264566267913884637492111922362277513138819997458187386378594611251454334233767575393828577827832966298511876433941123978559333329938677764316581582778633655786669327182412159196274936271647393135732963977766484775382355974286658834122787324591118133529946591473774743465823713526778752311336513886213593864115683447567471131428929177443742299442188825736758549446979244364296415176558213956889477382618937567975629341626214131869929611367153494326377776189155946796822425655986493271777773257736497538183589939235212978283764393846644882873685295383291366785969633911987345754272471416174571423613611334898325453493189446477747917139417228763911219144681354943645475297953242352265513537721174529838524737951166517648329226668559391663257343884447368279836571499555868482761993628436417954993747213151326225476329758444732195626921832442978599464298469568929419492535723561587896642577379229158391762818946526178226843754758467532713416958555365848123476223855126245748493828393194231842126627132594343514333532854848849591193252574824246399574857631471489684641112435154891185748786723662935935158552932149513389861116218691296951134226177396261262772641559134236458945773278184352414457251553186871346554362676796131855899198675699333568625385796869249247814353275431293621189765778582262586793335354414512377744692797855524747252592842169743191261845477859565614687873746135151245672255192551827594777471775788135359758893864514971697674142854378252931316656943993659153138565479662682247839128374268472227664511767772354354172488235347192442397174198413728857779192791834953669968799971855512321589562757113919778665531172292141176352152441317152594692691814811445449572581296446894854934315248772627665774497875259532952365133284859436655332856799883929523631925846491824117666454755786959949423142124324179624998466151854784988189421727578966712396371548947645476537284879449568296241933687133666374652695441359763855112794969586841999333357123397797967252189774663585819521749418194718817874248386766616671612419779669247551378843413169139269147993817552578353683899791626629418698344581316575853723874444374232856294225771155326584827243546731249659116221553291572285449192915879861562525634672789333232223798775612863335683751673886917265933493479681247312468646236742234563799557561271416269762335448783953817453479591196871184517376661742475621551449936934374191657629756317352396378879217615668239215825551688296883784443899722732223657615523991378513883854936137492153483783818768947222513126745849187455535491384895936246819384192836379717636194587999579598816977595465237736174763629568238824574999412173571747997843666437884173123221466449138722976529388695996397243776779549647397326975454973676953529464326946756343777164322895137963384988454976243848378347841447775153888184718982799633497342917413782499868756816778997631621362531569344218789355934786746873925961884295953876379637192768869455332742136313939891619666452386628882995526718677636583138146717595673233694441193741842756326855322534882126935298273346867543864116375576168477394627293846232522249686272128757118818182694845958896423524478188758657796971464254675836354251926781549936962366633124749954136613546448134251623834286171464923177611412717769941357854971473678338267348114886821516993929175998723556256634215264653955753342913357861323624139594788253366566782367487749143981458253589135793837464238141238364177336238697869514917619733658856678299947624574954525576732515163861755426753146487834597547153228284624289383931694142796492612429772189928211271474642271231463438537538448355282645752774821953895548371195413576932118488463642195813812352598181181837764927226716876911159857865857623923624284661251256132797372833113365663938943167669748466548748964421613517793568432267719584379621672911681826659764445383619479447527575556112877311839179925859589247672273369999971877758232271194751967174973769845611332549638813887694982267141681523775647428596355743758353391352519962793552166531894629749763913719978123328861849391265941331512587397428315387297214616639788737556287917335155765126789557429154662462194498873374842786427322578714893241827254546694346867114883253366456152414963476952663859254489924629658944281776722915921368349699455349646612284384766791415374318731575246345762948516557974494177224737361726819769313191431726448711436386976742662961992974697467499927424188144249238325773419148839671178773286198831217547431213168265932149738422441184726747953858251253126867991998361844427783417422624299788787593576827686835556617927895652392549121778359894465255734388518663554529343323657152534842792456582943866288342946189463522666324497673389114296894729971136657986643871861278667139826828474161625892878876642344335816553858919498575453916139452822475651531469125659748442376468594168911147849493377191238764412818698612475313639238141915255335184844982392544465279159654185583966344474417853368273137425862168672917258923247954256878355449217397121812125819224812526961879419111182292763684153294789757796696695623889956351569847793462921571942219914538674557227442634679663773773125872316937661823281156434691882278488881536518726729442799678794523311454994774244278237183862313533466755121435831543252338548791946611912133496459753885529389372822822924253787652849471319236318588569885253817181927957869589326162959463643341333926712649569166251196351584615716476531365361876966499448797267794336363787874451898722581296965387814972648972951722961979566983663951114719994965251257183589845239139499398685291114712959843454357396225173582482851946838963477115636123372418574567149944282982443945372491338684387371697775918213748777899657985612661437838647811777356312199459614747438183872839465195184938889154785684761943888388785967846641928476743736114831688175758323494249713875575756714612976716145358329515952416985436524193686212933772366496183625177475633334436594729368767119525152523746267626178984669361212627768942548318895784949875886146793595659379169527822798286789459598144969865715486555473941875634537723798168616252677862949491753425684489248753829615788638582824262491315289461421989731488659875925946353288228296968916752648239613137455157967653443917261973743955678184779335568758464452525719366275632564919674519944995565482197451585876744184967366712351349173922598162469665391852985918895287336133368225553638725224994592135627943654198349912423812241343715388552851675665716986919933194532366451417854323792391272582733969594534219521881828836175148333273625934775844724696394618531757998381657232594953662933674648347964139841981365522714861325947744145828916122573653939941444297491883672274421665857742775184713892959176417572967631798295566845821738278824919761729538974647229282998779178935915947744198799617816663469353742235998317177948617364698524778791389118715497157773122963339918936836696135831596798895217217988561929621183233812699191699388134135186285417677836725785713415827314833362128891473841311551923653935249442221357621541686777831223637561682617468422569137729839973638786947572213459452113984981243919594131351596429531728216229419459761796834375227388198619559574349418982317839548347298152998322263951971653596428938742831642767952949914163785587359422475551335438219524782239844775813456469891722563831143937394783917644432584549832826117747915395148382539783655836337199789219693531573451615187619328185116855196153387347645396327935534919318912249853527146568259683972812582715679931524279874832928197256326774666617924891273365964778498976241782484763769985481757587363986954183457624412849814642377655249647783534774967857291327973486449117351636921696314426123351874884599461152211641173573797765242582327332433586482548717574887135257978111359786941721467845457862548349365234826888723497831626651574498821192769532772554615271117457238346413456523678928434445169682495935269811166868699933439386425928433213318983743634966885336816649861182868233394789467798379933998995972885914381216984811793982771267446836254274861142299388464479223694219526892894814823547885885944353394764953332793847534911494738147424798831189274826216244616419251621493491317688297612163593517578517646767325133883988247378135765538194735248426614427254945422855563826438261731162676169599675121312844751622628785281149195597537611976937288956364377175514265815993585193878514821427968373864453582191387127518549336243428653911119136748387141963467719574754754657321149843847174844781156421775415419383475283566823728359327756386115341858193675856671491165773473816981789946421977826922598736996585553546987164754346574445935583947271677364639162519943536984276784859675938724974857199687984562845792284955341625424471159415588156365559973944475792796636975869485731628812257617676348935412349722773554578329186519492733856637714158415236924574413675759312981485225636328576915362625656644673184646368124514128189635288555663916632333784175883735243888453544296338586883351533936325158312619232981567883745937649944774835848845982659833325978862338591974667245211282313719685797557434799314724832962342289768493935415345726189285418417382112315834267727316223653584211311441713238898629132395534854874897878181879731533652295588866245823532518469422687896234118622194346486213145292761383693454652175623234537856923951399544798996557779112786487571591544724623166734734792438966126168439671886567821199332137628133955913992546228227139132793515799381578622244954667669638888257175122863976271636372245912736534834111317834876414426817189633925225334816383813154644432384484814427897325696791254486515743232552322953311879894231761244356591623816136114993395461474718358329589272782171499746873244167887836734891917936918485699995673455918398288882472319878667933258748567285964199221186842543858533468186672981893881475517873534869577234321398487523964641884169926628939968896547822276254559451812694591478932614721435779613583753192948831181352384751691858223332435317395331468833883877679912153574293726751643811987754544648995224486951994374362947381544324744272665755972398571389243674857354329874371418246264178334527233663441867787612126434247698321576828884563133234776289748568526196875222433646912521483238179678254775827171662713739942749696412777259965921999163156239298729887612497889778674888491418361249891928696664421718657677413426395286155791142112855513242474993319925475477578763193316544824954945372828565332531751494775169453881861627238372355385652157983161246216829645679297643746535649654154736589156955729993545998953357629267162667138827261659453668321337934198692583288144987254176999682891758896914898286911417996755933887766355635543134163752326818196761386748283475771144265746535191117672589627194187594967529918928686724685394693343648389279861728389557167526759893622528514576394258844586159938399442281537146469244582197989798632649792416942855213311888868622775744783366441841179257933684752226583828541535521435118476852952411682425577918951562388963158388346488834425228363492287582329144672455776197923253261929131933379514872581263467683683576567795646922958965312869226464911679132523728615935111912648938995717858229979462772762935718497867552463359276353328599959798475239264479486911241871866835672174998346263753766853838492858965445377893157333897178718884678113429298494125395992762549716616847867595887427826992236915565149814462951573263742854444889384264591684732847212387721198127333782749112285895932583582483116373436235354733235382531668858476619222746919322648881846621558197818172663574647415488948193782473278434671923654182875675843979187829276268523722819456838125133815622348179342431256738549942312773996692626657763335187982112389668127368833519632239827837154999799426298457319412383875579868737668387922742663791967424399163738645346419666734821552889776948882315855711373655599678654148927948423892819273623679334747528213954232323239581746678841683493597918139352291263831514662892152731533567676572854814269358554636678825582148334614921755691853419392741843765114595578927113343362444427783192542987879669893119242673342551784882578435213422336583725861828286333165485726838477638123994713436732178639212948682493582862214666773535435639488527775952151417983235668121968719386871165186674985441233228988826492598986553841484586797596276826964653217481428757326965573254631995315853983758469164692815268268678162359614351255695775282117754469674635859874433999518617362697654997482378611998848698324583138527255372942121814764584831144985611127211312483758197471585863423334935955293468366993942327548769163568976223847426729739484359365592389911283735395268116341365815833723739893422827537141176546128389441439651733484188284648249967711853718761998397215568373268738823173858847676375731548763446326524788562238845318352127361881432691547669443863688788414473425584528274116392659317258676716154415222522151215245859516967672922433575779899293777636233889871913369736695624972635356525412412737518268638126279684336775816978628535387287714662984449929416277911549248918354442775766586113893846749439355687755221778389568852426368283532396817764692448232454879686849868547294653886617743929777451246988698153222873645736613347361858627312533699744326767181717781542252293563437657323922983659792817927263415169781183272436396576267874923429387385412545265611127895295537354173523766261621732311729252786283534698115277239359321335413921264513424839552477398322751942156317539712755882511333397491595125777647712281331363692221269761236889551778791637875996192867979467413378248291878276766953541575215432345164132849326899153189519943266651953226147536441748587472686251255457151693345318156883841455469994598558872292196664847872317216545399266385484939413199221839474893818426854257977375286178114393562393878183689496815411211639875994371288457376956386496549436836252261114621215743373926758341755971961232342716933224788422495881876898912282674895254994143521597276177185242621136335727968117735221838353494417948319996786568971953887936466959879778347882778774852554299894762548453141298165441596814673148182726828938734267217786144347146128699482254569279847541853657348196825949475282164727792956679368951543371889885355925119675512315448665643521945536937894455564117854417568553185788367781237536392632277121339787423172184735345397414116147995645843841222736165796117611299653136328339582188568267817926881984594437365563328133723494972169319751366722932734995144531636466221357827919263562964317359894415439111789796841936447962739269692592459338813894527124296292151289325247127396647458667276381499231744345154527242917625242271193165498884234948138789293411419524943822243536338197116347377228522784896148671589381814541242183161431145812869877857199223311626659643123297165739439352672623277231443651366728652676643884112724757912836597363519173341642613188778861419235465462776731881288955731771683128564721293281219194656733781982738191119437446244599162339227491199119932665279538524647668387396296288344752693355719365184813322939653127177411972817215585726818764965663313489568189637988567424728275395633579486347946791433694511941492639467981774242375633874976895158194692658972298541838224894318197466521328426271254175445764574319751872524131246543976333788299163131272573586138324857124833738931947984333735566841633925287979163861384557912594546637244741646913939375864812355817522985158639823748225594629211951148532484365448359699151871755868611848155587313262967943927493253235131488218324419193394934248469952899619449779679898281594239224384254277944991989617655178978317621838523922999869524129896627268251913184274269111392381833559263353461777183984913131113357273587633699417785985287297422128356827287926685173681319949142867357155745494911259278163165141755561834454743648555369555967123567549984347612357772627212913259894882325966182758829429598814883171181676274249939972831611989286294351868382285161242192189997596821996724932438442659858856496987177658841973727771755439979567264819693689951627773215212157763253911279163234881912512527273497687793599892279379519769387515173732982872988825766622638379887249347414493284648311464381268883715436866184457267313521537415664217673371614339949291353173548858415642683914998826841148382155895458526796295866549633469465954489249799317793336289415452846275187857776545777386236669753359757333999533999738241796761985849561751514793765578446912989473229375234513868315148749838754165193425865141861364136918684999588638214598584411713392151358387959859319156496357576771714522226181912816545169726283253593614222313572925422383891215355515836156383485816944213223657118581285714131522114525737191899658556126328359469891353853832876631222854568593363387663854931583515778135864199328984168551599748125918373682513391695549489353263644362629779998167592548454668822148399156956741589533368624494617327332726389338261497148487747569182362881813629758463291764419327443531619862736662771756197928652895755731993449516571188669424613287559648873722269366123964324531275138815976182116698984226568665177847344752851521399629174821327992615989153114123985781261392982142639435735236424882797825123236379222794196746924183763364586213924982392755455644819236573983375573791965398853344256784982319665834819348234456761348637747593175356381183427984816778442182389724342349572269449116749948256927451474311436269251733627422914638765195137652566548891532722185842241743397453196984936188385769762845964797917585876584312867644826312681371919386834354431183365986143169159887569885226134451838432637532519155134445936472454286357999241144656989573219244452976765688573936523469669574818995562928866968419745619546827616152354121616445429778722393953668873274234768288964736766951316193399722178886672144619114245743863833931718365468828738241595781163255225951486178831644783161156372884378316813596659937233248864952469279859918563445257361237531766674448339174318623457351994869426748671478898659774518587973824487234371159914882232971567748966779996191881368469557613286173649548938126242877732472699296459492295996519686369596655565119939248647387235859698352898218191915668385998373232957226846745736292821398225347523245727382845353444374275619451663934752925359693928335885629676978353335758716918739218771637114827141426386877659561426489189462266217635312966811843471479316422832584124299779754999936957578661728129438385251558451135763527588488331159565419253256723864512331253357183523348662223498748972986211818251484249351589453239327946826731868262196144978281113796387859945852951454752551551821458234126691775729293248294265299912213862729299218432341566975865886151223142142883997943438815492916828923226294583277411392639811582383494113461777416425486466494532761161316463192633162797336768834831869396494656852921653318181554539569997452937139183493292246588434333957251853651981399414952894225529234318473552581421715784216646557977624969916957917585885448983789441737527221911658236551359616439512154774755828621276299958582431536713177558311336735631577619753323539274184916678241188848722934285191418799457261367942712895113513542321255762777561631819329669813934958524681336499469381236916299684445794726355181197111612339388622271542266663563363432455473323341474588145492627859184421633965913262165693754428327658612888367583598857223654485949899877694343482376988233571164843739578892149266754567723719983255192771974878454799469629527733132298185463296455381342283854166375973418627263689614822196591117614745515321588548728928467567227682942563499344925896741487117755959184234147548836381427237713387295617912654537154996718577795413863564638161766155624461949561747992453259214729271516598535699298423637548918725664323175635443275537289861622187518615257581817341858823785983622582997646615338314185463841993232339184644176916394649914913326357344598884474993456346645856371184432211447846171614157642277266588798643416812962376931956662211168832153643838955637522286217293985189343525398862493611321839128526459791221115255495516488499232775645656757271619959687326338395858313977583633436485125637466851672778435778922549951493249613671747589156847992886735938999246229957752445135292674275954767489364948171674982258456941317144851344151218496619554947177671165189484413242712546931536293398796645874288347591184947555875653216593911745474472875529196451751219519572919356533974863516562583432369459384836133519659396443585612547465748341679544464887245795857583146869727661196474187556139777972657528284283629128772275242838984625433751912814561787211382171432874947947227474442151179376229385689382193739973278284991513341788627826188985382998398438662641582173771569998287916849614767796912168225114821512976835291861459556377777157198385867477354388324852528233931759245962796933845221252973266321243639788389653164189276591913135487255172837233531547976976289717432927111722164118796394921771412694413374571861749267549426566616956273528514568483237978514165759276326167513341453249981396851667388884534757792914883812486552279858381555324314792873911555662555274228639951329416696651217252767189842837757788347781892525682479252334898665378947136276734861675718286852479173775382855129177657365958186983259677752263179725352855652341545413167273579541965949593615759278485112349182167561498559114132858358471388374138157912813114289994741868686998893574654753161951334399168657425762927382687672594824828683224681881518667324463854225973285643639779635355582865177663872336487345296611268234741496783896334167576135141853326355922281613918655157651636868593973181251532386791455498984632728136141193212872825345143495566468953161482458548163465615151786582777795849683488724264578546183269848223271328178475732574183397369181487417114852423471868196722739757497198583514851836636297361346964674511752136128761381117939516873213277381881657775775377328815125332159927183841317744454244645966251152859932152624969473725111625629794686891853347273444955815477246694263257471187339613184619333872296512147246768738136487399577696337441144619472274712432478137658272176436373479849982918711464272488912547774647636636596533958985766718575739582154683335419216783352288661599613951273594424981295324278328178463479639161468477897215936844561898769655681427916717219872338218874848497427927598217995217927714986714346137785596394715496967354935467859538976694165494998624915431216168856415791248447388688229231746522152422435277815763474486458199183225458766445811147375811698697828343118642112215931311469229799524624487698798271312337248117168431767516375192113135749551145976851682219717818912586439334629314372583453243933971513546797726153381526728821127268311879541254463414976667668374114981834838374514891455121747147434416889615945425359869833645287638297167652273518484366529947799618315958166416234569991894562422242636432862574829718798144385498551173369316777647526239557985638746152882458112743364298887351223618886931632815239649427142153423281773745824336379221824938269477454727198522138949122314139956691852661412514397298328631516165941295245286525234965727768353757666279698248652946516272896161726333371194758843583189269866837459677665949823161458365349712457314969463454659674519933894137757153198223686454783774954256931525733635793447715873367683274226697959439662323899135774991293762457478334465644446914283212387512158961296641183573981291328968163858967522519766954963185871677851646487537483978373561948195679632361913651847675921923613268932248138383377133524415775971862976789527754356598847324612687885444374948463913785416766824612145463856573862939569145726177289615878536612893849732293891417367755687246325597451569849889595369637332862491145181964851791227179712886916129428415898868879576355534125625656487866642428365891332734194558287864327569385754785748147481398165496142961435784267961519637434864477563596964381976936888622997334188448844363359852529361469183381224896322437411451377392211428438827458692223267274814133165818678413252373678385675967273743499339445572828646193699316569798622566822984758457615435171941792946437526981725475828315498467441183744323494731311932471217941848122453772944964157284294977962873826273266552856674883271866133223729946581675222519735722314525786779327364886937898469589831318875787423791482962717745627636413971513881829915174648198752393589639817987766364637426282419668521491178745361723465184124179721759856621156117352849151547418484368821825426241434327262893731156847927359953875296923992264179662342877752938447138327433839685717995668761515217138771154912482171536382441862454321324514741847889318551536572984815265627692378219845986633621911326778437454374357645388559541562237961615932366929538483426372384961921413537929863699822438665951153982334126893161952185841446431639841253843947131348722745477431314328591684486498259433769592421843671638866594329243428367318472739782577226646551782517247974247915161772325979937987791497892592887964184571464162831869649678856442749287222627699675638585251894967865477648397364726455979848234821368931758464835469846721534815831633517443725261134696648828311354513356528833835384847629448474724948679363546965358199823769931424271286331826241138811276278119526624155237759642533549246956897459754266821784935289192787376919874299771858141658567726342832718227183167961925761533946137298119627923617699264296481883612413364855114863678188626794955285419794194571736545316875269667197165474821884547857534959816515222657938917349135777162143684195369842642466367734439633781199525498563688223984327278457556596946782841761858279896731475934617285279235218935814576514995456963589391812713283539179368894389537356446596794947844761549867719545177726396789363738682467137971478239658126142295152298891686633436381291685813318426196254796938556555624994324945654258637329965519952249561864329644496127113453437452416382793666985596286421544289318845115261859398916548693929841524125641715734525168717998872833343696666128461865645435112193426675232733669644118531941141472938541613868613113864757741776878523663948719919285549223289856617873166946826733187997216171641318513296678242458937647245217337178387844557781573247852362894682419292556114252464149265243512643451585296619645959855368618762186144544913967461335761632416595288532722116751674159292342889398941113314778735249169283362281973984314581453757753562786795693981391658673957613959937696165353373437284468139324316866472886123255873319112933353939465444146361756975866958184365292735148654628224781375173417827989482146598228587514111241821528446551289919757597897811893943775321229118984633312982961244321842743654432794924211397391622615778933375445735945154783735885242145361694276669165532794272686789396366663228134466535851119786796321877988771217651245346194753374352958825835691694226636991328753747628191569519721472972183866149691589445485255292377476642255214152995523847356473229774988498794993435618332879189167554284152341574944667844642657381718993137174466722415778932551619499792499845417546913685849799638517736519949584273432915774746585258788672639857189369737189748243921888131115622437319918871684785863655665117249879759546593861446692156556161147912856494789733383476939546548239414843292273581627219262715626557839159155414355966871142592136728713528157472977554558596719379141382286723819555991651311247949977976546827872461434454456959847533186667355579422646171665648291598155889235267429936982446164293198567388894436418997939545854253989527486829469359942795289684782632361843778692586664171939496468685778946796843398715797637373141597381859333662432911673398692642369455277433556646693732681745871695112753998461919282349313789748348314683337427445569499667442265986344476118742288126172715821428941478978841958659355415897747531657344927112876781212692355917952685977777744412523671685265769827314862545885825173141547913974694989134511193599693646345443792181992343441681559614236769828136125348472539565434646313384996586911757918955387651371598997446146111799685193767785624494147649241119167576732498961399694257261162177624286336111949989394919925112773181693293395283112493284773849147196225544852253481517765148142642163596982196334274959543246491516855354553964381675529843462412987522755951379336877659886126215856921415543375843597575176686161652683135242625874511818465971825173274798851336677657484879862358576944729642398953681166942267823497858612831625884889572688269597273934226268656924761918734683399593813519373854339231994451689639818259175351662584673818865737617422217742687845292462147629379919931784942516124251365917843824726784167317818323338839412774244721127757337257481362291378682844955619242857694519629746584678952323336311979329379143782947832863185616692514439444692696368554751311869929342374534683228964338368335226249356718966277163485219143554156971641336853668896317311555768356419432927262151671291245629555975817198615899856876788349383771251869639298183769248962879256252247198918716162984879857862386498197988658255243628593178396734534311975879393454213419238881244474561948957283592722644423537763118291885592741813167318659226326935993442615585881411264175696298687821171439817958954369818428275867854986967561355681551383289664359747424178993559594632839786121184625822611855794166248917528516767348318383742147749549292942516231959677841954728762679664614226311277752757118864931987247568278174858123633419711888412256953769245945397547416585335349835191114498817659391837359872754253243581362827845838553439684998113361377467151623468511559738548764781436131282517367292164828783961193795612843568288284665334639728977447512757565373638251413464152886526681346763925731779996491578939688612267558929886875414552354291151266711691588166515951174494598414885944982797346741858287526356745228417576299773846655496929583985734471889765148713232734762961342669757534937797919171537634556723676428611369951966198841194665832563322258233138727582599855438573794827639842693242381365898545615985758631879194231157626461839228782544521521723737588114195927775839271312374556284984383874541923849869887241758146465642985176459225214836991794439793891317832754364646225293526584773783475651976329932359591139496775921485462993875919858952881458839867494582769369244828996131813789429757923837742133932534414671422386967341114126398431771228269387873597597898427351237338154973651819558237969684685328113518653632577278964722181511411541395658794422217588686536566619638174754174285842699232777237281188352559968441699412579392199196822175862715754594651589678577258245632782266595859817764591216921573642756495871762436876886486323677651379867933165542229747478636389317282975161424645518135887495426145322628761113542444833672214797227379944954298343724871181459961787681976385117278665663698585553219397724224731696151419157693713622393694976135639659564313583755963133528111563427374695943226693915146956993234961329793915654743247732421633927949827218553837249812143196297972753562217488992972276565283861945171391847646734849586993378252669687661324976369298797924738795653417449737353372142732994862326457299962787914117269357633855589198185253842342967873545819256255954478552675751537671151965579164481345491875818675679665123917456369719796375133589535845136869586455224751353511344737329795733377898264288438353634356135498625214119427359975337552154593354663174816521427839584789237441717113583945975658515973784418588298537721227662413888957487145954897568579135365544438967661165534171927829344787119815561466819315297778693161762642187223713523123799668865821184282893262323625894759534916915433592627839191579834676176666998238398172971916889246742398896618447244339329717632295434114764517321543554534286315746257523863474437673925433954527241772967295537283374727922353966133238947398817244515216241426939341135854644347797297721863454377489963226641398918779654788116854738151693632522389234612323996268163922274415634436896127216721626827134464816259728329838511562243745279559264135756748578424537891216262967379744317945787248828838544541266239549243622245926718542985811422476389542755156725568657147179396833886951365826362137739536456938116681625187613715476328953545344893954452113383721343137371894373467793993221492416618344214529766445625937966995556368689942897541913485261669115621588561551395384422938874783245193939184113441883865642929223732925923324656625819363554476748941332652996668148974318655229992924188278734538414735588891799972379186958311132494841731798685712619395125127267441512581348818968887389791596138189336459239925713531499548152959861496318381769923952895699784661618338147113993298476845613979838751645345434744471154515811793567621934577842278272432892861125776769116789796593744824991891467934833412379828181553842731756449722951188868767813986157123667538624621495362841939533335591233184345275792985977731143591524712125643122298685367362511652922124578788998767283918158293384385633311281955673853657467686113466685613697154348683338997586733382752911725157716139938567238467532622693187757469342288881636368421679877453297921238816868484225282159694813594516386862699912528634583863913354971447596486528479727993384528814858616254795633694373692953732927766479758311558876136221474674241868742563517484195617743999412488241397656275574133686885715953767895449157683886244821382876241729353257816183697987916183685656581886456964224811591118266732379457882478799179929129845417634468236473242148939831714253815241964591794896689551621834214728614943922392859794655738248619579873163283267146591963777537464341555863189782321326673235962284348724932899922942699811396424837619992279961164213984113644917766655762657662172369669823313978633999155719816942897888198485237536431791781274464141949767279822454333381317743945938885493474428741978998761954546324764981322175271971635729153774158346367375882878832492317574978792328955423518382411631377653422544337768818746776837844499731874196752642595972553237566538415713388541691188133455111643482753189824863961674828427361498573779751247423589779591236376934291165267799938995845856573165363478784563555334717292748134461697465829164587858567739533869738464845732278843597359212478449185568131157822171796715852676583938722836597714784344738975423725686668227888356679952739261442889456266954768335229382218241438374798383668491992731949654786612871798964893882155158914482831117276172441628824328128346338439147633776737528939731554186928732485652224774657529565853445227454898899276639381336611955476919478268275737654676237222758259186813619972736193716427582486285865135823185684843374921259867344646227335773167394685719786499864365196564779498647227174613687814313949315243197618316667815686915299129443753413242788477825316725627551724955167336163843364835485139191585892524229383628991338839838866455515816645896776618391372158583132593165553121661399325429278469619715359551596636547988995632682552175929168629264853642184243387383775661432448722985194516725342618965197231913119428658321754814711291814794194134799521685874344344324694983475754516655142565888119478666894369719364867813381282128884553878748665951621858855156733278456219965459411485269664336642476886773317247385891866288743979566243463176613183258766639826662285511727477785899664236997663771222282929687166822334932577854956175356214819492424896953736122627142652133961192479164326827978681846948133232378373694275863529694387999213339145494611287448417726315324445349778138256779528379799321554168145748653221161787657567423839632116761962977945711447189361124314889886972665134158766682793123491377754929421726582149318418747664338719542613251365285926778443875735588658863899417898376219486849396151836225155735561162999573392916988699194666922117215143372462959819818164655766375879987233337217177883348694221787676387511239836615837686817975533951711723695345637476966643176279241211461884355173678222428826839748874853286784949761882773255138925391518986379345334391525928818327358155683517928348388779659481116991558717398223941628663591511191145995634535728788545874724723735225676939491368212589952324585197455147886812522668563584742331974468146716867124851198561683678115828478154854249248984842298199471217923487899613592784883692438447148376155926254222691858981634437254758339755276336311999951483988464386251667198718696591628927753971585632249991769318461252726913951514626526482322258263343944239279431973621753857674896271583498231338579544739596875592439667479592448293575413891248471236963813936755991432721643561572268448621295685627788752997944259882644753111663331995183687992879923388588544756755244511299376368585344187462935549889897824349188511819655737271158947519942931781761624287795899683442235317365231382799478947894937239659375798826975812585264665467333259628419186566624931485812434748699448436883443836864445487741499343265744886269645977325988938852166621818434388675396783686369364926986828246192532999347773697199787368173563714893827583752561328954851117277656838476641886717592776886513258731568121299769598675263812126998954755764539479137653823134614417762238681517429274466657118349195328975126768674811464254178977389185677243989479415738135812549447894617816744664146847428561514293544124786943346829652398337746989481658343566137182212844697194132176918264876464675758196715117214795619876522888343143613214823383733628261347162464634834116433696756652685482427878351662284443917663731259299866689745854387577234495319228184753626119428975687826456367166431682281113899357147672297813354412529621818744437184314884118548689542421383526325635922313167914757888916367888242642863277758133812612327986718862948245828631822961192771241136311125495367437424533691624627246247576192734556818177938489112625472171243688257954656495285456884971994242956742196645954487165452451864858522522164568816512956281256641472523629875745395489897822465492543794681144563191979651886325478547994997353542548493471193538371971358173327469298546535777594681525422544279189932475843582839872392545752759633879253591683661689843317473435592426665714968827799919746978438569234695889762431421395883714461263621118173216247366744814349255316417213524938753336616939944475914525856359135346916597471797197557933557459774463812649718417961744188723591936215379149971575648957718167141651277181968925479264843749543498495193188888425331514877611949769369577254185617647135685778655571418133541989544255614171835372412214356445388693253459532959989291535257574434547772625719697626667162728252415172334714664315879666648543572988211579836267533599243996153341162118971586249477382571175498493593399448951898536773779129858198337252947826768335593493378177898514596287744456895135462268748688938546221556234637963178952799583336846881394656453659433693459772355934953318842196938278423489594986379619383582174992733969819296734773611849156436498693573482153411661745638262712469696843948367224296649556625649619283566282994222775629279544594492658266345556723274181934373623777482116459122338627629137397664292492946847151712562465994659968197281763558438565611188443338137745811256988735184193936259153735216319817671178576768482286467867488468124131868544273481825612349275886377454287514642624174197914481128743162893265326633933623862964728933293417739481773924319584756448757877659487564755275223697231995683437475239595922423671384473839173719211151541682948966293476463533444458492369542247856184639962195449178394248451235744995972982425432251564399313875264752759882413528675194934291617172345234364695462861142451322938142654889339664748743878918291895958336158814387161356146955934328242746536955651574278862254675498452914698152219526392326774212957958497212312353862983649858143836666266396421596685849734546828474981519131188737111973226797634812961764772635334412633211954344329496862824345766829148123446777615182263595162643436247472147698216323461956919253866513595365975596632726327242318858198633111468131292823536765549349191492347239148329562936471414313443565268162883738821467597727151296611517685857638764413174778797357497955539282958378586854722446175779222239414141978563735868464931852963884296284921383767513895969156334643361762679856596775271265798952377232399274823489815812379174282895924949222549428999126922421411792185196241172869661253485424492591119513519585441566694945374523423374514451894939598893329662812137478793682175134893124979951252988658817124516895196493487392589354244745175764264692939658796731134417814379674944125979759411424753333759616919211688663593534898222386247837656725572729963351162299713485958521167228115239234342212441835786782493293615537852172315397765333451679831273957155274693368779815962843869154859266624841618588974158434238694429961444394142837233165377236477364317735139212924139556269815532862433935845937348283819679231317351633116618332248528475297326141913214764687691442278797318913192312677126785729846695435125424544611493969421394964387798229573833963258188217583811479391246528723836634544382562519327342883645936588932359595545567281268532824462254378227661116725621473544871984312233888888469732857192478376717929197986711683767457494222792573482178649697953588326648696744972177831799475633354817767341626724417475313665988478134657629381611357777843331257869324974711762787453937369375959871368738895963697889415442746733749612481876126894834368331893266116244339941511884319942931246746361683676727615925817919913487913961328889558941421111182339929216337195959843864975963195986816327127512385661957343533921491932722562791156242864227499447431412547717712435512923551585127156211971552774124215369497818414133119164221533842367296965715917317314626767852176785472833333953764125671365462949566659872976243553911937473666693256134221835179459452199354894118611122195592427361559474663162833824933472513237273199365561643824216442692794521711646283255337657382441529861831995693717339884622755695672654743292472184973334497857324368642852198397684997346111642868722916115723479669373873836913773864454725942818735112484974241516831112686775458859187375787738312311459835461354243871358931751871816787234258652749764565439416486844667971726989755192634564192686142637699287153561624968368426928971739547242487449635541383864661623666289326159912456473758914165312828759354244478925279168464885956722746169496287793598444621116787759356285893562612544796816463948963581961216466519988457984387173321326435971521398143731157845976197639126267386199373476241547147719721337955554579717312454158828798712495951317366896931434296974745884469398925413196938448935398766293122892242549932864557976752361552521745888772947482978443568522674647124889974612698543788539786148649137924365434277455298166569423325995422754162896316192557488719299731915311489999599643382152971853832353399279128972391416593667749964292119921717836865414651334129538638439588261857477743755157199853694442358432169732997512191176235577693435531413613352462569972338188222764714954278324559357588386197264534928226156482417164972482298549821643246884935629197245464217178232345913315766776489934344951864987467787264731269152585889854243788457163535542456494971855269437262967229664788337724698214156772957668524892724475744564968445528374126316466714278524898733184899392912457127434274454326523713741732966668399616141462994274536518785241968838433558648955298847696121116988831164927713232915774476476964746642133793125214682118655239594166258537628238696697351662622826532365136749588157772636897977631756248722671474141114783589242217621583548576879979357585497697268216359296783679494142571329935735369179646894733945281113195568884781644223596699197197417743529797852263512979869578317871123981775882232217184932752528529728774263364574283575648771523384252566782138446783146924965193596543122224957516829312796115344988189281585346718748816516939318215934972594265938628359942862562165362421836229181815688864921217543664647257155134593368659651393558922537342745284319264128947392984245869132439769686887772391598712386188222288255644391339368149267865685794498951379392137921746412759338767452579488591283255785859882657382538456314223537915589467522249481126635157319898337263814927855955518114734513435141332623317692252152424674816321343494624474488583623979369989813152513939378927187375391187168463513796713615213949458366172798948317878228537721755471177256948879557358112783846373471994588464317933733811184711148936475119431212485666663944947749366776798618836283858132435199935592151821684312486288421838621168264245394524641369189961833838744166675826289315114119292374148544182664182113512812631856369993492548756856186267329494929818247482166741459955787626916896699437442916941746193854345824473415148239822784394569982463791939423245926294612957746871249222154468858368717892556942155967162597262197857536781284479974689739345444228762328345672568826878791244555322344266533679569146826831374795839135677944799794375868885254736538186689958838345731497823284846735283288169884455485266384767339758975771658883321736455719442416183659615483624696222682525754352417466794955313925162214678993144768438723253544831149497286599765698469684828219194132751499365824641598871689689893177196922493847896773622671659856555946165349837483754821865849373876472896778317681153148511348614242429986827464569753412445296628641548219855291156386438948499353396117992511594123665549377212432143731881821332586149856667719893276253125146285677663319979758166579772274882359914235111986772337295212671795785197417486154285984413569548996496135763458666154474639583372911513988324279674992364312537627668856678985841241266686738599255931698486769873898457929758663155215843418385565319981866722937438822152769325755743738399382125796899866787351624886614632733293771667235841892278649112363582748813525988978175939748855113287966217696482288682654329839147633343992649758525569892874877449663852915869511166955122488931886161251637577663256658786489577173286258915551866422279727664361578193973337493133131112667184121838114446165367661651726414715688498821427853598454525166426985634395437111459394636942573152613842374984918937471873929335485668686183474276893881282114441897666154491717386574572672925994659155493454172627964932112511855769298434641882588979989139914479378121473452699486373275175512339141277413562499826243759188221223131869916245137641894713524535836712712316827571561939272424817577656877358115241143949181561117662348973772286278463371416415172184882158265783628845765315812811388493218686746519986425985175294832133981554114192533121536936318421718644943433685876837411149771749614998241488866347178972949913963252165913878411127814996887173397584184252172172853151739446575333521945943141315519672516163574736729313615536975843184688835398778698849382879462569827619228995754637455632568624695345156844418761495867913774132546851444864631669146846112493446931974351713767772355755874128791797122981257925149594982483253221822921934626128968456584797919189271264524135821755293662352259276283535846327382819956181386213829963446867585765759357376896167163395781549894458374992571177663892468493481726643132178165622811946886924186748942147844496575479966557865438212315997327775211116641426758679889288891577987987551683367114882889678625394192646694938528916985843613243442595165456218187675158228531854114529153562469116522342284269669811615852986876437551659974821791759334322898531376342238511579453365687876629745369461221156881226674242793576183928938834522633289693663829438518392184435587785634899271912752682799132579247591988884885951217377279326139788675544822326325143649561162931786321592633144647891646542734893514554626821273762814468541938269525875456454638728255899882687537923368983355115929498376434177778194782915416897747664296594261969337427957447219865274822247243165796571223733718215586619322527185533643825195894343893734875564926371553951331764143395682138439946181285228283586816255467189984573599919738165645269685383271528667657529325878294252579787848594158719631197926321478347819668964733684684464886913746427373268421788946462859349623254871175827775578295271115166379645743124781247147564574888315368733944312335939675912399129436318592722944536383873992893746365114285378619247414712882154679271597914664587228488665761137134973753119457269817663139132744231415695539235125671983886969372312751294116618154152431926842162236256556295911315447438912127239744398898377317641383163273975858377956774585358276372687875359266861537884298915442589276691516282234712231921554593418977928436649898122912947397437324925757399289171171365884527248548993623539527534549937478183736514876928961692956847574472644195561163957816181575323658713912567553648327926963574638598899934779943764455941287551298167859216198264698182191735754659345155645562819517716779144418422835488824894854514181985334155146674455734117458756755276572985642966448748574348912328866954417494936719556779561682567252693232624284148716652529666372429642783291594463917168914531672425594713752187387174763115262393753112386485112899176476982112385496623351761941857384972173191549999335391384368986373479779723612634953181417295622868734695856918413611639248691785557817482882713963925848697675129811547636896182273657417265576546491253643231447713343958314957586592864986121781914298938223961521587985586463554864646467664514663251688133467743186633387637984297156957294866255717844697485695399785594779474855438886524173492379828294132416848626367654893139891519992131524375812567745138816966756859819237796752425918798384958533313325184757899389148877362115345567965321998736739515131341763319894435415286759699112245199421219642272581245195996118428451461324429678581181671179911745771692134971738847784791781764129289371668621483162441399454764782699654416345631764782627894361521475795327771736115367136462413538996427294267767282985521569793482124832247814532629159185154393484866979751993153956955459778927383871845734948234728352228899537714687251444367628342553333375845293918842376828642796928235629138419193328811764833425347798681422221543323378761992425174833964175138358586242241461877351446734135949787391323359336951994556767252129738768173915591598834491224225198853761951499448221651562883481266432425454487219355391488726732364496841279998823342378149612747277751778556348552578472332495211885852696229965121858981129639617991249762557158133839842793653252255222276869563746621779934258362784899465421684356213295428145322691637158127531152359791614135285336931842485589524583453845363685288352599948888226561744151428836651899783561483138191596537319965934992248275377176115657486373764164277974411227628273812448614919326113443454115833113256916496338838153496797279489693392832454225931259728425253112329492626947539535395136559751872729972564216258687981624698666646524679999614361958999468115667319566455415731735524549249615325361815235797769219643567427858364344767236792712666893544228855367644356735885931619863274168485247553124593994955931248644581983638749289377772364477141387466638392219946713828355958976692254983193985566747552946833483597885194383838492147349813151299977366785967817811524584698616493238896293963542584933371131769983762471665819967358476488444432697744788279265789636253997439589262521446343729571196396937976881133166771841888888427918616383276482848822991878528219969486794231324195294161922721616544113435457757365671652722883536847178523297714279245317576728292888731158728135158578316777595774556551322125528466186653392759194647659759112937544298427692591855519374374376929329261829969144584321748165656677584665551454692133196892356823562717352287646748947626641222566546261388933515419951624635661224731748531781221125966418775885356331974942952142548169845223647369256549533736879676558869234949864497259422998956499376388562447777482323523317746763482238362938666697949179753328656758484577323882575372245466229885523968581869916433657983694472833127976952942484738437676923115326193597671728292934581272472992592751497469288479638745873962111374314959877614676438916292312338648932929678934667546156276388152845135882784139773377884413116381682279238531488614383633833541498615638379497168587848929364394254525343372187845418219225544859299724832938691142841763216579498469752744513616789855964511449286949224473734212276562813847854358269595658977174729911284879284998838494191798169959167343362541434254453422228113918742957111233547971222423223413376461161173336823834165376527733469465373595176468664271822594739756272321737362138444426566837812419542513239431165416152745314544586537848671686126639683123476714457931888846547989957258486155489282369944576275169884733227666674789672939536142928479682357894172139222174767858686634767536743936847953318983751313577221894286779355575464638658895517496694251284631167418264933573112571895913354361891716998246436684572152377712682552251963595154319515632482549695619614944549778728271399544513863822226559426287194134178327513775985441472989588981387118757924493945971958916795713423187889228492988883773342813153361147868698876665833166247352677671466225193758131337931564612377313824422576378399983837398335155336577724451179967241968681285628274845169176163776862631649199816288794611316573159311365264155763443893823461765685612128432887131429599835792259719712554622235255113985564578448318452693826231621917453889633453386346627238281271915284156491517242613325134242242651955584434238398529122336448513597145487899528369351484827676815627145713653488494532823479961431124584759197836278349586463515516855229129612328142181726966416971493494363483295493364851489987926265581618936465689164192999781296734785576112579464774863621648221579825526552498864249492466176224194646282339995328357383891412711264672793683125849567845785845851327386645945428464957525999574594232884288729446849581979726165487555973734578152999986856453879425812174521225314211784318585526896813354265786915172493241672362942166581949549945285498466581665771238323266159657996822369426993815635831444499998671616648136416778342385724714561529163976596273997125685955299132947323873479678278727111621523626248524762628435396896957899141654416872933766275755449137132997436914116381797362716527218398931521729247316933183644353272964915885797528112319573896123219588966435276976197844124724934872658291717395894588889141432818964783852671959397164867891979876234318565559488184561159255932644975729265114811257162166568613999461477986266271986171626587776623659247853579567154116753439971245158733979825529831496738616628123885282253695687625287947598391578195211459817569986681338147194884313357237964752419332145845323553766487164439669582684278598732898546242585351298457864512475664497119267682619445221461697143482972996745815749259196255759187185363937416871775783488762769467784176716392379736165731996822599886456884919873478841831412551439853432731797144817989829164196871212275343957227926898793993579598696131414936727296955254591339298799739122583212796222551573383152115996155464433134189126443646836326821256688982398291643916588211782716465353472282144435973883852931567982218226239662258337592694649336436357879725848752312461734655298712597479752627748884856112629391539366241392176854238738889728851777381329526199412274153933798765584414355755794822226418677453881221535919478849961699456991279279223523558223119268183772898795696856182913223128837294372141591174772762982383176684912125264161427694782911226675165376781186138787256336247814221737294393886764477989694374684647365774962427753442491736184448963429725956522844974846544878673815786361711795273665318686352632188615785864381446966724358419628588846412639762268728152892842589473993165921136897613791874933858157353744846426276445432823998884518783156788395838369432639598738516711378987469285227288237911851321446235861788299827639338313424457969456424143115777598438661985772616238541842398957889635534181241754516589618493181134586885899875115654524444751753111788157944335899151484659623813971685468791261165193456326597784742376145251256655789499159726181117722336341895263192186867555565147258773852368576675351896332845569446622747494151675654276451896738481453192517453927345879859422259184483532167469173569444275389296635887994638536772615122549468812489978342194669729311354279969197185817825172943864888296192111798269841447542726994814312411489396278222955925614984215446573392719621725216776165584917554773853715775296762478725226759227412572949469925153834244718729459516789535516911284516767548474413872733273664762191776539476696873955262536712811878529446995583877383435194274251111944633981267895137525833257248232585872888466868529992317121833971347516253748588587617318471667791432956229966894564284812977546679673374269749294593783969623169835243559433331671859245286392285798943875197164148952459978296565348525925629923717942829737374797548929461352632315497359166344187888724839982113641365152685173761531814892992155279674833331595637616185274379695542924256194657317894411728576121113426926371991589911181738339431552144671651617698585668491323467462728772742481238785523555671416588255428565578447788122588529167883414159686429987689847778784361692995864585574242935692559785845944529866314717719267313271764156497374914265835641469676732146775592872187569933978736388492958486673771426418784566195933138877523799731452229566265657859537269437399334445391716261835887493336866888323742712436419887526858444812723886167289839717459933865246318696282791682642486279565178618457966146913257275893747244184827613216715121737217379182471652412622192683555365892789817972992164263329565981458526317194184399615836782261295947577266674892752235792828738212868674222512776898368559222943127874386446593172917841752856148736254687326533623495461645148812335693314856127245772735248919141591711186786419976948451142144284154262621251147722555569663171385689841755858521674221966263181547511586162714759269255862168923753812596566732657562137234135319588537263746891556658361763183831772488752339384848565531728919987124789822849222978421492383379972449332415227424265294322537524548551571192733948457768721563925751718717878172815572343488568144994764442247327764887125761564953338762785417273552253628674958381146314855471715729171846232158263784258595655136833816438634338596821659914416988369891643975835415461352682388215985949336719339864898956974884372665587257978745134818495773199365713428116879382662491878187993553784584161988144373449246735971348696992989793221355359821328342111699687567868893227199222945945983852617374163273972794777361668943192629925233521698965581647439638799771394536594471837881514465344212249682141468341928179315827348351219412447171263969798181894528638468693318325591479277356697569395254374196556482498133683337256752188587132578617429667898513268366114717764525255111789548855671271632216546961461429373947514511563673227822847888796999648979924271483153337915884474336223914431379674896577964381623224513845871727196654349678638849189453848911618264587543295168976812185975835751998642851456243833921317789244234987172117721992384213981895326615312522183173299511797786117767278328426733842772642399819575282813644396689646899838818656964154427737474247717699569325712126457229856261832689425437917918653255139755736774724257847548383617211974436114365778453296123383983978322813238596441559152469668744676855168716349395298324289854321785281951574593912734251226557535953947184443633816219332867528893296884237489779281292378828718926595926555521439348466257817699258638383734756679415919799459364926844115489946886477335369295587971371798692368895538945853392987924984742978857389173557786875566963347424298926733977745323778264586228537228792987751362438244582213845556324412286212344158516616888334766296314824147453212853322253529238769141544279488664885898251254829723665172999765933421346349532393568965155921414555678181144272328214628119949384741558552958188888249841844772946989744838636514427392375532736324287568421861282912137581653274581247978954962153155893856963311324919785181184398677852447667798187956444343771537212345911578376971594837994146755889468425342837777169758152527994821652274256824528493297348937419465472896377728457666399282823858485463999662596162791518689864693138327383321936195954812687136338161797929992591894364432134657553522293293343231657989192457192343362571794997961758647872571695821977945435921184858436573542923919693145537625911744372534625815775977429161651633851983344725272577119115161923397396529871488535244945541532851579129917945887291594947999165112823814597876585643836625521821992372622498857319583144585575665793854983877497434548885332788356541738115753476729517939197832475357257512849412452154964635773296911651734675699693878332617936416562544991359128416229289861411957999489414315145656565351382366965893833253666121757171298224719299562776931632697314413234594524368435938972141771111313752993438251743531644511619631886985227122295448492752692654633131642254352885624677737992354556519614849127667934717486521855594455748659315918377916657532162497871646656146873563127761956196774846391994571826127793688287754137656744181262763422789517272574348891219224389511769518225372595264374285623563629479272698747263591818379616878794722871644349598588424365851521972158213536475223953378753814811115815157694115219436212472761761152546294695225156676724879845958992421879372686253824191174468257487474492459173354653759185799427155483528425649914368165645576371619961783256146452267731167784845739798923426952178839846413887349228899242835932714688138496121932822734716299361737539369861953934997476195921983635551546522814213749338739727171436378921181491774616377259845977414295213233111459986799584961791121539832242177964533579865845845877659863969555897134111593975553217993378232612324625663851484695394512324574515965331695744183512862984331781166697667121529769855154385443359818573275226193178563889434648537374681913511797543622643817649356615795944124757928273453116941611979573865249831738863164657717715741937449323485171476731491269523625358371419826843415444558311662985792743623197347671926746882889468532793992625372462945424692527371448747897324451634274523655381325188757488723774981333587925936534299937699866354377625216698332651633393178612138689191669493456419639847697799667667514443676327289163723492347993652986133765472378648777991589743931434689136253916873551419473755888247248654933599745876823987466379873646848288162539111398943551337581164972776829729758543778711459454742718489252136978355926159895358338167972174571385877471459865697493188286533661147674718785154783982811453628522379658417821388586756792954615832686537217136875549218483652134282724334136623177987825989282499652974386848244832414891818947812989417991795177227697666461259348279967947435255895452997911834641537221953367837372351849823385438949934169742457583667548777399193985381265319958214868724354253431969164575579278564326751164397382287545871897643964527523842561678422718778531626957799973228175917177845686648233992898199817496183776234887519798876676666294793179672959611578455123678187456752619795754611535936173971525189359218684834966468965143284593426327175467653278174477685134365886693128783999795243891493728216665966735934893416695635796616372657329712291432981543922571187242863834933165263216597533642355431613916293627847487139493427959821219729862635462175194245829819719779765728255451859263654534514381347718523958933759114357797934148718559844627991892336896687181752517489742521599612291758447412563199163114254113322376199631885184981291515825246363863836814393791719759321734369545827497727985944728739783127972543272853539834394156125335133276483568792783122427929452944161687844613771973113795648733147186879141317483593863225998291899466361399928278443655244952931766493422393218843297611885178953683733752962855174635713219993251423697894978575847397527397622754113672178825397926767486158322622879976756276877543272876597657734631396813489942258325774438191362472951289172397918575817616642778763871777996596334714464927194879256223822459182353789171789165979582763897695839197994872767264291376446195687486265651627342752768411911457195711255327841125281939921865674134158661455456774765756731287579884749774219675951425988186734712976843343198683734212919572933139612826135983244565655412694796555637249536841285731279328697243615318261743862324331152912625874395121184458471793697887158425844244253587423482651339933764237552976123765183246379262437841585672384658146269886682824587445912129474268783761439599848583162273111326294469492342335173369477687629228654593617739247463381957519321265514765548451186214298958779775325682234867966587896779557335856414437813688136724272127749234655187666825628189596617372174548937583264725424363833649856199981538854215647973355429394913881944728138692288594945863252431414785587246354293496872186329351728166879414723852438535246162133739326246417782733574988684787959871484923582663819217965333828895733124472537717727412934215884356567795947617368898181492889214749528921571387166864894972871345296986144161767343632927195138537235838133298723175166756258111613194886215176373767433948658619817296716213738894637922775435316135596126388967339111277619231723262663291986628518525285296258474641759747497148999418826432267611685568197892691539392944959711778214914683751693631615199969926836227576631691842912492386278742463119563631594793923149757522657847793966915373664867731572536221989375765292458734416443696126115131497816141822252786135636247638667357952833147325727371894456322947642714928638911738617852462666328489779533423384244727764928541477244287418645948419175477211247861378918761255976983428149153747664454239344842338569374178342117443756679953165911938344167257981365822727123523596228624348836852334494185336676197948262944618739978376818465964657472565826688575312882627124468995251631188936356534695496733432846899817789324867235755327569643222192779692178799265695332285416416573532648497323771394312743383839173235965585752871291473591773779883468726392468378394552629885663898669387414249969325476243718987753672411634521542877381659457122478499542983836913541586521222357286139318591182334483925936151778371382231238251699889273777844671698892815631778655573749523971848727897268136881447611652849722672352176878356498158113387268316441537214949577363172499194725268311921294139866963292191453978797788698992876562781788824121889647416316393839986164746247225177718427955238136722195719412728598321115637439991111679491671431252263714457335445382332288321336441611945677291639752769681613156196281647346418362448397367462169678541275894611845664388135121178832847426767831287614596996994776859581166739757427865445144391885723628292166797373817399529597158221149145795432612321172931635446449343792134384316314496358892424347497511837357788127652431452885515266148863632333986218244311762277771455717839927537341652637744391345725587478129754718961633953987558996643435319661466428794992656446188321749716632363922422465118697428493462124249441562618228866518247483575898732878938749425965878525753242924111884657589985363193568772864263241615244232557756112969146451575525148451416271779965869384441893296939161687644539115934357346555146153991664816716397623356791295819289244535114623475699269388678686511843354796143592418326284832571655978238632871191831439722878823399112864959948821953824981762882781767162955846731112499375554521687392477951523524644671225466524143379955996246499757768284646158366261649254793757432231684187914439483498666732453576534842523864792931775347473629262445687853232324281714451612527769117783915936255226559518659324335984374766381792347188844865186685892268785755978576359546945693262477145619185832467421914462678795418869867431565395395641898667197973748471327847366738896562362958323169181754471843622377593697318514412587813897169285824163793644974122692982686593975381659814191492561758816454742179223193313342597562342776241347158466787811158695727985597532335961628219314163433222572333445841983613533838971273339351584167955326568632527535768584632128723343887751782435999647999991652875153816874916495458947925989166561731318698237662365946435439975948968727539385411894437869756241836697341268798777219885758352344813537553222188798676131865199469711355566664532378972958456283253278734299531768645729564182386593256674417572336798634931259797923579819566698257919312326176877124995841598314994823943651227827315679627447736117391554565246856424265819671161781745299614287728144525461476545517816866284855658199436473926466157734341626171871814451642277772445868829426593573916969167843177443123965514851949635631214512255367653992366369232585695944959484138326353979873931489873268115417138753949826118946923148838368959824118989481264855968851666461432833629557564848334127274718852933384238875258972283999269934936343655531945743849238144936429843198532625197272284187479911884282934986485112231528266256244442535923561952173235949555268592744236471466672874367213627467639933469415852137554265436262813795932862356468113438861476566735337424458173883134899847493966589131574362559741121194833928666468515831965838841849212314159695435816812375168942952182486355787267747964369162256355483916465171745421856752966581928198745242216558533187273829812612474887987542384483119371341491428715493146264613712538552682624383722926632972142394949296347565836837579567771898393111735582954546384241717886715816988526512855473776756434984474952883443427953139795336624959345423756897573784653175636921844386551139887955429626168559634153696599576161592552157912964467516265292717757892996697773998758264673743417186266824492671346152528781932639246818256394337833974743825987811472285714136819196359531119698736733214416176974518452553311273635946386883471721555689811826978573981568895866721277158129626453652598377743324231934726677312675724542225435757741122678319466937462472815379154955112842877368194222493738724927418592668394192514743896767967798447694433842982344624289876645489149372544632665926435412965493396122256518674175717148333663872473698148815391671474196451648776825638497727884811329754817764255517457127716185117971462926342793426928687286785473497488121389411192769476844471619357158266196296262198782128178992717622231739355544212413129828188641863845759293524655856736535488453646111921352616981653295634469722322423438688186131349893239992213243475234131633656636858737847161398829223365539183766448113728847529439656199997164696597767532374126171779658364533182757499626828334392347963426623788427379851583922935531752323589322949824962253245697762883921852145816312416521989645822914997281672281321962969724395485783491558666697674779751969397866115249894553219586441345275941531844724167377225648672198681524598979265982793266922139887938288974899398458664256359337929737534814842666432747362284875747488868241387939193729837214677315181894923614523874656367623334733811193354614871235861513745217378478592852248252637778841351977715554639842766728485269384371951496757632787368216632549866961989454217386913722484428314998187933343171561642868291931321218891934329365338424333325445466236237558565988728132363797332845367122968456327121156315137312737538723467189681684225617337599142893149837684752263534256895798877281154722186292444658236586472171175446644153386542354913438636644177531934252895921211544397851247799772197275755775719138613625495362561187651227688491251323851276422439975176745573588628793719441563559867439876124885643823746782837713345323734292656837191768842521744265337746891373982948812862925331863537116132439633393478661292277529129632754696835273938857954796697549724273765262464248943412962616477774149654791213996247322472928585798654122932322934556783874622192856247349461552897555631982281364778593348383472115577575793718185933157874922221668314772943742233548125525527673313779964247341683394734375832162438225547352321548812248722827941762225849161993874986758948633689691184978978355643218891753911859868155952676139449129293392477343148523689281234236145373499234527369537456567961474999248151412137179723278855881271993898737849547418624498977184983252934518551189841281978666853168241591345344217326312156641857762722734256577397737833586661336397461786434953625497635282214844579557189374645164836434554837274138836763126533814447882364981483265731132584675197775892288327534916998247513813681159277197731931529423163354411416312811684675736568764978328357878969927483854499265552373197773668551188362792617162288487953328254241975145394899917645431662576781677289598977967621264329456823981597556354149812826248963455742782446171374253324837513757221389423928945359572843494778481528459651544967915989238515344385139985938334915492215954577896398386679491782121331835262842551368835763831842865836352435579516477854125299484757371424961811447223424943862346963193498468412223355657934946532732951786536747951425117591243316412479132694279311721359464785224361363311738658518544579746268584698839982646487341687569176823272154142295734457315149156537745849342559123457186589573125788273186131123357955593549749327134432944155271865424558421443155486579873499486826261992135239567215982321257738344233435848783484882913938781414736967531218557835936327985925387872535645478952543954642133551238489843261165228413767869125238966849265262672413678364365667452935842347394533781515821387922114677791439672949988561587279388646315347214487285122979786514367887221831168776378364242873118877588561576344861596999276585363911766713346612669269976614149331396866189649796612618169572414432917516369348899941656593622964154784329243121994858497669745249517838752943932416346891875298139712486579772712426916183411314274322868725795927427915255276483813979741229712342932546953481771957832842813825928153647986852947628713982164645458613291875968621481678764928453313422599884645674639496786431641983133819263629982821488939183271463543558721718899827629528835962215459231281979941612554435821822356277386383277336472714284366492917736264571192738898226542179269923547974882155934744388495322394557245533737229483891731251381535348782853663512781843968986147562329415659919987961356144647482413454798698586282216799153781931254623473221738848417313581572496757973384356139869591748796825499996225631133118957922879352772771381744656955649431618633711867884868122697161193252895175141618183795953659658853932548942992691979374629683368662795587576736832768129978313158127575232895477542454331151255957694115285622375599823817822326165476984345562111981262934164669296674917453562441565658954399397765145781926269215569454764684468863339322836746292126483741965852163985167631348441889253149513618997413165288913191815118169229129748154562452652731241835756656421226562596751734737719274738469481926175641612974644552923759586578175628679876249584665839788325132484351238631677834326374995498436761762435482165495923212741474949915147575671111591721874822215195598345693793642712779269378777227151591779833193261986893771582176226182175363579566246413449547158567753279425471985534767522227972646853784322399751216867978564627392679181121985196661367914474183241238139137526173187887113321624637439341993589697365955286347699333256245483341175559977592252264478993442566662117194752876982329219433588134234733118284771912822754992694117479679497765754835199488557957675633461127591874374222966751597969285396945122349659755311359944853372965357589545429841866768234459636159717641172966943427339654696112162825923119693844465421771289475557948338188462696137294113149574167881798624674387985485588435842439488359796123612249697439993144983616466177337441498931939134411761316813435168298981163175315472482162395811719417594799229556685781911389441381939397219264832391381228142169952872693617879198127927731836832118267327194993884586258321812912817547147536815252756578558757728562376828599923287734479253924661887379228998297961497212583948936652563342162746775485543737529174229543658622388717269521262169479324577348456237842783898994832853291833767289853122391199571746965947193819885186115914961924518192611981969367867467654645985785854943938854541277842395783252646139312195538655337356713128273764694613245999422246725137843119368737942532463676248649223524558221924275312568172736756998332253254561182236124296761351183297412758766777478788454479477686326591266743479347181428345994535164188643879813499541364863294619927871958838167921947332532882872559544426223813997528771758936179823254774945233885541625598914986291677961473642195156596386684293259745862125225521169698355564778651136237647188994964678233511355367869423232932417675487636642268844775187288329975493155728925697965564172982878317622272974433228663971168246965626834929443664329616612425811472954355279434765625274425786832927341857689155526833354732314515238113869865295787113366596846348158234218627285884219758333856651363683434152439749715546722365391557781286438392263515265282619665433542964793918158574983142116549883989358638433279577771871535413799634377119336273949937978419679631957657588115389272868798655417493157794694222238214164838468196291879238549651461867148874573282368189843786823897591388635853979676669737499679428445218674869626372254874741662495814752938889416529997361236355845391473251181642621347359974467875822927125288349363987875299787358451252561373289477163573559274929924178195314251847284437434734625923821251565638256578212674134625787711756218933571391457749281758329494914797144962197669578533465394573952655951149716653515731269416711855348343212866196669674524174158672495624799498955722163479775423662923492332226687883128985527672774913235345813581872579112778845335447861441687665812712878652174517182125173748228388565231337766375586983266877695431853784441178525194319896565988974241674671411811331211755344149353319675615786617728683217411235565321771338798569428637467371716346313336215852883645379917988511122454953548626879396386983733835868354498351738657375773945327693527966771853517134611814225875236712379443694396645725247624136616743667836245819461874435838387851116898412882718784137519336912922699439618678446848588321811113162914953719553126974685775875972971355526461762358626983568955141166527154111235876474629524927123664278668572858485847778169861117433289126111848432199914771781423649641241225967167946323381222485348452464958555248769177198236759584629914759162837735433345829857228197452368452113455769251126836636471696331442785351255266848491827966599532589114929435998836828514253985144134335277676549131871275464868271593899567211213288396742127734773163918628648856675248349122588793883645497272648152885696735514882146576383457353431889552993379573129657972516737715651849966814116169747896468139574567553133533138893672317118956392946258491683572639749449343863955551288247583635598442254539624257176999546799349172286638699814622219154633656453572234983773234344349593857482648641139215427859364123317935178843935755386861876288417199597362554927546122198616437146984611655146779381478249862474972332397781368286223946813959345468686255371188691883454648562917765389816824673652886249896886552971851431798152131645613291856942827859938634746788259469434827199775666518781359164989823213812778145785653677662961842951332598411778223479126322215399423563282368961316118539748277119345564788575495196858822528337342797156814342842326987149861685753458938362435546244847623671145389173897949484897272743199193622428617482329698414588786695946187847676696556286634482949433939724369828573981653989164116498469686676313611665752768279798633592947677837873447513428288841289273829592388512253574492276273199371321348188293541768975483781617638663461289523498385633992943695559785793644783511963341434583937816466639996356352465498746939618245716515221745882421284776637452812451963936313444352728371924194249235427958372616868595586985499213644448165335792649997695123934187521227748228363262811322694813654675238951766971952972221512755112634529485972166163264214378788831373121596692397512822248916888816916956625734374455577467845726326912552925342686133767442913523114258449863929523777422512644954468191167358318565316446511715149849856571391147577292742822215288173529548653298818972152373781588631675338657337125229345513651513469882645467177689513963327358494473445872688336276471793427266683826313559373889436595636352891162792836853231164592955679758755824997581684789138334791664438899289837985363265988256111543333241133611137343839544155117439544546717899533695658954354186148583952632573742286179415613116954259413459733842448477838149744158988223185369393139812615568863652463669286925327197267793478733758925923423834544258718944717982863255485758111415375978449146223437765341149289697294948842553786452885789686646354747439564742377454932791354878232874729183319954346415439796519686857856977961385824357216867724219984481976193574918519284756275154392387887233413364272557163568887815583285535752158312817253121611167376728383487118387992284153259875446274492292928618827132436223757363613832923872654356398819174799969232223399544869488268165335339233344573427894722638343866287199323669911678941194836193611329241416386343937136417117277398112251779283485197537337854663474588645554692291853664358694939387142577946164148314629489773799493551235739134853315154921289128373384756759144364868259177979795823387852754989366262177764543924342836181488314929126773235326649822418446276567568145257788341223254197715351996699124772596617823231881216295764665142381841522734812823533917474777995869811182452633876965782158747233124922255218485971557563437149349631635246184472315161483986819861933447845272212717745833413298271515297615724884557939261469387337645315776154398181996943861473137567934528958756746339515542844599281443237182555277116551634973871914136733888384994648682988365355657229496134423876634733448762336937776388719997559911245821943525292828679678222193116697689832359321288135745845955513352334357279376168432816391851266288512339256652584674214278294692552664577932279537947354162432466523869662778731415139445577714266442297364136267679513958719125668766392795212768617893664566821577216365785859629399565812372439939566924418459378134694632753656513184434258285896346698663937677765197423221719332872647839575352751581792651584761824596443857832869828984931496377726251436217383165953255374811663177118528336542826141667947182298899649463116296791856549248366146999945144553222396739633457161649533836381512629282244479175128961254772632782611724252158451245259526677655815887392386131934559491947713383762479498999982236164158718936292248277867754877372776547339859162879655221696333599144875759655733688118968691839744111686541114362172867626698672173121774775191187363934583339437739715163462579195387634957981664433938274221129647419814593547789963779299211175796775924267846732898617627624193659241556339792871642493154452616511565177136223276225429754815565519126729321547158689564944399759741321143196811659694977496361244265378577156121979376196622545941476223728329316332822473626111246647828759689392484521872372275848531394151979117458435552779253185915318415316152774228484398686987417237767352328539377696444142672384958774895747764433966368426454747524813366143464659175916541814566945352854181445352852496476831324749825323356781865994541923145417399721946594579179423514717257967737821569817714645785256859545227799745625385748226621215148559338112562981464266827737222176887597643831876281763445956153622371833126192621676919415928361387369671271432498988829319135153768735832854983779551461473777144825398473761937971917944312915386725441716698385475168488579998458893853522349775371929866744489369444795818785293383278652189915759128698466775814211964172153536547286912688178487474789985238771488989147944672419776763276843872679583276533664441996313986174331177384846192446435165443959362378196489989222655169683877894929729356254165221635683969637829771515129425946918456632585276144284585536829519344817155461964262521962543583417896581936123438671566721978329897546537147379127164525511332221754317919736737422674124136347423852542494975696752242555188729884937166353711386489535132994871263867493763781328372764963249255432271436613634551617892115139562668591161423766727317517899745811651656687864524254984653537916961126674368591924391566718417914914561986745636146192662412183483748826489742446945182331539668831712339214347831439451593559231391524433767559573528576811734753884125482145183324961641613978245447976978476697983836985373985529315793549198776868457973161612422992245143811496231727123183235324427831111949652624216513725345587259359354217359671121482716353967882817126852717618646715339426115375976451519269933593125966576993471124965871863912313798455943271272666154139339459629454947355261317811314236961933877251965371312982191413999191277882877395425413413552832631757335411249661182333486669722776418848852716815928266711672749379143837898578979885355423586513316688477125812789215745194644864522249951421598319783373535812242466259282221151928245477857961186711628739734825638975759455454924175857729191544241615539974366673157728626669174133676563989546749492262737724925372827125168632661675856528819447529231635488444591976637417341983815868396138488575927557271278448923743345283928419154752678523294567782388461299194569636477597843611728664674672928871416255848198161826263529791477317923416295199271687937796833564256586915414422479962631213559874411912442872819715868878223918349339463549621589965752464754577599436578539578464738964339675214146694446473218579466788545156461129353799919757784452215611346337363431431495963497517977919433147381322341747965715412112143357165186319374861431851951154487173571191917393234218393218535333579587678298429739559778522934281938785594334296241927758852269252939378681199692682357132247153235161838827677844969763886681894398371152818482877843121678667976793717888626793577788736592289758927696567136374941824363589355146815341943569854835361518533837416841824179154436752712644836566258231537422855439518653945581195996948581755277126972265613712191784532516914616313428889141149197551681281552961292179173976975629577586539725745852748935523175931679132184567942115818369666958115926225469243244725551495999781272883329223546998342262769737754721143863216786519735792763437818892178388856397269639615936596385582399184613318261121413153581137247944494624441543582877934926631324654925468411557725427798261382647837373113166828358818634751815577393583698369175955727173152598138466735559466851313119225254156792354789635211321511421846231618743192964573494445467551154923875185381637966399746489485685863471889841437156929557485833328444523396347932523567295677899632164292725517558794413961649592698927188528373952481675629558628418916768585788726773234179939651459126753221992558761968959895741741216528526671446442236216779642763315157713756389512121688542717937442193257875725837884637697399132221446124585967645997666295297398343944383788432932677295614334167351678745588679737336886328624339285159698355326959538258998311239624673317738413265969758579692554911231893634949535499247116261541544523784177839458363962577521564716174471163987613719946687643923519736822928668948842491154344683566947148815798572712716139487624217911781259916176146649577338658248317211292797311864711423277192822442541619338314674625933722783835978939961782138499981243421593181984768845948786675787818867165142327219684461917475245832537831962762629955156783296778729492497563635539933591719366947976116652914457258496566473976664353828918433957886432168356812146417198841235813435531456926928559359143155545877229353835337272197891295657124744768932453179268756765229821284541343387585481156712323294212556579796454882895366488687997142789558282561659264812579369162231175884149193819381536442347551547936239137427345387822135878713586118811641374881472575841722161651431484511888826162456527532586529558899877758254497938581628359315984851525339668342188149975894482667717241185819927739617285523679349943942532312984844542993259973966269293334511894358337642539725332341474725814328151714957828341455493764244565359339624386128254783868272527133954916434845658927393128269962266647169443817617327428344221335899495338598368179722534846859437276718557373169929163446931864571149884521725617613847438415752766734985156626276449273913487544116414899451966511527716935778968518887822717367318978661927713554231812173799429317152144614948262342438798539558154257517991725959982751513447341565215895867441348424463686321465875454831474588428655814434368846261653588836657422882134469333759613841624388918187288524446711661844916333123822539482725385331225515227328698642679741368782893252754475235199256138154822981115379617129529333846749921218218645685396248972354828829828639392851269883589614184765646499338493429386534485773248692221953782922849482839216411278471475653634818747828738459375293239684846317981562434268296625837785177688375422564889789349722489886554371812958345213126987125193647974964259883493614292794392566253547853749968218527697927163676929794977853763595353944659716497366742426682941356549894764393828482624171354378832711176594885624665171196424295376374713289741117593693244444969686867175948938587846249584781738324919494297155737442288667629441732671988683955678797452214147919266165924217665524269269563263279875266586252694999916862177383359766313836186375365741847575789656376557256683198562445281559324831475299756945882825433577319782638246211794362444885222851619771693294272687732119521684755522679888295343926116966925389841886864763296577987563154583465454929385594941627364679917253686168987536738881627873863577844441238761344113153649936364847372283159282582697961942568742568686792619857917592585731515651418186346221891451597161911465495293816427496432481176176111651269341871591233262268875375449344377263213325431557333661193927343948267579922967688945843144767951766413394589158932416629995589655285515843857659681332221677532939589954339873749763864821663656513498819687861835112493548713352581261229815777378426669429644782898811779157774515271112155424593473339344811261767666762384542768992815286212277944529647991167856936544155173766118851659756339732375769376532242827982945468341476942879512624886474556993615752335512363423882429765353524188211641876917374515371795146444253227284784422852389368752385691911639918349413632456321448817798859759482323674718339353233911685649487618775236968883116386443897835586252675361947347765488667349787393369785679492168696452176944653878856213141357996531647239585873646266461585274727881412351727981597133289697968537567792774461411123331389975738574244321646786688812838725387944447778732391958738821682111713147813686715689453334283374343657237575144413448559878995339575396953446786911765742431953819338812136714295269723866851132953723935595814329382567142144139391583132512944862916699793295124173476526699975164623682811393719936476946833338689857926156315298736438812134882766467962582191753385165368555622257842981188154482887314158519623396494492297634713533836677447767396735844516977219482959683347166538913362758468317492349674269822613828993739658487522567884764824115884166922759411446224489761261539934526681531565275623598614657449891449482447755295544313658392279313242275948367812242596325441361674691174899579783732353786812868226224582439397459685853533619439931388522431176144428751992743736743683726714317657413512575747221469639391621375126255413876586523585594566683274798329415153714851391746393519878789531935285579518572982221198875827919427865814661748861961656247827658444814369344239125181693375949874254579414616528925873291593579784131171542182874251561429675554867973916113389695642683549183479965365866184954597555819717944839256631338533773537997867651943958411533475652794484169825818213934976214657727255561432913723195382992257927543887831119382471918197212884536824695696624652642451159138581171429979521885948972967871629615756643585463945742827695565416871433771216398871953692957597975127475485825781875134229977775266884322793162248541953849615121699821189286398143237421262663722593591518137932133874879945116255314355167749853239517491991516146452866541525737677316294345747373458991933594241861479893376812146735828166481566594483699278481963545241879725455682842859586672925438495376792169354428376834925447377693263368382524441923314756464923248474292454776777998263888261475212529655922588378283571377324834876842233381127836162289729183579152175393313185681788669678715711916335565852391378234181861321212744289664774711523921996927147299527473741112162354442843636345295832115215211345568742995528936429539949451473838783772223996647589573317443535483669671971534272228348173325754919776763715122242166863184548739696372642144257453847135489252211737871975389924297991448352462424191188516316725415447162297337736834664294755294737433552274947538885284569977449162426533817551337745191897621527657298579325247921311398159191665374221243655336367395181999955573794817952465981629218217192638817387972117695666567376986958738446933943682257893521128612474117791893962276855197198858985495154134329446922421129784672911515897229154754885876855392492442829632547791288766351661799833824877921791717664178144213986367654355323393948346159459658264838243564883175898593326389996477282437715822391148361889788415922155616196225227944123999629121215776275786297981382472433334355711338696114792739966998321544915937785395675646632121932885376778347865322785347448431518936593336912433581913647479529322862984563696854744998636468389564652898257732114593455899638463827897622373372632856244296832213993544661988241325748247731859148482647735539651134837611695517334498161614557659932783641189693131846816242816789958112118968172154634348427986861579661556362356729243864663149185142996521656337232418863167875369367819963595397347123419995432267947833172481124825156945476591285857164292293575989563919558666142746946265513989835125178825428582286792241339311723218989422369377846941973794864174871812937954546231317576762169455536628393655367387924589686531963513242596913639321768627369254495618866457528441416377993717246697472117758681532148747917611279915215871529661875548237888795685295771632488565917718496366634143599561719555834595444951522825164929188933425865398683634716292584482274494879498157418888388546864879319696525429951838656419975362382241792324229282956585473898127331318439731548533181616896697419339262125178922128179757326946978884986482273374271146767342938715193532657875391384969584785456955298362939357476862711977512196625449542476294779849746497696157472325561279547321384824572177814946482488332164181463799816586871417635458554851886156836464951999643267922295374877458995399377341557248357874151776564184811633677481315972376233888376566529886424434721937451637455989631698149572843826561613356654617656469416589762216267582145595269616636374131352877514628167563532984691913938915665916712458681789248239421212666257826952619787589392233353429923694389459227965894116332662563813242965886673952362984149184454767764352999294329417611518843299865289469378799531389238113422217725551577336388297929828241269821275322945554463165856751776757764285478933268465848424481954631948475367583318692533861755296281837343999221981133328382792499482116494425414416537365444573411611141571911331882517949286526576579426516438317557231257798256812743384826746592114119877683272345663954428156267567434293318532988262514328834589223632752614783588638951733181912254339598866915767643615823813127451388275754139883134524794985739658554918212298582732181488841715659839751768516678776714687768212985969825775433299779138883594773277159626258457334236814263531746441412925751572884464779922884528557649114151238564831722919352196849759154167822294374454477576151124939335915134551885132868463355747679169572816975387562498634197764659596785363791347566328527393657597165581759783448869621439583332927475439318541316277219168481672218742762425535141762666414451571344311451794397363428858273219243664598676985621942737544865877133472238826476451523277553129621957179849476112162389933235986172787562518298314541333646944431688344483293913455478731224565514337766965256481828671693147588811676162586224295952921314962653719225363873282686887898284348598428745932259397985654561995735455239631744664342716152939582837451292265621944114618711648721444464579941935435685445598361394649987881973395753296635462372744632321396525181319863497435599862182112563151982866185737276152258359415619687773379742458154169984735284243818924897133827323112583899213483275564366457169279226596425754961427733366153879789339861324729769442667263459227249125957418284226262886211931654555151771598899325414115117262516111978916786617258458758464695294381971648299893647522356616125443438583292181335175219769361884136964183289323729238113948127419985494612433694517318692593232921559819942211659389938187388581536416289498353371173881498355387827336265989216113489339253672353176582979891591738751666923957355793899887826888654619291495219579758646317875731181919149559587463225645422884783883877631579294425778299378656923299852798717247624434359124516825789868649344194546862862212783162946819733142495961156267335539533224185489527924838443965517461771978596447139412254451881635592487247761473493418842731783222469173748785915346921193159372496214477344845359841748954861999529855589962387251224918284363114989537412539154255546363779189477221951194918413866382659447463184178187477197473111155997524833329127763463191489495993745137349242816242442479328797951352176888968672716843855633318243431827714551622294579831152874196187857212363373729692796773183781466985192438599448517185383542587184584525364297157755272526554251699849376695399963571521266571628413439998436332669621625263224944387276818541696557428935145449757464955788757383134826329752617443738286161789982362873647898531793412996164862987264427197741728958258645139228833265954627698483297152464475257463847299858786195791845373787434617327311969668137111627886527878698228315261963562524292753439189891721227113258419729874116914883954166666871619571447746446635811216762349398345378953676248728638294337156979487381437141811773583925628225244861813517686653891272643453967234324575223876165173125359544367578825235493198585686121973387145826238777976614162673569787581962585352937598893151395164821817955488572221999393212628899969655982737948937846146216185971835233415288969743347767365852734346576883679643857522257621793227654242519453637388394155234435199493643577731457387672274425824764127265937972718366563794374659941767151747817643178347665928913979673647326968175898664255146333189443964551457846712116699222429343549884818582152152691492544458711588759697682897946186339664433469235183852131624222744699822158162569744846797129382632513627424559313697266876794956996357987333354523227615374667266882581313436877988749275442267735883723865532229174981523638392779142336888998816393345696425592596528196786666185418768399849988639338996452959589354173156854695538327852956893738245349824274625456922116696879672196977385656281772873523118965264752479934442518785926236922538893949822265495163454166657889568762642866385782135532186764621485558633251638731372469945396335768621836998661697724726245767234186168658425583245415128584387685281945786224447877378226444192519613171673915782418219753162212262468526626184224935899195225421665497868466677169448347758289246676351197654269183826591319223879315413158363362544183114835193923353546473798743231441713222493638772418667442565597568878918279846976833576622971526493173781774379843198749835886415622991957273257465228191578217668856752477772427838637674494251835519545223345126778446776172154695549159374765333266733449445894247941978344757173656878813381695398395128484189354831791838988497236636465662687968928911788638241793348694852437328117186848652622744513887939751452269742597747721262449142916941156918168722493428542455444937932523438191231371125348782164866997239928149166978482259356632331943835538533229857972896469472575857299853253238824993648586623997717692827129891289543381843232891561641243122138973311383486465512675688789883671999927255792352499766534511768657549254634758888743395645691466218114466741527382511173433568188979325798749367428414747992889676598876639565296935399888166124763451912858467959478357164765121366355549375868896731426683173218734267284679559911152619727137999325133479325215119278249853552363755182913413824631555429663898163561662983264516451892757835641987942149245595149918264756218396891994898246659649556739441369858746125739494257192673517523597371872445374698298445695357595213289314831189917742292626365785184824297294184857176237753239738918427936434719416928694896777468398981523984934426364654229855684472423721193444951324625519957384326596695837223244685146931759271639288661471694942544147211918179978744762839223467761389471176174746112284186422188925942139635998598626924555653455847131983472222972473727272515998691688926136214341612338379767516674454967576999961173898774535182427813469958934931219977319816948629855849732924135922643422196967832325278469752243316557657242715836442278153267487922686298468852485582296511248931997525342236354792921469583366264815438551175445635562518835441821353197113546998554694476819981895195895149628463722168638436415914483986948684955159813644284675924222696463758153934287596954445655714349594418691917757341774149519933883222981961746471437831781673851971268255328945988661738685951856963687128912499255217975469444139397998788927833234939365398611629428286168849963355281691459512342159766448444668176136171912134249296748562927734337833833925447457811757849522854536629811444279859825598549624966626497541857632413951694545941492132774758411451635695157542571673749213934977921489784546583549714623916293985934892245792945815266557166454946235438797982472887543248884267789312182879916994747851737144721642749726696295568243216829181134217189648256612426637217125128438245988793453584247867558959782596994753988245549224869654622851359614892615969971355211572647761521911152656544468979125178844896975981144686932739521937712281767266269528119373115117777875742456962813613639841349816584968913598789949283166989869418883583832688571599685282177917786133216364112249197525712493161663973499818823822663133263378334622861641533714869162478515437788753727858128493398536375727475151431116897627857699126586324738769869449282876435336973515877653538562469455888311898258535289441286323346734555425238982489233241762975658193535947735854765178945242686584737311972467632129823236395842324935913247799912873296735118339721192315965964142442814314247199218348835229613747837258661371182814686997957212783418154189287377734233827537686825631947856582245556837589237718261345139677789234816553366936852985477323892714984528844346922998436247536586784235919342923123955469291748316739219132224424618954863836657228239933243475835638995276832454356358461718189542431858422566772396133293891844887951782747315444136235524498875461538711441873376989439778545181934694736713939628441427271668751128482952343295838861687643417428256342365674167943911654775526431144179537843537827862349799332335722665347599271857969749652673244291635383298173769733677734947467419737146853218171237999383128768632235819121837749428347548394256268639542413186928842486325529136999832873179661444673185636538137991176272247262527624177539431129117534746543574245543294136236127779142785932346888197519912624379273341734856335235775665826143941374436622344756122588969552756773295756869244745982787633817374673248625528892289457219388915362675435977645764598218136836352417849336989544994613515997632762446468866711288559781388839916158674459939937772659567351349744691135827791567522467192116189348331722382237978114823923512445257228347468256957338538779913327938852497392787419162937827138731516645454532263177269841544416546919535886192218814797851181525225168446135245936315171169121633928862354868351981486473284237439214349635541438475913222545288197422374718751477977388332748448288316677342489986713536691545352183649474512391969292751794129337591427866995872781856925337259897739425193581668643244656461339112953442799655419522887533546356531674833887328269457999243767319376557736467173997796619985616622167839465171371159619686156697713486322728755758629567173722382629141312276641491347153224353314327347443997946159745966481622132755498687379885759244663723736881319277795762336149515767139526637554133588621214164539221972634368679828688699986337149237398625582453221179977589384297825686125259461468355993811321882459159465391336152449631752739864668683212345839973936911963958224182383415888784177656653846767155373523191768264729475568125839256597786762577958875331142523447976655319466141928449343494727414877488224826898622556884255876263982793983673435589168462848454741811999345687135929656749575758827916749397988571545118955439211892475394992739872272177618418598625134423596473689785345275923785287519758375534483826334725184591252225143585814285726177575834837858342589169367638335983455847622454512597423274997484739112864997357486137345734372635545631928753492194627179416679123585476242569667929627567123925252788312458313195867413124425849998727852672882357997218449722611372157215382416196716439311461486582311639769468928561482437366914134296162917898545673715441941343752247346114958315675918991934388413946537922732289689478571989728111653254426535383329266244915826861285525268695827722346726297774793344851599171643775347967634113236599449346381667972676238628831478322355863838625772394156839856678882278569211778997281873757315184219955965932619338415669381788117892387779841763493969888856645335463239292268497682669345888411756967876182721578635547936766831427114612773721563926718273856977577837894165121223782588763358995777346742154154222469236461258625349993118412834879883317332283616596895536718184151271812929279639297751229827212239319491418371289944954846556767688526657474383276561945498964722463127745173399836929358254525661861545852279153644578374615971956189574681684847374212553158142631577835893286814324378563366428575258636845425746172827143584332746598182623997685765468617149193742451492799347713249119712622876111249218242912325135185257443943956876781879891412899425958233527194662647527556735666151874915514871933674328872336832927297647124117264585462585168258777432133533148496832168565379246978981323536465137133979495319797585517759294687371676416936814452882556365723549416136628298533612866592964218157759312231973244229858154454158824744856843256678543346572976748122516181494952795928664861444246375883823317377778534719843355763351532742569146879259133348824148281265491393979994896221892295113127456485682669948551539638137339174612171225228963114857651473379639837759269166355641485433759612674258174979594966885437591451518823629916855241829462199134264945296286661285167992191114421724234641397315721319418419749621923286316936486416347266939981182399829412948578212727411398386425496346329277186157876816634265594127659667254869547227678185524936781645251636571373849736278571138282696658214321493376884649552459419964785196246562949393347562411396663172676211215244457994143152627824971572592995239828322526677358754682749929442333254295752485259627791673517639834142526655178939798654994646528723874538935827686441739283725586773125817388147672654562722261837938518245138795748194266382364856696419812661145934349878993488947677558614626199434421119447341997732492854453495736737671393383155294478624943425177635764982286696934895289429826689145444542291784153561492373931934457799819877273428457675867859285864834711437668493261646321339625198459492157887192965586698559168783721725493112216654214968864542893874314414624379689966742195274451761291562978736723386386793236292212267355127788816534913224724844158674185743623175555676148321616572871234586692147594297928178516792715953612725374683475261912581641245485447973342577984185222284287524157644967123711997429427835586882555941531881989522563146584263226599551538617568614827476872983533477429371927777168795361458711947578585676243948716143278947832587336783416789561164471265946194737315645213158154489495888478841579933343646351689627295942826763645977132756723685483986158723987463275349722978316694398961248783181414474462393951371165279846245175412848878953171176682565269575915189865559865863321556153919499897682237113688719854459641578457915127817155836711255119155789579981561376659211225725529197834722778884557358379732272171754135312979424149865747844141125426836933854267944517282595586827491972357563365796414552189672319297322167292761292545644691629639259356975139258312866124275237943967554857762681756268665977769855599873548696761376132428185969418395648497964981583714513998848667121849546834771951412581374139631615657131397392431579596998851819364966985625856993852449224115121516994565839528893836848347759788378624196147826218782525279157974745144658339938717857475379967331734298939823784478215543538251223532334225583729639182234948951294326647185466218125227421295215436999518933544344746586595915548938988671934247522159699298633535423181162586246232192919862214636843849976589292312411386597841333696593242161282312339977552573843382686691717838151947692748922341498957837618514597267339231444372167759419351699495936838863289395969891835774623115787563771699185964145513764163441286453512421826219649915211544551295436666536146899679289243587596928574127519298966974877124763354182573134943748344621322788812321358551744118831272313561242363387931114414275283313458462497525217218657965573793937864892543153774528213659729112876165318593868211921275246156124638158818175995986993516911622874678457365654152651882483433619977722547893397462449687839181977647771569889436669527189186973536313359328269716556254153649892421745665472342886492885148927168932587924956134763741145937722424563354648349616969973365936167522635989713673259145372763279829972571432698814617235491617599486633665724514875587826976624462915161642992467725497973535869159446399588515375814492634119913846466413263689161598762163853246782322528886782731686883976279757877929796274436595162258866739417199968684827555851165842413443153858696187732316322714735179463556416824576697228288661277914268889471727376998716473579269574352288159776465135672929734671986113818775392713379451233689778287567324754734149175197445392929665486752933337344742476886176943369934136369883256492971567251386368671385273387926113159754682317163172698836617227422287654664359667816587138849471688242697923887558116728583539477281239922219955755336184326262861983875185979444956564885411585474659158545479764319678117955592767762515943718148986786482732896651792284555467156725453424513157237245689925729381625855296491113726174964545463423897416845944116612918353797938217847421815325875165889258732652324155146466743259737742514568689974578914677981754436567923779667114894261849815256793474651617317786181165955469948286549699328986575581175512415213666625436324862328325756995396662222655276562674494969558988543655818226861927256633577364128473753675141131754317664289692428583749244157131552216525473515353637649955656791711452788148573736389374638397356381458251918361788626978696321849774689689496365125513372984967844383249268684985546762851147729247351266124422766431515629291194739745336666743375325876675775146911334899563799221617374731145734857135971341252211827289293664948642138262266286267876896142435388382116113621245833511114256665493593294465479952182192497143472731939365782676675773922526852934926842319466124491682843318599871454684529112442319582623451338474721263163296326265435669783521882897994223844459792246214455333412192313676811779884494728141481588628765356323291528881695633571432288612243362313181149593759671788559653877198496419459614471448283157344933862491335285412545364558281584859879892418759883418754461528983869759789654542862636873933611896851638573725891954631722173152636797535716285389642613711815968546288759367884747987257237734466973837663341713482196719371697194467132455324653853423349398917343955179411865249361494323123746931438378454867774712143334596188121956681966633994196429658366177952629615277366665296141777464958219169566281757256751836563868677474311939993617283165721996643471611783572742541757227316969317277236473535779644366986582492117739365518175938353841388527627299226665462955779953189832682311212776222495853747145927175285115272892841426589393784481799291717777961192651578736263232141119777474373537474356752975178979956773919253999313878965562368252719191925294924391197543668463643533634934436655754317662418661813165457779234699928685715559539845388955868228229976446782735628146839415237937723367935188558342834754276859531856547856691435596872288863715791235929668611941636755439781259262763628578463425988421498412328584745572427559957789727467698436791258388933837696456293851694373278815798189847373982166125452668459828625699326514619322755721655447297746677127477388363834888322931795351951686315249412899621714772196982149669173113282144194471571277271936843243451663873299256154869863456669894941326545548153349315559115194588499942486382624545981981389627566351588226267519197975814865421145983894399959858545935312642646144322542435391943535945199353856276331362791793145538938863137645267284262232524976769544757411826533758961912318974827381831892454727514494534411793411492482525886525865226557516746676814854322874349761315955517275745929442538853727747232672498852354387439214384157761717956721855263715715943347912983676248323738897468851174665863228743555716496232916193559835945818253524962674763463697679973563367499794841326551711457354688814653421895817462532556281448338673814982453988231376884837649416686864198397218226693975749679237823123842551353822198573538442113313586631555835935772923757857988226868722285776153245528114882613198961279546132355696595884934243938135878562596854494881274686888672158885834528857245362529296154167846338569344157572713722327613395727563497712457538889921762989561226456925261812581582557646672683327829324384442489434197644792932593423732165293245544296566547797938391416725928573772427971749322942161543135871147279866738761954941193496772786483368731596571875884113671847376591463423971857425614972945562212247568754637468739215399745965968524488752577349361789564948435276624587724447353421276568311828378626378622446668684231169132868719336186131775544856851844938789522211823781334518193176568326177387369637651991799916641463979697434276839829898789333458645514335552135917885753584729584133356719912493182446784156993395529999899128236379837232632851383281269962873418372994156241269487413398485614542539835548465383932261987458892143926469215534716932921754543535826362261613984566557523866118581126231382679815469111387887625636147275322292648657665344185557952767278398452216862484673127822876594423357566942179547648418496955476692347832137971744463393996334983116788791587459886215383826124324983652799444322832341632133464742116176119431413636689782927391491996596539579732479348439959987977636278936897944966718693581377939646438918693897468326474491174136679468218497243863399738736138685511332152765831269132814315273623745841925498313225385525122382655139121559279581928479872999254756657692528557558384161369274548192751812756491228635651566811618774854827567578331785839419469246412794539276918965447378394227767836269985574251794322251462137719325113658964132554567694795466287787841637949184539388557993512269744817699417851779524323662677652832579529394361112442588754418681648689618924825958216871311179132981739522814488298785895812724892965916195323133999479949119499575955554986287577413396286135972367812299628464194424132633139355836935996642149479763825236141623126495959243981956238649234285476125529434632637149883815123561152594446899941654532712224458454693946624516562894964275419334694887448788344523798125555478837215948616548879159851394741523234518378822798684568487862812114555273154223882326155731891911455873967469556668352734893784728294491136981546352424794162424233572574162114649771141455577781937184478479732619613547174752844542788525588547417659357621794137295155684347176741664226384687317722369692499963928349967425956737763612851736927751636378864435191352536597989753716343128461869983136565363237598123424268244132433879395417256968281495318621843239957588213798516556967727791993797536356535375828414976744743911654188739165646476863327691871925333185899443179666878546533524147345734667955899487232774925429142525771565955982694762163584598748125951444733981457553611149813693997922494692726361431534493652741542672929281616658611149384568421677769667727483253156175421252317984849511349544857344765789899587861711834687161784161627597455121181164432126285589541279815416313419651752461828762788778298638959814888924986741828785693354249111387288666149231998347572984885813521377861783762585141348626196357383959927294332645768621119734461755547355578642216967877749165139583298654418529115691364361663512721575916757557817943459415764735763253727552343845261991465737383517787433546738245144179551379419277919254716631133431384499349266946759131683685827845265188994577153955113271651444841357947484188383784991966999473498291728127844112491486985722159758829621394695745883469941955938719662681149524991147122126598467423471474426715828519621269995626963999442912482233184111189552947336269358486598896296295931134657363188926665454164663166167333958366957514948443799895481123317123617457842574843732269261599292462287761818282554569585534442576685259331958184449287731964112669275196182889124942714788999155972471168147148342412761669464851186972875578211441495541387662668265343779589632561195134789745559174241188941286286788956821464462675683466464182659344826952386434881127664952195139422996123655933134689974274665517596187252645847395292598755395854443167321714434843972746266741984289912972313677864937543116114512492589798956632825569769468819948186946741384574929895741511494213897469488634136995468418548958237853772645946536962712555331942726983146539262767827171584488559147341892898865556343381739473387991179258145598113332394241557157155969763212923246275587632347841337294514695818435774426649332455154314754344166532974437358583888327783916311864141473217146333144812191632617911148347941463776955155216266756759564157293359954558868473147512558763462697672126812558742493537392538697355347826951724853995624866525248662353837818374473824299742264921145328917735961343762645741132235657348119415449695757122134246782415216246688547912723825238895936456859427362851932312715584977611386226832826917147298746143792819431913293683486195779473543624556446545713941549925843285346671215657127321255256738847469936936391192823937342815787324316898438437618891634815373984314984726558219998959321746935355743914569471358144175148641266629829374221235138335738592597169849777187199592325787635775471254222739428368588957521187524538949112943878516492133941682934727627812987837465668752829912374935716894576212667442524513631934494873211732986629772212464456695981392264252813879881827243711297216431756825212178169784854853574196261742142357153112495779826326842714817832636936165422413935518578968742794396882334474766217153848792772291768892147493924627891661837945912771984623914275954929992685275353339681872297672973862928535859162121198216974271456547371864769961969781387593536161797874239225291169187736978685554239542443853958856528125864318539573716989375959591491976297948996255653661955894844931548243121625289544448828392584447352552594913745278869778836378983137277556739347133999763488276579285741413336147325392539256893691164194326829451879122946514764779168489172816893884976526883159166795781861459537825567255361365733192277213164856392916441356718128135735941416935124657772342144855328711841433824388855179173456877647731753934352246733539774451925776731933367471933276143478478945418491626463454661265492238822452182253687722287292631744535669778972139711928637781865217564449227331291392254822897397954287299822742759874155334943747165764645628784661974496799963668135577949727163969498867862127839267951721436533452348824125797613287269291853187291873284652292429145945128326136214331674794835838333734656247758189146515888362283365729234818616519169547363472598159962352192643548482117444583388283317416561814543754386745964761981622366346691865184756243418596657673317866941558733436676424978635955631124169831173731262659422896359351756549546818833188819189614538584136181571364651441338388531488782389336351516559583391153189858976888314464918855974978276251946514344578868544939327144759642283497844729573865897591855618816155728989836212671338394763554148519317298898866887617974227521262183711571365944614381513244359457727764691284544852811135459394156722171288542827997119544473867348555563316477177776619956332956611156475993611276837732344429979983511199369376848511734265942849281179114931415355326621925218126124924396446861382844835444245746937466991576584667949373787152654389968915553919693529887581655973768657192372232464442989153549726569268396517644877976869223183629545364814468744549125937234586439856135461235578469952674112644528121565677124859835892382345795596632188788263236524633766134682235233112726939671933198611958262684974945647684577886635731446614891285748386744421974545589138417426879718472614699854481282122753341291127278548422659776877142375494495193856577642418195788826355784394477134778828626185976592969378525226674365126633119658754769412822469694185647847813686843883965191959457911685366624298486672189165999689748264725225853421528424814872735541821323718148981731112487651194175296475269967839949178733622928438964561555237121927789952142875661916951464255246825798712998454455949985489894474744695683528952455343771641877359618967218894127551627761648363224119721698891535695361335142462663534483362325773299221725751916158497723844311628431582966946651478149323633685536565659254717745549471734992444991455469739494948885857247361768693148911858243929394917543518468662352446259331359551293543487233368581985928934877786131268871195844942433224592271862887565565947332464675924131996274929366669481526863264565564271552477943781831397522877223638574722414772654773424699311573429781729287242628759199931976317275246244868928783782674572192819333836293183852129266624723893724916626824188289115766928217478867428989397116826471172783439296936834743554144672667845177987471153426761164411577241736425162156397864968319456969932564969275784479666597421917899955451358627953929568118299878764287213964569851796416225191867274975261526591461191623122117623191526567197242131282383372944243284838537241452361587625798122339512365989914239176837397988112162288685585897613384113792593698797564892371939267657936176325194749128355248254999682287729218571483316829644933881818678579336465684256119492679559326153975591958353963881837883614128315764759584779947931798168469289665149997464357959929735651568525937826552866551452323778634466958639284379825859981358119455141794623938929494382426127962555534984187868617936257769454518151548847613463255761435361621525567441991236541817849465425457713536525537162252845761211736416647288641446552634981999963593957665427451195247545635529869953617159784794217852313753738523774577456714135719739995367219476624467938439899773772296916833395621323145914882157266846328657118139233624112115831594935781489283295456756766247187579947985813122557113677272988626429117587797932642898515694455976986534292985149217957526859247726377697885489219995645329334995433282869397227117551972984274725923998827638437973169167564735217416388941773461767662328771281921438223299545492167278855863754797619818651299385993787163447715465345919128146526794498632392738262763664557219777116968987151866921186432142917617294981785661163252793716887657466653621276282497466735414978614269431437945984729282723128977394235267851358629527598899576395697113787812553584243821768386756446725394558697991272347176731375946365611458157274398194767784266893352287182798137826182749166635859177765834635316815178884446821727473865218748428725693936527688326512912876517378838931672339152791792969519237919791758971884943922117847761361231395182161554645745429185229132151568763798151534965973374276372337193452157119496972398625243464163388492192139526535486819135439668497596588539283621191994326371211858417351358518417595737265375369119834748588328158522247774198198871244982823728479584259468357244168457639999746585989834658353667413155944897555933815269985251881185579957593985255662668973961869496389139226522177133919394289138656548458911117728119829247958894347172861862443333214938722691824539616782835157267669421579562814764221413797423189921167993183348669699869691798699694484682815662629595445425174942469727817463514553185527924217353225914559799145343783564885599722292656435448853139476854393375485549182625499613548214443768296549457518146996259169393478387831766426129618333238158395123894869491892762685897792531931191576515595761919398956198181199146676134588568497172771578477379837439677523461168235272928645627351117759984189793319411254615339329984872369348459489414765286128926293429342986815645911438129719439561474571252616917158749719643597535872986157548232915966929278811377564168822534624221792617387324961366136178541851721871699339615731233831674659739716756578539881813276243587459328973639461249229446959317942763559791546649562496899718481557792662714468314533122981819964533798868294934376577554534519862921887516998314859595757197963253231881369199474424878487174388619777714623559999467215823241999957628179225114949659141265254148811797629119413358252376682985774734494394135459165281848846412784123542944378174582576359881957358591685912629967215739617592327966134514675559371743593241363859451792267513549592751964189364118288393934277117382367664571882798427711927728345561126563541691532192994665498833834489643692635734933298726598872318262431583966248457238778565685591633672866479225926784449897446499756832478389661349682561284734697271217135892924771826935318567373393986475466743824417926672218426714342776359431861443199219951522945923647578555687886717692643737238381937872231998668326389543264993985752764854591322849894128517695159336791141162346134445384943447379838843848163565998335619844669653445628424669149861431224571435667119849216119895828848385226682372266276667555936619427949596724839556112657158619551343182753946971581645349299954977375341644222268133656555459745463985147459555467621176611484928116528344288624365473923851343153694427645496723359542736741944293535297746326641584556139123432675995757288833881345847749172247736192819783869883466241948151824423513361556544779383376971151383632758712355722649866463358486537613473517179233118644868696158819146487184887987842236976489369274791499778476159151758486311227586635493238724538593331851872529172621733595757617839814881933939181144393776436119988465468651658653962238769460257983529273326172377379155982885683935751872579695323226615783241533896883139988519829579848152194273851162151791572518482386485612896891195965112161818926555925113782779375676673762654397689988356414421887445621765984632539364884226293937478434832294347352539841459741477211683792135849982966992765882513652811923386374459149114593643897877878195623967852653191354533229895695256442237282481425767968746396811444645254382312676463136765436478723337655776843578882356879416377499155622295451329353921851478127931482581834945778151146273974566593742614116563368372889176523972335495695342567384462378819116328757326748784512858974754663374149861334292652725522886253578973748771181145217668837451686464647424422525935589463996945681844685925966458816832921615163256594985572116895468569539835139789176524634114649586437329723789577128581882255192624446226474332944771769874372434867377924347429696662558765998363891682114646495162215981369286464432522884433828838426453359786128261247579852644475998223181682417422178953926353743453751629868581697482672316569614868939714553413149297327963824291983854398538742652472957348657546829249991754928146232864618462953856655729111995526592953698773957512873883872222871156215173367118285472668771966151671278414194712258314271166762628745465665836141862278284749812664291765257751737844662925895861371245769424496179435526196572599513177919349856788249738475525376662352276159628431494239772217663877994599551283322534591619365542232671424443565717946997822465577635667981346616399989561796253915469958162632259247984963567657182986782844958873561756112666364453139214697473539594185359876222424345584322674522931345312932163486834265322664755689299282386614297513934288454921821748776437846585887196949331412364241773465913481298672614533658962939365746965983831989233587383585511974559947229117131388916354714791955849541451143171861475755224118582425468563778754872356757167814946372228485358636751326121611194731932771285958532543955114113475568635644238969223428817228465991763135547233144474155765511981956168613225518756249515154143138744494624155828443283787281383256484745149522354562739438466671318673176937152497568481226783893658756347142172726555566134212467241874577773744478835328648874597565722578652178951382145823351997478515371467252279373854178267895755271217722938865149447352932415722822592694469873816431624743224395334593838716196538689943254572995454536497995547395198313659759393645384862415235533453618583422775183478618122564799161798139115694841691582647896792762554463833296264393465255723888924459731941466875111625985363164488452435479966567517895421536965899942478364919659338761813499778763899625115868792666746985963727886657248524493458123711395466245719413265694838649899839364877348288395854126878768741666944677474214778989567442295359843299737256514312257881891335318517471195746175281967947968498348976175438936444438223818757571476964416299743175887268932579616281522149913311797412294451291719851864855166945775983317437487362447732228822378656986628256883127788991681798554142792526294495963853719867623836185246745174569744913779531722321733297613958832212488331493524576785455641523633761583522863199677212674715966132179331496516573173348698984696792624663123758866178837626174533785141352516492898672443939381549143267317836915863895188916969873178788571161547827325195591477684542388484536218738238788735582836954882125735418321288859397461965343544926456177184958777524429843186476811527125491278928261934232768359381182532448149945947359426359168266218343945849333968999423439135655468663156978274953894227939584921676971477274568858159842779161936624551368624487292175242148141682147963725954773861374476279337431126496882257433441678395117841842471948153795128186895315178952277272977245647544133453959745852568755468832575867212415369644889654171853998575176115631594863827234318597345842352715853349412133453393915488513683157471321324558776957485235483698435445476721587172891313751919642266612373421226395325589579443659219336667569297618157113147391211934589336144785699299593112132224563485988355795724662863874974421668945779259622976143238535957922616272196157143646767699185776837444553147751915589339237514277721165369134234562484297856254734821355347558995933441925631912384318722576455846169151614693731151832167682165661565526875147143134229887973438473924591114718919322299985227954255585685865646577676565976662186535973567822567225871367823929562859185876922634911836517798644827726292774926426498948727571752524132219592132671464225852836187489619459553628754165549633331868828853717969733138573544766752533327597383255457215448714478521843581227532966586118888226976149288218842927574174943854349843841659534526273689172256571353537682634876384541447653389224576224275653372635768512631442787399625179497469825665727662739457318725645379262727378944115949659431885312237398915698998473438371457878981619399858648585728444478244833892831715668416877521857662944223395375829749326976951616719222441776267222253649344394964875819887492214328582415845232618188975515725136874925488811961668355815366768446747265855931977712191527183926489995579952149691718858557747375164519415518466347222956628445842193133582228852553547998822316416598746967733877122629482612242782555149712989679641688838942919154557436625562535573365149241145589121673128251798913517439433761661737838653622413654286228485342413286941312342596825435263586626833426536669717489721237485946528869412967837666436549277669212187927213875531173715533178188385876686863325312583124332149857444992678818339587788111214197731129367947769717475285396594266376383876552423151578187537942578286364718959255392198741434571478994364968983412412376317764692581897294992331471588927774243389258968267379315353143821134341265152867584325749143324326539645249326964286669563774214747691225935521839486331418627182741741143674667695128148818516579544646994461929521225995746382345698298623524555566856329857872431259911351696142626247113891833957837752722324475998689967851144717482663683929528276253946851221957113351552582319915198772793677487692556794925795215872141397925575628388778247657144246365946593845764421234889582816422816544838394536547835774853394584927319938471825597164449677124416136938755737276873225973683913615216861343951628838335582783943453138152355317979892349527791944237932257676364232356296866858262864968625341554778287773358264341746597921965332159726949865188152682373268782795756351235733537785813938887865331855757329573242713894673368771655121742788191262442718123899854256238396296122355325227396379685116935635146269682193722348397696298749244758626725896929738387996669674858699361759441314142822487435628478394377391412724815143776236164883118727858829299783859571166344544326981861781658944779875419752973471457426489263431497846791978225349972518424657687279837815536941937177828373931557539319653356358945725543834888421349315531954858319863935313145178118642546921741616818337642148848782945436499451139752515729593372455887436471363347488969798925169548381817833156885669539322827871687568341554132687439461542227275931655788191348981827861972798279244612421435223394879866935742655116246288699828195171662125379769384812651633342849715816434391328587753895139293163553285514535383957226628536732976385625167495799591162814476663379742237977455394489479715261497361474261795224553488268775714438566772841253597735551417887221156623796822161743287228715526422984243714821773172783564195536724936297568444752829264453715367659377114757221382296522891337982818598863573592711363442465163242982868915354525549874111516629817173773298648183168368398861649347615814667566652587416282255277936317664318874122652269373679461182747976843244399414232488324321384871555768287927449578399629656143988354263754487434152814868461658583798963311934338518784529685423692487626719131872659199957488657785546116918186249149944682446114567268758556961965757225368868324931794559245231516327743538441743712155968471521942716957791764823928414252383486557943721785167458298512541768323926287256651386195845188155985267784589944172671163571375762368845374168364421437683629185291884312517433674715463624521931998328378991267547173335675667667489226816822565362585842497963791512192674838454593976915799968919218375548482829117616965951741662478832669641641391886481465421547221376229284213281818844374327938965567574784113173846274595297983348985363763968243751199598387421218635999295198373282232959671792664954863463189396518593451529665959445561778617247186321262217613536972949718422121743757768528861457542412344555518764549391176911654894818152693469693622618218273642922737976122971331492211928271262424112522619532651779852678684725116366526468434491486542399661172797338965817247275628747613729889413297768472188551335184345233263381157775773627558847361783988116219976344696349223749717195885495382816364898799174154643121541968258674152832738122375576539426221977262444515296433889421362874861577611959579193389222346523818745496499336336454475498149428293633161183715339665195799731639782997195354777643232611573526494573282697164726938198245487915363569638235596188887611148637153399352164493911879548441313926255169275625814772625368488671384791616157537814166582339185114473443138771469765394425333834261393515373298273783934555838234154293738947753922114468941754158378441234997288499736529584789696449361749467395357718746124973527352316242861385965838439726168782822535622649135526359222827585676729371433336777411322484132588969876918232798437558786179227922718489192261992646494191812582762619417424413675325524594653729868798431771827349789249493664549318142117189714572584323589824853557758456426774812334581463657992766411843498779892241387441249294734817955733612825843587591499872253758329589672255493241161137353426248976943957486689595698322553165862355649377736675934756891186572715258166747395897372759758315364879776259877357963147112822358735692215983716393596295467582354714723311482121369788335973198558739959197297223181813499617343125919818527228436416536495219429811781522324956686338767377229188156118329524162684569287897716611112842783188237572581279949599599572749947851498646653557385145192265148834862535181425953556954969563346522764361392786939515899746179621786112131398781731121184592452429939132152839812813811369494546529422626798687668858884813265816657718478235892686454635951322985666494216685752387751234266255791439748297761889653556952675955976841668324313256491996143447834517473385725839468567152294987328954373644126952897592622918739424842194496192261829971169842774156365685294211282188184168234448153612131341358456254659362714519761952185119944568813738798248123128216617491845626788657371272472283743382466817385131767764899928382428644323951553527184453453169211874296589524754552796922328338325634272124589735993594716428249712128238566448738977336878672542533354199732594389813599356599653877176949288526597746661399263331147642559381839593158168974316218963926945827765161766553873383268359843323899486461915283419626541325546825753288379886936987422453886368833251977756348836656691888415287492489253787469925664651481818638775681967514394751114153232175753311286835255528538942144242616836854446851313146838933346516978563895481599894476167492833431275454982849728946552379462694611155444426397291644762697856197192525757376985958423572146646444586942678277652493638743416839377862828645391438682465685367284859842715144177835971437864671145938198512818582988921715962966447347186266115213884955431625168882481196716215494877211263768536674683243753282558379495551494851217421685913168975813358386661571223381661876653123458176622679689897853839494595829625277333281169735117947295777638245767976971934345128638295746669135731327211533134886585969614516987198628762964341889375236566164654414361365679667585996532126481731157183541495153442184296844897912799953982585738727135617987686746631937975536398811461258816471834825512944574364299214973511493784324328764979388298486737776944366696452848767576414886653146462821565638494141582961415629356448473846575979136212352713637261918371728324126546761831193819788595677388789244898882889158126876422151918832212188166872674249782877978761961968864451597821898976762436423418274628668349328915571613353583399741597329231932378338542881128983132653566657674596249428411218419664911464131461985835766676425361742688189226114586952517137664627775482484894332827867559316577334762819288591772457193114569372548727645384351586295496752568721582135663187135644173546683343481583948246948492788842591624842891284917581438697571628571855934933323171924772418369215291593995137225316672612537348857897985597217648185354586319184764452991591353952475723333231517842129978983388325786928221271864965851749968788357847659677653938313467453231945638473339984266995242887188183545372594482697287791777486384637954113441599317977944772311553336647989938859646339797826861984647224216181955577545136792789242764274772866313946457926185998165471648834454647262863561959854281355937362615331425669654548847872474199351673513968933366149737863262976133274469262576171953637843949442749985989937625628771554738772845632121993655916773817271937121663773762927416984364981984784631896173364895593728115193461834893518734113451622422822257238598639411792936987228399414125955728657726818496197837757958534815669331811739349921786472224614159982962134957848816533544914398397483484778452332874128428747566293341617552674651153884558214723145215851896361365543987617978282682265155762787239418178755562629736339716773485436132817353415377781761237565198591771495735251839814816462951611776715277683765545925451656725673343751518764317698234298759326441714655421741599413732596417959821375617671731661833961612286167183554112274138111396446555961668912322428721521541274729215171961181223994945998925286186583577576588777162551442958457916342988646323918153195179915715228417261882972877175682572842453174799867864141647185242424457755134919685988942651163195448214616985853341134398283593945846115684277491413732441788972455965424731469499672715783671615291642994938767624784162418468877839829392177839287593632368245727717627713495394142314439343613383944695844463677786138941212528712162645972237896498382412453224329573969172851389117247462683925862257154238267268881517765957333547233555469165752793468943675918622875312327791969214998254644486573993124682788798188893256695252441642911278946844524738388793736789978985688352713175893662744392289977544368438635295561643163272968612937779631151695548854259245196288954717812859314187482416815323197577258424454751499621281712821667372194438793842782711772752817544644876745927186256212376457199464741313794492996516734368968894168288457885985645297523318287593211955733232674183834165873522733736289491558756939324711851114286884723867631223944494388489617285656822574585789218646464233841395866114462941751513148451734663149749175368242283575219283558752635532958671887935456364417282344776961626694487821446686394537794371341999437928142619239561249676599688521221915155967813937783332279122132122527923693975643965173174177377429129378564127393799186493119852744679426717546715714343543427691857887468191671139464696948597672241975675631634669838513351917221117574926189445326157482381993993748131738662183698336353443541715527589445544613445969394547517967626659993364596982911244785471232776675912359858938141418846857935672162277151853655685569954746283499517122196351727363367731248477428929128744625451665327342188719591313277548972938461274271941871711926658455537373389696689767747748383227669286414363822787459123841152797625256682864942677578752766825586191558634927174621485551142489989934886278874235373728712849847639118725492814331512361455328181981651189269692642658792214913991855953979827171246994125525714797283471352158962542953414874244942288123317113267353582868272566584395626216432246383569376423979398759269712815434669595127393232986813872952585732671182792923191682867963211783841848916117316475542247457414697672462962682328763885511151519266282386445567433519141145185982591638362717349699593596994482531484219279913752691748437665897936246962852237375259191756235828433838113224832357256112624195938219991111594728523133184583185785775786844216947159358796184552928486168469963676591261767113215943648475369525254171146747157541694431756797212528522185789324483616782351961221862169547568796967525551635536523628562197976562213656618252713964719828695241351516266961131426786667526939955995491986989929688244885577562859399287866767625448837464121195124842528184646188871596987996518782844532995493388338826525255823995358437866274996768228723114312836568244741139796517379479799971526349623725694333159986854652783216177448897139334222796251219539136669549242174385454167978821724371223146234551996382988769731267179472184339328847945612584598295942231652584367941411457887796299322267414741425364399178747356177283723295227552972888642355863561742861463117215382235251735872846131166256876393395829872369443945949564141659988471447563495689983937331396285121944691739388286477199128646236229579542471287625324226978591192159894939838699129432928777776971759141934782683524516373959645511414416764822164414941235977537568897454744839178462474872623468147773136428325252398675736962775442745286996511639496868465531964137545944585547467143877211317719443836374726563256342153173633566759376748384699122337534787943617534917745185986117859138721972614994676274663172847849511597568858226843288395568342282232877762573956264992448252369572569225372566172362495319435372438249666812418534673193935452683317363833964627173373564998156486192374551822428644981371176724323449795777717562859977984555877111179545195851945732429764251849946789289764757239461346661634537195923978244755781614368212663362753939754938586556861672637943117391265567314848424471533225435254179525145538351687641862384889386338743284129178731715934322241754527735236933716876459671883867218881494986365843567334313588299176915483828492547268689846655552252579851689732557415288743387491457422389362317137545318536264298739867773913514258678331737245818884651841181495252974956569158837372265254283797885278735649422148253768986245924341214667598612526882571183575898817264713554695373529438674253933648918264423849281123889294486749539355586769678779856866213777629643991656624471265842352638289133331486157475481974199241957851184112715443771867265179964748845156316739917973598186872245928533143726716394642559937141632474687847417946291444246849892938386869591273893825248722691793512187135153332513926797957936287285987583614744145624418181617336714451611185487859278977948759231565526525854637544341133898711756397948424686339653655934794668388971813271712767922413772147865652642848728984575615883985561826179254935733179531127295641732238144436897115947947666119183315117451129729213897552253151381781424436497318687333447643769648589923552271928641874538685657415396641657649412588822581145774213856712565395542414562564942342626297233653116336673728292335477186718163273785442613512635172769239935351528942112453695191277189972396357152352485544943159657645664388893928156411813197153796162481269451266715685994788958453581516432447916564963222116749998947671714584139414636637292281884659528866268199553925734742731984836622337236971273635999261258632283315817514529873362268372225333543134765126193328435253354776929322688989587828752175399667268179337126874655519526945891415322244846333787237278762142182693716181622779582288154257356316576274134311249366152576292732268785288518522357953289798859876743252892544678462679549314291765178257412778515772615546965921327232963939789146217651235627659462667841718623232995998569134959124888959729843921411345147443434822697568441632562585989732155436585132875936273339728699885328875378465747455676648396375896572198934418143589143762398777314413286525438666569736864631351682811462883749385248633985119268258183272445352666437625135131844642849972497563184836347749712165348136365811217571994667637734267169694184184732722287749513838535483881188551632641314355537278716974981736877939969474717335184672968141527211195932382125432789876678619429318791838129551629686153913844764544526336361432279874964347514956398821556578695573968282941235765546682148997444531348432445929473122234813536888722544788279225416527817241739419654131738648179721499114166916871263344197893765784784191682267374496895474749216675884843868675814583939394214862258632727574964312594533734219333186257895181511659992164575396695229998396446491389495733152712132921859483922948866339634794797997963891271374159772634883363851656835743868163931273552787972935517181265172463469525784369452993681716313438664624283428363452621781321543319661968391925159322389311354563427524333224638559676597421756997738142363525379336975625681278841645861122558371858419856864658723287389423258243163848524878749867674416621443738922763141714688245676236271443334399683563922745212725332365577716664919181364674744266372729489945325334349616979374911162919893325838263223718546836832921999321794528729989742324796897986918976228181988842963343822629199885417215292976172315596547546325855566175362869998437981634356741386774299466354287875837353826744411739655179587254646462543216435417353869716422775311363562115534359535315936193524558695894457782625154536145486621589958483951111515847451977539476372198383393342736461547289127644643461779913174621555372274838282437485375572933187414621992629842581917454457654384645535795768716895531766539757211653122577358727379346888762573547847985619482118942528294431673355943493331431124265983436373517982339553585596912499532259499197219165324672253382244348376275976982413658874982295538365863469947177343128427537979794381426329936759841682334821781218241662563127992959982463349351154119254455135129928944277292296496312646248641631333731458558197627771394148999122485329164763534211349643333244363683589856198418431375697712136294542417927757699626176846848466828159641315953814521984568314885789743662157448778756113823211578432698792436292167676958367325157317976229628724471965772412816537123634485257574679137167347989581843271795333788782497212888746829127185518777644763472551324814815513954731384659886131152531822361656928956221198691615747728744898489274784794553593966727592771518415783252596846932584343399258989457772921584977936348567462269195862942981377978412146873189188464548736653341179373869267955791245927572795612629715711495965178469116266635777656136175552868694593129673151616297713258234994233534591785644154824238141429743996245393666962343654458579433723345754929416539795148885738199224687168918452411823581953741653911616597342473344682676841815285156784426552776923279754733241735314635379445937245118471694667186459867719392916415242392758456981866536455644174697826989714312388942476749257516278775746156385168215778683332749516978584212517427894652874947887385142542692334912456432715494222534567726758148373895976514835966423174758662378558954515887273814122487242369115789239617324585887125638764754133945995525963441143514369734146348727168664898992241567531734457128824679958746959995637699944645426773667532126915477137121374715371646389591171527239831856226554617335264262323925817782413967216939445762872264643392442627347939764348425531884214346517131723688912744286365675919558351322589489552861496754334278913124173119854131168632164372161473781971855267153826122458545681948944819325939211612745699967152734225156538448518673232926711884285688342975715662774875536513922381294289761226373769313753134262271498454475113368288463655169287215941377776893619354519915932643137954629288358273623513895158251855216125948755826257446949765748258759143898481995538121186569373148942331268157411312321856763166851873988684333444564558114411886963141819241464719253864384372767162153865812373288463771118363979163448838955262817275384991296993327199894418598295623992921519832431229541479298659848948989861994115168996815679454247135911199491897597276534567881483963162182161829436188324992948235439538634615547135766156249963495346919458893596861566179955283517297132922152647693281185593843652365445651714472681688147321464671114579539866124182874595441897798144986872474771858386731718477282671357494751845564226296844652729734463737711266578177761925285958383456126231778585259141659244852196697119277825329334388282576674324834731412943856384193148694126497769711793188595985198758268698365225294492151639938814528376182414913342456418291171322147746886277581635255964162993296869547164792764178565861861169745679484744999316142527613628573941867232532441845196756997755948814636678812895284858538213586376638295965144662936779588747264716535121534889973549487241856227769261213572567611648362337758425331449786833583547462675359181523447315987235588223379794692734977617195628156757184942419663858428218668463848535738858814179821739586221514256739514394799672654582113154579131972291568426679838938344679582568778625566914996798612879726862639482827418797375126393264749812748821541221837348867284447437491362315336429953739447781423161287318731362356628552139151266374985668694818468114315311336844232587356527353253573194125799922161784336969265312612913473374479347771356352782942132468685921944621645261339423525651418819984444498924946776127572622491289523852534826393993641782921939879155397679217496759738819813798684123761579218774745526495753512813179926946814177528167522873943259142634215412253859591766151374267339631179285479237284788715122744716694622158869678846716297371541281451655339387961549149776728737772826258276873815719765246118875847462278754935494261684284961435171297953454874398356664958992499417112236524832656313697586724655254466927399454973142889451715239566256864799185388466481461972727332816275973491336864899987158781751468864113136612181177773542626652447847149619618615462616668323446121824764623483828178644364598211281546798146217115869395654564571515284877498199584413778123569511917495134844692123488199435385375114516889348349477377219636143543883561575218145872482344848281568714841261974441587692885592648497772787683917855614682141294144711869527818493853212415534838287263125786534718139251693174782498719277729199991896855962439679458365936945733812487883926973717543935527989371398175477954225767959511389315244942577252564948634683611521944328464179316619462729979121214646472877718258193265162953173435952138887593411727122217414545131332111861181151752853593846349362562546535549513798847911643558594647399733573842625415367693452715433316553846998437853613847818441761325597287828593843225716539616527165773355113397499978522472932627175319719938777564315442544784481822782675432178598933175343772753929186528635474267354877153228318317848611146542277554258561289929794455567112239873287922831732781135571272484259458149323395364366723738866261216918831169686913574846721237248828711625673264511885457569283965625785243557818976411156964259611178682747526313843747333646596593352425965595769133755828567116432453749397763765829319146746367313677596272436817836739313828557824463968911582254826756927763544878165955913128419974465242485752666141531832562558894317345719765468512474529664333753486855731256996134475341663837275649211325824426743166232314939484294325896147691816518549931878288529989692251242772625418584483234132981285219475527967715244467769967976586413854551321834268945841537275796982445366348565447931883599969557681997621476711593579839815769427416268284664513869831692167918648255853228668743616766863552316219595826562435795252737972112613652132687721279795767454554513668761828689616565842475711161436292374131981637119256627622653263489692689742342245816467522847966824182855188113673118869933639312619784372181238547214215477488447314632728741574394614141788511231683754538675894245648526366488546712153991389694156898424853685364379658675444738417249523782117523488234668121851564416674763425742454819512576532952517883124478623984833981543528668355647984744933216594446788454278622319673964374823256725459866637758615891327697993654199985546311961439451118898154544441784494589532466467346141485628686125454296432966781383322772549931566874416412961188319477519413448816246876173969781526366286439319833511296382251211726435976797778939938457673582563196573252828711684438186334489788245459621481548771588191438396128652513541494261228117159877378123373517555861882582286162888681826157712277266314323938916855835549199217923543875956856332725257266176668812178574248771842256862459925895992849253929913127693837739218697772585867756967636919672582331998955531296782553233999148261249944376485963917311698693417422315632261646745465324273413134255697723766231765287514834146551919671856469435844583965278723613669744389222515843929545296567733686924835975349641474994649212461952333729354116143443696596742636759132955246759173342891364426192985978483166963277466482733332429816654849434742477915176399449318862246178452679369776495338158924247745578746553329858371175877381944491354789921816633641227845838277381669551531284446457122494221739795659692619834567259389691674443717665824716153867795745792135316972453824428715374746315428848335478659982752288452173514387929546311389454561315412652869561594224252186332452982945222177127438643841473616795787299385897529383656583744393779488417896547474729357631859127965785563126763124949791785676372741296587254465658517564932558723632371186311665416153545789651813129126656613243757811479224214495497951611825289879816728247487917511662743252138918581484931712362437582896997788446565767738954996744723212871723358724396172471144415625811772996877216794841834265626197163353738448117381363779132631236559723555346963998355258211123666538772296673961875481211123378921787815572668635163263264399182951639266322974479696993322239334386282713799137195685816919741259667837197919618275655136119125882653253843783599144556156158436571795188357616511856459155886534493991725586136911546551839562811189162698219791843386368115274283198257967946919237753563971388596311117799488311975331628646394925925694533352458871932786314696187547879115238116117275795254762515292192495295795422879385751781298417647156525955933961325394323252715419959444936222244662893117387727613455748458663829198298826587338573157882747927827636418166887645949627789472252814454259638482875745393349454524858264235853931393823946871212687493714199483411673876452472621359529837855195243439964192253177928999685184687839715224329435136925873479638319189591913845356947424652524234142182182365781474125471521833246355453578937974365812843726131664198345148734151631714886488444743576179942356499469757285119484639246929154773618572291781627879773364377644894651871838891576543679996749128484569543311367792167957531422369515557668773453457243774716821771315171738173317921287667248225345642724421641442369925628449862325476727772715831732384927793924562232898968541513632122792994349452531325159299462454622821144167218131635544478623865146159455155967819253589459646241644578972557237243592426488982956293999234846551799831468356431949347149514168137919954768311214127721761156769448233618329448848429495489155988812161993737491243272529524992873977166328858971287238989478555742537159944621649443141977731294437943825287341373577465246255587281472899523541778515828333871598535714665898865615187918186234966446881271866436834424311733228762349456442973546786917178381246469293836123357825324922749753389199482972297878398789854618946846664761881456276943827288961544191357334378876479661378154217696621254661447965839946652161729371385741774451842836492597458474413866833368252434963191746573913299771997721853347556529255445554519519181165378922564368891255696647444349866658895131711835474937669894769425284687766748276667313392578518836385851424232787597837973613495123597548961938778459136387526128267921795798565399392721562163789569449999655264983164111196474311253233996412719125315324951272286589678229389389711133426532659298156866794611671674725468623532336713372742799856227653414556778348676749818883495159489734491135972555435213442846774547876978466419932452685659216669246723558198872195353617538974887568894692478588193454196893281936894153289937736172369858166158527932241233816412538513319915666358462474665295447188418398863488224361716126559358999637493731543868738449984819598462191463497673455288276556595439449475715371516924639284733266299135596924164655818826288494912815454146342695175857364194493573118592125274671255771271519756155715916323789694271288238193597168457188346215611628331139388185729428242662123264997199826724285237832997217424713392283754162684366466167797267485594768163331656372987557263891349625422743617335322177772969994854375449699412743949527612691975392725684515789974835584643739268321789121598484766294567831846668635537485223688298644336399845517949687298457166729132759634973667625334258754335347413365562837578911216981424747567783248429167957977576616979536295418249246832438265725313355764294827821493544351823443667143443633414353696931122245592194337489621944294786787919449547769597558453863331898487411254939879625458734846835653393317699576427763534918481845154384143979621377539819747639135462755953813939662552425167179625881375465658614759889396993844322348774247998472251179758943364486254576366192216322277961276523238475191789819421538323341782194949348397286128171883116174283575398228736427134291412919327554183913786317929338467558379124333523889411992714649485112993434676843873762943496334634734956423896174359533662284646918294734913621934876132249593184882364654915898265767872721937216432787267646351826594674667377918276782445869949579845281727597314872914489373321293621692332962348538967894116115375324546542665517393972472873419821265728775315944231366554674545662222199519983395231864232476941153242182961271683678181138623626841948224232291467355367239382964957759162271216831366978816892386952766873884467482978758347465949924692989225853941815639375658551998987898473676656299125571334314212792529776341841642288219531832919262939542635598696525567531632536728573624973742273728472533676238985346634816134385131173429943831255816186788116598515846739112126496114672462911761344817817918547147394439431596628918689378123826556788631681232923881797519872335884646613616817984953713679692289644184454924622915275532491517561979314795156246763215354394151247167337731455921232656175571484279812485518919121275772318256564434662912792682618165286981446878134234392561621426833312355832635846266492462494976296332623865259875495541768155565288249435849726266698665469925423247169554524139679334861751293425221176326728676598973848956297618616136797554994881163857467216976579948783182459454639465976662398192869977111935496233629285495214389277886869397818271988528838266273759326254925842831662454259666839862475767249422367512816772355231367843446476613342432997222635551233477915554888811119721963428441776466822288969968939925267889856483964272877864656547152731625253558755941717962515229472443867212977461521227367778616739125735922657519619246812662235146528899164714655678158314427811461241945415879236949751181752797891795235613525117162961946194774744155626766267864149143643929483698249715321916291194357557485743547498838919538537763517245727852692373254996648414654367738524562699893383845686941367139889236384173499764131725749343231243772278327374685646119144356369635633464282549913613596831456398861216524657457696846438463982877877527863496156639261916115371968799476515219772688768377795781549376836357324471237154723282235162655379989226249834296414426822175692471483996878287728158649746395432468558235952624427271245763296332286899384545877593617972381914112691628862438976336933252341632781742437568366888489785717861838893945772596174723781141825818796899456496184465532646518187856545478917515842393545196814588142468358818482412756255725963875912637416245375439944515912178658729451963491834728158649745611383327312651524995799653437978116236847991952441829665997785684297771579464698668634133691158457135161917455121872175344347272974379368894385363568982215932119426353142561986243131241623823654378582627615328421434586867922439276438998521352494641127817949747371278919945164437548117891865492418298292617949582392971947486526236155294877635855952946574225747342751148891475859152599891373997173175964891376369418288214593219326791179216622562379989348658578947154954525561677566488253189983686962312856813658197821228996253849879954424778578269279969574858735519951338175872797784631915877227113224831417477245496486863574283495786716553167595234819156454793369839575789439942222136772151366248275654586371483595152256371794511165494121167316722846353432772887336627623443925198633955923191832394156389581989732936438638691829224743799787661752393256815987898273331399965839168373852349928726958978963446331257332455455237712418384636158154776812346857427667376538243938415996129694335981718361173376197586986845167665635451456682372939427191617463825259285742869951882591641367447863861244321224282341384311944738915828349259668781719149144495275667371396142929881774686825333889526535147229116174441912544822662215619421221727951152295466523733282913935186782875875321862134342533724223789956444865751953376418671991268153686952436411637268925914129733179765896446499216897397789661968824394847575495975613471335411293513996643172668927254276716724975254718915161853577884345926312837297998394368514272616987517689398977795131871387447936675434462258828329486414257848395847263387168899727468762345275758455682387165937773548673188543377645763568952738871737835778896658234479265436113175767325913567479715612144745951435146436772418368839823386669692294736494433259131812131686545664136755997322214295497355899364665221728449651968487112582417773384266199944939757457515645311549855453346738694448189443964116981335659221981413392145432632229242696418596536855958572534644558626356195547222616443596859394965689378733534684228467941861365713629482634983394939624718624294356384457834154456317667439747272611145627122457877633376231846916199462262416993655971474457147647573688719417661147283527222975622871742561126231748189711887348526488535537159222911989968782533161913466161972163149136784846132222557953949245358241818291784915249844137942566371251169238527831794117799844551475471373124795865264733616142188534552744123599915478749234331973427681873232922549313125557554785442428631832176896117553296474897949891874961449941796815551831424392479665798693772252796778719938265921481259316431699266926829734225353367298641791616298779643154678885594368426377895673536632987765314649362999687135377839827584115567484573431133559242123861279615343689922824268172273468474325858116997177493399416642488811384174763361191428349893939829846353729944943974797786879749634347598482886173442198685559511835583331598195349448296641692565922243383183516449258723762827218423741939271694518478544635446276439522539488638555318771214621362223366194966791221187997369275486713211517976188176766581398845496617747343941748414862982654283743597129324387918384481545864236366868888115896624862824399612237823699319879432897888327276389861118148926968948625546152761646557459242637431292635239495449984628532685336335497818747371268529362529842554992663336154959811735867759885274331563167452331394789553432839262217312947161289567411644726631639361555361279115746898169622685621655179186997561949855716865325371668566264791794689149734155562627374889358338776589352756212373999487212133991448473548958175364382912115493436263495199896332659749849278491916345844733345399252235952772772395878249454882717919514672757877354166992379548238168425589366981396885922865778574316744679358367855346422997644964538884618535119534976164717112445214573325825768165569831531765276423744226681476822894846911337858222633192228619788163643774359261413611613373359165318475819724744194153381514419929667147817381579975293252682563539142733541697584994118366412645547728963912668947358974514767112783578768815618332138378644354422568334214565497599436181514945191834244691939778611318258642131113436785786544313323148891994195336994362916336647842629628937451139465555287831515656528319943946862326744416456912563383275568144176738979625395349567775322125432984781641969483348115537538161149528562567495619411863514399313144879824653113144928268687517711188879335534747138844693342913911797729262635336119468582772862842513428661984594439287344431524564695542531888322138853285336672131574537525336339214333854391493441884644166788688821295434463796885139534193742633632964419778466969712219373435777873113971896472252351287429987554764959939566671695723564442287552857848783331391761926451568214398862739152172157138774729529958734816719917991794461732564568222591161151739788134195252596327366462477338297191499815953674319946262794624412442322827174414397823883343684837958131728258577268357561738199785696678373121726651216268176935473138865267239784713328925617955358133648352231489711513964658173876149954165194965115399665472558153857253753148548968824349384288373986249443286972652975993311137335947872289677842938317637631352756523632687261352983745418434597149492541266279477641171913353966885839854362398152169159473668247629593938158843149955781146859611561852656449734627184187672533668543697249192464163551226458615458618333233467752897817533483818669481683737583763442285332693459286245427265441565774295454688497121543158581637193513147395235725779985633795415645837467978351828715268537966321784529296931112781396139624355323674673275276353373965827351773939377683191624851146538242318491327965364225599493955658878628659345752153512441735289966837682514178274434577649158945526374425821538962328972966768219646177549593388419296283758569422928672521648478488916172926758941696847811647475265772852426399368842532585333737214378428948865749892949461634444761512496271744524616552614947223253482819963414674338478762473787925114181322689991748514651728419929417338586375438278443514353244275897654271793611543794918332648127682198978338273431822654717518267366153866582835796951321169875591115371837999578163184179156695694921993783529334532939844383842232222478731662924197971398562674885833785749839349935955611757146627786241233156948434884869563114772395297492985826395679524725182211639358555836565922864235633833784629364857582974158472833116374635569833572669965791874174699863317279536692587856833249588573683319352819947522294328265113371591425594588249348771596997223263214653991814747515444133744141251515794775948788232524797282296146616173475343154296564272272885345842179693897216752269486564997479676536715424988215933588878524572124694935423322725963849691948141598792232444615191385344347941989868879113574983911424747341338214881881237414714736119824756656834912924654914387987959333887479751952316797135723497239517243228212322881683164394125856659871679792981858153473773367813799746616784779574812987214874142915576145511468638725435622126217654257598624386947581952253754528833572424742346184177292477717481647879144267765963771917677425379156959375851446513514251982428324728735228243683943357236368289469322733656814296422234759567413433496669251669399322687533163495645292215169889719866519725953416825836421418279165715677971322883375716846644659929567264374353579849423986331232267883298524761635677854487498515282391241617678926591938568418826954168218775666115197853694466861357168934378979479265423759345361865656884761718514945211134651536981667934984744137657661925958455522325613977379935689671266991542663122319936929486453467957191256457587479961899433668443132146761428165152231963237952364467934166771365478363575269385622414819385492839655892328336897837297135664746692181322144624316125627163346996993933126577816497858653886466865257468915795333917671959584979485129819367789171637722559946884285265181869755817587633526194523938337492376746484146387986338629351981117662299592129717349182925113192768777626728688323321312711911275852592163829742862972142143149623663868949913998286389482694545791966861661959777295224273626295282757723717684392814221382891318374956215873193373585513782612538833354839149356594844912172225188222694516321861344544751952459172329669291376289543826892947843955811739646255118399978162645939421473336851252179876662735118148175397862986983871536597118712418837514692381577519959759519659432272531757694344338213953917859966299173833266578398593883557543153959332546194923671858214946152346268223822294461556365559254387894715985295531565982536341667436696194693135172679712235281933582181439743241386256369777669917215247119323331835551427183963673177786727949123557589387574731938615266858759994742759495678661421926512476274548693432998754795677326443858313962214493268536993614237422332537656985291843431671983624647781444932449433664622618959224882725227252284449891852747659137218629444442885765849913576569178941873217385761234124361816713696572783492876798299516586957396842119358425993712653191795324798888723544133493557766724245624313273327729959394968541845495625722153724618537723655549978429992996257517359129365827715546435534149689324125141521282635267629912771792992495346464526933693574751719799839353889322914273529884855714696521718621711127268246639191469991979732693694321134576575419399285257427686997999357884333243962476217854444233167736957361556683112876221534839483987513666114424591213365537476664324568279599848958274536252627847284181849723618424665281442135844133115986236867323731763976548742842439951547267531497783226199173116991144669492442999122629527737326421765795928117929271122784425955132591982673373279281349671176677626714862198415423455313311867637297572671421743986516746712364172739977917972268628281841877384445333922719725576294277365872126648839999861418927345959347548993775674659581381994489322956745822378622679597586925855149514185222973239178836428713396256555966153355252934566426545159794289685819424596841473925439498796754244174414887724915447475155621134321741138791181525242747218219521585586455554615138293813523564592959674229469862671851192247687772639151996861938913992225863539693587475952143724123224691953891149886271464635947247516581761764631257273646129643473139185159312327144386998862199291198583514745448766446232329138147885245499832698233744765777571259663282174223935118474741587593557666662174367766594867815663798354928125441126665942632987346171452263696787342836888185719416352567636295838912589387757678313449112621994783831758434189819134943195184362543597438637626519893282691816168318931883554295274483542532127847649718163362778216359492694387849711695731996797332262429637311281249721791369182198238181792729733694763698586686497296375346218567733971839487927736253787396132815112273121713465989347966579769259266467536663269183869417372376192647489946251267434364891117516779417311816823655871259251992578418147128689754231355379359397137931631499364786711227242262874557519558573849411421235341427862413356194367397247341774715381431655244569298812536593863381322376889146945725767416582718741868436448133584161692249311284279923656557696193161275115123439329573118877476683691191592734556492713679326965233132971143487836196354375962374665762866994786486929245731757114579746245513242622445917162762118173595956358391444833638695796593652245761681523896158918487937392416882839881271664564312994613843332424382497354699131218579743976117446574219669661572327292599199734369788644591447468277425224285422389143582524258975796226535166284198346487792588158569222617225624447875544692586343253313935586719496841218457971295335617965525464947857783479379811361856397823226911767995822792727713332193324813869558939188259929152141462732117952733632546436332444479543543236399562715247879993339274437641269125275689465355677584826579485497824373218743291848211757795324814232442214433515326281759272551863997117459789391719784619754749138737472341159229997357322694596259986119924925924748351419758473251661662853344717532662546363587543598673996365927173226742988533772547737353744451662245323266443586358873147572547759281497941278894671984631674448357396188995874241138591568881715334842632119413525354418186256679152214225165317733173771484152847158579975595268464542579965158753519497845352187539786772187952292231714238347999957524722316425536587819734422317158529741272634372862835165396991743615623774199375557863472972935195655812221237662247585761754263526187298211967181638184258474625314923643637335386985399236496917289443615336654343772684223792521355695128783197364331642822952186445946694793338659613794987176629112662931164938878156344141693493667741856247825519243546695745889654539142823274187331889363641596858652824139448951138964217267751615787181123718811516817632286346814522413684464423994565774297777928269328554994283538985294861653567477132311628959757276552626752478281422473167933658213453938166873914931346939284813148431146623813216239832739111413235249791171392814796867767797911534492389317488756332917767457399737855785534298731921677312942794578957489798461561528148332491757632369138865819842754566695769422537449226695678653988558124956198832743291658413611555356651258931184394459281451496832496419392399738153952986826598546175994223185879265252844473136633133444741228145558733161353915218442615726629964836932157347757582653115666553935536622344119857911212667322415857598532932816496516773484623196746589671762399851426655926126789447395359488363414968459961438362989415352288417713547422464279377218634841672341674215441768685494267539487529576987311486154574989632579221177755476424927464753515652563669334751392683229684833388535691523897916264485333615943775145196374974689938441792195353865274882278637528263233441866943568845953815567383495638714318544237732992447165394756527746581813575664896511939485937612269339576842211851943862354914139952898581591665659726851251553457447274323379834716281195149464117723235453335595912921435361679342654989213652142234265691657671636134944297481593828377342188951553946256883833195822555642547581765489857249538829964437671218385732617329163844749261827837666237387929825119472398369152717329148738719229157266983886967687681463234244148854433612216864633668879184596379613863983569922177854763191627577853141485377473157523723783439115318246764491615457619886229229549363938267328752323299712514467393586312123788819228188248574284442962264431212922721543378797132227223455566557629663889758559561382426853417168924213177822778785935611741447238549746426582251752292365398912745619249788813767977193522312486946748716586852548247478518656238692572129695748551288148883395164211312369744587695488266386782293233259222569228656452989567677779194915142953717433431376923698598887481586766489622658249398248836655694378815667722525455268141795165572242717477519155569353322837363477557284935838374299429692326654318925317781516825767636657213633424943621561252618359824544796927292453418433682317387641919581211356596338586526244987986935946869418931868429933432938611184579519311386227919333324174173521361182119719419423544851357588514522522582412344587861885534374724865814144266414181268621957317784263466772422728725586471291758264491967187259122569296295179985325321829634525671581181598586917437319261522968126125165813583224843759799886796498914384533643936391169157637356145464796959242761876761522137631166446132845919985652683786448444177578552152859413662731373116414961725819994944388362288588219495465855845238556372491248948878325818483795448175215328112899621181818988422327847368169257118197178965616738411137833746435235742528177649481593165248871484767918696459487426633135812949414115864519437278721833423417447647233463395912763656877228742415127353572152227573159761534664165799946141252999194978912367773142136639645823632818719836593716818462324786948239999862411671259195126584268971859736866813827725237784289176152923598178349922534111419417912994343949864865816216356286876976398483478643122633257775353949468316533296587651965532156349285895547657295859945497592125933412855619228613686926665767248489563924845615964565111575299937873274457897483747248286614597264471714494122395998716365615321647617146348476965635351822242215865668183828315767392473586616172537435516446712331567714353851113736186619271393348918333628618971588248956175399178812163823519557369264651179977856952234374338945859325322228894488691927348243628548961171851288946838553466627371166262256254847521375612263889885391415919393145962422426794662181121421348532927168319878234322334354287131233838648625337759872116424126138329984735357912999989632133536357345716132733921928871863125659372633346419591581367344655129947219434964814852887622976477359869893198578753941682788314139125984293839615887945113744236127516924297157545228729992314895546937447151894326286975195474937431164768848278676263663181482123138484258965821436682981828138231169474271641673242331322914735731668985948996219433353444626289345133525415925857271514874472395798958578871354862992377625853323917745532456732922949699174395685269612646228419493351347677135641411565986816655779894651253717657684981562126593483737752123776435624679771329656839594695852484745191867899754425365623188226589888974763646968593864153874413382188464627294953237633828158377475211561271565777449611425243779289245242297654386247388792968887799213233887316829546215392289758659971158768349284894323429394158946959825649656826357489418723617192973446299882316944874656896595583726446425555148426871568917565647269891245648489967893792437991526495518872799696375444677366326865315191261229736279536253684269788197122233985492344858216431399198798891187537651145844387495314164853951613367269534961681229526712986945362877829224283184134594692184619786468281687886188547795894353222858565524282799533111689814225399955586714863825115174954465984878227787964344645151346772269536347915611825288682726283388231755445895977495243414821149852816359738324854457587868962846827452324145529744492177863146628353484798248123452558344537188813242599314114358414126459167847251299211411746665876422427181785614625656739386763393333132191561922576148965431749872274363327218355859645186141937134461672392226681555842546538232476434452663132175468612254956183634979125327335761631745239738981477378719542818969934456417296244851621564754449333667287917529795857813268511434681218888531518884574789539562831841638571421299546814756693884968921757788797741221584254431826697662339117762783831335567547197752775676452529683696141784494958234782225366324584988156575779583851972417938476664468115572421695582632314141616953742289421479818979191494554957312438369396277964873712246549251293119147655331527797891355251278478371925347389967647761176983728635627151878664337993199687758621263766744699132631939877553313429685268528411572464241985216447395711551382238463787864375818528987932151272917365941367756598285987283188288895388325979538346733541639447236754474951813626388532685539142696943448418679288941188539334483877219841697516398217959872221497196179138778298118783671881729539126928885594494263439516588521332834691151489795847778335276197379538643582549933691323849348155997752198143935384226499332136526381379273375883295733655747387896833739965443562935289643362941523796672115451642159924341444486755222322856729915915228252599154574515771341231521132846985899236585953966189141143227715383296734337424122925827238818326535117439272662764145856637459992392144941196362675149612335225354446731739455512116965198698113456928982826477467954453222913347848736828445281875229421522735428279851695192979499422463446876694668636125323151182328552148686843594296617922929231876978737419669978549221312324292889562282147134887798728838258427372389593186473142812584419241767985934232779973153391741664641429812224481367572692765629172114894995343369196255221682699898278567991216915621933191159138946691389399889341434633637539314752879719787691743985247889818184362241118778641938452939919798224238348195768842677768658528239542375174549413669335271132734688815321663414669582118199273631391732777917473322423222137289329372447138865196328439532241261188122735699917539362313427433442342324674663425249459682335567582713179525656171115163285632379448654586959667566952369722749582437785379235879465581352525373425182518421897744282226457875915413652483553226434544178645144584748875231431174317694467772128472359861793888318968294961171828942727786974784579498785682763456527296783169316235183559615949582391778863893426815968929413342451537313592832313698589539653887839541799861181349198139894173854898867743742765774477466762946415282955228294752199634219493144552646158866332431383612642734278232846632255296325474637719216838912674677196627164426286996578478535792591152766118726215753699432892141146212822572283666725758937921124544715862969135796269953634636988359725891713262776761124367944778648128289416483158159485969336189991799639166371276113489322921718788741547173288687926847139918886749683399416263964548341131928572439658487114481734657649641478511465294983322384548293146273813948457746967176539348442168348532366939515222754677312416231972297888739249314651371411924911129697461374293657585614615996997856582418738974731182542141628213851992864651824932165167229931215294389634725997993518319382212612148991362752451689311228448599593372317472497445375486129969817135354971111744271599219995875577182488499464761729729729216652441578326263537519471432242616849987719434577227253185299359843732492335672292897115524448322584523745192121391189441773594652994267665776715694537594743297386593158625284544896545718127735475578321838272552115685486158675932864736533788788345673388946437612884527795664487954262955597157345786455911249833247333762476191577213683716678892523889936536573293351521178856917276268711358567783834841515194812417277291157735997362312721281231948558663234713439551521539551535479245446716959984845887731874211113547117792699962448111287597517851651321478354498398316955614489533555481316755564394899358786529864392433896433752149954723474259578792981624878971966438565879635584672644821717893426172548311859217469741721489522137161892875696242216267295256258855934111661284493919629223747532924324479398627927869672944686677999326354296886563428513861427216948662171559295447387562593214797453658714533166673338577787146782936886248443891223169736449118199678283926295216423276819719518465283574984495135342822892633567976322729958361895976264326552259771832637463432828434755399424371344415941384365296562879711147252582986994339648373351322334949178366755177939656971993925418315121595993684648235214495835665256295794862325136656875368734238757317693624126679257773546758533352992263564221145713146621463587776883937449442812125667693941728396498233155246347893552755816534173985179683216785931295785337734911317255475943546556823345997387217923359752196642223445835553273864989864163625746961454888185361658643939191654239264452351676642484667575631843859294317365827865312168519593768677997623195789321415255193469126716477676154974915329728154966536152619314681181412383177463824429689598957855995122329955236676433383178763243553675569982548172498695459764827163419396449246275934568324695491641469193926533825261193452779744779679969512693119297332499362748515481321489799619331469395459298736758796665525437472391844754526182851416856379926145138493844443526466142678569163465214487711953588283248984779125535862543537876684897685963864416872125377954522781558954239568146258665351791879824717139976779483259674644621613963775662238166471347691162122217464929933748366388957953144264819391383455282799584378583897288117935269687856694922778958765465157663531395764256322296852387891557899918384717239338823852531685454344163432244167749123275342777191486639743238812694822435592319258891775987866926398431879881814683759157623313932664751639519868133127687818191356621783633618421612269949748764235382455715636697712696559425637155291751294752322571936967329125543617627881913261263748471372836185746414515721626989827843916593865516847318369867837419791231427866539159885669233973832844875559193897775222244431613796174528516785552964978411461629226467298766219386582322347418329864573448857876334555679319132926373696372159672937584425316497924373999194862964512843262892592828217997483578929193228488437628528228856114994784914742585156987797573273571849139583741254643312958265512584496434697592954274278985435573812334773433528734142838361717987128486728961733936118835985583283932593488541743343235624961278561529857681654888181542746853688648523272236513392345427982241194845153254713933156576275388387662176281561853267694312649457214321838784879174733264337262972293275944439337611825247863941259456851282195754736359834237132956531548747222574199971483995189742785659261327726513631839348212379824739661321972234217231959976858322276298385497718421395281865676683292129558129849879396363829388517698632443327314122748129947676345198332563282483556357331998532931754899916143498922745734576678643912782396634436699172518974837126285325777229779686727523996686294725283893769617288839228676285656164233318369977758669417935471975377518443221785641682264691687114865598719887242288214573532232698147827684417425236582833955214918689348677398812369543746256546394228974793574691534617312965573995672941288547581849571565913382748823831774431495442487876114278159343399632771214332929529936732655974837993914336527478461933188475756446735958599347173165353181454188651246995927615719244432366774439533932413273633455788825471823766958199215567792379959486468634228927747383942167152889525378598489152778873978673851793329168895789967844231997262349561357945514499183485465971294148254756297546444662218515514817712187686339873229439179529899551658315938714926858855696575421475294686456848532396755413843879288646281754516626291739813289117959477543883344863845725933832517454188366581767149521913285435161468284822798593443433641262567593321683862611844976338245391949261129396456539836458362781673689691539175517599133858127174342392344249781338232516317915448667771193951973785835566257781545113191386372641123669274742885495594622138382383538435719887315754115328146264425257628596236692192522225831172586357996617166265317438892898856561169619325932451284964143837473478338159643787895171575757383438242156111377956463491855474625548644344261955481721695133394747512825231225652624662175293566326387719711175335582777297444164683342213218632188266966699885354566776177839937843438887876391546213811583475248471159835454498928298246483896733748619155585275985817436614286449299194542968457836668129536161969878323417352824579371323819816782693744558641187115125396286644713176421273281871273792419974343559192129336313431699629616941276175276998637859797669621314321828434833674359229975846956277369983375522846758645927693321935824159482575249984474234446438819224252218621698836338672195976887282412163112984517273472868547165395491691799139756983178913528948477536615518472961377267519393149683342782528614732446276196399358482658799569932165662361889814642895575429422526973119186976341411966317248388976285984669383333318838552489277684271436455677997771536754561237545677222668358925177632878891544981512667583284689333519388331629759725563771249152313231843913868749275552555351579782666855142814822266421756782641816381884864345452892966434698668295263559873398486682225473238947463697585814642299391747959744478748586866219428248111786769295168716381991832745556534119918414384813812985258692154554344184511882171358664323526869293599841827934948794135276752671829884776568852731923439994151132191477923797858849183971475476466493284353928893819986123559296725943467659438618517218352269732214441215947798548157872987969279514513916775538333111318994819751191381857391133333244933313287286214288918819142455747968176783384712582372274329782478276844173542681617725255913259976449756989136197778273773977874318282861673373948756913211876297925291157485568333823144129649231649744472818641823236428472394357321657738582663985627354582816527573245893158336776412748838578236439728923744222852916798535446879841632785295371561129862494171954115274683228164166943971468562752368526727533938632728855591775981633395957141782862747186252631692812295898767843925634339381251421539118884557658229532469483425467367135379945857691835763894441956758276169645294275631929453447112828434487716124586577412656346337169418287788136673424578992624331361978645446994225562361423844861857611944633154591626767841326391942945317512851812477161181729714888217957143123169764763735794963884669363564668544919282542847216562487522888732121938172255866412548281468121221312119224719359393211246958869889189911262186925235348823598477375265371578969482895776925853481886323351246173253618291685822791422636649146351512321277758836857919554467882932163189744526299981835252849932227524487738247224297722795696717559876548453164574144124673243986754396232437774977488734947134718948651784451657485258552255624527372439763728456862616731272523249272247419155732882453461522745652866596419962159185422563645119386744374361564562913149412993829482729945881226417621549739811839999883371482823574527599471453242219445463554792154792638562785996839365629989183353524269347736318234685573571795935352376948667471848384421489873497534138883621694412752781767997649942729181141361335513579268832726788685778695637178324241923174652419965825377973795197188386751871676247664251518918726544197175133646483717757547318853353169563726354434199642462346572866712974498831338192337562118283753941378252264173295931142859235527545359466762972454567552563915649274119684861816252816952332796512813661947937542611215338388839198365358841673634743355173966755671194877834997469684182376841318317685367756482349748875548568398956572246773897871657991847675478915138595885561514293286733268959542392888234274694891364688473317447515337754193472417665591822566216538293592638778434873854199619252971129262137879257442741691516692692528622398314857121989929688637888731961771965756644546483256933896781757753217771924552776368537915171745955621722266333858691481888961356728898994535819568697585361485967646435877357293942699226254659312844422146755958298199524978798983323526971474384974924311179867198348826963379676958388385362951774566142358324899637455961956113558152176897376337962447442852287982988567394826692746569654763452449296914394854936573527983227359179651179554746482643332444169165831927762245663736158392587493875866432544981362867685634362559934576539927844129677141367412313651312283976367235938964695725979818126313738542835529968331727617498928281135217658644566538287927697526628948584447683235933524374925666459217532189311894144462753318833743486585315484687134199328191475793351771318667368668489388425885118975196742466223161888611188488375764347383914191187847846574411867291838228627535218982538868845554546457298851361167221186969415758283883567594599211228794624299817184331989238148159838281599478976498586317211925887694643579466896644264875965443113566713538218771287564959483682928588741652427435171466293551642489262225347979576691129455428547452573196793649199299134664597133378567935378287996819364593315522277869487295994574489649858411427193931651138475813766552482423123315369461198677944598735876167397834659769516319658421986592221992356222963583436267246785916915229741826973116732446915494985495359431837247698832332651158588913845826539299973294469554392192275656388298195314648584813993218663291111819329674431819189399156365365354276233466535444362276783219644159662897441874291316984295157352318488232299519539927436742565685434135245185828729543115151519141444856355736517441642256296199223498923486146679633737346846857186888127619276238491235718373971558251811727239968171449257343397213183153775662467489395938267877175279546192236865884377283879576184947446559134593939647814761369552286839642182374236817174189144263735698897924327987783991994319571941738329751348917297386617455548421352216249939748466915541984824848958552554317132532175173454737621366511842434676783389524785546573114176229677135353293462914551851168779626329654863218298643738734591553974948214524333197468131479415612185816247561869495296243173643641239754398375213523236344587851853726945872371632844476735399374546149536654716889325877317234677171933487747335246633364975332927929157821543966528854149662744525439912955241792686889844117449873853847452422588156949339963858924218844976123838412434321695586996789165667858698721153112559148696492958532381142247347492394244683767419648543746379918147451898165715768412576193184998642621516876441271228836135424167238268856478576597369863484799413127991438375834559545773932972273852994711293547489856958244352536725286294448276949543356771732494812511954751254197433999972111481532425781894214836915891992939972923581659969342932411591584489571838874769694775916945183321367348226592451638218612119342367991893441666628438188399223447137125258315866699497326146361162653178817383943772593996532527673989669488771148287476927158715992868816583677385811492216977466542433979226753344373482968614268391577489964287614742938788294923979698594912563935128995715216383252912382547621223812472771419524723742985646557737865932872823293577654117662435191584579652861116761261826147446485742695871781356353333837571218672641118177191725948221867788535687788685294266649559546224866425293952461776341186148759135767176451486453177175588452255612217843779324611318756582795366386959137158417547313851921445962566568273813655476651543676162127764461751815442996159296882192777224278368812999693512191299376176494229988178937377576495431938567868756654356864511249681772537393177623946633883897654621862482698369544215474652326577644783941775729939566722942498243529713778239222177639622861674826775142865767953615566752697188556159245619295455912575635333188673585844864298788745397729926674831315791919878651179741622379552673141132918753768621683719754822124216315161236187156326281672673983693299111619414924532688736933373582382452381573926273946437755893921255373429612128412854628117398213639952822933764848298999618337591476557748914387196986735468217243788453342669368846328853763376645479593748764548978764129346899347295468225558355139321244734656465989792246151463484498872245871259227231826862191441317321796712514336398874173915936548626287337559189867263554946691342959573238235111736971464923946131977289993593566152178569753355352161959299445848946772647862486582577486311793586154318993131679735464194952219815246924226273944589888273383373785366688295498756724541769996264681348157585469132374431321936384427122779214196233676697679397538231387217627229476934592411162975894514364975892494844974978156545895129416895934417693971786238618119941428922452121397375787657446331272173117297227833311955699211138235444142864546766862329141244966398713877232788373494417411715335295373174143859198527268227751259685782185469368119724646411415273649847373299991862315845864381444317135344243128239613979497439861563976389599423474561419152937162359888746767884241281184277884998876649315983316214212629387686464926846335554265585745764412947249813535979485842326882222316139929163559497872193571682813424396292346274951149396363344575814423457164459454363888212558948379523319644567894961772736611437387617569816574871847118668692229888534493941427312922778637648527368597882924744735912664327269785644322323586958448494735432318652174295453937861699961593524488685984428612397356243283434762518896238189117732455763894269399188792599491174127583762177997815675724644642953591766864654434881452726171254414478964328651948964245641556985232118449315498285597941195683115315149168488396655349448886196515918895744452926441373251758219799689152396586231156362326247217965868877535237233857988592213818285172714326939294783632743912838344495726328227595656721921194926456727448351998453934815914296821492235959848764956446836256737755867443335191495938599224685369845669782282232623473484643259132677556665777738965282654959752899643298674357243561725119174154927336983426131276247748645851242864552894485413136789533927941125461638977417699267221412194196531684461191861767577417526816467416842751836792439169711481827657231395377845978784753782772437159278615378775553717976153285889786555963838373542339734842429288732327499326479692674957178996779991549561118867123417115995562451494249349125826156856345781824954377299112684298774297765756141466186186234542319537384747352286884472884338458319937382116134712149128551385915997626826428888982884638666166646217788329187874963315151666219731417128937514918239635691311174113725696257546358212569589587796167426932675299129166114953632327958542698127128824533738981921695549518319911793236497286286245789539451351428632171889496819367221255181122985981168888577494215221628529617195111989635364774385345186847556946934886322679896421828513256741333711332478367998989738933696638899932169886685462334136375828617598685563121566689981517988748496354691992837585473413112876614229588676769417944275474659229622579236891831424831278533533485523345824997848211336978222451882126587876569279292897718843721821479157793611529598367142293385322336995255296155861564683991422544143547956551936983241439561625137372957693685383496439385446848554659398557864113646563996469215578598333918318562917385832842397136858149869616795424816989118891486279165925574115385873872642688385281572128329758235413566534452859817998829793515945182643966141131639592371521924422485672375376448477595546536878116574691126759586225568212887698244493485159987498854664732481294532869354232962745111464512511863948963386462535136162422663558742538756292344836332473528763536778643151374557281426667343696253816212228673289231776519868564854355576224442354339981865611975218655266599624946834829379356776531945584446739423794621545192644648176519983924273533487887141594212852758849256318646424137166487562626419325844797339532338866511653284114587856679522644329879834243443691475132973127348215187581634983918412517798532252659398361648739669619488122245419328244298871836886725526549978891614924619672259811353817783563524814264121246216331519267513764943459751874484816856763493778962396261348676856431116346413298437942965722396748648262712921753336433893912565438344323514479782333412711867399114545775212181293443593677317327569137458655664797147394114734479472126771236614397935336598835762862438449999329112634173965431516648482472213193155462757279339983621748868167362797862489321298559533318914639889666695526635369212542332793771626386738271697617662784853219261879451267227778533611985295111298122147849526368537616925435444246448122164679422172764296649952586396493758681797854264716612759378827182949998783297568128293121991718791681459668394995823124113963742899934779598798278571871277441429312679539498225963948155778711731997848778589974167972458228382289974831677464761558583315134252147429475121497542391511823137241772719211248882929951933245858825185995818686786762764877351122531918398146624389345622255356598489217112663989914465489814544481311991957354245569117997442788798888883517929366357956689646416385973223814849464258615668399727213425695978814228878433243924535866325713574894672393526797259635257527865143581519861341955917412163738241479321296221225515245442624427564396315827839389713237398621366685215796479296166478297969985543954323951868475912822596484948233554848825652142222372911383915259533414979973185211392239519935887228615492689111229341282174543254914443511411323345353459893918498732862991133245679914883182721573669768759963539429797185255293558324988875227958836635138558782513891667179674556197581435193343532587385141494993641674973296447486114527446735988135332441164813314654497961457341673715812272593756185872716431586657236343483656255731792343272846559172321564289642721844161245888785827863281944115188494497885653124799816811219597446675344797919378268848868728451897421791372298915788564435168158781858976985775254998321636429198172858456823337616437491922939637812646227449191732561452445417277332844587486358595539762212818531715953782316265616573772852614665268436556152522167325499558915321162616312343457278517452343764779838558682827433373917131216563455299957128669876277879898445671289983684359336853529417342897716694942376199674925745578548327876251467976834224787234967798464178914691373594872684971749575873663932969217593662158122859446583686872683441716712512697531178346823872195165746885945686684417987274474889353721324672338569167874211588593775686952164911925593893859789956314917924314385744923117175179611981772192429893175485183688548536613712844822128457955112856698158427592773965719385885968538333154793878265634562831336168981186465641455897133326247754532539165427451929733954467232475527514855699682554747183785832383923298646595558723521798371398579887541171525395546515322451297965729726758387721472793837846543114984658377148164243426191743944242696523126832334575274147442755814556757239352698116419143217696931585218132281181621524734383975124534326444542594455827356543944376618132475625859341955618781228777471627178654477572821699611577314365962827253781972839899836556872377459953332218491369343787464589224918342362281216131298734162973463186322329339832841613928125341658269391113985168239321221653717423351452549955758689691655815657871996158954528275145289679123799888473366517335837246182883262148976191642364746559958936242245133532694821293638623325838143545797766248248511362584876779924474259873576436352591777343344772996962129642275414382125249616614299391244361892229321835685345653581585811888999822884252766221467516986864753723892226482883828669157643926388667678316475756692517369461178834591421157423183232848784881673922952957688997299374152431487669765859528316816734138261298855721295135855436817211126125719271299693277691189898789282652568687545742491318277945853117163811554927157176994597972273867158284585279987465814511627893617425763271967614175425476155315857412639525385692923451956476961512763625133581783128913549136176132482885143111293983236248745448486665968267386474687391163687435971476182719456814533538877529996133531711635215656718676337136628972842894324669248195527229881677751839251516429217768581459526189163177136667577344281215156654669865467113759573771782386842287163698398564599677755773356465169428247994334391854429655289685517311199422751635166132448396846566575417671634139732865694288835481821567629922995171639958729248228265836828997414466451122145757664145626415255481915127221794459654115646151598699189892761295941451795419467126934993969977562495375715641351943223518416142181618188432466549762913743336443584391134369814879969142455988337666668184974451337249375863686342897695191435448252188464622245335885483425958654851687947252675163591742236191476534128823979485624798811428545187488161457384756224995835779387924829764473856467756249616534235597572899975519275888648281613253798968955314321797451378339543611497172512833892546554476318578617215355537716769414751371127877587912455114779629884891992678226926141559937878765245335482213794397243134822697291624152262431759464776157216725776171276318373329686281982462838435452972698919776385383427591323647844992773759378795835674615879652832118373399169552929479855719882983729948934779979996881351349437698482265543439418886921934875534363468822164885673364446622263589734416692971447652986447553812673113763768783347525169824184252462728894752986637234114413827962234913387575938741141489662367569861187734336199984932887113759635633315737326225617784484749692164483955576297657314653936885992329613161668333943398491977576698547843799531715134873879636285828692862713884286673851892418791559635795173499946221189211189133986464862989973584492412419212599934419598485633872912132953992984324364992454649639842836124212544969359383657619583664366677831226142879234784631886312868541552245331343622984962682768512566781112236597585889937284944281748658862399948425327936428836791644429549433364785387818792369224555598441656925442123971997817152611343498989333534721819489294244277416383125367538628556456768286825444645152815565329944519427897431784298478725255158498331929742629948765627141446264196188952113915771232735878494894492285486585153166238725554833362379818455961266778559984376682729688434829834492245134459918278937869251933451564866392292897799586589582626662957667766856634673112158111765969635391876437885985989899766352224643729342919417795664549963284557618522622642311767111997215548399952123376497453152141762225945938939256785421625728885996498772663688356687748221188488116983948396121589353164163891511189373292794852876171566746786784711821989374549945981655222791151242241166399294782845357436529434646631251278447521145676327351513165281197932683576143654478327614122231823971328721976213934785186398379565587258345865248516125644451316854678391876389131631184428458922368997173512423476474715648531657547144484425762319679133865939563265593835411531477289465857713828477751381332268786623196776957884558676597694571133322788483161316153511361516519731819637733853458798724854514375354217789174329977757933464681995426985881392189854556872239239661368655774863647982668772674549555229675152215814959837985347273684551145156637122914682114731979433427922484176366524725186274915255947185582198649191418115316731314911458656321221251951471943973363317153684795721715742845142367497283451718281149624687171396944653887758666579429777485414997352531385941588529486125555944769811839333471123152753117592857738811733969162376331631379465137817869155152177691652679525927697374277662778428372529479971639356663329585326953194941927889713358689438859444654947129696575791548581365218662956656416953522565313338748593787232861454595741262493266915373985161915465927134163488178585774279279724116818225453258197565872888768269649442885991889535912181856652525568636235193845445533517173224569322823323517931483733439731176816887219458142188351693466453833521331165979177712851186611893154176183669467246221328779748942449846292248752372383169933627851735355558323459568764756118693656181435356589536213677277926282789623146795647358425132724441498469574242595339161463534857896532578782932453448483636991589132378247229354598325668168215227353256878794152773339145755367892297874643958135457351825341129249826271564266699324296729722644425132187493952873392864636689131533729358543739959125577945838879142176821173167979426119582369353458131147354141872472339555479614597591125418495532654598925985334963974515244786841188881378699186383633246494978186964989759748265428631361667365849337291155761393955162127753246168786881366484689185287763165662449927942471827724232817193558672563156382373834346535125378245371485914129313636269672118932448576177368298451167934135826959897484111828664669262664155749628456756738683849755929225778649474948511369643418989811388132868261112236179329118189116899975699699792399221231938837416394763732691721533545537319959678844116254335277421873584488435228527133464781523599858185827348189673818275216446321139591223119876156862473117637639578481672669373858986275837589436364322486312677564972454292134659971929648795441728863173285549437527471149583654539837944596338961798793759924366348832261782687556315579451786318172286165313967587124859937556354462177588773431932417299844468784872531397521622752471344678447835987895547588563688613969793575862542185634479737597673552888374537525987324396834592856935752194745344965384867226391883358467741364651178444166684663987724587513958854688184543997196866114744939614162851213493112677286659943812298484494734833981698253246336455284433885177365324138342875518927358527833648179473216483722613447179762926712759868496678738951658534614285359245183649492296352994365673117932339672512631245345669137436228249197348491324747213215757468273172885515445818427628193737535741919449784164894666565637478742822765624939229664211673219184266231782173184841351317528526832344322429727291135264815656338353783924784494396892272746358184242533792221558238356429844752166198476488544466271713695969155664491139873117725785944449445819239242118428189567951383217686598423513445254189784712933671231161311544958356225585786944155152973136421245766224682375679165262464984817384894262378836632246373661941668147352579342714828546681674641534267415338318779434982158522454769499722551428451658843573617173813783947978724877652898158746937215488276957344997976771645337937475273767491779376953926448122767375541279346274768159683495561287622648553169345149198337773791452515449645578972871794451739763913336289736623799879214275141329542269132693963948759166669581434649542691885168834731286134166429353522589185968232249742147677613854982999475297321275378845695879168257184493124131648532981568474278786225436748793435532568294522499991433196965117558695425666784674616816492893637487817373842298559249668856199737427145329428173185852626235187718512832754561767351413925423184824817172338494127257449879178549839427659488779584228194111745637668323151828766178878268342794459361576657434931817634456526869786733387128322392164388939416474956285977819938124352244184622816523811671463265489583799252231773963919946251688537716721833891286476479874943685355926998387286723359327791967582974563289897478692623283178827995341458448174833975384691572271684639462268541848476636673788747998834949793766493154512769532231913316274431971265625672534636636855462895882718359726768221773357883963451629445315882682758973642828162113146466943192256942386568263363676212795194218712839475282318664364443743153923916843451581246653887261364556745328543582514269447953878323885426261419569865798473769591679191716756591487955693969898855763734398858986671149426394279546718238122891366479312839246271759573363443467184914186999617672528854977223911491798488338986238912399919119138297134756654257837956746746749569161446189414287772355929673528334466965896213871115597444686427743338827337614514153787135776441763644366117467872148642218641617971396797444129123977986751811596526184727118928295883557437577227625197797498317785131663429921682281759488218876378345565457415523586434244921558471926451172533671312626917162798689224332363529649891371176246994926337463724667446463561174663144577213474821564119445442716911357956393564519819743276246736769455173338678558322548153734391335732953811545366429233485824836298393673536953584315644125497127746183235729968398742153472172745443666146933741514618955262336761127629391475425876661165387863965516425462992589945942479155431779222767847985978463518493836893824888652351637564613543735314574862626849713448718852124444791277247711771114875658859284652769382962138128415861654663918963992986187899731216269616896683872869567245117127633684163622888874719424834635288546843183162859329251434786315158631739946129949854897265785289942994896318291275454279647155948228497127836944478785638443736538377978651244461347781523785447164742516619846978637678857371185459519169153539482148823549546182832736631983811893674826761468551624266254533413771153728644497448765489621951228222383247575329985422264368369181218422168589477818935359186183294935132879716587379793791398517891482479359997524483652761519398236474397286837366421586537455267893122731423138679628361815421111412674515718574436241221553552582539889459286537931133186332579633411345254785486588686218455396537661975243781327274794538947591246242566723744452821262956715728332486968232566647564758327789512641325137274737583757479237277331253765463744482656382214922645759825452625953117646756147291755646171122616816469933536355311763369462522192646548891425834711135962114212276818587527991461463868968269485965714465253288215491286913851245715152555873774113231631914837497891946422679189392263353635365954147588646544453479793945462856141897642295531877635939365548152921774884235111773355181434337429496764986587553888377329642474213788186624369636454174837964485552458911436278823119593298626171215196937555426636575794545143263553155719342893549917352755859215311881713782135924638794289299629597577745837237681459867676537585233995478181748873858525968516127316743642525392676417993753365984658812953372538168857923338735279969154389423328183883915677285171965392244455264332632288896312398728932376682814166165854564683564245352729891296813386622989224437953234113122611739281377388722526638938231379442268295823775726388271883811743859767247515986513319397567541815681394943521171491339975628698956165467719696636657544995644448135461139189641296858337881235137574486484447557941864533645148785222669983737422496738992585344755819898179791831414392549174348728697494363445575794848634956728476215531765212672155817192763618217651726226483487857566642791512276236748376414297734497556616632234797525165463246474219758321434893544949466678115525371212244512755138965511321762289398322652816328115456477552659689419574645276975421856511656624444489743241747377253892857417652979944167231747462641825556319497372586288352988141132566186125743891429344432126227474863564137216347261592694215831227364666485999614663723132525526352527155654515869231343583935551693396761291586599523759142586546776441441499148988154158396748425858983922725693417712522996736311198388461829151721952141614234333951886866761632625819879183495689677343918961932413478376425873739553743529422551788695136522885631894245986141118867361822191564452856354857857724449411611556799974598873567329563584644588157944483269324146881139383631445139357674495898476578496659683175911567816375922558477122979376757813482999389434371973161987562232468548576428735821137124769972927862597149812284395895372258458925174877757765184563989193737629136413167744342587774573845596418937244917231477145592775235865557361762383419114554621143528863699655782113114458719713163748198962439539729164834794989353153758971832713619981359647653958232829791961221118233186841136848929899885996915726915589681264956834722211691262762211968173468849312322471587653763768565799483413545672629364539795542812859189433881941756299168511582665563595773766842441336176234289646985552627291334256754456764637225659721339352665349664221573283648591533467533956891213259378621471323558291385865875181116757794715969869896362748156146511389751256222991527781686198748876749754366455496164213622496373746711145669998694915256395812185755658294183943433848466857864428873682999283426599325991575916783951139146487845757346294675153447448243871664139753362629223466989814282236439314538599392628225285513515247167418257275437148657186346661357996712428951655419918623287223712382422296341681661321449141321458489517222288135167219123145179817656468576489775485385688185965731466122749617956463931639124687523123377238822358639692413851611813239852523658312261311595645625837712753197837843874823366828481152226425298872257538654335164168279619229896911653427641146451157828838798298343575338332756869532223183811535871493126381766728829127497458845864275693779239912823552287169546853312667471372453517725311354738158115842868993253914344468731536336729895684887287411746519552175656534982269867697661311165363726258656752647496152162177593764478233697752479874971168717983329222471144371257544659411198329249377372798713446711632631453265291828987756891461422574528625234325113678256392234472812673186417817173898517739976156114422952522238426256829726311922253436588792432947628688228399414647285953986281752511311249171525233627925523597646667689696547959311812444793356812579528961655575555698857183673719651356212758294554448246382643498423134397216652985787326561899641853282892546644192833479359214297415594648311519783129844765985726175438258218275366251626214564172523338148754371885846456692199249572375949466344728352822121834879196589415949421245326428391777565113144637568572183624442319855365678931666412511762986226192437984775731461611677775386875827515872344389449495162589276658397875919226258988484542448193722498978791395294822174318198369417284154173571863979499298825644462857263491576762799719489854289475979318355732819869717683991936323244169622692677547295394376897221426478537685438147555973452273214831574232663466212789834949251423561884849275785854625928923965211278562469837311573163855159669687432568441162127324698914959816548694437433435155415284488468812762114835177582922439777513384559569833349977178211278828256481436228442339946746853633347765798328152274166531225367681357726547333459646399319735482416177521333577431959879742279499916667771936568643529382598438337883559532186731171898157889611488543575583255252232135713663791644882249554868171283743818187231618831776161968965139329237741711583549155231817329241162836896843186991493474915928934296775359547246275413612193884184651185829533149579748747925333688775266128322269923786487819176844341851771875857136663444359923247222187263648341816139453444768471477174448262241854679912467394231848262976199173541521667487789772487664273178422454429256724589728475781188929945386181761118171817275373154957565174148149836916533968253657383791183876868449892996822167676844842139695428398597167264831314688789648178918646342158339351717586349237926789413517239164924762385298899466386536249134426782921329198934562114626628951539619732631524858958329861665617567339593444728514335292256615352884822165426265597996111661185273543658181596955744344399397713857292919858543926339558578248532142332126961152763627464177811923246347823836893153888385975976288712383476954269447365653139547317535772365772614229783876739469912577593169211532499787451286276223973177188132272249864883491912318515212125232334211588717618727468878189592514913962721481253988775572429569851235217345359558325671813757733756366989425368189546626791574638154642483818616661223782737281896251488668528185185363535244232845774539372179578993246651962245712954881186924713936591686789151246624631313673875433571138942166628979891157334775112115898194665342321325958225725825315914368792823835429232593164484974211179269432864776825122459847257164968812187354834336451335949645931712818543715246772795188142435595575317688193779938447231373822378798456256422314247841878259376935869474815946349124119715631224699526897499824725925986457469638579969688579841432921555391253888785652399383336517562981194283151595634553874315961158947455668698251515672913397392195739295953668798166356486214313676584978344994819424962572892259717194927326687428725852931255115624995725374826787163265169569931339682298589157763978475221113134182292951855439615443854854166465574769634265936469645929326851317672445751332777732233243627547385328783715883666667861223765584115874134622876442118229495843243639833374469982193894622296319572463671815894993371633842363319354511491979378485547722857178883243271267283811355126291896675788195221838919144455953932588967757268341932825168563856984789445162874876848454219574172339273678754131625459768615912134951218973485436872647417896199484494282429853539583323912612448777185235211342191422612762795662371793293327437358428674753219337496616737469175725662926337168897348819554462843288379993518377991672627952234343169158398125714871923527629943248243972673944321412542214197322124311567751172112155365664385486715852426523623637254519937456836411543994246497211451343168551282225325727366866912945341195294315845217823519291393626735245564847457138388397226478149653999483217721558377988435239194383229421182136853649382894792131431373471584169323252331699712735761188135532552765887737616779154252964516541615284956616273187411696936571641158353893411618358416998546599595328517738798523252741584133182493343116775526731895853255453593826127684245718787261475999358429131789183653431956183583496238231298197352574578166213452164867986684319465811617137461666943629188518444814964666312357831192111741584874259416946161744742841995953239634665258753726179363343737159912367772446716314328543825539418444212255726445667512884225156999391414885318874534692813418997836767244675443794253333674363955539333699223392696929276412696159162331243461531212918658727313129342354589541551651495266987287129134472326479434463888576195786699136358784727153342178677246794596212889241845168266923526285434145222935128614429811162669113416817919411252583374379446345565155635665679628944262214637274677139585843893596913113475173438932869453632881471771917414646448535569612881826884874425878412253698558746627395562913398138243583248991562271636617945746559898192891847955916676269723367246945224388883273729445396533245648149557336553714658167619823476279134847482552926712462254571187989463191256336896933146483382979815195129532112694817545763851741241641593694653943676152426489493466415664929212369973914652482727366723214924149937127461619681395876186477871764365912152818938425923558236391537926919299973623295349262779722423813821818978278612527584555686867937127913721479621269623172647239831529881728779785646843995618591542429481347126679253443994632775816754768569135939263442794861351925281136838322337571639916932912531433914735857494456455148148371323524986461219444988482285922143483682227237161458296424815919338685697318915941759282571162874533193724514197153172137223391653851112463662377563675386516461755756982147174729977415155681654119596691317679667316611168122513352921951717653273743838538778194284388258994221494666429285194313722545334645683939669588176515777721343696163466222269157597163744758817423757378584478137743996371951692856573321658569233512947933191276724955999646657888982784872989559753243295751438326483779967713677981119665618429957225111871237836935891351192976687998975888669143531555453641299888684963728623755899344697596474231636797558833213225584233779972124793557329539741289591757654865234478189942815923762737492767271696495387468959235397936113728687216734579275186515297898969826447111456363671321739418215176711311345972248259222152862268738869782279382196816992188294966742519736554644233813929638825598559421166439742922213166947486241172177629573774874189663482914812928779636883279576342571651941142818752331546484917253128213215285169182145662863678889798898417813729813468655892689448227157737898878194958337576418229824576264931731125847684125935896244759242214215689357758141529233517421631941599423987789741654914654617611659471779346219364644998457917961818874797327242695975699491186166853312832655794381749688586282775996988233692919874742689297364853449253411512489763821739455728952866197148376152332394238591485662369963679384316534836685623179285179447355674226698257718924822228251875332643293117667468739851664741263326635935681336998773749293118341813485744855445212585484694438417645118483926436574913371693433196696433624156793183399368592891359882144548127424744569418587512589793946848478841296226875625673532835498245928946547235676943395477826629121814458169527211529966637389289269695391351862993888441169977883742362286371461638473468355934217333451966112165992147962454863495638625325431721733518653927356718579982514484466697451643357827664652792938474834668622845517272527585678514897253813976427143275823371121591295384572114716923494621632761779296553754924624854225276353319129764928229461845256573297428429285577288235219624279588229951867395923836346117424462283286262882373665179689329665773981585674781956554411243298765952999556824828453783795924679164264298669951784152322713169175481799456351238623734994111997435494338853765516888278578658292631153838193554933848685431258322326598288533835198865398313234344793611354536936621249969173586865115139472164526648534441679255556158996182534986729262328223677263942559682979652467587389545351445489457544488424161888632156281639463116554385682669433537246299135345889297755711643795528936729242628448193563527786237919581494556399297333574253865545393332776395113836284598763227545867943663173464963311177388941517211467664899294425522358132272882827684962781222553577461467554735584768935946182437164111655127674839633125633766562862826337974357219412873249785862853465252666386126293516364849824269574631248658367517243426498814752113927782697358152393932712167268568145295929723752945214419136762655274555526789972382733634299365761925566934922149212464873798174266611214684697517643131289196591962171348697357122313331329768854952964733558268388519631495289674761132477182819661423453979936393395433142222177117343549522242469893195116293893537789722835961949247646256436688365237321716699513276871524172897419121981649489616283234532619249241138281128978496718159219123946949867859656484954669669572865468334918862319785149915752737263985376942272139534323888859665744271755862964817239527282247512837882378464854567418926121771862541768594978335155756458435521774749599886718113677223954486453725665552122722878681764293638891457891982164241198164574736524458137116221644643558785157598933736436957991365698477872539413775217712591636196822498551481667178758898852551932161915944998695579458233276278374364858237997445369172499115832256532344944777114911249139492627361485777945744944948941881931756684152745218482875568546439584942447411721559637273925467395699823453424378241848948574293752633877299535349323116863362537689865574416849771971566682734392377623944627593589625173255584691362665917656893754252455812361396342832587166332645681161386215739912959755477431898994923633115885989954382924112882372525825213712685923925324513539771252662733881472774295645897665778725998175112378687149517364739612189786296424271785734551813752751729348871286254636989959235481452276953961576938515511423852876993497683639222962592533628784283522379532443528667899151828346597615647671922687356361353277825585938696578636462988922338899447839778325187623792593515385338992868581188748128356516134456335411268267939731465994596831464914929735317371315795144737674963354236667483414873386658325511745147612349571858176631441882854468928232277261868419553632616142833645652456442172927368539132214467832975699716816633365267387613396482942712283846272688316976394833915184393585992159871467986467558166485633222335313338836362126812349892994135644857649166267756889858957368623198841846453926514478273888759157741725349542172429245424198984656628241975172213916557746634888459263359656776167612485938326251166482346823518268396778599114129647771352492328146614463264565529186291341462266826242566812343259768872827943524138274755979194958836198791932344241425992799995887577256249372675727296365365842579284797623681251861497922396453371649381659663758677458588923258222249214959324181716644445651461565575879889287267721954419545681938424393191716586572921765214296937355555536163729712886386616298732377729315587556524253793312184311862782338873534849918338535754831888121898141513514236978453735824624613425476717121617442614185446696837363933534474117277566999567249765167399646847554391889845559525929649692176831269248122676417999853792918581596411213368818686462721812658787428438555334982637788778833612443275129443849992679446329578692829311254437326473216737674434625445469892422158369841688932283737162132272376292985134827935397813916113249758846448721513832412792293416379163696568417789839998117357773778137673424191163962862575152328112879191319315691666823327458269236136256175635691262573227923845556952458911469475523834535719243838873753798735186368511971884166853117386158556162822818886182776977696299144649632792579288355832681211195448319478516423347631878887985329158985735366579241217995573114198895366783349252163842398518797566982651874779985269397237816653241495472758647162889693483947252181637782646341439487625898513722773442695118241988748238188348415647797297922119872794482225954327176796496586474632961172565896593273721269895258353341386865415722872997876371195428456942463844822921596124223555489872118382764754793314625969498385485213378743113343613189138855382693939694893927286585387162589748921989268551177725244859987861652739635481486166579854743337382454317755683287833817272493121266576251618735418777484523725829467971932793222889627969239522547135226385517786746433246286339933454172522299752384517135647641875262323432386425765467921575652978198339548178544189661727261257865798642448393681556527233348934493257291128376221862574798581928334852843669282357585864692683515879963218236341978363613771121488383613315938925741911367357396925264595977767331339446962782482718247525291824946969566644662841644496895876268755691253529613766185664142656431879894145914271778234448593234212182585975482458272524363666186285333739267393129269585842349957379452367186397213262645768643361195331829548158364427782546762871383374227923847178847981565642769887287988152868732439375837994972599287183267941162898362151348497315194229992997176992996129857587186497387565272751858561345183891429158785212376352286129527795737741519928936659758369212981463136166966858413377294113281226437933528193933159868168476487929512854653845141126831667196876626711166348852743325461179656218888983516489554776312318263783562369521147192468988118925283539554495398997133821621412739172827255675573275466428459532427698313761216433958699424377418177887164175616891649581998638445113828125575954918855945798531941213923469954454148533111854746857957283277593816668868932396961755473789538618363158859979575531967345176847663857632528475826823436834527173357119252887468939371844184789914624528616342134159944342621612962314174597619995987311462412597617914352111111487128263494543293884218318418336147763181344543831131862711534237893191133487658662747827769182762862963381946711975756423329585679765994987667655218751171939486352751147793457867643639722541175359343921156733495548518653661184818298214875914468218974329338717427237515986422133828141963733564276926424855157239133128481536844535966442845557361562489443836278774317481836662696745768959467223543179262626776459825619645266491617513764341875756216159475913973724971293271645265751697187373644821841257121545919968666283546838811826427461859856611139464946726897338965151925474575522715367935568454748749177534174244779453898643917661676229535938395221498152342918865586438931859261199915248328915563216987952878787787299912812357557145731897675343862852942166711414876855513946222397581576246275562147587779492531267225638255691794452939958189116817279983442522756857632341341811436424668891964548392335358339261893367246132475283325859661486576681395887934342674158914942588946965544126451517891681974122814511944356879731319468455756746287271594971944874899633918573181696645141124411789633933768977836489983984434583455738894771463911888987329757992553232618634834892689222987666719933173836297585634645642218778661956248758485947382755964742596582114879617191729884379642772311429897757456438316632595763884834813578123655476838976442731912383639441695231614411144216216335587539587899959389374775484916455996844632536564581857285475111419984345598243571455264511191141838252692415643777293552542545537332592641995263871124377412963696745898997412579571996727713962635225894533671528416968648834986586866217475426256642595277555193688399136476971545684199745144491319212758435589846256229523752873783847689127912515125156232428686851427328918168568954667817555239161882682377122926373953697119125183341368979151788973232932833331554571366262239936249341424646691947963578692684298911152415974867553791668717125826721851347633387567522473174454936121144696833678229357545789271772775135627974785619253631448514679173544139397758662713857597854861994316346919755836211848524798798128742331296688198173824283163765538641651318117814195413798974326979935945745415814344623391622218219613276617187412862181152263873733949589397848924122126222498661864713632315296497697219338194161549793833332779338148972769276129188351483451483286182158965676474288227552489717295499295662297525437171219968788227136681711552184681781686455265868526585539527874853811545851437179627269111798263442476861983788559355256224938263319894892151815729234746138945165943422515696177999353865758154547778839478864653587773246941374151823758635881229986118793739134225391243731732719221189242154455983896167141291222118133137563959239834538546547657549652397582494376628562125869423378496254284511173817828494345662392816324665762843635363785341471551182457813186358774953576592637735879558857571347642978536699453838773557285218971168712479313585443696395825592616477414333681215363993464823972618358582748859375564691172378439355182265141967413772669775617532939145648634354529686563914666649653116868283533592946337682256999391886694857297281713371585985995883433716515123194321368755245623855125666157455786713477991561745236781286822489158286885739792315773771463481375293771243122332898176191338356664831954355577556453951984798353746639154582247872956944323137392864867315438995289784115417136123499129552341759737138467151762992892746879854726418154859835124193266744727277728612987868369668884566838546216966164759675532329675346991411996413876723375586432745434474453194371843968416949113655972317516722896993732425235479866177736317377965147378771327193789352962698285799415273293992161195372439258626557164383673788787214237242913567264583849117875585896511682836551919172972757295684334392375938917825922176886355666895122493394974565662341865321998481438657944398855978954585573492334198782119984472267494851279393792479671567994999649923129857127353219165853242194895187872683297418324698813912481888565622831561472641511719847725562123295251288341382342226996553555754378386919137251373862516851235642369859752566484669819384496841166851725851598765655574913596482967948414454229773231511668297483975816249551537848889845664482588169682537679352231114578897955759517769516431643542888767352626666332271794857999278934667728375897825984368957964656911662598977658256483267853228817874923819674478116332927338918775176356193531342853954576266134441955664817839815289546262754187172537917689669188131545611918626768558216162978771724275275936492247958554751627687194511113543756451116571522289878229219563637262273619751768645466487233484199216477242327972427946557685185196533256367954285878333192598198542767483177485763484782841648482657285471118674723172255218156211728366366122573771895395199619681495821433679847935345744695543573165297354237819342716275629866962471196427188812182618159845431567567997795576775834639612144181736436994542127591863712825323285827326661761511585746827448666137768333388447385858441164739423988829948763581965887894275197395167169836974968447225532141769366862854351546479191633746792718394477792655282289143316874945764191859924433531534763341634199597573463895958982356569521739679426552832425114237674536597554495959222354764967735277736472711214126341626122785381853581651672874497557158225644728966921167254593238833643297558344944939654982385967131439175898281674538826955432143976982462278336778451155587671878476511628551917852856294952948765215367911892676761379665857523133449139128166731758724188749931375278178984656621482799563456482999615394758319347515451786323493342771145755688338862831451689914171184658117849626798732791671977975339249714775253825174941936624147959921386791971478763664326721315316234893889936792967398859879311823292481372752937756431427347329538666583757859414147178791423355111657823587437631337196137243643697488547261833864652265988253412139882598481765921246534348477671557797444499992915557881638485339188732161159149685373435154576484256352456268116533754358596144457973996522332864148463312715149836936677898975378914234314728591183659328116523413715136596245243597327228678819179672121734257497128831587467373239432493717445957829767493139331374493664397892574339969361184221549796135814959382278994992413456436839319594512628417716846171792285295154595556387946521117167385695289528972699383934944639358726234976764823842124497659674345856343818299463564814578425758232855145954899145414651382756468644948534713695136581527782227171575426686845448997837695826423479811568152685464957626187639976856782676633269544216715377263837415562124339274683243579296478199644736258175333546883812347247999363867665187341828198231834522447623478876499472279182965396549192428195734771788786872212755754785494967324383159537647822286654984488191429524576241812939584872219128151911357851841923879267478378273163286862734635812727554281987383492966939392872953787995983612841826518547624618867656144494566558118842682953747392815244481126825618657842915634813436764765346796551244333896277418974341754323767771113372888437334657622832218875764982171922644998658642851628983482588579633922767531794745544871928865727117274825984357891277268143414214839112499825594591225928368668941941279261519859869362176842635628636542581465231166363846918479233875822957461476993267757683516773264348975121719826591158498966262596493795855746375289128813428667195464848212739357157837168924523168432352435248853635332123375571313528651974758911534636853299338561225212577376428771345455376122133543699227868635648174491192394548896728494346699496845744963217976647486719359198773246522842439183722381116125882995547631762669832841951452831929474135992257239223218343525416443744344358952762182816158498123286618833617784982162666315295424983874135893189386451981389822219485787366473481935922951932142981468173629957949431525518613891835532884778562483444994654733815357535713557686829218553935114639363843987745226237172265675936862246443116638331827943499893487681125424976798671464693572718467568899286755522557896153323268724593421985435569248754176372152592722729251796619584871317412651623873698767327265533563313467328596865531243857311557676812634374959492526691321375832512654182376216456815836963444684759247364885319899373967191559823737554931452239256442941195876249783166191223137661755754239733512817416427519375449713225178438418148678429255778558869367999731544391122147514368134959647521663882994288838154956342215946912281479787569363658263282666255463399267813738183888995151665181429336116377165343132646693191242164664181886328522675234334346442897215184595456513125457781334493213611961495145346671448369799819168154183486891466499225285965869765153491969896534436933338624681195324319388739263755977848296295635955874656662736233996725335787372768124561644356546116638117724889771127181314858458112811573741717619327247622456346426562746716557387191861986519142687851329955584382267345896719777542462457915223437252621281166899936171861282425139282399295764657364341357589881718827846313667383616631378257126917681191366174344896824637238828567476492999323792483745457337174711231321252321458622946658465724837958863184128879962627453834217892688976387164859112746928438127275953571276661651734425157858665258496493868924885317612386951364293823117888276685446574968984412584684472287745279725111899221378647874981754262133543522444461323819217262677889133374417643765945855561638495396613944617863356732177249968496147341691376691273379883778617392835893811561576793679856716335518897288234271649897772442974515295814626822885765332555653983512982332724882367699735399597746834957127586622379253671519283765149659498851977992158298116372874749767543549228322932831467434887742496648541362554647672414792366595269913938984437193234593638377773663855642985673885234496323999255429883971437616238568989277183424493689621382893748547344142373613851712631819173915648943169329595565727798694884346221436357296641113861531817232844865499118562663748881761582675852471471226473547425381348494978926153154791154785214337176463254857963332336794214537234668983368953275317966277628231597385611385512931717324986697747455824833283375346868245714576212582965372498922517331791137737885161587626528667379348241914582187136697348113831745567558816994696254987777959124459195874373632256643311995996221131518835187292655985975453975177126998317126171577965499686283894484314915522578264693562961249676197487838974899259394589413379878617398186455459388637567884771641269156691136144796453132499452566362821923517987623835964797943668659742982679422514889169852197862635733889812851338235919118775847319587467552574386766675443827557396142787834261737384727199644472966133716131294822293982855171367769131632642922941239394712727482385337481472676687597876837675883216844871948585235812494241728938423799893541154545674198159832773952841184288642189488282965233427511518936778976714523727221562292152833491286866217488299145255369331671578154665393192995419835767814861666922459559648189152526297563638211344398152969855996625361532343367686591686562941592927971194429186625773238333372463259268499318869336649561687724938835763684469391955791858528712594961337574583577946811662533572978981746185321924595551793941136824877574896997346792859144946537814552929419232711875769964516285549521561374443529185872221728262123257274528768656133245216922233337145486252115727932342834145468962491925925586278492584787223918258141542989615335573952662953757661525613563196544737883967333888938498744833586757435722445523425254917389547212944326548899121635815544587287372712245934824976356719157765492452675957349726341929825481911155292796328289613684565913183198516666286194954312668167365564214869477176472892158763578924334519447245772761955729957747271531564268636792896367362936642684639145817477555172796888433681143836316944689186345732665722716998628322771678293675831313573972734564731787486543914935161467639876247194743386476879285311963949463153436644181767584195991274119414647281698674322629917935434363636344384141452413493295548955226749267669595625865263626591822485391955995456842357518157137155684578168514187292832546238834372638435275573282365428129712128271123549987285421952743622733641641894781419851845818169342595558537916945929983473279193341686548228622293272417624523636794347158729937145275846277549118422117888772475982454872625514346546124989136425549836877328642275786175966617151934621342295212789485781441154246498421541952128946524548542955684336368353454257887122876951418739356282416721499291377863792575599197247818948757775441621766226125648328212977753286237294715217771593313519174381983693963583158198328558555772859218315643847655476222976343427437257611884548976687773296448179785456423867664122879189722429497841373649315715983871642874692375412565495865453639683768138355775832471845279532479556458272749222357222648681717762296123276187312123287945916771799381597196726817125818298664743761728427188578271659559225588854724666353219126989925846395169442796232542433922913485114419332392924167299581571718198548352572662957677514561522331264998145191386942572928168192197586388698716318466666353261271919536485156666411956681896923913755493897453983188646636326516772299488114313611464927447187754863799611831171126498132739594869138188161167168696499462391676678476372277983642379326446493849786213419117361497418941479754632241371272896835566349387252514617644751749422857472399913162413176332495345421157176866251492687229359673115118715392917936194815821786986496365795874466975245727685283812437995362618295718269838346527659347864924743213928991624364829743528811374594676565536842323187328298126474832387739314525733465264166692975193774614955428653169464924211611786247532962726923868258569429487191633729881483557372128968897585547828697724879595797482261728263943792464731679249867974945662944213347511666571556243537183276687811662617365291614966665882439228374324159658528914561947179991816138432287128718164156754642622314146264866736432846411764825946449965349712444527147213495888323398722691834274878579728216147367128287259566943791662372875599292999625561944213268386472821829918869315398719924743388469541442237257575435236599827553486529632446983526138687658393541182955178576827329187732542685783977475222793525412275228476755142778289358499941948569286862354421238143982865868614433927142474496289377554931871213393197334662171117752144121122351649263518625725489584894986129973989238999461888746135414914811288991879714793566267698888368376975942813372527223873741476284789173363688639441627881837446714621845193855789841428592235795146139628813471355395134256625139632684473611725133646141582184146284531789751153426819868166359978319378243147477957833738264241969987781994621416188451266589486473142149492533931765862418356874187271229261454439916136861437645353364289324656646138613556319744969376297552115697467712342295581427925779979438164834856156594545137613681522328781174779329662174624882833944712718275197942158511997169364534694511919693717558556243178421779121211151321166719424529351328329239225356252722744184928941752764685991525796861168559443328574842432484842327332166911342989462594642915147769876465588566412451715895418164849485932778318443523812342137422468742917837652793173395318941965747848619364443649858378162158533215966883326668554472276372124234739226437983837265272899899223575385838515788584811979858868916424896547124863352348224199899431791355866252565679481779658599559675969574629276115283147786732588874822173989681187381958512658535816922311167975783787536691444925426537543249798965528277219692932675237541411196546344964923915252574327357356718443638919219525763994627333893535888688589449996194454176345598177834773526495894238636259699596178545775325894216968463432372879523981512879381776522754971146198295235422349397858934429434123741254685828738422224545476777941156414874647388598833369935638623264541994631471162388279632483618851841283329325443251112231589274348367598421855169268372239235669485934765649155961787899713267196588855328223619776445395421218866631952773133889433853494314278732826983285474396689827147555337498196215741961527498292837358897685295568665616434253326841728366885341195544177482613286256973661184183537923651711829434931376373779932523877837828751152168586754645786973646438212196393251725188556153317949648857377582553141895499639212166942668325469764633152923834139522678499835791152357448611913854112849722281295328963733713197498572444662672993889961342531378125359515751849128824846998925726341289655638431213586174954435968976922474215336474971365698183989562618929542978375389858667944991959752585683428747721685279657653517665123353137698656263138872133689191315517256911527729496588846744754213828418551232161627491854229539812641586597684644373458769612591544692241988343669894669421451594953265254976223111456398443372777974488775387587622251983321487174411277616354915139927248376873323431181715996598481293929516726158956126625264112122313252724338934635286613913213234348519943834286613353453563866199859852124333982217442797974473368242343774953163696765542789995728842927412717976642186243132593376478197377953616713227521569886432232858552812463683325272251692825998743822158226538955159928198587342633727638272866352253953899433575756499226392827941235314356492866516436855127629623242566115382842464957549119172376522132541623758143796797693729362464517568833637815564134396222367617454236589269696118327839964635369562119915974564385978864226632487687577973418647234919421973921668226913233196728218239126417454374864987386767576479389829554861336634352826573218936916861346359822346328965175967557133155771652774395271677153718511625272236213542948195791961611661178371991144347146515582552517624431529534857542992549684745395638771723296831929973821385624286153134242724616693775893454671276468772952312961147536651918124761627611832817829662236225937312254824986977658694617238611339445635923529375135485196856878712274665815732334662962546123893929375654236358615892846558737928835391714348298677862495167867641959119443152828494623139614466452362385581761519852154924358984919247685651682576572962377165555568136671749885442427544251615142844491564331864915669174133536511949985228385574139846247388848923812233149487889763366994787668949161254192789655872451739485378163178478535599975211163912427324521467119558345855861251382114455581181135859334728834862162396844941943538451712695861167197771155157389124194252648734343819815319148948348652815777192382362672585368282856136583382329435593649165763847441198227348271639873677153447269269979613321472258416221363179974861621952988994735436462658545832883977154953326759374439274756834922726111432816733255172446118419571172914195656852367411991631676664764262526982126856835798854411766172213791712486157537391639716313322582562619213855575548598128259488544694594788335878538329144962725185434792525192944665558855926523855324475874967323778562153594888491637294589212478223217566844763635444783693738441651396989246417942398568821653617647235138678363483238918164224977789193859675813135725611933339987886969937317519181542533656553331736618348988887839972346781194165735448247115686583795373362677138563485186554192461987123278982647864373826225352349841257945197674191372894428432325329923312179479496575895548669181872213411246175623193646392398375486716638335796185248767886714353714375198666265679456124694918189416915762477825769351529919626655246692748419875699649521372946459999173812789248111152189263616696593672851775574579766672741391841197373248686932798446519648622521337552319891979813354217978128142785825694791661995215812613416574955314773728717238617767898446839361636998768479339995674527999925887476241988891789257588187969347174587675464433346885683478392988346183528859163759228454273362194693844527534788719444851166275523687948771149818743127124639171338922789782662536747448711697738631797565721864437162831891554415374129581567899616698786731951488779627773463323772549112296344912874532866188355498498518131421697859925624358787537367169111251834726388693461113738434333347311683219969196116478111343665375343553548447857474385227463891324677822565349876294515331529541798578624247924642992424455399378935886189781145234354789219126727285884751854267672949959742323131498763838253711895878643763955894769143758137126484256323617197462366622324825554778499559358884129762773264728985724778783571862737895121472379842117965213288461951552588725788798484994123858953896145816264943761161462646431629313783399682868854889143675736666923253112386979358252419872337919224424442939854768898765896577488729152244939315174849318856483354259363756575972255165841488693117932287744221345741224253112292884192665176999563574888178298386675841247836772928497295995732389854876459126117936645145427545419677321122732414978461811555884842563574646777154899868913392775811167521177782159846736964922592597358356824929993565151552591741465279861162949386791735974847983399265271475384762725293486274412338856872399665736246485992233465348735864728282795333822934169574356732913821991433794886392349563135325597596538897175714826672984516146794346126723383555122319659253612945635216525869261499244168319512975575226582418437452856687437614151563112251184627692259892552856992183216294556324338316451545224322532142485816338959684738248569613716844334947743699163876622572753336667952534784789967527765738951416291342719177963614379752546586295228389277874134451225468916425835753661347649984994439311752235619956989643431738171982155278648624111865297179975973177684446298598574893599486873269937261879618455744983821417614596212288149874437735917947618957567686598475718471961654315199746414943879349185171136456856721359644819633631146138663247628643697877849192195587354567337181449926691598787146871125738445478371938978745459925935498233779596598375948583374867415227474334863681174822158434954474292523999257244536622463748184494555844758352794254379553351681944427782526675998326369584652545976754884442731562987835389443831584863397479425413295623455637676152272917848388687148372745511916133213875513461964782856495585986216384844169165433628156694182692128411717712344495399758145385496136216866971428937812625244663375885461857889672452513126482698166512596364131254315517234293198549687293615529941489993311591454212832972522426354343462511645956137325466687121444679639782276788419845493994137584455323431198737622141341644382516937371369143713896829873281341834561486379549729391277586599582827865492345316135153781431377569235675797228711314472315332177991557827638498418846177411697395338919662391132915692342292829352242298328331421971994224395129342551372914954132139441869361284339356556859243355388264181298511346979553467692119826233133872916483427654422422494996318586665214435191322562692989511447914524857255386322572569521545235586851476983625862917758793216653237274663913389579254823233677879587852233452397192583684951538576269362616736545683742236288935442477537219664121394416923715248375928639694896935364855135648455957819758247638254539141594338734413388992765569812815844276149461698487552998878958433748442367326954688777554439262446369385116591859626379623638762287115615253337199627578731516624334784218532339189846519558129443621921762875783766426251962995165966933128577743373888875963368854346536473947364541328714939714936489917311936369491362554514897445446975967694534659693944324957472867354113555899758942372566283368994295359838693477683747355671451869294966834161619973617954188154973478841246397284543236545349536863646761289817241353986519461947291757775655268284383823758752451526183538954853189262526299435477985237931396593429551179193539216638231359899239165172171223134776588513582394389787973984295553291141278418735794381678987541759743761699363832159126915647713676842891836198314224795248918165658748829429248559928333124929483256927858762627598321631812649954545221185346975797658728882775139541448862558118672444232298791544577363417298955988411429388342688314453153848346165116135858916736169375558381986496198563364835432358813541528257765511837118542565436688729534291659722321264221753321283145445398361492417738793924922225669998814843874556424716187219655443234597785148669938637446281735946486164566323225876591128981583121625861583894379929821619556868819394342519847628518669414199869798122362345896747513433742727676487514736115779428551735895553171731182592168898643715184637835816895954149838792853469722495884554957352234193276412384523981435729444567856174615732182461393864797242827423773245243478498674954667848589856169574721659416899256839676541146184455319259748743325172736738336662192996778542664261333715537283391481958792967373496666118727946964158837923641978535126887571267573344136389276128638117755751417522914542569162723623388653693454435788824721781143361135384427751218191362339433659552961312176996685621734666921965161181288777445896869235726712217216333181723293878781252821941651173471342661847615528789673738845963195262234784345194961323916493592196219688112419816838127667815925626584274324384865667322912492854492727148466742297839119158333762843546373946155847738643375641724167684877473865638481627171141446194462199385746575535232125268777293312139593239572184296612477987297418468661617715125675712499228758683449399961572938498648559334283425444341397588327171825747155296729244273819722438419973578997668563878158111242172968215113667414692495286219396582292693958688146165584984923559679838122889673279626125495559597489281367214421382884223667626264172996726167175354575721482997384384845349146561896268397485194421895227111766745361279727326567536957748714377712729699322867629213877747964744915774795881532443728473178442822297657144286329482329526359431448294897216737675896657263994946856235945527284664327933233425111624118559268633855547759882481452753597513266441794558346385428583741472687231219545279716237985258396354166276111536496919597192811446742358958881539918867456647671245379163842874774549284747414527834739113299665919727181821162854226117335181671442251232237311722322935542598542746768881511662793885229377221375859627767624772949561497297135528579146797973277122151759552992738732391897214714918973927916178941261149751131421217498198514387493497372374325325955854593921661989616732953485979445794986152949899463667895381235694993586681478315569248666679137427666214251172426239996553445277842343656653775388387841164572144378532296563992718381387734838355118327862159221947165747229945544266832146947931737119821724257663145338723426588298169239535381584917788921467275971983836364392692369251196813391388572287516764889795714374694522477686235792269248518846285636673331943311537431382174592145612743826157289823932937387471939113473187785776968951777325417217444742411876352156124845375995548992142918644758359634951439882672875865729184818771164117986253228614275173454221226626314818139789296593747258161622243523325293192652924538434484598651971379688843834376117445785558546663521395586794494237795159992557899928475954373675344759748993773563499894229577911385248138285441779668879826616543956859667192169924811783333886181765621319426317586645877155653627189199941552298862248843488559357156948183192868981874193847762466969758168355943128326599265391885861656471765955786435251779657132286823898283742273797755618321439999288186351477745411779582623513521328943871533964139988149388531452236423465651943931635453395349553193238683586869922566785228174362574232588965956992561172877194231552689485879578624619886595817853991848336262932373351818488152352435357773874182227296134749973195531286463862973693295568355565116925662837934273491736662117516118664757439847975958693694345954719174816779366851691869283677946943322888713398447334251418111695815983853182816639844964764632113591875272452914887273649811119368245652776966254862125115994931753217384861585871972472762243218428245532669945133268344467667599313865819713216522355689356186916271551521741382416964797496886493557589564582722497677416995534787535482738819938796436935377655397835897676569438961453979734263845324982647479266211497359675948461758892549565975913648694178814778558793547945335698448854635992856515868542975434268933384772857417873727823345751444663839914653421693263596952985341524424777919158264412987185599641871348948833558888176774323176154276969643987775572148469666152468154917295862398411236172787823526827535921941789892499567249381962614285278145124354299813742737887296694317897332631521883966634442892222892524676636695981453887165277355496654225865364297475172688213743397618185511739566963921831183313963861221282228894195277285415691877887894126886295692219659117284862442842431848498528473273881256491474616788417358175383561676215252592169911635432969215252762286336442332284736821731246493611234757889998361842994926546796719165743632357341421711455934694511974126341964995865889473732271267569182278457843321368431546642298996292137711942958789743487596394823126786789975643616834474993375566134692578942282664991389517863465824961644852917396425465151396766153125499589218851286771699266761872491359371254171748717623288275415449366271577641499151368185515958874591547291239134159868318793688126161779672575971856676456514396892867724862357332888413153373852937699185111842821751954272455547297195695577658522516923957511321828367613368119369841136786797789595265481281116889982459138796545959498416596174962196997866329714643583132529914924413299811771145382575637517918259557448396319727964337877667481336969688227189776117785442178191686645366964832431118542658457525179594289672695714567612556287794543951817166426772442686195763127391382976618284336484983469769388426423963771192648936362127946777318594672661735536252353147614334164539686667199624747141691932338561538983783644917611769661883649772479747981472932988954131385242388251859976979277963255383697715531615592189996672897315674354796756294312381757945665113336615271788128336211884359849973632948917817521149128442326312564667457227869762763617738358494858593214879756822172644478117583332641128983564672735161871628852994986775921377439846824875648647125683174199842714386762126989681959256555337598835492514282141134859485826556348877937444437421815733124778393171863585936667647911312677516713789837321976649439459516246826974856578555118941875725448919516882538373874667645126459349388876929656934389933545179912721697289154645974866219516386568527335149393889165665515134689431954447376654469935465877235168152596134778924816342728432946641781392559351632254326158331895953882936861823836258762574563147335427193164346961636774139334145487275372695181143619922844238665372788948446449799591674976742268437329154697567516562869432657389912916365911641297472215358986877967683173237146663872317295772477135332644357823191229838495532245667721945726935847728557981294559311415876458841412256944152416426456833457241272485988384523155679352497291327355743661812216574489537257268893366523414514151489242856562431656296537876272319213386833965921538281767385495325534227413894747554621347786217659961591879144788249173841451116991151137941318113828182126137625731733426345256328226338841593965137269883387828531253936875961454178856175766528523815481976112318283789255896658828366443943263971248264643298981615249433648826939835298498286157661494756537131993411241159663218357512954756745965188182847267971612616981543948447155338943641781842549474677591214547421783662754887634881541441893535594858924382944323465419388541189354254463555886112542469222319235539975139597197252387118338241684471972822522336354954786689647184171352493526151455723272145834241265394534138153534841944427629636154317729525766149223564226278674183764514189584486731153659426725989341637685924587691846777249637651613461852289748822488292164828767913177286269831978787893264941639936654159923929687467583976838722366669552743619446194379853734859315261333594527126553527698164984418332689132643277428177973351691524582484546754384292887112261192451587721486624132199819915914258295877895466667777656546937342159547217552198776539183675399384346947591611577929817163682419733427166236173863743348596736699841546248655821184417266829478362225829583964962213827589336152273644591786272481563311133637744918347315832159215335447598362561375995586572582914547196913167194683921678826127461168649855554812214272953544289285948823368648848265258593919817391172417269944759174822112983613621859566459814711992292499559711685531164935316394493532376356494855752255774292622855982415144419884997464763913188576626929459347636351627818116853415996831753414939981769469944275674255229359742641696532525942398612223158922275134576627121248999191495296314795153615315228117917957477196366772922351773572363956793492917574666781766814138234893932122779135694658248532454823115226493295653928742585629991292693231441816296861198568357466526838962941449135135879614459991572258343487299792178948373262297413236364983842949742668774893523745361757932115988134991279432795121185887987474287566683435595997995472969796113759397549987476175413697567167422242885773419115555615459954786899976454685585138598823827186765552276535983475324115476284651114312865352588999319847445719618129295539677467386269884264223915824366233959587293171586716197478795317693451968276224774373918787318967382288194615962498589466177873691718517867364583441375872569728788538214939378522548926262933891543353645553314346237744846125268483646282311645247921214815422259413922151114527219238618141155186376471489731541353113816729317745362319262215339439619281991773199218124235656588549457447413712611423735289847772615348179348399431613221194872831454251965784736786918917473565689194181569831499988688326661929928326362145273262939751496498388919545748165462554437456196714694557911827353417749474973553712246846818534774436464851995274378852443395552894439794794111526212455563118187429388748957999629753398688395126154828623312162936245993722234728198759979185367882372643755126726691577484891588615778933434915554592238618666437883675817297652992114965729351839186566385849138148424785719882679226743327239832673141511488546567131353965847913317347374137673375319695178769188713349742598735255113511375274934166131279941455865215142657941356848864757783368778272336939944538213677455662338155278861755197717165898455578383718684748147727423813737274992272928482286857589868921648936143245864172555293169861925627311523919296351869155932123563184245535354878944848441442778986498831365642536891624657825622141933157512753232184458929371575576761511675887185329121957195442128169126614213734535639428763964768561121439692954316238114298664519421454394487818431232451316745776711131478258872994948977432997567561596321198277571366199188844589539259258165722737436335117455417412336122692775517131449185524245277779828995445948972889331745162838799589922426113381223276681752531479261492912131231448816962193249154194273485387321219686786919815213529747265996915873532131911321663446253742242738961164154275332575189344466627413519714221643689186929354816545785665867921288986676591971535993559845627644431988547634776354699472834576818816668321686212551487668816477267822643591111364283848728466172653816155166181499683444379976141411915511918147895138556343945876866396396289979472327749933519185625243852738665876449442672571931334527689444911445377435662544566816564497886831356188544688844525162491278851775474217576359791216345352226284631931677212169189693238348857118192159668764772631843656549241148143819776243295388543286299183996287143646765283836134642541729347841294761268441943215458419343926936391326161945165699449474655357787718414487894363296232487892669238169497187312631243271869915837733552268889942945263247147529282437542411393586991215827668586628272412431579169179551216154615333463585642537445389399993344865912269613765498825745533856122622637588754283864437879964565726878536391618894336994798244695273925554515393616395565377737344445879329648818427973391163676128495327272962813599739724982583422854579666746175947819216454686861118164547243646227136761127793783488742346688219812467568227485634596721279189869195742653292744993654672679565465838973291255544898266222267693174851969184537817723244451999217573678586838618279583916916826473621477949799616554754445916553715841535593464999373696186731892375427767182371387556954615695722153718417543652396781242689161265535376928274293861874832737843375892493299528784762943225898926586624834874643918193313782572121771164439783173762982249396417475571723691986262449453463113749277148396384898923768195485658665378918626995887263872419775521947737598188565172368488454885888652391988835242466114848227695559677666549963188687971782451785641416951845943792488556589658912942637511914273321255712756547649892443442758979984554728463926984238361445342241575956772963561963789632255267215688265352596582849612815331932491316721879427581531521133235364284755733663329363314327438955363736399456567482713133665558884946665589946674844945212646533827562921813451734128537682233425151232121455428828661328542782177191211346776457213245178255453962971194562196716139546351885182278367693712362865697332491997913839588658774849419931161141741913861625482775615617613615678569844916455522982532181241787644428798333774872814912135113856297966888155422512893985494669277864542445866116284372711977894679824846423933531857117214782149929394936127369344954764932235935964356857574498793158441554856441765359187436285599223267552175141675574215834363284411254351755712258579951466574914828342397877982738623658395685966689729485183255196269178536933581552381787912411935933676367425561578547238468361844111527368794751594316942867951251312927886151118429912187773796715816675279278919881187765933594983549957854554532421296578738226468442137372624855855412374184629354545273343616192441567865227251495813935276875918954631251754883372464989466946731194118182569776922399245738492411611428564531112232244617446565525556492733743746858218842398851495934987261435919729693722515535817316922864254125964336486927418238719785919421817339767368198819661538138968148761747452242921977839632538322197159785919191178761634866687787482469759658765531592977535393842967943716662114953149872492674669453533179379665977845975932398323665872618664149823319792829552797275445191384355585444535479548365788186925431777212553199934758227916617149926637772971854328249739481983974536293498484795598471398295583825445664491879328156175894342524157414744719732535133612935176471119364644696658251491593991536536562725265639434563512791754315842122628989723168498578543862446448591387368464294149883168383837586513238975484687665861689961518958361257785943699175143927177772597612369764123821323515212977926777813878271562583733242338921688279556363328456528833144936984899645371591335876768962344743212175582531653131715589614987297394753895859153923461412711429149414583166972263518548728649642573739926612637967711571434288424597478138289885456592534843684134671463372358784323475858916418665691927942819232468843632262127587568252431343478252324539632368814738759864191725845397341476257429274241551522915543367283797537345769713654744286492919288821555911771945498725445545352223267667634627156716341774118321537382844385878559163239449261213731813232518453358462415422422594564876837761986732952483514563818285877433519183377415645992272989465998358266473124577166274362297797522336964266513218826242361939679812587913463672453956172164931711949621855112256541147333525584688449424825939573586299451898246981822393785632869479313272186684565674742394471416336554643191546993375485731662273827271489433922149678149286214585192249972364477334937935656894394516493628945676968652295674114343982244938484979734843499899134412624826545842714996246115126447499879524997968347961472873596245931882362966781576413589739344735823949145613748388537489322575147332244594758585438966887144538261273623187745366263741443796522438789988652178784858882251692834612699354452329694482686746829269427342686617676813169634214121842556714375922412697659969361444589149566847977146892787723756194917843436224837416575156421921321915247658931669317622242334455444847593394269279841964187412844227967187582519483368766396461882577284833972899125881419946914961579942147227118596536429911396453346349159651499842584474483928231854669524543436583919257548252327672522776919666847662394228349896147224814669244898938348962842435146427773796975768581486569592916647323583169645483411156896195649261527624588916356341838437972887838681148748253776668599287366948796789453268536191741768474877546214148355998596551525262538282792295921418168713745261413222389487779729524284557963893194222149827679639858393988376586896991872649482476196384192749228816984957885922632258568522434124793296775366428534388139363673853151637144685428646558473721994298251854222742516161786167157456262246567532772477345841645479985119655397474591224718762199988477342762318658669939796794792429252318437292958839718387646777672792534243347129189816568235883952184598732423321191747649127312429858621743974963145789681312442437288352558855158525573513647778476292436221614465893153396972719418552162922447927122341847917838672787877111792493527599399973731997674374343472624264283179332221968375798935186412711916739859835753123994413143224294675658442896117397636921241451826261194272883591153745658783764371388616873123127381755633999316244994671962174892866337616437941338796673888267344866627159744777635192471176899375825539413761412822948955544461743385224499421692696482835261233451863192143992261797779285297532697817991298314273949868487121289869659568488795989974793583412497342296934793381276545774124142766775467746964961614171462665831517833696271576637933959226518648239388896954515197483493943796598536415989238747486524897176625467188576498373911451831537198533322968598424613657639672281932354449298839289544296254371264477712629412329263672276413427765436587427558464621737377519385628265897541377648691436167985556262751485411163813945541338672288442379729735126399753666522549464482354225637256919274716868884132246658119723314131592178956368572937838788119412561667362876613815586355145176322268893171631811358983486983594629497694556547662458687285425776726575821573139363232838469837498934416453666483794886712684422114544178334963131418878936367466719216947323425556333135641377857758442173314858472673237253837612336432663847674731933557839579713245481573249412595759322379249453871827131171229673515622544478646627439426437294544895938375138789312354887596748127519346757515546661138778252953694527181741384849942619433527776137735718726119993153896146714316978548311819718993372784464785382125746626686386613671117474892994477938686224664821912548937117453155813523878269259314285996532846226467645461384214522111553636247773446872899219561651796958661238472958127137873847816512267379116211921614392685376717832548549159141192532578185565156381144948842941173138827363766395388682564657644856736442628347775643678934797182653387448263839382548432791497653879514428692429573315474522366443392624582613461691148388594237467428766917352212394931779273898548323814428648668969927844124757579848271934789474366949349614351235952945313249665369172142476489973166586718664189897181227765752857596166812319397995917783248333962566146267196875375942355177373319914521239797213617722338945365266516528497918358939151835352867327968798497123895719893327494214711668397118288768547778427628997863772482399965818475397959748434792748957743323158588273156889248322916771882186944741944532545356456923812819483857831284426842476157347337375549223249662146373877591232857392213436382485113289838759934753864196623661251468341914917372556856317673686623446437827534588254883431687358582124695348796521888131189793652753112546315846824625634594848812212255785259731973535984266956157372748253115112465753968653357874937742943454679134338293417184476249333567824626849757177775111624547784465725318174779447858999344122357618228935313347111899724124237898619412931254854822794184417287847778971985368541728127557265848526292289614457428239864579953713423441381625467269145482387557879123942993438243947576694348126927211399543355649375735159851552261281234458811727299795581435542569672916786758467436964916559594451541298762597249846126769519943186195761921644516128674424327615214689662624974674421862193853354712777839226464716781991275511861836698528255426993182197536423485855795519952549748747579229448833293733637771644427165975818772999153315973946476972468847614783787927515618234731866631399668836627358717519882966519548594276837552222953831926577529359675257782912187461452917647652418923681671888524559648281936176857115173151891345298916199615281889386681569683192883482342869847764322378236435594742866942815472893919721353793176352845915452532722584529788185619792282727969121368629587386747515733994699492427378226833496957529719158196138755566148378962713672487386898564929513349936197344582211788645846776999883482116445555533376759226825893139149664119451678343265836315518511367768612679493718282711351981927682332598538698516587592689571238362529353922863411958197954966783833858159226456449259844249818989355259151696221135118421391187113526422471982884273115144142752993634762758847264555859244317496758234299172787122616521752582155858377174252853914555429566562146763451874858238573914859595699264519476761583339521915864423339669597274121343295275651192214269118716927941369776332339449765655536927721646523146267212176532173674435499949253679478484136133399723252135959315152888271773912962286389675594888966872849149336544962938367756542118382295217742147239164749282483111329739594597291196568376415514536497336585395394849767397758291628452919528947329286814578386348282382122916637645236573212735643761772962525278689227447528963327385571722148895717449981876998736274236239917577229117195794466973385898798446156157766124469157285765534367962556222724269154763238671996682736347418814618185387243233779941664315185556353782385597774657714134432976591858986434191355116318752848577553341773272296697338192276913657762848954264733355144251742985662746531956318542146461434523988252695689111853956672514945242956226764675559744492543836339524235789946492365613746939462413815274278716833382556239174324585192418188761988144657455775223633753661436424226562197573975337413668681122534179288735123546266431288381433749647411922274789222339158181353316147938145413435647542251274495998692586926268613356561587917316264322814518278413948986776396822132322553379119313211767496976289391555782681521749815445932639568494871939979933914447839982728667944835732624915347829718989636338612274246636959641612499363794644752175527112965135255161249693967974425125312714328724748686883578811312733813224985367126593841631642724883215483918719368632583546697985296634825785511363411765424913531184465833373318658625145546797796142523741179824785188633291969563623887883865123631383591686532783162649925316579587747895447696811864655276722661234823446196575661935432993159163453677276613177169581671985881115462978639735439378426413799899326423165947378216148568747616537269465858575496888535397168611426252735482911499252681475145266762935462653682496564582984518175257694758196246771138137467375791548723512125583675477113739197142812153354812168595295477377179269365699869965725224669397984898825274169965535947313332811289162578874678221694324536726745649687454721632681122465947691153921656827979938938275677326222512556948724726499216662483914944289783565825545465121258538833241129364855399735246241194976199292937492729793196621629896414434527256327387586147998878428859292795327145673377976754585369378357869572939256843497755272197812588435527432925265939446455234473215656388489715286131674995421632186615533413732434381688111263371739273413585617845983794619826898795935373633426895264424395884654946563626856545941382612288443747373634128663147264335532375648265427718664767474895347464817533954623469745472741265891271833127478723576123277283663679651863499369526226334951217364228314543468311911643837947573895715958384124295158431225772159621916834146545959783883361474425426988392846331218387614641972513991738912535544372932485372422612584484626969386488426934165226373692952538457995836428724146562821926269894692965696467861417598678184163322518967513388319957814623928249381186735853773578348699881614532539182576744989713562449499743874883949514812672826969998861148536828768138186277763652437442283754528312121536283458472214223487828659741692321554382312723851523476251318421475883813173248391438142963814741218598684918738761554659739212213941819299961737772246228927238332492319295277845958668351964785824934854451245629385111195373855248622956969412338839749265549953614799485325347221194819253247497876693115548359457628543856586362821232674318244994657932571196277279237667579769234825162961567375287853599566389651267463419135534328657584221176181715945747391721575234544442958938512985723685631244587832915717647646198465837941288971961539284947556283754547455241236279197482145763837262897321343851759487489855236942922644666751824742471354766451542685841526496869986922377912854913596637176652559239357947122422651294812566619522547249842972237247537672132973127731623819923636389846147235546219171341333586124897392114647267164186219457957346966175439134731138748673368181786274715517989973856693938726784482641292798786851429612573241588553652732588174125985932235274937283344483389681277669782398689317431868176925942687556685544563215289985577951128863422865291311718696243937938724146131639569631488982275867628913414566513464392289316682443133364629351487826924944511634846262533557495166768142491454837343585629468874439243272216698212561922948624157969276397845756712713896657963558565184867423993172351816692946792319575217316512736827475559228338285796336875157738374739742564382751383769365937755127971135443526544719735337992493991983526767421781654177865995283272322978628577632148624293511727858936686544216319161479611672456248717359661271276112163131254777647252216134131641756969974341993628639332644698673368155579558819672684746196852178873318254944891958313922596613589619525817296281192393433992239181942423232749849967219399412411494645756939814689419338279319448692166658628987826849555485218177373837699587168733587925445242858232899737443295453945588812186898167939662772316611147837835424329912867144264724626499182533854643728422837298559189987139315568849671763372226124912614635981754611676813914625915275627914989339487166367517918414865656944966894599115755445384661224718994573821621185539846313315775574812183244142693587217537894341721728922336495742462295774298268241932144783156381499866275982794685799167362889828714421798867236695691336414385945375455231943413852874394622126543177479573714988164584735936479676323369639827633171453836474341851187939912565862796179616848714822524494659935194781642224195567617957492294712171235356655281951646364483753969962486951469453515932469734919795833437454298548131267139421489963295941368193995912614544472468678152176885164665725979417542398193291778275629182588428162281989397354971333322479129826935932842665962994326353253134736228413458944133344978183396659261999225928312445821639957612437526438928738772354416299851183834476257838795929359868842749122457953544324814739614478443444578364518848229681549876721855392916355149869617751637398473781882427911895656421473192839998176217797776241761798916199988774385964731243319379179668465323651146397421641567364229866388542645174815867814539842737355918262578858434123465348429134534331487273994215542866796699142564592218497827261457825574478523961272911673398332912458885536612729991156276998179224191533294374364268875464262283481534733169575792578114429536774716178474211778825525857699365535942769189246928569944693517961553728536449931676568828968754788951793326228175722593498172531336395627237944495555775581734656285636238822352817374713775939557999692484519689315666832335278877727955315272193668241453769656317993423941249394918942218262693473524896899629128822133849117335485774344316127997181475264897335793236656157746444471887276888468681234738492935472559275664599257269532472574911255151616955869575438566513893816312452946523469892757397576756376412516157384273446165612376994624775388996222455952421547136478855362152663787382323457168696581916911166335152283428115974612592192997521924232373284579821971279267829711214341657894886873889696477356367592556236514281468317844668385935978582931349274115688144961443839777879983819299667461655788162948515493773583448974948416212384945575641989122729213842463571874412775864665846747921245382478718874359625218773474478916134714582916867478244471728598181469717796382127731278239977786722692362998199862988792699366828987923111811876963732889715487175775975155922517789968827356952438925429812952629595275919485627417948718994145885392782729372822695476254557945364432512429519668195611955638253596646877728673482932836399114443995573344191348422514133932366556993237536559381439743135151715395527158793532574547749244224733174788648881946281853767278442658136779567542269244519216951925717384338983197811251162657658138756178866255846841946211775677352847632236621195988599565923646721373586256155544492248739994655582749254868313532745418497643292464378653472725878428267832131265593357594755243964879552664671119333971346858144421455511966967788975199674577817843483379954522418918764112782475693938714265496276943442419556914296977383722339823946167121611129617335516728589783389981931942992623163734473349567355348331329471776938375519455188613335466393261754582121966463213446871499715779137148234659879213689638597175967679472736513523772534473979564112158311861193468521947244979489493214288298434375258963351198937347556475317624148825149948741464228756275827222993396289954898219975581163765854163679665854664652998195369645951198954537884138238127444487771871665917784187898519143471157134171479147445115955867195989781198135938772272666142839338196295197589355362527921193915725335724462386722853544444644224547918354463133317651995358558912592425752853174728717232176866926246612695992362242864951536227721372349748865977253547699291853879994866642148753197746654649826715181545649524813587943495366736334478842873254492185213639213836163945923327756853264526445717223416917239884458674125568128749978457261158374149432886688451348273998883529933866844513347361968256134285266442936365588224119725337745251784876593941742142124456211525593889527712775889179524134175435623564334492879787728121427951412556879318485344115896847622752717484214952586876366858511675734462873276324792427881631687169415682799421799821518662629326256614873724793675625471632563178638926386554821373711763918215967757275821292328489455645455832416223784713924763797351794367396827285555747113463188956362992582289624287896133321116643821877985947246935636858958522683678466859674166518283978729878144861455312726257965253934891613989115545696321916432523993852249231674134644645266328516881914827764275429882398921771448438819586793335213441322398222164834772341564984216248357178164456733956992398699212136633539874455649249267126946148692944731965519413238839423936795779141235675516729512343635194579373385643283654494537778377524541758322531795134586264981732175141862114973486723439626688875478444644932379742164835493279616441793195222175171553982299168693562761372478775731119229125873138213331366224796696628411787171899222247859228787437167145842821722836591411278892517321784865936118557488594374434155124498892582446175834351584887489639417556679376757162221418236988828564122948413218321349142649422376577551492611432454358512444469117762781841872916331279394649639396474447424515137143173335278298734168799149553256453584112811584979658553597793336485875955912389253198346916238875243548137256162451184664376953566729522336933968965331648243489951912234717913698121174887126822891914484174333234241528319891961961298695928231633684414382378364483342633455498646976395521256575798859194632495881519841965513972647656898127515654538623162258423176666468118553814555751976796894558184884539711155539626186765219927485737797792144195592278578468196679247896199498758955792537346983816585285123987772241383915694874332749251548216211237437977355586659564596316927849673369984432986842181711312975931157154476664147355316335422814919513859596819533954576917287477328593532913855259485976674321141899142333517912749336793125129217111233573254227949618821321132831854299495726421371152984186178254662592853584519515692911516331676735911168498349798898738352429981562577317231119888652487627425552617337841741728673611363993437587291875947928665825849939272929739725199771646917491484311481353224723789753333972119439377492614885154927239436637568385124264552956246869792453998726227534868964578154823957356126648479656542778583765159785276848575531173241188364759716134698444887893226214939393263766125859238827127738112841246522923497319989792463364356361822913242862861828864171415922912183396372557429395693733215394492612248373914934483654765285534684787515715187426561845444785152521362732249871326399734292516647774836849725756376258567597262937299773644218835349185835451533342118372783555178986459884736959159886164217614591236114586181975853469778448886999419747344332816152928761449137867739454876946532734488533425119683626193685348491648591732133199362851118622451415254226228437352446336287223353668979681323957189623221942367533321178291485183154265368474925247253963991498693918423351641164778164252382941242973297242257525321545753957961947257962976716138971455639424427133718714264856554588941872214815166845251545189547232328538818314988393346854787411632483254984473211434917486125178216522729156365317697336846443244785866771396717566388762414718176562138156727363982667786157745381594298879495784848596191875314352672347387755137877476554984317564688427183485162718454742962617156876575623128298933486472541235713459729921739532869396448451821156936927981833998837351185166171663153841824213984799698295792847952245236436633182952759228393977999413945597895988154165894172772711814352922418394591178575743712792125316337256514512368831992169262771414928568818135716885991816883924215949839632182669159139617818228622485456555612515428369958759591647183736287337758575458234173936734996613225999747273884281473945334775196585458155233541566659172558846484828713225467414978985929813441721582793239968345132624593736718856925248133857369422769933592386878381183357983914179963292329885613621846533734229916225336225666836999452623925825435858351716398778623773155446768343278148658515266333637169636468675477241982598121283878832477223651374462611493429697579517238574519946195235476434171131643499749634233655172514912124268317371343656829427467867967374214831755119581522158734439156565838913494352382487251582397943425216445668786924738666896589721331764239998698952818487836798721786299198857741822649332991662731349248933696767732654843718972895719592751417178244516777553641112941924154651463613369815168267352253647993938397514594991716439544897586678486147586975835376321698336893632235872367731268789748561149492514981125787884652525361374313444742743211989244385791738257482655727937916839256626798493231385755458248631636297875615827845311745568329473993668229699274794668924745772959215926865782141397187361836822732223718276369498987722694365437649828734351198987548617934566221992864379288176719579372517219317484711628425985843768818538449276446498339627291375155797541447972521333285714731225694357389977128951259738111922471795323319912796821674564465682759282512411589151227554898247422331462592558464474239417322852174119159293148376687437249333439739734544847664122854578389632414476721993658969134481198952191427187986241926828356355251358391988676389381862697223736751578567433942869735985716878444482237851234218282781141628451888891676578798616864866927662739428575912882651236422993758832762618199276231333864953228199176326125943554576753247469258265786387861925463146341975881687955584351342787971594582169127813369794618776564513961966867548765633184962417757843838514157923476684969119764447739569874666894352647547413746518455331686255489533275825198638563985943656184937244515923766612799282356954346949381881266717886614848433766359378356363833511161544386551184912726342624763878722949583582981153686737193279141234972331417412668132731156859853259371392932287981152956539525649665685777876574469654217158511466824392169615951916325829669685266584679431825915525916762729135773121962154544886476842913826372684581774928395932526616897415562919866366996589529189667398754834729334924551492219156876541924284116596841871189185673236217526726375959135144133598619229961432959553356769153292963873768692886821156621625825921287463322499972176537697179561469194315445432538182749545491446355575928352394292276928557681195542933856886385492892756594594947249325893422841921195634173466178199578729993985883356642778375274112883762161558772226483329726127295472566611476597226456318919529955192662688346958592222992843738247383451265669497519798872145867586639736291131772641328431817555116187686788755998939662742396797394153521495875567523687625393813317468497864421162311872399671889525364141471466587574693549438461995398234361828554913256188825724234955372352987387482191973353666959575589788416954253139264429814751398275115611924226132464344627747455965526416837439676918369933678264515245627459316796612594769575935338889424345813464613988845227758537468792282427878967841353917859486255363513381186768794975659696112547686915912577445733196956656689357947447574227771888573137696539223855593724579468315616265716628793342512859794624974589159691479612752837615966353612495365393253317581152557171421469995424538768597593656352484329398639182856795445698233451782692464352427185529979781125983151376511653249782778547648136241358818872196163231974647331954868658444543948351448791423427793558382635937762786465496736495649567539922687846382721383832485331974865133716334496425617755277364551943113735164616167631257863317319511774279539235897812587798328368334542484317886566514383114739562915944463941577127344545817742732235561754891483926458748593675788323397666614895341114954121587319438184744123656656141343389199943759124425689255847871998988972246137468836731214881881679566678282827698362262548627584429977784855524349455518471928459346915381741165899451387389124947637955828924414349367985786171723516188878397721547245613319281332939616436197242855325536544576758618251759473548968421965421986736441515342686373125229551548112655795228377995295597542585385449898419236825334874426665192536425345158739243519851496896158698911426288191352237276756462119899931548258374575182757282383262254397112847174672837455663788783112713985692958241874339497266576757945585581483369673622447985559242581948977293161222455143487382549432218837933954278671928646879713824695397492798566557329897858131399728457627463917638627382185914885639371916216768629237436836214665582573982567417239963534154499937975363428958661655888282531514211527858643498453832651792842252213877739868784966121981163277396574246922888275866964869187816452765356344261636222588495166691766282826121274784833561167626692329399812818176558694799352891913841821891717342291559484654554737719898968592791745783238483756526494289938117182559862689864495825332135925623876762829695134416938149532894261726997866358688271974915193419571959635249917825711292612932778853726229121791271371449522688353635137938817814931965896154879241534226815695987172462956323236178381861339728414659744366567175912988912882623966941365812518918286987165225422915929511651449248745341652284383775714667792795468982155364581757218564332381737526621245483568367114346464537178629634172326943733165792133741492444741772375448753312314578426651913981216659424634755192842497386675684348271532897396379518146713269584491343521241778629433993128166394337579682658411352631742557187519246115269911834177142396913643556156662552533931735854334587733437992147189482444828352698361684273476174822965347161121956194411647134416611934639742735235564517221661219213675548611213568829632596597517654196865866112883745883532172836136611286796874147536768865947649291217777354658489955642135799718629486121376914998453565943812763592193231621919844189473653827277366577448438312691537693863668385823566317228376229988163319247719955574296914635532238569482143837475883474727169282937765958141877345572834549567649324619423599313759832175121764685155897145955329282398798664923517196618194525423542212177578639427987886137668813123229756628449237816518254934245347322873627639329861676968471795525513854526346322378764681569112551736166699221347212551616495549612117666577519219454314854497357458113651391211145475851278813548338584593524527954538445325668381149499639972666918632252717536538477339226372862534748898531184929542463989165227571351294212482445571767663274821845855165294437773849615812282266641955555888464748788169276483836931465844689162821627433151443935861445693588778729363578592693179113571729486257273429179237535345581562591924632864869783526959497543692673945129496274516911731575733889173574513129451951933979343529427674113324258143144421354495347914394425839633946477483732255844264594876839113558277448553847353512898561462515432165811295819158247983918168591686176275655451364951232938876835441968413857873267279462139713346332162356133338854789993873186719726951643765549818817183282852723227261346781761439238446429682813527541217174916928753284243332473226337133334925789818313535771983615297538919367256187231686684944353914784611325932734683359643978267536996828419573832146199386292844422913833771962166766693112285537636998376262466933482771889341814593318835862554781858827749739178498271667711968154835498471378997713868438535338619148874999689358635476218641492495173561539355117544164927157185693839871796296739145535231748297479257225734316211543156128838565581292665984594548753354237883431339585863212555329554856535667699537913224378799644928661926675527298319637415369751495586154594394935987526942817756285888136546837326956641729394812381292746428249635278249268558677686768399213155572385391245893652127946956251698626144248636871882576259764822683286689332828996152567533725972379837861842731335481124495781918882566549612633161172592879969748784447297359656562712787573557225558267881735281351428276411133577473952124642676698515146248394932226328672837487337631245974366577198965946775497169274669995542242936339986435131147394283636749732463452894495489218526788451333468784873212649559292768483425752629996196251914814189827168633684573172687587977365247952694952398594653319996622145628888163282931495524413965167529497293422515543985334621935776695324445686939327649182983558118638172531123934798686674829621473279322322515974622289661432459675596627877453615724678529755511161612398923373743199851825375471432651341568642931925997424861793857862817671774855454186462441524391382948124319835243778892853363381483285614587999265845128344563491798159597286182576967791137375445241189798386544139688791317841455453332159694896764623644338462796938233282571156497762184728988579483619756751381955953323211868897956921595613517892224434328117792483442892132822933266597497166284427596699871964378836566261689131769338115282418381926443511392368281892399449257349872921141266164153182925949553331522525431127323522613985941272214464896898629969921229712639848174453142793589571582452624497314648942921368215153387348678397662444536551362776984617564283948972415951976142631999645953246143174669566259413391354748953656853228163577418627652124828173658768565711552214867958349235481357193563528637913698422334872887587733183845535884525748124293951523731914446823264738538958132173355434667259575837671564267364598932487192958531297232647264624426454264358191929732885511952393847353777577567431518967953272465288455192847569519294989386432741674183355992841669167875418571548846161659723779674351781547579353868823773949997222399343989814291961247449429141259173369251678575588231263165171987213128175922568381496592999987697998795187233951989439628517276864624131644827825858729561167653915396369642423997668693698353543862497361493692467126365181334611749465415664789499815423455795858795224671949877868399633193567346757125118986662581443743889522175776286975541679713867145985983568276662115272932327921498897152957523724239232343934164853556641371553954876999292597772927579597651746113692512551336418164913767831441599731884716456152542817579612561533411871315919163233989839176137367334364744659863159932928521346868394668932917112914195947951447356613414684384474773366941984618278317655983331616833426414765561481946534766736418549179445891829824476742314934687574528987968941276841971364621377718597272166183757644669831857628366974179676931694941833818568295782189956648697181163344189997475574468921789488494726124994639176493185152181728189789268521527246454858156926734693627469511215758123727319982449611346296297661452633364251285244268686215861896158385689618112527286795261241835653212171872922739218624647529985395392378569622542393656397395723242379214166119338583113831293515623522828539452299591673781939492643835577512632471437516688527689953419159293349373122579322961845186989898123949141277217484367755343222132316219136746474799475988219211422932834598145494341728448448581673766215918457771742676419257394579181561315962935282632546266613521567586972165563634777393844195141788475672927379647476759158553639466923924632695221684688534787522214594856895226385642574942583713142426196526134597645928177346439671269729333771434716622245778735641692633789721292642755223985358418651838699718762836448536161891545627476235111183626569165144198649277789289287448184999493792545552119127845579388776624982146571571473257695533299861259442988936963378947379598574588322599482978216888525475312659489539467455254633474929341496334275191745249693848321253382714121629682996856148959864181251542583442531125517482368575679633862195147139588227334189647519775774377961718638442659613343119587914581561433266331271594713651439787744767972594512451721184916875637912688827277313373361761446799488656338155765993129174117776695559173776343632832649149796456891897174598761744996989958484163143739288853925214893777625921324586493287468988457625375666787935574782538226151791137583251843379757898619115965176724938992338294882732642138545916498298221121397569724926768258886685316417346182154335819635492151581122754452556879358221759854893914967392547133858768834617196276563291445947321197869131828446983111244637359458144945927761359568562935649675477662253837942787634825288145562238343425218476239419727621167379993344654481993822894555559277966378543872961253422776122137734242194482568583724881482484156461569897943771942429457595719445381269863149234265291749219152471586572675677894493466376272428466993168516294544779216813844779268564315824367524443924218575481336656128543185529711122877225336891592335643184954955932653165653692725279476851145637792998353612783398135619624276846935649819987395298568529736418981355235232852351295847728358137152664976241275275668349164966662627115629625143598323228514159111822372244647996716838667962873954172374647326886478224911197372687715168788267893615995994522679448844692527197458747336687743687469729861669295869591149613971616577463419428894743846697884834471215455286966339413152749123459369794312897339269564637538763599468788957778695531883536392651486263857624564816974236755811748344638389725915583915579948921755196824796286734924469254146111519292569187651142367373677377228236362278933136253971247853575396713839722924638725638314661978648822884185447118671591856743696588667954497117865893977552712359915691939738494883169714884918898458449322159427624595972262941776419431434465136475852977161237666618642986488935511596212223889441384471919811251291819821298232169497488458373492462354464176272121757473211459685829255452979269145872282136984464478824919816729186294496994339666547837797278186615935624847712454937686414121779262524998577593994753374585641647897277824673873337554811355317977684365632818931576965971491188745272523793595552237534653559224729872241499844946698943298219471458562591474778437221539241187223957116144429253875816839737448633343846277282368748321383937771894286684492536291921949331997987284853272424133134228941931738446732848969363554866669651623546118182887813968444998763824168668367444125429253532318579865621456971482823846179398945822473416914933124397993712696187215446935428629948526896155652362885387738579363914584187541576645164735572597788146334976124687183355811841519322845132744992689925384478438359423936289687756737166593444367299491999847522174778237461776585523523497157254521443178145694936376526121745196229435239788171588139631794192614656168935642781583355424733983346732535987154193237678941228441924265753458858151626519521255355661125459234939991641472595931485587923935317186149187237728655294994286695314928826538298964463761169537147547328761578465691856962713427261981766713637186162566637877484482457927289897484539182878617954978779388277915367266342182676963729757574165579395828936183578751726562866314133695486184332115277632617328631889337825148358756397567288941928851523936751525144779487282263947989171745797289667586394399593281998162621248185833442672621837826622773777685157392558619682363924981367825329947182832789824116414529211541435132315474355755294646456499532933154681815479789233776395247339635882872399276289355884397929872369546765583281915583821513399425468934572789681128399449668599935727164232189991829762517357259622226628727625787652892527132193214765637288666319388431144342442817369968724344252184997311455625251236918332656745144774798259674677277899944518922377757561328675382161955395196224888525555313741837922442841353739571836446629613384417682625777725787322883742869311968118686466735457524688773794788589448863546979712169846115473331154849183678448545428939467678784166165312155998449332267835692997593924128418342264371953412591349531832672395411737622843893916858731988216555617379544733823588369357158612263989843115496634459384989759965154937347766338654673172955831345637469136668523871187262644667231766778433185363379175148494116183659373589115332248632471761469624541689599912125877914189226977321479327118328795485783783381911147858669479248686243412639529522397263999813761275595767619561781496584573739756115579231176944973522867221196596942955951444741972957769858316791975469494866864157633697327996983429368654239524276435156744243574319163475226633265561225547784113918345666227523868971324982282583495861482222498285217585613761891476414424554472871429871236225252883124579815982124191913524149227428766546943234534534776278171622587931524837279521987584482342489182133495123963959687925149376274376516126293587545246749566273691251762481528253675149185512851766741878829635782385283533717884457434215157635764262415686453777429739245897452768818376711978619572586864599766446353823819661516754331579545177693874163929979543955913956353113381686978864727912592686211429647615381977337937177334945876841599928195627429136648922519193942832621172713794368159291199282364435423692862287992922119837953385817176252461958249339222816143624219634859854668671591671274525835787172956312968917173189431813382988283693899699287485327497626814632782159918926654175814466136488466461461252716193563818412939774311246259329728975256185178144464477981912864761275683288183427755543532698964172448556454695469813154224929316548293737296523493597918319341775584866665316445684384224136193559835481891343782229539833332676548177955178347558489363594641294982585182916659388314463826825324561969159694532362696886578998345421235174337552512289845634556978999497838464624833695267512199988837599445797168338834575684562354993836494911732614941499744868357439958458421571964893766152967619515438169216282571746451647297146569375295713851924558592221723459387895265548549875524636616942869548955419252228578932471174151183778218923144789673729725128127485195987289568435696567178969597996485113949882341986683468228817456856251238352249898124846626359743457368174197176877251712337119434159955355951547253222234834775179973588874827632742864247514921917345132423966131216539279472461185587627913515526169966912947156583255844195655151946536639434872277651169513827811554125147434651225221152343133177377882415769779281285217419616333119241617574482499719549418932331245385843269298169914953845958961489952178987883783166449834639668654759557245313618242124476422276442386999429661584675911553651394423112952898945392793746112939461561555734527146214477167269185241275657998692311648343958857369277741339199319463186372146772599352384383212947335751855432571395423742942234856221395747885913444727722924398821841413199489724185766748167947921851969996957366732494111794585569565354948664236365665634161417453887279135447853418879266396941238744636169744985762677317991992664926622486884259327946525514669961623761338653563166618257514599541795738472538834494118858296141199562398551333652962746544257157992121965886151246328763276972569772757145649653374159366953198954128732384159466672686172371275577349457862898454513111247143698422266943121856286386391814162994918692793877485923533523718987287946226393922422765895165854462155656275576518763242646222467572927545181641416621674386421177268813212365395846914232864851566447667784113696276597663948984537183851251329826575231415194546154438444374266792224244654988483725549876192651772185548927665846371357866922188286648521177569197222897578686495847778886531449949237865624252645412299732875678671456917222385716824797964439276211692393521889462849436767775486544564715783629893734311977494838284554922284153225646632351733441795186394688899462824149292436495992521888658594775177986128558147288167822671937334912512467251868774365422413136426467692317374139465896836238761396966295813216131529292725681519215723294494917967966136585535444815223553943638324937675937461742264418692955677179727128854827932262922115672368239932716287779995187198664881693585655254831729328936782159118356812327798761592393861965865691261292851627666684971176552199916935118969726374762657111291281783173979942568924989699718726883291486479425296584553433184773971919646577987545881112421787974965817365943596173183215272858244525241644792398596815223496221662176939318537476857478618228264461953873515242726453212923739164148425666189269794915215467273686517974573388367757157694421677328115452679494168864432854711532331766823751257934375559719762874859431595619282598853814878956331352219651667817691772948843365279399354329981739816991874999427456272592599672551241226516547272789739978735979983994654298994162945722694171968358612929718914288669727125121935785777637536945791652454754746394879543185679147292336612875595871815123589483193325875962512888968369517445744965543938278456251186936569934338773175792536142138721367359573451547116159762775535562276233367321911626471547999434552264389921191152588532211154498614942842831835983745856851299949233325388469858112685161171964877188525251135936974579686572858467298612725317895243199737913657466236318828417821118982662736562174694476215885886775831913648735184331841328816373755754898761269492475586365882157532821676772629767195721389495147237284742893768467838957886388991619963243427164846621218836725675562765816512984536556329889347883869348998186528164796674598377552385274972523439798355614421165292619115266498467292653995991419669461976515342159215414892832777622698258672666687126394566543294454267924279738339867294746965489795497713766498374992466151598457986656823552379577793288136971678233824158285132882199913589546468649934752254322432322569423149892784158263685727848984825228988155561376635996678467748249948753398325866356813748312115919673812623118623294466196297688544724886175847156471889598265918461758355737331758846785511999836891525977688763546215644643525214265651319275427128473835177587992356476283724425262445841589178384821349691842357479853891797525896828678652765393377456425167645137983747894333549284735231984496184467947368513531893315493822439755358974725967146366695967189954578365747243836452921415114998245161534356439164355285795174897493355669312117422849328725195734158524434544276369281162562134438279512855262686694699755847271997947122537795354614678952769758442143285955479838275979144199833937245739165848756242944443325527231693598172746268362796127579282241489377342756681759341197895828956873596571238393227215885476262647887543546365676287776213728882569113367894341968535145227184141941366944278155896491921519892894811494711524894532512562342521882831391241621963114359483624612784612725787774174419356597867125385556924681987227141791466167685938621978867678282341376872539823774651436183811934951538671662728183126524794786171233999945125823214755124492989912289283584174274548151388566456575473621926333677472398255689336663834824456714451581384753774341522894347817242289117572648162114393527296919137837674747552653973223743434325918656931564728915137499632854444389871727299989582121173256591938895867565463311392398514264245924499156672892831959791117421812242255793771853837796817448528632736295472556638398888532364936199618145379842662449282327699217178861388362527551569689349151856633661486437272227175197112986648794832473181393898397987286739599972118315324514432121838491449236336166597846278379362111144956678163512385891538544544656949586482642869348381245588743436475813966143166884917455237459187467753356552931329845357193181635381515141333354248672371468329847987581414738142898125159882765553182233495398378279564551627161479572729248975672428853814519636483655567343791941725895246299736981426159438312483862486894757454476981923744981267485874248773221718789964342367886472686463664644312297622637325752999534781945265383934987618263252114563666172419692999659366471579916261668897757846791517153199981586652321185768337487982381287236782923911487211847535563579373859939221358968842674129266283467359269385171853119412337844161786511539936912312242373856343411861923815395326539555849563614789669849378899442396779626975343299183929799634752338281787291421318618678431696828736694313344374135972714773354126785915339655156444595872196498965465977742236879218686685325111645933615728384214152629959451315897156526345555851993797742862251955596219764248238498971257372356795315271484295125722735453677146566973921338739282364899946649285782972994766775889368143616515983179268644211699615429569219697815622484815874724255191811761541913142521897357673161252238371261464515584219866173277389996922167497955366252757965682462163267897692228632696482749985182217997746846598768316469368756876474138612262137757483419173641276579331445648322959379176438355993825859493124218135922465379867157523442653953866258493821686481142376431635991525344425384912824941584546936977591733259439521925962415997584223294318342283383668718298736148356677591619836273952761433146869437166126917515699865818912577518214816395144614671152751718559279541978572842288283357338163189143938876859967776991633339637421623589173969737226278591454185946284981276248759365115149448832539836853557331157667161993776729582276511233347983687676944524473589931952276864122879562813249477379264471855366343289359673419136942487373787421737653519749742246373919276918979634874747612726343532558249836799175449218381814157282195977545332875785523582897415524111753276453911461599779411861261245442187367393452428358235241253686785491139264386291913426339687355774666682919529528751383349154529876334525366217982918223116458335966397734444132222133233857689176695476719122223335546732589586946473942843164387731413551497182628722995299627289218453482281342123193512453169971715144353376576775825951365253233636162398735393785289195629932295781719672181368765675136927236685664421529544211767271772474132477827859793113288795772818291348928694563674972741227496115229919868295451658722733361871482272257956482545216368594581618634748533161114624249988346296858323965361262623846835648256741562867374399442525196461376749785961677996929171471115932595463958926624216193139131623772218483375746255654867768729886186734142424929475869535396384883356641771262919485337856564842265629696692793732253837573956962523382841119382386678325591296347565658659586615361282642649354919454229167728144243395468484673617928824685498793932557385641889681472731269837139275893355334281227389484276979885464588991418529257975482188866483839738668599594192639736512159323285959898838237289152693886818916511578351164772676735913583383833871795899266423986467615843225312371748654385572118669143354774891864638957494613368263386764234219562357986336562467696262565785731855543166621757515122368645197172426722274257898399425268567364496978285499279998839345181727257743549189995874567381789861565148372371178546982629687572418821647755752514292363229855996776729594968929328453563537936593175924499289112856192345937686883384613531532626215348731499177385646788831882413825697746532251724382154133262344713465828944894322326729925249519746237121591822942622524827758622244855785876871921262452237888192466745321717698695748961658457584268579538398158522417462395843358195957876672314444179187672795595989766413434778164973729788347735791232565841647933284163886568138159296678623314612127215851753456374839681711261352972566521656373655523584598634822167618663289445986134383245536632372137355388675278516839282854971974618237884492232624632815382379639541328546659822273363889916868612733576232213221446524513188949112258861861173116667916214197997112787863961161726316826226814515683468655669632251743454824275633768524879843947911234626922475549492787771964565577828529646181931198864851395752433274236735828727692976995368491618929692173744483571169684433593385244349523861118125873325563881295528369555655457744164519788797239965929474928592997236294972675661152978361928997629339526784249234431346246935696618551128331244575589192684143692446447269284549177186244547786838552367275438335933546888457149874989696138952444687265919693479858717429393446895491991849186972743473213546215654643616625292365493722975684149492663313723849389551657115599338493624875158976812875575924846685945322726513284379827297582248531142324864183418478998636641593597727184483622458336299764713952622418847917232855564441719914965196979668372567893346217196582181577523349575264388998597955153298849174911416743532371876379589452358559689164416533519136174819134887736742171713963875463753556943626289386457533719346621876468629147165599242423346998884319261174869328232363596276853384218315681613425551799316881218428258616666897241219938526527449163823478948662672575326966691595776913897652718955376963532561937626816461631525953639761826829471141685647788272324391372852688793651125773589621139956139388156412513989237198182165577586391822162259162861667664211868588579565689585669625371681556495141986444383748619126174238867261268892229394253165662985861576582351572411714119565743117165713748775824884384139593894691169333919581768286697456725265169983382221297915565298879375771678996227245845381799475393869927717328833315742792648167342324884615477596179248282897411633922371727357954866675853594657848865925651345621386752111465148835316761883345362937137263667548969445514837264456168764939672457391741123739964568335637573718437491491763559815727388836296938668597653897787269877769268751616364919288956562438194911785745361659578352998941749131198461996852897521791584567468367114183767746497467595831466392192489655238767592131513548266265393158661445994987146299196721239545381315713192695314223774796739267388857156316736247515783456372919784488918571184724192327955135192439239977975336545776451763253495317394989413966332957832247477797526714643828451635327431268737378848212583337281691334349192738522431569892599469571895795867518731787656885739686766135421279833991665244616565131724255171153433388782142788191262567963977399536385498656465371525212597227158777225961516943974494643354858726337823873466754192345669844715336928394531195383526972846226649329948481389728969545638249893624627555574445231975447251138391652396744287689677911625627546581619283499157914514565916661218259968396282881331686266723732637534243862859963139636217579633465789964248144246189619356318535813798293995328837787621341173653722632712343124793453476473638999151222345446824148475912273953857978993436816219946446553848113799587629399721794337981255855124962732642622581914511626111422817878133274322423763834423564534212123339652782867149471616168479561793647726992694542511196843788657911682269329673622722395563437128175291213169331492531966199891598916926132955993944921639599659449921633827216598991163123967719691664835545195884878161356826875931223776275653939845751442938412322588295658841724398323415234356594314668442524833654883315739268688954787837219475753973435351298883351943663699964359583926925713928812166315299533562643235694876665762392722553818163275634912567143151323378567462688141331477171286317545281726963877798835623531261994312382888155723595147391416485616744921825396645249868899337887461651743252724238193962794573218173246451523844543839919456667474686232373456799972872616262888255858864118567465542692227316919584361561317143686745856576166914429374494117265727292758454944276913442833557819628893627111427926258321564245196885146636667358862674628143433119513165721445211467738631874174824229681624235171734586653959341652599662964471443771336521334398438483479815759926149581424842575313541421985777371218259543681111354385373759476486392244492492426854371444472928638842271421552936443486724725576451467518443544168396958229576291137876519863369287772583449149152738488364588496153291544447243315143868126945549859893336948268663837647241684559437659143857713986649452411865687343256342912299742676827782359174378811891918773939629298312218536316495385263455496324134255196527145563188332852473775281588239743389587228483421788297145857839948877687415756713432935419182174762328959424975226318849837835391331225957354664284977841523842864986471185441768155738861954231527163262586551355737613598929861676981949584529182742191772667624293295144485383456555622677448747966459778216432186447514247911696331217927559657181739243834993426426117652616323385318582761192623223878927658867486234318397359561857549394169798311639459184131994747666962831652614657465857746119765352434489448683438893576977953477519847781659881661897495188324955848515569346492471119427348734117847382126745972982833556427626391938138593179177259513935685325397299949246233757687981349869488187872794497672431128153847766664252429758495638639344527393858273393357196548392324676385668485693818517169889911377815362118557838679275263954979559975275811683449356762956343397284691272139363297863957462771499857865976893112886269896974913877453849538747825422492897286454198373226989679292222291928554844771882471236246357477458392586742729957968672197844578388435917278164659516616388635543285576383188554494954472344777996452979178922349534972195463141685862779661784647133242777882939416683449498762364578745332425255693945774441566923777298249654124396773126172652939539452396518927484795311466658591325445195876525884314438983732853396815372823399639962759122197435914422514734795672756757856588979312561743992568543197772429316247273256556681443643429452372884592726359718842115346371397385734895529481264464787413432169542811363211226452739358682776739811835145156681752686534611364143136549943691576633286535662865268611514754819353571114668844348919159424693628965875222995329128824745113374159546147236656458348512192339544496191713377922635484584716568897496457673253326755284463818787426159697822154717226552741529251755715486599861572926991141955829479718257134161263861853848428355316931733939954238214587328143654155238421225637547795415319565971572224335797432119541169925412449551983452284384237244134664798643641974972419622435637193562226469456854974845967431238473674321155739117499886638542377645956961533433171969622455583246629126168391518693564698237441992994599328458218443712625368347446676516432232976356497823647379836386938941228642272853126733526244735527539284412476687249389814266798451368798745383916845825341711635662432294623922516977591569523977229238591673822428157914866253865766515672854884789489874478654928579935119397655693478815659941897671279918673122368148582586555222138139896196322134873111546966169961849348968261547837872366873668632565351166218882458584261336189235651666277154189946352374982795359316822427835718433559838116421451822154645115838283155855487421513698961461853559755239667399449598284229393547592823788598432272988319238471211392569428251267366186998735745865921842666771597914583466749215516681756312452941399425997818467826879499524618637569957537464144631568511871723369354996722935288234164141212447252552224216734545752156166219925168169489952295769874479989881276183929995123589466793782668675273364353744982727386554698456862187413766154235753497657572956265915161665166541769534171266872351666632127661636578875991577683658319491157129766554832878537792522441446148914548931118969638779913156641349684465576262224991872165728642519845472986298586663668931784935717245333932689245581383469743213826349522789582131157383357567747361213379228321326144359814467293393539342163294787113882238857177329243249467725526695817692398929833156981643284753134782821612585798385348556811123481573532771239857381235716716944989232318411396824826385766348646648677597525297578116672196869414279829561189627426173262856677984965822918869591296323487154743138418499375135235755993597951253183832759362664138526875561464673945219135181583344811346383658843344346654683916486419938282966291514178436726254784776584679278138425257829434712178626973981782634248829753122327288775973151213516387261372493211978564768878928647353388438747734671936793594457163381133995678125128687846271977295218487944746237885668376353962583229914377889467823749364461618739728146713658339594419754814587558451811176997856277952433879524248229335715488185781822188131444256177547174873441432539432465779376838626913346378331363398865792373225725938545377483613488857963375746238972418235476513387874291674175872912713241782111798197154461936226297511578669647347943377369972681331377243986719493639245243381312228732129689539772695119347256478351353311343111369879693318945658782992925235251128987217991455123313494915429512219739528543154374512892423353573554485248333761191388421646883227556968891156166173924866555656491996765761465962253548273547276255731217143638742986782946652367739739443584367554923226672896668532455593938563964265732819465217441881172928213529982962917438952131137328138479357454634375169263276787599325251875238564969986293761419231755832345171476354963138268172155537651148175611996218924622826369124937835395374884676947128735525828619938555924471864574347799371939933776377595581947369928835737739987513253619694328391173645327215755179241299421341247491822533997494416416357262285715895147237855284825441256264734113515327992311782335338844297597657278867198176217529493822452127744521329925535387236496532642295546567458912429932561914266385749385911799832724869861167684257174465534416477864739745314617314759282522168834217161599761599854772924128912322828967733762646123314515485526698484166322486977297448876427976824239651888485284838615247745416827672751487995377137632214754225982147175754282873546556921432819922618184492479722376867889161862123929347383345462147726622718719891724552865291494156627777557436416741827446465771422199743466815569551284721297228336298325914451395313675684295927445367756271291739987345654146678214879476586557445167513825483382768516154698342847588768216434581341846315148211858624444975424457432951464274358111443748261595248334378676919799734197814854368179496264654633615194774168484181121635991353513812378674422739731793381315556736853619941993875854262282736398873943825925293686982199352782668862152634243311988996912289245931134387691821719597288386219792694112761742712551369187787655614915171934295359375272831485946335832735134557475782954893376719382463866211847325499878116687614649925535529249688656456923574927818361791624573437963655811293964688668729167299896252532549726185741591517227115729772925887475948898947669369641616697274721295984668323249114154623329691719287643365678678873243465333393311964389747494371484729351669789875283157796914851233146113979856464768327918292315499198285278715269881581388598847636454851729136814852879729583256689165136138627113189159998293761767168762422212329314293922387343859725756966997928337437545368553514979565163845566299853379224554852797212585831541434669661816381359869118589634566831776856475598484484231184539911977663219548486734136245577367365921239983711473775488836553378669672579749767144562444187315161137373247123626962215494224621533351654256526113213651862314266481345659299791111255341462777315338693693571569575999934111731254912351497443481979862353225338538643772426653648514738859372134898266397852916857229994921233512317836511691185797697898891159271854494443449919669347126221947132369594748738784517229821825526643582865547395656466237328669323562547181611265699223934799621856911698668675934955248617577552242191857694196482816557213867971279265724123741821456975241937944959321632985876892497812894587971912964153439919238818898247834824919494646547449239918722494775175115457982636537427298327594989488814613764396847555377935324362143493568978462116633325746263366416651447273384735967432146362912476518225443715311944947674863999439331774835344348732488763952884816873255589823685723588783771141717922469441698169317275341455425116243276236932762577912135466976689785417988164211999993538225662649169668564974863862914725182344331185942328514878979331848862373282775796646834729643526312439648816384838411771634875415647599371887279929986948325755318857865754551442339924645218738523399773118152374255427838692543762648848643668174415288158283459512385149315292633251145754987748966479319728981295288653841624419936957728595524932776861931361363857428368629991268854847863888163814629481389495269533228496392572843781717645241994314943572728791168938781285273593986143214982188869537545952311589294514891198774626461866986144853293563562337789335311998492886194231576518376199628528456524122435473922847556318168883434725958394495568213723537415537919485214553198918271433253616396244654917296996713755959191739253518898518196666839315325386291541239979679235827747278586296341352249295918489154651519127732667869678268195999364395116878934519577383982571496825316892774135161798986932172652273651727129516585363864161125222386456167918555971156562563975113648243934788264379815961257668821645838295821337318793718563255318882591981914633392562318524953822869747837299518664884645931222297272845563494259437781374274483218383638967372214982999325764864772144839555765153252974538824292495786531187682895192345225545663931673781447417915148559993458751617965817638338732585575719574444239618372194777935462832778923335275192291666358684866933833955562162281137662421796379452756293488585588153385364881825899517745574922837255661858821419351124661852145658195189972912936937272357451994714312298388472953669785439418788298318136963157313371713644422231141853458543163399371534875986991964288932338557483446623111699596994896128864591824485585545593983462953738276258587935478726124241336518215839767469896577268572594155874256132657546183898645785289566971473637482989268922581998844431578741468567373164312292176317445117144989616822131341347778592993616984844325416431464249978267328726289429851593438842738535346127635566549577719683755597832423175521164811672549895334925257464815891181248291281513994428143433992819934752769719899249153385564754647811176936826649543871226682155645541234716379224589592259354697251363533259172429368374297657361376638844851882718535854618235262825597973951129872367727521936916455242437348325541112753736235761384427151872415325588742363739756287883868888328766531646828783491179345133855721373336827686815922946447613985192224895552143544527141792988387498778233436669921714682771598237115737968525416377644811759663353735429261691138672142126172216578819615774776543647848345564192871742318774328482165899434834821884924872293942946525357739111189371757767941944686122774683771618672447142145583183151317574645412545348341779876271192759192532575188712788675283282456265498454853634792648156464598214633378753814273336241776225926377615478668186318822898591981528379716562458978759838777666727644514959185771646537394161632386525921718285239782511895958176637229298916439296336316892619262984782683224143776316876946852951229476687191367986564167643826847684353942977755312696369442125873296491587252672631356299391778987615554268424577592211139296884634188494135562121332234243721174572311512958259372485717979986323333384588383219347617394391713145363611428648552212841359431544969221351115858879164288112164459372386497762658554862663758183119238866433486341616671846654854777643375422136285743736381565942595713153356754327571118144537776246351674149469127116821363939544168124537364265875456472755698995716147874278656299736981449238699293979386142651513112135948896716893712425578529728912414184744333694635182833813584624132495728966429826919279437889281318779576217189788586438226934855733579181788556494947747439614176323331218953492786359971841257678881891685824172517414587592268136125182673161222861298847952645346754811117227283392185779943357922493412913721959157534417743533772892992354347343994345918151317486585711934748147459851655785334973443345729513147122986444976363496639299139233835932556842468517269978971884266557713277313163778575462448743398167464194391566324748783556785581327616935171683957815951637185296856458955114318978464337135544138664458958378165892324827362653518853657475271668771962686642883668922769175932788774842495683948639885782383451127592549997281952821488416741753582535524132925297236176549614751813344746847357169666219169344333656929693327123978577584317748994684643864566752519357677359139487741926363837987811568392295933696686113385973553618426545837286634344662158393654495147439238791134379484323568897381932934714695133872292548316945937121589859452638757912632235726328366351275337292972934156517248965578585118716994187482932535431776634124884473761418682744175153714215473818185134972135543157226536963143942443749943577671383935412725918242414498645213339523953924424227367797559969183134228511842264879648373268266378699531614738126968885191717344292155115478379775543131112744153257657293919776229413513586872286741559741626238179329566243351734869724775398984815752366579652137998356674563953527544199955156745651226563747878632832825329993448459995278856618891861392281514339229735519179747724752869819332253915456252135797961246126949153344779394496865561573175569464787164984312997353389685131976334138426747836561678445948134656949871445117643619443836637982575553686187842111934226677466422966215713387376369781346972512696317777994722458315338825975133654429128481514335847528995417762113994832882394678328228658325414713185253362638359261124845375735133548765827552567478852378841243577343725469515242925133816839277891162597347851943545624296214883889828652336429563825344954233511482256479891855136569844265496435548266946929423967849255784326679596981582523629283217766188654693192949181341259468125523277646834937745777783628421753979733216698372839617758679555651513733372998271939684441385751719172388488195286245478597162932927246983783299793249989585777779473961338447327531528476834599436623636369189632783528192341373944286622421484541682581525532736244695846864227376414564917279683942435822333148688834324932998283315796817112869743264566656453783152643443627592797142697242491615769913255894963656726438667537193983197576962127698242997659348526635383868979648442641384218149512131216993955899943871381975934236146645829418482678796784176478173546928967715861621288475823719862454141819284346353171562643517753167937856389823221267439571334539233928436327528534165113935478391682324945576438735335427855774632863157595136998319741434882255321635275577166886869892271385817868376733438826582461577516976752578131353143682827865514912666713694639833289251937377776823483643984875184198171697464945273336425892498797594563287571987218859248378247786232349197185795561583419123781493527525133591147985315226394423664216618767851458869371819241396716377153727662548465345258287847574267338983137853385691417191837144866554866542769338279878951664831475762315461392218185861816298225681711246175394193677568177789357328333831358767814669456224159769572655671345126372326728232987934188545567178695616188989177669868712158844683254662448346992886647742524873177542575488987965628282243629937569616234923627969888811263244789759352753994699567356372475753627543616985245992626353381855117761821598123412562286524589981556637677477628754872513841738683246894531281856342482555638397611299533459535958275331873711461478321465417812628142238398335352183228768448689583596334255581598821675418366115355876271739778558516946763462896364882943819664515118673919198624112186376322663162828119918679179167694316462667749649541397383299967377824979743596548477986395189716587863737975529445144653951821567234416184634468961325619681636348778377639975761791351199162685552378822627184942166166971128572687459411227421627323718811647794538479471123183614885764728387749676514615713973461736297835597445184435796992327399818481949774262695164563784412381129112178385334731975233563681793613799426958211217629975234293342511452936746857419395898226449489524616179754485314794495129967818367875749268788157596988875465279856421336195918648346912347753737468391999389243955556689354526253982161999813197643299124466971278364463344453215314395731227344161486619854253584924376397129326455825718113362742978498189922455836316115241394571328127928964546156546169987335356157847633875579133638437259674289853515693139943285937542499816781932481684677875367929268948617799737895251738254955861654513272945723128291916391776741182487581952353162253682758321328457195189214521635992967788829644354753664995968346542128999854278643898188673397841951849813239883162979626956649534617588791778984161133627279222682331118175963369373633249242399522431237623959886937331254474315357469122325182684317331758978492237938159567625146667722428367469152956882553155612384534449275189263742986281742769111544442848755137226835987164865918342425281574394867255951336626449579987945263649354748761323856893791573998252276549314346531199377214594318416859771214656656572393642962893487355365639394841968333337596734568874347355538534356587237799234121545151513355688136847526449741874379221345883695288929553435312738649562941299617488443565996168822768851861831569292548137643324489174261232277996249843696826255161466488586384887871139591215519646283132559948626627577577927981598892947939792253888545137715764643736339287312599343745416881244317938847576615548812342721834354856639266836379169183254336542935587513994612527324638951515697145785983334474116458234273632346794272495832331855667875238461838345475867878954419196619434416249777243729514845754314246577181156769932782265639969372828636539196978155262724619537728461913912598313827989431473943779869151198839991787731657851227193887796678677535297252835846546724493968715467976682664247881343673768549175762319365788556579836193856743317437464732676223115614888362482224849222278879978437816531768779153964289857755596366819885653567664962946611161785466254718944619915198669755623149753133826277967476222186547851616917288895582237749847482165135626334113642864547412259256647298732241495469724454467472945665427531561816877212558275368823455187123912588218453169584274599896598778837747471776525941471269728586378143689646398671718825685534269852219973692358439399767211415499691598756872624543498128168598547686361938189332562363168928662431955948747669815932347139985927912415277724793286319911899382972111528398658856576376355373371461413241985769397824457965281226356469467833752433767453871782416942877549724846292836113282311894171624585868478562263479599578865836374751678433648775614552237729336699666498642517977323445195938598453182846986764495738238729568312591674271847385657459222266986225183499473992555281112227714316714134972269315724724835594924594987264389219679942323763944493779496724634582574685942246584652681151522869816365749853491755893817748933812528982876115179458638313194375425314471181488333295926325742183694932939167799918419921374482741924125922681571421212249676749731132633781737858879983838493365367438695777552328226499338454871512371837562793514143965789166126343326973941281585879348144744468581166361378336793516329683118866862478395127686837358226427292767895724225783355989891431949215894355667144379766745777861782361586152764981866431897584652777726321475874859491471138473459111641678255431268295316234367278342398293535641469889592838646469587396559913949928967139984419358187642631825715599293989331356154617769832212651661767789714497767433316336481446412179959388154786916538166218738746731658443821411963769268942825487442376556587662838655557638155799826461117654836681935787483961832478368133415163155523252346429565382184234729824465679794336181618617838389261516953823244752712562154961777717493674797153322457662847913683323479848542863918664747337595827963846691867157814287998657228824197665732436227435125878671452752426889822532274665951898843997128616498541658915499469243332944894432275349149578414427651753222555763186189846787117862735157283648857456438896596273445959566721595339763543982619834217163634784296272426624773745955552824282492127259719176439725379341768898998714583589113984411345499389178948286433433521951884324231148731639262494644649627958362465136289196235589832893577393437731348247758295178266414133355926959773447156654468918411635127712568892516961386286936987387158284964913698637235728495933737445822121479232754324954446728461833145172974258571865219679515597881297285698446322732699539188756865584953876317588647599386252748286569647367814768417345941193811457311946626182821544937936316341962954526924294347649233753376372557817499717131874886951278715851539369139733818277761778648932975881783655835742318485239922228596665828392765885613125116217965521893722897385756857447957643184163235415133596282715491144252548869311723962579649168963377531227247217494551493389185422955165768489229563591729627168353668224162872717855937879574389454166552548699384776443481828653168693746585513888433662632595791459622371622998731985158186655689552678749738591588173781345713748895678639389437334492425894168847314156984837448787829398615478118414193384128785566486245673482212612849239917444172585942279489559623435424268466613117324152195867199632157884344554265479668254763726811588812265571927863777153314884742512627273254839297781991379652693854451775958956534524541395463548974841344129662994347477813166843136168569425615848565235439914226621466497847221176588922913224775821349124745741489371461682958431464455638212249157193151235977912346819618732727435649652148639864433374155127769212176368232116348656962463937947144569482572215961556581783576269516543689881376329878846273788749373539517445966844736354523386223465316158545228481115566795215441979474227639477467913571982335422457769331267893484731828859481415271913128797935398379163181121538618819668352772418313699512653413294248974142272812151119254494613936823226333413427416432861321413174385817146387128561646657797994322693295834634379433897665355675735954537778215147326862486743324618151638448842553139377831942413297259972656891993839592586736945659546711289378559499557121613168822473399216159199943744694989771897936857452351143496764253118197789365999224137367943356557356924859448251643478952376821544136429343257121357153369852894396727641846557561274391364453762334997872325962978417433868123345545213344639836666398574275599153463677931812467977824231769775911367859931165762343545612578958874558441437893925169629776562357683535657237518124986852597522281422876699241932329814143895913944222779594587629598813272662866266334382639281949819136273358875487615867885788659552178394271519279645424991756692798637934874799664295483557916176837521818266122431867113792499872623612428921153138738917136914166325445347242444317196798488784215758362885127338936595333282512866783869252984786325758166296373859136151149496928583387887425698581284287136638475693482123471229247445238791436985323424561673585328832591433122533764229276334846728857899192255321722639352646297963652551655185157319234386984571735979944342745456277595284639613191973316489824441189587731799998885216743623956854712475344343131549193354648233593639263487688641541776239941389543459697255199144111623516524468684552276665668979929269811256114358565931586374265172942966566891636237175792117614798885339819873375183562562322682368782762648765264499555766824851728884947713238467413879341725786464867537759695325682425487856492777429193852473821862299875413579211919394429682667785662191437347437356587546592269725825857679392926564217865982943524898446465557193523288785778919499333768214712153362128595386334146312132592696922924852389812115635846976246627828194222292392665247835438999561378599798727883396168591399346363111979651348567164914832755371562658523546481995475658833358494558499654171171517163745861791145964737135221271877141627796689176547249552657734447319967526432966679533698352675315211853485572138872229943991422841725954491593389391284584516788761344574622741678686933374842716631188438693658416919336529689341348971841985825415338889657561584371454442823463985653526263221557572815887123391766117723834967525786374875114178579331513889649127635922321727564487427516459361123514645716542879512252787623624874237617141337267282341991252538941691214326933649873762876928713862772213795969936192378861631816983193472857749358475241213183671989226392965889726241251468626614626255341639581214128154925576847343856828767786177882373721393935111683458925623311537798618712322379413315775185137785646426547555495726292681283851425945698243682154662729727913944438887691867162327488459249423865543393277963294832666579522897441668886662771253398956816184618664442987164178318113683281551416751748444742561361629836971921575547472645781726868649327318365729445619178959625478391121857317152692598492244671499492575296911151218837141418447377424834524518439212825955788515247631971312244154136639197738353195192122234629133584583365989289688789792264156294652766365173939697566672876495759835451867148187733489567196561443877862575364946264111799355387665341577983486992311371294522377819845534752349579595514866983673556998474598445384725211698955298798524873516134394894863557166825777143392884222682957313917599155658987174485653748459651499295659437144362825188823777716625978912595931192599472658428979375255314795795855882947768555482896327685254649926211876622159337869527132575376986862534548452247188689837344842427669923857861668336398132315436291172346932986828458141361714322439543136224815638432468338659882644957468738381124359172736614767152786559377378683581553213578283359815731457315443497698846664778768131175785328557216189536894679362377755276921531237171551716633769445842433585497285349329883248181575517745384993526448325529427574823687195494645378999542474129491668368797169586385229356657596562387947642581217528443988636372389183647885796457281579233859978885248726285728437464387552458236638499128598332966284839964767229969962719531527244627593858571477362432375435958498158344281327843175392624127957752585893823417514122174475269945183562633873522823829356762655253498452647888961251165642796192331175238917792716712365435144166262684465134295765881333736141647714139532831316884817179573636296518451644564141521227164326836576221363619813864974671891483931541466726696882278525414552844777813474944522728671119454637994675713196447529276276222574263519188478812664581187698645151211198936716972319317176848334343343245716392423344949513435759983396866394546759153993236791599727393812354839734923235885833694323693628999962252474943325675996255417216282217444838959516895411951669267387922294988828497938822778674492273291588369198782563649317745752972918734634592647891831485859945136918269518663441523561945838342821537586442576528863855447261442494942565712363948223656462494433726773234449643454618244363716176653765189943177438252678937434988264662545851584298344136759257973347472866995223846249824739425637365551139551724346237599431884619164166819962295817656588576726722127617593612292846385122693264266825464634743916543945193319625196633984357548981274673983843342814192527269857864331528692826196395436942926692924865723815414923466969941599782966437718237539764341134184942147689449253814678183986483787791458383118377533432639267425194138846956772325667629534266664876741334791922477948981396853348813836215297334127724744329543423595215524256548129572813767987346756317622254965812982357856679244764415439815284483528283659563838378719681999437677376549596789496376224314146793431874813469319736357667961531762748128365385258783447134276252316217933441966734868671987691622232825158144715982758636486458561741155868128617871543261715561535538914824675243395422573928162414313674141555775215453544439479799956351495861272616968392247216191625655929147116682421433242832882446748742442991132273497679658882465238352441453469798565429297333645479614548884763598928837559823359299653431796155746528373243577496342584653147611263978283439167781738282485145151337156378174742815522651264668672475892719172353614859964329177214583653559774844338124545453952211575619586961383184438963147267214565512297215413745532726442952397747746467897161613765298392422184758393872577647792292929169157522351636774436915125117913927568683645313635215725225826997643511764283445866336748329828573723788117341727349823644525462643892691334396819791954416832984263423334754345214297638292289615835168533857267476238947156815388783546819626263785578363843369248491972924448626163788962298111849836918251192687866752862562635527918713823982766222496542615145744525897984948669799343593897351712381878262928978812141338964125242238944145923693816749634935449551344757149318678352194396838674697952565484241964154382754611969655719248653547833351335685782636115128874136719124956424971944544135912313984785179612918992354657147268546813311372351151174538232947781352572698613618525867789963631666623862612872623118875752995961521686857824985395963546626122153921695376674183688831573174278379337764321739987768896193499236169734255318216871751359689512296177592922632327383297255114224731479561734855573793398818219671617654726189645814233913734681641496776275138528831122484742715735291818319152834844882346316889298378197192175448835959579967886513312912218542334719667552239771991291392956277548493147361227227235245338744588227421146257767489893315188425347978983487153881668989388131553239937155861148994872819512666879762477843846644922182942296763638675359433876367465568678244497263777521818334961516473186425131398149119842237178695812543945973786586469562278938327462755141398856471437544336956793766259378152699621364586281869935549366271429281316665363338321765681287228246167732247579391456824922643445142714837574593538119381544787292353544382631873784513546914623757911338482479736176229819162426116139977113876473884853768899491113888688865492581866132911851759147885761399457432845124118184876654121138974625797199598495773336737631528879248957896635292425986758799575499283863436944176465139919756385214579723217614359653533398826345673635955514738782824254835457824277652193475232224628891335926332987185312724845386165287577299288985426587871398815313969678696375816454121259929449746692552177557281593596598432486954198296841659798947676327546931431348732896655448196636461162195919773951525148857319935931239629597783733227112732635127139181939796868171679743895216818717799558234132197962251661259921588443356658757433547694618699557481626271144876131871239989824653613339243611324391213119982347417639643984914234334544532756387959913382582814236571823186514318197326454545956693575773433753552273817261555294552828141425658776146662716125451542355386641527111576646336872725749366831872563529182695361443816733414381536677575533959183263835165483525182728272575474698962476815247534716513669295454349476955368921382832177195539854789275692382429592619297649623882897347475416446496316961812289277982619259784333853448328336253841192917875297472615337269873167966257734253881941473179855252857453135449627691546844629234317953255688459198152745186998329114338776521321235387796385197198439197648769671198777394894694335343916762639639495134524964295638928584646698437849281567886448238977439989622495422468146779492289822899761899232467261737666784665745619688692727433416172759915478838796555637261489897961859396168937572933649577566162137155651443189283536384929635827422877919218225368895197948421152238728737559176754353857787682793465248872878343668843491158226563965752728652817682831835546282377843925778959628799772226834962645936493288159728794826499884957339868176871752511891539317681324299916684557718687729559317447757647385541399167639684415247892565283636755652424361711114784839346599163627758173133143592884617357252414268955367571711798258772486635942637253899971958753521659212795867562751647631516756712622799375922186159713843417987159228236616715329299483613311115125837398968481419246417636737138612341135974993816535198751462323455347835134493856355131976297332865637949379553288579576185827893356959876721928675623239792471694188965535516464824136195132971488275537188714995487986489576594422864452222511838626254191631972147483584734626578283581544639734371429872243899597745898251214539571448552739678343721635655987945978624785642465746789253642424791662831494539993561475648769148185376215557446782728371956841648166775239874432414322216889853659126628595837177499529997873127937589249723429958898787564766458217129982213117895663318675219919621518729128697253583349751752692653324225174788836269134187247492533844331688471986888286989528661843266225952148636344833873638512827538823926778392774849292952133775456748315143291574374578661827362835655158368395732978734715532614168663398118579766538818341592898654882683439395848728552582672425713861994823395156892149296238798874863153473887566569588981868546922136464542287633571369344287769772497641668321666692536853518486525279334165932681834327658596947464386573965122285425261919494239547284481781999431846836874276128727154932131963146638295522213175689172273368562224144484695792369166373598344556748186435814929935452791434868342241773253644537962922964341273487355568723254741942936361377514228664434649914996188624631381713558891344144442131891244371231485354378682925216285218525648675199426263354665374684435889547145976483616963588736269657411195672221471965223986683446276285542653579566976363721865562189523787933879366982254349685782634812484761697375489714572139383562719176234852389361616618627773843849353636755771631381142718982355289331916472434462366535324448845778768395537863998449961293187554329949583368558291287116414158571475312537373183181892432836674611922274891198316384427699356616618714194193823441782441465916665336734142324468446578415894351874337641852287829456396675199176498952925133724648267724324121659544526138499754579251572773737679932534364328566471426593766413415647973384239677598156432962391755441678982847487292744839959124558525393586124733896378263164419251681727328691879416313518748743711673494254249271791941723577847813132347559566535527487645428997281424978935576917656419849739357497784476823513367818682644579218976314884135351921787832278298974594773285618799667441567376964413789896456115972615652478864294363252887388785855319436223532957262339157735319639662283335419235368253835455328164281593844756171885257573113898226356439794311487893549749938841464997867297125795959923815788623112778497998567962753933581342642719547237183778842135483496461621465177685851624836454584229161296614362655626998633989381296216865271336886476237425454453173658165197675213725456899244341695491899556165227763241144477535964143987573194759873977314956542844132779978344321416136422865848342498395237648678271713898371184124853365927765672653941677776288563799281967415579863729486914651829736712442798764136875465729819673243376455321724399745226185942266482126457428747711212619214329757958583334196766767836747168944648386518898364831412175772665828556196965691173913211578734316159658244513519899191157719139634578373633883752769675445257119557474636824289255211545969678614249693284592497817851356122963486435544882112682367292892997135656291577688746862581659748459725434372148792387445499353987958489627729689828552871884182776515575256195175828996864373449199437851551967448236713139364252295789734721454176747149875389598866748219245441995698485914843738392212124557647195934424797869788789881235988687279511889475443211298221619457164115183128552772791591651486282583981283937195273222386324723871168175278976384615832442824111917894311997636887358483665174273743163162824491126964329616922285591696877226328714125986676684223382878589291961463869426974485514679527437423559645666153481931287148871412647519165678996987996619476426571239136482272769558118956586134945938565682847692593287734447621224879336491259398526278612264375542474123928847797315255371687142178468661445114734238655613496493238184228629982394169538858397511428721672569688984836791439179219981848984842641923582534342342239323919384546447686737269273386116396234567112879342156964382792421843389989165898193578897976197281397296993481289437316812522229248857457675782524235725957968872666491957415566979532926522399454983877628963659482683234354287586773424229465313451764188397144629851352297527852818226834548898773788817568142322123516958627584763533277881112313453947898546822964272969969179324527296149621726233229194192924366974578428599192322232631722148535971712451361583694847817912854241212456372429577942632432416719731854582622568353415448567148122196454415552477627249896698491519134564928256716319388758688637549885276982551172991865633475129916513211244342331316677815427396847256169583726737294985535245638343758796867429149447778283654567743692286827821754422248492748511661678369942125457469299362192167234949834834458984892737837932654937911393627525794966647231494796586515667328787273727449478858585236682314181717979614651424263764222453752721416477621662167224646779943194144761333387473295458926828228612187119326954363897698289999741738547468953478658317125913877851583328923359194834635925391875834146836151961343695286615792264577941655641674943451911469575821515569924971365598678614562943183539522818934373131891336339537871722891684912214283316848781468338518665856975394525987855891534464129695282711152541225695746162574443851121125269269639992617744177252252254669465428227466149436141264468724659282992638122154568573999771135943122273185279535371671546538932233351547955796234281234777669772195949635114725244256632288145344748691111472995219661878672196369129129147335745611787534734369262162875588952521488122584719626712898436232363399112359739691261448271784818948848963834783718741558626896688462257339797976641785435914472318423145925612365232565154582622453657238687794216262666115265388643255913673173587553153468986739854443519796945789984239917579455787947916498966855367167814748297891571929815381897412182454264744781772743171249781878814329793169137291417412479357247468337433435954173813949854576293925557781384572752944829265775866411189917444518512984899477862583591499923474224412692637213342599538439756177498667718538853891843674549147886533213955838917181347791714381934244448721611318343911971418481794227187947168882172178197935914315813616492189276383193875365686166325845942869596785962488745341863346741826655223618736511934919234716877442753913776425418719622992569293367657734366896657418697744553778424186512171736366114776922287937426965163124651251527219227929641137633844299293254864775466221333985268577497611986453888498432528934772419969957573851791623673375742771766661428693661613768195567645721376318167333384459368714567937164685482214432776583464799482187545973183426582249465644662771414891117348787899836381746912843223113836614383365883755445528739139213762181396785969583935816698528894912932599884833935415965827685185266326294576778218694166624232537258757194669479238534196498541255921629985812834686176615458463855826713294376734421871215952346716386696922684915982193586618279797456857915396893812151621527596222795595925495775879841882531142222651242779236524496465517521633787791867869529759375725466418676245232817857722649111535166833447959939695375539338272777259583276159119436867799526672486244451955855788274943884331468972325391785144869254421644689477597127184588764788919174432368918618316645422788589486738844745485314867499467215243714598962499729215934871491814175424329447328238721287136226522964284928749552323332935546987263482882655498629833926369857554891968923462313296488824717453631727528854974284622413773497669621372146433841213343599739485347464567191374384597856729657182717253852879216556231892756464535239424581419955576656721465817219159498438333679333715849219929833753584316463496665938958739612976124444971318855356142714775752443786983112887312915975442815849197696896984693783289524685268178837416894254411628679937543359932761348663894955722614357572464438453317586772243294628364419752677816544221335554995722152125373842486797839283563124238331746939257827499416652844265977942543458239768787243326521128792855289991876634457668221213982166574564441993427273184995282387944379523612842558746144452571364681542682766911775277613868775232275343519289166563333498376679786229478277282738851281116564433944771697315577253369269725157331518567287633458575481461865577637363982744168814352377353799542277474448744534958265799977922937665117872234517314784681362454221511388599851662938487413547858898837686651616618536267429285975757414969939571333849589588975359981476368295227411258295973417395321846656167797822521128347966388472136532312872924924647443962717819453672658749132485129315475255189245498263164213794534961465773586926722937337597849335351727965566937228842691375297622783478933435146931178115524275242579253594198689686486837244657794729867266824773411193617162732293978794465743983971341846929138325993339793981278282375876678481888112989378384913121696263982179971958876694183394343958156254139125812462669987322596311925337239729855911798529678218399622444295978568447288145855664536559868265992734443355731276428964849555955137472595158975616513776632236638255314719515966515773345356997723242513353748388755968493981653866915331494222986473221399464649139642681992179616826946871134136981947146143993564147724735138526529212795984339543194466859699249169328817131973383727413262175179891772474371687758477683789286276233371696644418245994253269775388525474137367271661986182149577327764966782498454542959244981622388673242372226559645558846797824671884911122576531874657225916263331632733779322219664375764379593555516783615734681898473791649884334993342724162252877156199977319797912172578582669463963851489348129126353111266192477643689613315216732931956556782455693543874284756858943687165298758192378677841425398446152551436225341298782823432266761916857357782891568649862977544534918634312581526279256343997348748592832979911538443967256771543382474561469412145439144612656885912357384233337869763223477854345469288599732497473583711484727253161819781829556693964892363977373253221291245694898377493689297522733652755215593318947286296756819273337747186327211928438992583498722486194625334316159838176225976114612873315636239123811421818528769956375847359351639561652483269154671243877813765712765884118914379273561331596966132511811791937844289211159645246387367336328992399291315268772399925638368157287196116431388426397759575371177686276618736467976651698134121777385856628254851416465166558525344627379194367498943449984835359621438236553393185428226598124974117729474693791222133681582779269832768117386417511678716983788761827537355886525582353949118984956618323891343899934127137814319868671859874952934345947627147823771755732126219533926577271863138113575677286149331876693688881679936572199794626593252429217265167794893852114663868119829635131788277553653917284984974836449318234878234424243449836219732563374661563794297342323824796952279635661749259974914276555148365217563647552439738246781285119511265528364316388982659677978928834476382622241938184949636327119547966217439312111394356987677532326737559489671619924512269822843525261197164924916456562443526667273172777178467992537661812467174381348155781578622277358494192418543337695642584511335964472513356478138581629969981487623763977623536373334321199247897174361922364781123535535357925732957948264542543874227651243715898592417752894182594148262431911768998654733131369673398442421587375239593715729677795547678627344746796866337375854387944895528882551935557274758976679958499177322215759476731527184878796614334444819746318351968355114764186529889764384218394928528884372813882766185495313615456234551641929185683112533894229842197161242141597798932219531395593217212415354913896815868886235546365486829221481971556234847482816435895896835822855467831568548169559929512873158583266313246843896888738826221868275794917582769448112883484459266545835583758772483479617943859413985343517464593638588382567496684127357882231583242168214843391691426915236265488575384668897855987666977682139977395751538223621366763411623499927582545447617624288429579718791449582126675426635476232182951185943145611943596922544753837935428623963956315717949325588271791452647833453822416437775592552696659433667748879512288637871829474316552235913953961723499471397537173384785979265137466383213854661889258634549953778296426611956134148791244238496125655216219712196765878372111511166576186156255731217935125965161617315819315886897588981376783743563943864342821468346374951124469654841254334371294721215196532586869774116434543724723233775823498365665397642913285596853344573498855485138218436885451773139467253771183894646215651527729654477635633822274785339281753717943786248429535814426433497657251429944775727216448981319975689622525882343954687485495392749611762338463667926654183521785654628732678833424978376537594868329293348112352549356899558834655554787578593756672251994876132587854692451635272396396774467425119458583545152271899455782323723658396549843149128953411642892157875438222526427221362424494618385617538779212822846177426765583144786543463434627215846512958252631274419652112823316746741656717724254918228489599174756891471242556946658585445342526195232245389863538366898222473972485497826812154871459179396583711149831411515882716623542189359354236266216784864515667775791635957553173641135376843519179932526252358623514141713964869862993417543384444847818213588463543873625843286559239849178913367445786261477922834816724515831564832557574174366657328678141186478523261577983556278134837836462314428465154497114796279851397527767693197345136495193888926567133882282814396844434512383848551738745825255737169519648722576538312783297659256296159831977519339497696461476885488359356996818757426953978457884719633312882667488983261914692962823144322477116893119191558634815117349577266756155965118862233634466312928593997483872667861934368889161811998646924178754746162948745824824577168366231514991274856338718165861696399248647544839462222936492561171885637382654599691783423657765742195824977326275254485549315668866447734456973577724267287753439153725159645893563889598252583398659965838417542839777492531768514411882612256447314943286252113452431682897331969354552177267493644682762374279284438635359189242591666773199997241983317315218467423989287177889877117837358174825114923738316184894577281198478978359433343852221576195184831727543584897171193249748247528581343481759566665878741545296154966315379325861347221264672277562182528538115148749656113319855153214955855358112976567786562956267451936459259356992568114299825459542976892715394449251579541985839126594675184517432388332329812693243498917248971118821943823962275424295827595414386379551647753275684176615245572998933996661877436733283697244332235513169155887449668837532854976417793518975719774556318373678228878128725295162416935763129839717697379888384424827492693576456196833711438661141671838275728328791161993768652728792519879792561666555829575756614654542511567613167548586861411875338469425165372125854449471467888724655252678778254588336351848619163477524381196535466882875635421766317636745398624383468721263328859612275693554872118881896117882742757217462738938715784394973936192713457429212962539858234426125296421162972177229293925366867476917913191298828637839364949776376966365374946899582426611577194689215732225785543664324371969228138599692169513678991327393314117845794799631898788718447568968552111581453542319171894549336179271218253395435422491744666254271181985114656187226289646252477484463973428936646354298614859587833129352943597122422282457415188388213396645246377485521251748456376595257671287825476582544379896436749595524395833479423849728441825765215534116244174367239963944519821263663276464898522317611942832948194391846225165295954148139313912442325935432849345738439451651774895388831895837399943967922998468786657547929639532738419598335912557211882855697769619559362662817427495679138795644587424679748489139576487247592851681948812649532488815528378463321414184247199227998451366292423453761974773784484218245745866192267364721989327737641114589289295932383372212875528528876874794385394531641727269812687265633851471724787748454334391917369554671653929683427731951141756519877731912759989752746648624365241813893977866839994568428844266337525712497969969395147822136758391861191886771691214875887462392386385354821971981467836462691628346761252149247172844481559619434919914228122738813242385256178378258679461533313526645258656482396953788739949291845358114642661355523294297126299524425877834868311539839641159111452738511876616647631574489379424585245323873447198935473299232469883493671913512494831159162297176215563653892132415419325524232752217352542734764294135467868833942766829972347646947583269952245312892888811565269897114988192632619787466523927816516985694745795663318959241829571158417771241616835629634515551545386942166126698269112462716759277772977577936842642876936591427185261818591174237313916556587285591672321327641351641385723432981937168181743668722849211454541544349247112477349413333368613756179883683729443373595821681846444332589851785921361742819883437858816871949341456429589467719384263741725657673213151886657474779143215578326435639617362917374387597944756398751621347537155473122715271698473435568291815343553623931989726158484213283617751112494482364857796196324674258257386625841135884494925362676381118769244246615944334751897435336282215418178563775249128849472899919451346182359752663447474553542486399997122886153277914358483529158947748827521638328533362523528221975746476549269123248489631341436811448182998899923842794638671351384271269948748922182334199124152458375367942722829952341243646772618934726887979873997921275832992773145724411386666366373766854922235696845862428934661736311692614163656932273965321383913962122428773365482668288127417784885937784911548684483394944613881472141449483241679889372742828956169213151364321318125287468244759658863888229239941559375289564428394482392215197242969567423744663999928137447241246982713887333422313116848552665263424712334565695895589444599915246597638975434823362284533433857497159955498779995114555787163692497272721586475875139687483542671298368396834312723672419653711628453373855275347514634589748719535762946454977737181437391172124499582237533286883735545542642871739942584892471643285639682868941834871259477341548991868955638711986112958561615314389163536286285785878635576996334231463972588866333185542131653965911287246122635833385488543748238136859461624996224762595667578372967813854253775141281656393221496176352666934537455519938259289786311466968391934564466271288966587523127756748285521138246942589232422196778677127129833526573486418626373238731442324565991348888549257361223156267512992924792656561396318523149788878969449593149277688539742511386172916854257155723556429658586284473867272976347682123978726434762937654741374922134321193635191293858222348649733154253315715723188719833587559654969289659129417288169427952816212121976787628435131162766847467678656234795537939936982656282857613226594936628619218353872956726937476768339189999824911185656359186652484382281152451469915648446982238547665679713747748293935633645478244581461735498397581943395743645184139292531359198971199663727215617425668592499287397152324944485136573221459378187682823226543945583714749776564223395515148342881951324281735147266616199823991985126334386789515166565547736725225748176554584189646198762434745399995649997395349748613645918437336771669387812765416779279912734311357184864131572148965855127447562161556949986999785379761514158365318893782371258665431469774699929898175192117863415342328668559429116525735321549174215979724546447897451781845742152548419743286875699578641115218462292955273769218154728818229954163257654829839524985765577461776981646136918851248714151786853441495898587363276135341317983326455734672397414917531451258378994375722849571871513458453289178395866941988864915348984292117836392895773469849364152571571254873941428763647563878825962977364557688355518254432212617795429674422246686312744744894573994861292325863593566839218564754129138269735985239892713557922324227932895473894763934278969171381183272718888364547864548546475473789849638343787454717652288624982965926659927752913667785446845931512166967622812167726269642134174279775445515611483888752954451677645177617168196373958953477434297693344959858376551355582234533182396681574391846961418529862151189648684913996492422273158344252214963353542189222338533457672782277481634832833165717133781867964693764247319595974776944828515875141553184933429787471752613198692636833235467344872846997116955117789992527241436511299898484894552551793496438188197886725193347592559788332131838526187587721369414372194297179921628366927942773218317726423324365191672276443653473144686896223633689796349685822125473942553815963832454413794884432524779148535716752282449737161221677571423784368475599562277288246873814262496233683628746554366844934431469172349592474819226799182425469267491349576956868336345466712627466589425911586219822368938991625263115695642363243468251948811337636185648774887224938123713845497995559326613424726518788161599289634555925356727367135741889797659994594928588324817481368237893782131422261981462199235948627885987127134231176275187679342929416118722924931556945692624616546146917919491345939498649919453156646336164298692539383273127422975598194413363314232559759471577926725154461692915258923959186686256662197946146542243437435984597243332135638373497639362769127731954155618435674326243328219881876271721564121452966387198866853469332376677691896414293889464589412438994653733372672858683142862813692166339545711796654956922912262457188833293361826219782972196232729612721146137637616693793424696645726711322974734292462513951515966646567654117425551691885835322874528283674314759718796278619796147955312523996767536144895774377961472634722387149643923389616312449592873991683557747975835456579328414694553816579276748382739652482841185375821747312138211266314487496812284357977169889996526754472862179394991697675565195661898183271119597556214658958513583289497417347982592857642381539837766415128616765939584622663546213742244994679252119469526758368533645944381195385131162537453295458832359358767378374436162481815687713537294832668891515543524971642884513986941729769313564742815983343641133195161971225689669158273425437636132928931578435439346478911764365457248295937568373929729685911446161879472127954236197955546688285172198119884296795589934481389795885784662871459888671928945815382851116394337296962953746236764838838557879598184278453964538812795438226155853269194299532413571824724328693918817226168399436427688919779169849559165974817447215995872877651586481877257792491981467634497445874851565344372479416169388122598884839364691736766362381981131918381226575546922647755642655734553664291545235288753317472844388534843897299618583713449523942794278456165936774944277227412579877611227619276568886587327465342893993664581936823462173818332421611967315317888224332412333565535529351771348261572522544879321672696652676492338578623999821978247782958577619455397496377365267736721567237952581219735461766539191956658453492511474999975527427411176899148389425695692133874414429899812729541911559563839271511488277438382482327372455352292349956689517635766382527942162284279747787449715343584277483591916789458182953587635943671828899477422329424652324618965846726663314526457713833383979554115561892332866536617935322166457813882925981633283885416512146727996176674526835114553193216877665162628969543144388587717383838434584271234437855694364882175897235553575827592951276564659949743387534894543637644299644647411628361549994356111538482735565536342496394629219252989952588939454683212573484398475378427219154412623758996325962489221829735164234499298819294432243215277673985434343923832364487697115662951473796987271395744493292657743669838426233162634863972226999145937769263468522997195227715719281866772918769959669171651211928193669851536511565372346347348146393378321871817445667282814698236463285261351974449957126476288633941456371468892785487124623384678693339375143111649349582629176836958885378588643466394465372955441337755593456681111457974279714635499758183649641785483889659923542317114358311389717195951941274395115321141268149737322215222552941573476582395257778888399554657684931568687293869647567411755414795752611329484458184724788229588963212234172596294555833734682477687899286335844289671844292448196775673285678187945128447571389845293422877785578971724561588562982223319986433329299645783528716737957855487599527489847289941522317982418268911647522249133975295883834739629673334447339637936593786957819656989312934975578228475869649615183113116593159751587173136975484675974524717782749446647134662828415757937796868792355956422514335799382161647326531936556796118577416591655386838921566225736473113662616135526317452954426963163318568252513233777963394879184424261976225338595271411778686927423329822343293719841716555155876116187121439699662541186581967577166866899757594647745393389936732296875649479732496834252154526535212765692565695277583787137681191266625751221626474543234992891827478853863735452815128596585667384168344627162242643372839484922418143583198393455682764793194224137366665384529966242612719121523238775112553359863112181193154366134434669884768969177266471796497638185863249136842657384353782445253639843845337482211526883927432694578752274912122173651941674733279843859349442548693686743115212186371394127262821178642742352459977886297813894881754727942177154643152722919388353634317524219552766837927956761933363994323267433926618492868841176356686892634824474112388152968583131619752133479779996782886534845785651843179946745394472134397875349313511395968487634826355922444364524543938767429712335727861286547881183858681441563934619617359848946221967912957259699551265157941553548239424147996942957362155298352165186391989573558284388797531647135754742788933742179838582644257722985153845219215188846989414176264678842452252669542941971377884249923157263328373455452578256569451664479692428553197243957694528484811871892657855578872521963719171157136281765311187238324574581575277786653282271894635962219355763529985192319398641946266981556687675984124943717689215893837395153542843246415974883463635364767112195318848425794138392627184785794323117837397691528679478746214536735427247896837684612485995338811342855534126774145262641174853967153595895462675181234241526812516655933559625123146558591161221775276522373874176622579576587654961612749927324885932878435181476446619499122498982968891397334867417355266396284289159978799276826532156676283591415392161977658291394852369699638157253251895615533828143892755569364678557198459741435613778223248586331939664626667928385197319257671652427879344135853452972887543597739415248541935259446523276325188927431284275681423155362883391981734751968526557843278447676574646999195756389164281925562227571179168543161966464455812814661667653495681785322646236416662726371511968926547692113643399361997147933834467127227481799535513226819981336936647375344186646857436225256758392138543851394878521242657221951152895179199476228331595296292296375872771618339953191511229247765242318468182186285235236959725249369195993991518921433137989493338237726915945747779961769519731543394793377851427324379239992146356634952727767478715626616728434895271442916744414965525186928297725648838492732127568166547367137582364293266376923728463298799547563862287624325587322532391243889175184844265623345586696519887795313676983543777124664224193771291557155389556256412833132418427463166685439834574546758987739565769427749532978332897595376222698628373136323144324973499121369939747951562666176564793694721512585279225381888534794953324464512928829347435267536821141477717817699534165571323794897844515186844776182548551739118882231638212589287332286158968736858821622778775498595191985658222913964141897436176575553928739829115418487129727364719999663544445975613314385892262151825178412898358588896385391485577173814982617555324751279227754351532829179724136419417338994428479451457318621259181723412743579425449161831834843713953237463394828735716699163343537748474713184956327886782915148711648918216591213889457547841521665454264713833112935689363313379714231512884183165633458679996866378338496684899463697454253739467288916575855889948673177459375892683238793172965631928653561959196328288585571133125869125191999522338166523515716282184682672523645431173323783391598757993144317731847157326645694568158453872555538233855418867213927752939273625428713143928638838514796613964496266469562314196946214764149579985621566697885489999374678516414765712259848376265191557398838293763887761587114512647475257976242429285243853293356173488264877929737341535634768455693429796487451173125567944779249569439976792798199545239586411356278976655624522366878826566471988876331892243477954736472918116884317386491636322774219491281867397926554516137285415444452447166847492832443942473816142274979553282365487681827997591617994949258373811569441229878848637921835662832967811823799583335915998453636732492484652699712213692445698151399546781949829121289214773688617559128223113194912932217566315959862683773972463565684429831326391459726923159384641973855887316451222793997836281277453931552976997167457138645562297488424521119825459952826372481127858199218971514318579916144945739538448346276616464454857251512465398122649299735159434249189335754556619427478884735238946768334688147977715573834246139615528985697484143681863286788647199777345963377625589797475148848714338714149681139999626938712462894665977825827717668251931177256523899681162842497313315392116667847795811985224844164683784358933693172259661943458797955379272431547752518592735693388726522555699263424163236685993664315469928735166471783331721186316733613486972417475697769657287741992248836966694163829885582366256379153638296612883661119225731457361434244893961336336147621655372413736195291313735448299244661792864453861882163596395298564623717942227316412759379788544896966661872592142216133991745214719365342481485594196385468879248164476614641188497125651337341146483943496494343954598531243247774977297737151345683435448753319716526188793726174416849613844793345853721992698939514464646116441724986164113995845272545136768739127623934213796213256669135997998659942253522122336882794273772536429535775876898576645942228461912854221797376123677161282917998963484552269769127623721821699496544877183968961622883874824754396574272567352414473668141415634382518654288428745911615635198416546491728558323893963335834564117636618443373543839142533868178732482234352615877772833118815787826838353413889457539629511878669241965195373327869722652648314317394814442552237198264318148469197578791845168768673184797633441277946929425281847236415266499416189781723239213926566862591439848816877189919391747414453476369249737435335344327948274412937942814546967472892595492642734427497851347184164223753726979321169734857454851261435615192923928889265898273388322771279472652431356736554862583759767693658889815476121396453618574132477155135563154972625876612823151656168693798996156643183265569625231871259149544216314521177938431328332225179488118561567158872712534656242981771616552156923194347611215413379339875188679979293842853382519342328626473461378553747965295137258929566892728674857443843345951841785375546394768411695828413386355882335853329151228691421649363742763247559565475233265138144317482696441376622135449852645966794843377414965166499474547943592876194643128434164911354946296373873246447279586975999283891327614718351968826392771598887829468849664758529958226374142833768641517861693597329745249322487241381866916266887651254185233836965849439946524288294511922295889263115198541748657817798817384299599998751725479148717497235554594382157218644548318957769214553889995695458792523427174984349627525975499278429542348637969821561957486293124967181853549429466452979698888274783767992833768392399259837745292568267239495134353267959722232468163786616227443759553325536662358636387787531795639951393858184845352939682651213188117382188453777961827972981388989717814748926613684382489497285155736199881542798127144173691195667277265198267958662159227227683388984494219914679865775487154373262592712683959725383832425852157395355413797579197469592985189617233664934681588224254341749719422678169337375186391634797667598765451472198596935187466111761436971998297956548955681271357389875865675359814697255273396914882376833358137486191597725316685611383517219947556696267676334795723963783676422989496163785144525611877135757844782387545959499959836648114688966284837232969945828582372749424932215926222216696344572634576868188571282391751474829863398885693441457576549576747734843722289323357194656583267828213474482413648347692249555146946273421542895537376389335637221827168122281543369998811373985167762573671634959848618635923329185231498469744728578421822244932454383127192463118851922235417541978179878914225998981182633386363261156937247735523532574791436742646327841493944287335514647299353875547677861378982442794314338494858595371398287311479799123863237986413542349869916985876162374962512755879755645132519114231527656832227183547949199999422573238711822638972665574364214451653433415576354418846273582816872294335861595735618135363444129239661947176547997899326569861883648732438973771459472827613772934816148736983927954125785153145435928891389572265567936441634176667446464321426952654297259656213846482712734318463872596441949323761931193334171447585139122134499483382514829854513115996218537455683833214188547747237636478124581753954363126888582143781482839893998415526183931945312351423292582422762351544536157261292421668699865189134376979586596737773541416814896123719657215778445588629298577178448394823488122669421249986693526444625863764819731754642211462185457832197477341315768779724913547339438166889719365143924414567279122927494365291784975315659367268359998325734792198618164189686411319131414773881741646933891332351254293561649712765258436558684618917354216177343656499933882141931656865463175341979862249243235278755281487911918774877782994529374683629411499266644312412742769127288228267272736166296269335237855666572288452956566972914426199556114312246231767364444775385339849269263885861587911488816338221936853229515563254371151674485476169462312767981298213351588135539555574651347357166481348931574439766231253778474912934726854286162665589855583972965445121439924171438313862159346679271213194382433253538622655193919829127556578794845617751341531422333167615564758327991925168299311617366713178898487578984782613663388858255824761418295474534779996781595987343484183628861348127686635123756174472544439443244913565976251758185248579424637937284671285359957461227258492184891158175489375921132846675783252265951599427828921194551829135249735774615386167155498481382685647924373711316892331268185254598399636895825494527533232735985713665144624163414166478441849219555969322627867373911644626646592987818961756472662625977629268367947834798336491552938591516422124796166878417451554313263885886354969445275811955474581868256762157881417988972498856833646213416985135723511659434116269789819517199571711765697987613569551319119945926972431139788935971919899794384881914916884677174154134812239517598889457814411815298588691641389967892563812883392241919963981985565611881958287492472377565544981451438434251989127253889433632667799442756743645368537561733889557482445919363787641377448526561397332822648916668795328279735745557648893584141819432249211574939682561617992982825937738785277134169239829917288569343129627329636537518319826663596797759372244786437356147793942512376293296564196621223882175216342841951596896456468646752363786959854894572115742495979185353837623911358447912141526534859123874964987722511694656287663473561856255826965925369977734861126111615196672273598585248424525915176575132137477225737568829321717353756857585286657384175196966681954438186694159877283681177634629961768317621498215564579233684479555265836975675221477479637865818235717494852263298835787464845757128746212227446228685421715368879653253365897519376828988315181946359576965795521212989719227211725762257626178177264245955775647213318969565262888383776244797417638424369876953771947659839658212843368236731997891546427483283476512415876866644687239956365582142262648234676834556442977415518725878582937521975619796436886648124972954716793252111644212776477855849319877983283246557723359134418438216994292426969531766757297921849439758879465317383757566268132164937714641161689864519224836943224984348334392187437438621314425813346259578586327941812832273663895491336174615498469542649784172511534141481828754698742629127266298511549431214673347498499995624465428351271537851499227227669996447262278231915844655377124924447152269982971445711246938228563267474372367492762775367179824141767184119837993171595293174577543241551433123328377786983431164377323354556776594362869191187414245369614171739146121939927667962576347643615618221212293858653681324877247698419439439714468736847234847696446377221971327188773484867426159676377475496995861998374914518475993529968568933912748138468215694856741585368569733535372292659844327474991656629762298216261144575112581655296162162972497592837447586531949545652839977627791533271724717662126298185745494447754825286932943552369632262595269531938621714959164127233272787638632384363657664955567775854496258476792966712116542329684824448375844939591689234444412793135742225617556514537771191279463947268628363813356922932938974158763415241422736227418592288693459699122153226737467316435284428288288384594167793423155463715532431258597913572824228564834386417423262953199379671436718125666417623717816744691723293195551181843112782355623675893292655654736826995211562838218527662236597179667178124296926756413525264861727524325624214779421572976462443974415866277654576532539255388586825391818553899452594418836674255673653487777711859181872339754119364692367927192999977199973263188448664456155254141741636952251184859185771184497562424118323322786793251258697433574873795825183653867872631364591888146438936281467134285222561638332964756274318892219731776728551637982518738517627591556938872835423653535276937675621313188361712967318826418175536556754671741836556337957655297643327664636629254685371145544217327974336886782949576578912321953749161748316481347883674796889953768831651389223881146416884779954827982918831997111632229596491773451541412312111164275124653639874817847167157253578169535787664943616312116732987884826384959343594124225886874452743261655578726128449818585721894118263698479171714785423984873283998258984971951418759838225433622326125412496427291174885326577718319649779412139126495727374835664627594424426427957529245528884345984325656387972613427858746969548768234862548617849424287874627494327592546385177898326984356995416965218637133822644242556255575279671444956328483715851465822238286229514235963232616642112235152673524836322433693245346568853118359632154386555668192647432633457319324733367624532685337578793534354716833695957116537274144385619881564724397997449157541768329217253624943632365269814879791611334586869122247754634929899858772228794796721586749939918893779881561938519547121823893682958726872764614568368338528876959722318574845289915748688455958921159897179587587841698534838711714783499248975659627451632592463721958963759214175799762819945317212117373183589969834915998418129239856264412297989478867698511423317813243453951887763423273214424295317642845733589731146355687986316961243625864736728344781488999596528879364636198912271317297957597463298651268858165986694399848675883647654448234722371799573339628972636979682953179147995317177955117694653647844847636147653437848596852115798172724328973125899747432422882587758171768979557522243374452519274161146743697438551778213353269566559133283926761837647762177823467359577758224286849515612382528243988764486694377227677715956669868723161539846447195665149716572444648681564198897353766736274316561428474673452177243714322652217238855222556652276446877922132743538941185639757381877568662735987861968421495123919755421583981666653484424815115969411558745691365493824114514999939964637297223651832232472771753649992691311575557751997174949392181251172228772447337124528437536649656768435668499191541363925478343928762226955855897823215742575865629731316889269851171635772356728771811389395179286238596611282959939957875381398792651211328414396181768296315984148949171991329827893692121518822796612691612494272432533583374543983942192241547789732179215648836131239443487154926223133587368962883717955559941542844281716682769941625179853816871398268826993885846332227497184213838719297485868481612342949358532391219947322151229433516331283392312296837123944866117739657976217215887579773158668222177774474994472119886171836647855431757936373474452968941415178519575267894131465442235275572422368785464776791345357764222353589257783959527541975642964988326141798993744587674237322529331833713591775123789182714755667651919269236737814813973356713467447353275737417787973117777913547361678941772449147456112892155671727521697732645268779958153529592234282954196423289174879121958262489564874415623529815716711627655511987228679821711281751892567926194725582463424442516686732423923384731867119452593151634655956175437413223956195389352616181697231862173367866385318469168227839716993128794322742677473274856736315616376697761727554661146717238788315864531511245611714265987654465851393242166625776192589245682165174378583944512112359363631635133459198482842842956863134987588724632469543635821387698985533494756883835986557476134822365693957645717214849686188469585945331983464273557315812647595199412499734941386816386451299697537666539913931512249674684542295941582472775725827784242486694987936164231693185853366594153459232837159129326711936575879213126289994814736386478825492312513232929299662299627418837957117428419429386484346975757443142773613544372899223719274818122379549773218287199351268559359477321197497125824749856591434361173981611422893176941581423747845943113134113318912949179244926319518721121351131223931934325846796567668682674686987871392675245789345983249597285862871947551829842349654592399675853846571562545578533762991958433726364428553918859136225391134295821252996196981982693122115434715821811429916995144345555877357728819749631329623956381877593264934896859771642835554531369485778156732699752735378722647574942656328577433516843794767494897952582328952291785854328858336112159271165175242626857642564255359266263659163315898552696991425331845299996237795539698288229642535135935556225668526443255118361753255619229676336969274674499464678137948895437912838276515441787599383161583184355272722245214763689885844252476883953157568834183962444758785363557753487261559745788254932457692265413229265148627422713847596522152463279682532163134417156698892927334183234331642972666336995296818317429742794882147669359668248169699574743121234799715661474279938985357559552939799355283591383171695349285367247252779917945252311735542978693498474265948363573445898985853973818224618524761914472269644831112923372124399488635741794186186277494586825753515178157455953569397646328683834331135669254511339183714572755977979544459788711629879226389777373216552518389441228239667625352663226367184917938631586248573629841455143533135988937541497558331375779912224612414957986632464481856747859218258533339783828256231885479279194856179156328143645623258176975359955859572275338799995881478913797372329426758537436714842622892538758671246987639299684836115167832788683372944854811184675189772839797915118483664672139437493585454234635463638985187829448786111523875212563352659331274932533574752372418733887729835237271527973918939792979651523124741791578668561339427471322523877855982746473514455972113263441114692766414543888476476681924935393559188432628446883451443725254499397129271924583837861132647886715417325415764147622625769456916456276717383676347497864798389834541192628976599238924383111893235235296194643556356675876864167589119717951396729476853337734483372251845854335352827149812249467471554939351865157751732855871518653145971966561235297382767718663866353248784887317935191671426793326539317676496188487454485154275727648395835424251886234628135595357976557988393482893345157486891598142831759187165489894432192151855927192989686215293434634748722214812199966487886138482745415626886176972618496887725988338779468975452512349828599978891678514299645885818881639536496453193412375743223119953914533957266596623186317497492573824129735373835133652392131288451752635142424727173312414421346221372775897378985296335676689191236494884591397716328675233243245874151391329199611477981293416883287216337235186132821739961648856576298811428811182954949893668225724595535416593697882879136938419758291541179339117193115788428283183146143175966674874332163771979273676873368814282514619886973781946533648529838977338396883252245897162893875562294914693897811389975963341776894385643823594521528814237294763192654825174325456146457166433642795277683915548142677473925189258655393693936839187724994512436279618876269651549119599851972589449226832685739641589463461518342263745712375238276123448388113227581861197419227827152889789891539525513253174656459437395274227177528723928483918849569975386183733615816733923796642438856454726176456918318567122264148684956543187678497244946962355213498952169826645368642247262662812695791572235551425627333599678627177135137682623974797945993754551263675233474671941634213477732747983415652998192955466693365437126356719819618893248687813445137652223282142722835783473695298853963272466537728187324574193867963378415958629526158496714879565682532927668599114944413789635194346446993742652935365533496915339862451634787871386739168658171156282344611388216888785449256351868972332449161548497842756481366243375419395358297861845473498913338658577112729586479926255956167823671361441479817818423816412194451466399436327997749929559767992128658581212891653554499365955157812568478667513867396211796391972927863618368545163673652271357458923373197841346594668775899524226444633425448978343121589531852575737978413399123324363125198245518295135353254475791993492214763582984498513959429518647748913352448767528712743683446199899113256923774444517865198698576487792384459782233818317165813549218327561438641831659365745989888711355488143124988913576964852632557175888989487267514191465536781378765552579286826225361623371318973437674583174696122283499429126359926454761129619728957898799424224769125126976947633311189912323688689181587272943263371151373541397296154861853269586481418642561379784169155451298736776539686792679175988413322184651292169628686684171891132239685594799742519267563533435647496954223187147963697841183546385769172371984779938612619852471945852179177434236986147923269163637844731454776464977679985789143626188124381817194869747326211572178879217287886273146867487424421398328835613229433918646466718747658339781912844234997434194776421244213113286599978519818284725848248448546195973623513221583965888611455954432693832254292487955694749134577535718912331367142512864767115756237927239265868997174549349615227817611526991781587742655515136616466317886964993666721172564934469188867462852117678774711913348256123757933932798454835835158763364648232434683338791373686553689933754886235467346353412155313295361747351796318834254357778176512465291258788679995229985782332478997813571437226736524992225452249929176198829473925324545879983863879478359386588911253639538714981837752569216997922274126887275257922967978676367374785363889484165261967724449976344769156884281616592364697585118484278866274235884919368996317135453338845257624924739528258751295427292625377668942783686562572913722772399154847924283728966965337414534437712394711183879374886616968282952171451548624441827477953871965162195139799144115742447633727224423815784686987441584145416216547628175443939664612824444855588239847471663637978168482876324137821557413665353258987163685988669614345591135249927523871278124864387737729333224865232258959236653315186919111486898113896728373494892572483321919611898469275424712969987128198168946873699231592676565277886682575163322234263339866473951528656151361374689712796323528459314828745872121992169682923867788968832217428428524482583759417313176296837769511848895271921632827437919784625619588985976137119753443311663122868657144647447322554775831932127972686958583214348724397389381178236621567787111773291728656653455816962629229387597677432195339821496657577495244791444633165145184539285824337716748192397781278631438811233813486285313972988641773554567746964681911387386149116251616278765923113222858443343967917624589882281493477312445621422173521418516646872592745297238345586526466929516755827336959872319862497998848493985697391267377263291879653493789248876872599214532519465714872796472159397118551791636287564633278384292812756624677286832274481217526697762323771497879986325345186745311441618546323211743266564128458372443295717127171396942333977795938146616397915943537659855434916629278898589973325971745386677338145924762758989466441858425137831322698752541576919975716228891822972747991937537425885416375256454528116189722463842381798224759199799497279394578796765676949849828747454384731499965532116189869643478686958987883434535124991853271948533322118331683284563558855758591722811634791818355598374748587559549592961951765114922495333978722671756741716227619747259447318475549113183793353226821764475222565466664823147358829985323834979524169441634368141938551733129969366289343668463464219372483477414823756993848974495323449576396587761361534332761181315252882349994928962394551467588193271293183475361498734778437227433552759996423361133491242943585729985884415649742972894178335887786254494956729917186393115684351966215581252141849368577836261246756194119223286913749433947951516125435336544944218151255948999591934556189484694498413896685544625969558585844283123393852214576151816645238545747155331551716391371945457199663378812847816435462455989588544862641824484937463597985844687163226298536938554693491873142747958668411983737186325312515788382237877865237736347767927485213426112798211863396172764592912143754813532518637233419658748852215586738877641362583457229894124552135811565579738962574453754199311681736174146733969314688988828866847455748429616536974772443219792436899631681233729175328539318541929973931943213111622355384938938926118191311591551676194596298988688387416456499556956395814682459268818543172917512239529877912838627461767857597519459337927189849586541125764314347271871578453491844956422752175882758794629858842236868832938415589358711585478489165747838669116931791748175923829383965731631224182156962443733641837399451563771875372515776941123753676623889877494544912514516789857598785661311643934174435893686436194569679543824322653132391823422766624567759161125427637518749916667114678674676117871521384284841431796443791499976937956464736778738372551481478969663288561127881617662799837522488796541533212362837186969519757416959191311337518217793643516257741549661793343154723966217831594656513471694898278365975567517851592648797177784619986542282756896968828525283553452185192377866452323974493646979168577794378813825122569633319325963721157937228529764626836647143294319981692443318668242785498728148936875119331985888957496357151843521121833831498284823448143126377268251433363271552885588789316932746778914221364342789568578161234891691913927452539475122937959328378478559385527454765857631562488225879817348874349734487433661463749739343231555436765387643578743715638952996337983422165221995266628413591232811152247658757262723553791712893996921676449155226461531681879169761627151155576112263222298294158129735731277787883114333132447349291764671447926226547741874696425581758771563174637499376725266794868535672779132769687349765434791542998166868134982716672114473326515391886688986246614794231452992432319967655358927397699744923955185169734259149868428381773167564951924348131116847575542648383778851274987976551216759923641927892818296884338448823714977169648828636214446261952212518314167838681211544269163274324144549233871891944341255462883287521433621618692125129564642959612745896866624726217163526611561625114579131592923628869419555626916463366395486647432362216668358894129649187541284219429175791579971844632486584714645633112158936928471518256526879423532636429829646696492943529452694766397277242799439424665589658925543161863142173823278527571462716922998392388678885646383428688289368197226973752215743973732548465263884479644755128315576629455762959285249694195825362823657214318225738597987468874955328129358151523372969685462766287978813618658875971838365521138625416666331217715676413943836687238674396326975433163246538187898555875386873415512725357255734679155573151281641612137732314651545981386293256316417981129573427896924533847467898586497434674454945377552277966714353975331675958575221238823474897985318464869616227249839167536225655482767628239843724729363984338776842594396179441712747925357925597646965472316376449221646437786449935462682218741653726359827451343778946146819965236741631366389566358852533428932596468573912857471265497647429479914742142126663778218752584429311574668769235592312286224655576523888554577925245353864229766317486331576268681115482693568189726238285712468579117267413311172685393862917854754461919221226264693888978753238564453374276792151438226981393138353689116575681622444932959342977335225762221172314516691615712334736312423439551811568529989921394814945276212291136977855647775155459876586594616213977542128534958945483943493123299843945786982765313517746947156939313772369336756196769353956558478645759683167766332245431975712675941917323878499524147144524662156155766953873733127821161526522936482986254435637318314356818991548747352584146667587893483383235188613851263728466245474591623229979355269531366879397646617738626641965997913588418153612474236798694173863121851755826153465945794111387688673647219724941534893193221768535787498368643684964363584551393761599325179346742168296651679755894725122956528714634278236199579931341536987857299696428928965747662714311986694554185876662135781861291378838273581168524626194179188225887615853967619969458865753464853614189374145829865631195322716166374291684975851412411933113599136455593889365314544526827276179723253439356786129471142668366226422555581157658585599654471871513667915819675513962816252239269425224715651192376457971183998849341611165263399925512619798671695655561977295187637777556323462817363349958466928686342862196377993327212938539387891886984511399521139323165192772759247697617559462484681189355421334982742486322449818796622253275464537664385429498268829933241766918674981333262977668541863839429286675617823911665418385567418436972532213392348768686943783515911243353571694351118711178329728733166213362687697377473214164947132642867126665393929339546928721875961662227746948952714315166244539595517371864559639958454167419358798425491855718682537933663597366297647521181749973674939178894313166727825999786953354351131451767237918387266852985319322356323934525453269633721241162286717991452875189953224237233441921619644722239214435647359574575536489862874784125578293251597151599464642899291757566771829523662416859839848713458136117958214344818892675545789573173868687919381169225669137974381457195785613718629275977674981125735293663824686683171736235237698197352634892559757639342754412222836198578623587241163347578689763462318959397811816239976744611846955651669249231844721483843736311874821845866849111948322584914991473346622394294288998256436835863187658777175493182896549212687896459216713242441639373284342931464384855278323375392419624816742269644951681817326366327617271387231525684565386823444194711748452413951316643324457856136299944174368299762974328194516226118495722531585783114893243654254173444697555913213583796851364562896355899499611848927592527873942676154994843927717357497984278335729218592782353177617414722633995926665824957244914543813955255546292563857562852115385571984537146283467194279378796242139582285793927637843769538242355283311778951613396562414227432849169935831881119645785115838812797791273251351125682182564345425183119415439341798897143466797295595546868782762449143278756575914447833692767892786993777424813247929279355123182681747478658963754769685976275333396843797592666932889376883316425118377837183774763689378587239631457239737994469637544392915867792514486175419362916334424789468519746343764698778391731119946777651273449618576395468457351827463388622681438857483128843923659786647896928713432643536617973859414272763523855919351812697872721137294455639139944114162739811912732966429331124424731994773753824119642454566897268257525789961471425569815475181815646924829856978333213639138117462153433427995727937291193794549644876117895357941648658927351324691211888414996151824615431442819819987827126712782142565519588569567238838398366559796246194951886497269998823378347851359753722259976865746963696462496469732756733319773268437962991636697761334554421635566262361314763538641896236288634338454584751113767746368876638952886334718698864546162859511315384896355124891144759943783712249538944444813827282165433513726667451694174455163267681841112667391369666992497592369344353499927143998687626365481424747966857551849697358874323354627313978623696555289167388613963684861633883537955841577337514862148299478521314678635456296573575494322173982459112456165691858377699886974218119353758217281917775544941352153968243953661662327872264288394579393587743899822687683192831277296334917386267224983382464371989512812638245756254362598826894754834986789355778295344115685969232529297923498217731932481865688749549339577397959143281257614477331254991738433337545559211647361466665627469793445881791754578495869322957925158536696561717647123944149732236188737383363816518892116978191699352179384574235895914612399358273381218465876356655995924948766174984739216831386874375669535922429772682364382778286752585986916984143268686752671134372658259857159365923687734646963118924898512438828176748292697998789969719831623419183893961641418414364157297548446615811964814634949354864617439991471367646997282116582742474354471415168658466466925287323658986925521364199636237645367633429811353388787649353115642293435425549666433187922213666786128458893758382679371482648215797542411675492569476424576387765498548486826151998539876484958587321268751346334286153592886734456462325349773289775933911664918544665289266363221612812867257811266674488915226276455431246825831488826616138645179622636317791837519279762526932783944564333295956762747978461647731286698827413977141737573526299216866657477565368331177328837747423887614351686417414135927682323691361776633263813226616455486635651626279485675986446171519162536587295934581969513111259146188737445847385272132332346239747611243635443861962185218822794455458511155421426634154825984327753594517938979532836116584926689748178762558591672172731223679653559326462211157364437549696661895836462572587313645488257814883465911157395925379697522392588715285289818398725775326455593463971389161889661238551194553877164282187166922933877777121298994392491196687689955622323333132451571478137784569921242464655781747674576234689572485531986554427184421834371228366628795241672378699782999111737487156669536753412468568468439157662227279734973199845672314399965185893765152441325872912332236544123388792826847224414537549182583712461642216837378719353261318668714767977451177757773998928774544819596222338813679868549316651931979491523392669535388219855758735664625855191943369269144528281646997571971954188195988439247299788536523518816615114836659458437269721961841492892375748664496212973168143182361488751516845355543748642849955982656716471815357531284467353741814575992183417151277513237391372628128215546341256896118837854925736447889493418987697469155346898432128968388186745361365798467111213197825623286623647126853653673861543994322863937638312566633898952241552637929582393448191371964267222374155993222355254271276572293439733223434559964372387734944265137458681945822348365147431746249873632624216339965468191164778546798951351873668294813718274917486371396362638447827196793294842458487824966719382981569778151276913674179631558637683569464572961338624586521484942297132469466588249687248376669778481517543981694553276993548425353313947245395659867555699541965284478181511964951685255998984592848646796672175933438826625964946898467924232623855637288663866445271872284345529172789535811445852829946359691696754617288322695877771494253212877247845766735312977815331641817431213678141551657327759712873514424771573528563384968838996356588844891242988227512384284797355139418523791512242279587847661263913853923963966182948633387284473667848134231738922774982718146392965777189151842918216376278796993361967873946937758375872652339656552337521224977614192256478334778991552562859511998923559372649438474539623662642534777694767699537779641796949172448298574233265932885853446354497396143465682164252526759375613332835272538634137179744661921243325821963635138745619164155968399771857119512376736622117513332298264763623841423874175635858977773958311673524791187548114811587881611668828297295858759139977654614669431349868443198991977542892256189294188822129828916648736931649549846617629681479934715388442385167727578336353246415844677795219971627441966368819283559238548535686429325841721639884795559391869391222695665538415764227147122941952111567929748315537331932235239339475165939751393835818821332164191496987853871153533314337542731779267942127232464594926659822888614387489291337686977633514682452879518327349996593146386644888156986717532321869273792355732526914584227348334141319343796938538876397812733137157989368851583469197777749142756435351134182328227884657561634377692694892124835423678324387793452599788971354794952782119768993142919897723181476543653629428611891771342549576121375536477236295273215358396986914467983685395822931565484872463797496654174555657694132417544724442997395649113763154284927398523713532896796171376784176894756826968246715321447915392882245726322135716237359959478656761231753856315726442335272135691593667941452833466588995116664624879552687661896443243643298669946881139895774228542895124879763331333293669182844824334691465688611921286175258639851399345893653644752359764526311439354833198362725849716246876819734116325149211694574186653323185585216619529679815222766197316753254814754611581892178687316761186466832281239329427264794469568914676684797628558165543879715515852419868529374279523898679228783833798551476773735814671681449611881625662238489969335384326177255226662774522598521948351966672183657725175225956159875851517515769431848458843437424898849588955898971695578722442622594332226714591561817769794954913335457926456492481257126392681824358848574113241255755475444525848632578878183297573191643984367129256944832151896196169346762463278871154267237747442265721956174952966372185767391517979964571965951568666132741891577464611696289235992583667636673418768737245258757895151722378418264946659264937617112173299938855147612428811669279475585577351755515656437483319246783129745719361614357985215238796197162443357228643331751363132631326459675397151373357473575736758484341769574591835562719281846664897864721169233678748556539196465152422526439576349194656554171586527769481248753662125668166214765429358371146393394869776295551993817534637256486752618136672651931573836459187552793515162336229267449974861626785935541552263987632518895955413815347383589787548689368653283563985714842719344291226982299434622171355435468687789386395237579676691144568426184992539942789545115217563384892372433327595348849269895233522639662984632166939755634156387449315493756941433398761165683327246785948433466785459545993224837594988821166534977911311522884533821692698251536327347387456898271249497123965676399927652231948153892693898355865766411523626421619768847762138593244286437178128893776442454313516823456153855634992434668897247828153666941413782734281979682364168325918947316388786683431656951783173967577115864531663628114281488773321921516749815966876184232988329211249824784278655354675653564383317397765973838343789154391738859678344831113846194119349491285242965347348422932422455285292696792225938869952193237644144394772883376262157256567221524933399477695219313927663264224696825752512821752943797914335684266641871963137122399171493851267731718795186788816724743127134815865734132699469939214415117477854425627777712685615945454282866297767434194252612116541859935545391933331656716915559644527971491483625679249739274127569256285224474832745697524835571384893424759133215664316687134152541681145948258614134682395789744791794387193863155424652111983252331659448513728269524624621836958112946687958765617968328491996785978536311186445131742689677246733585196194637139184142118812474622221728172873672185175866193454565537433519776864472767365691845487131369336893339416232689674112794629642221453483994953918318477748683695649877957452642463218872639978442317113746811146257934195983825846646891479573287781188576757249793272229166474951958795359973932258469365893386479358773769943967883719298426954867534819783888566836645486971247891289157334189561225662248253843851745477775631732286399125498573547874541912975173712623243999233929364353449847117268562769573764689913246229821535272337384569727617931531512454972195823258229871552594655888275384654978771667513762126484399737192488256291951136236675994966664791625145229223734392781176532911161564975996158586655642194393289334732211625463127572681999328151523633585921232868836925846641682744182583485662444835418963921294492549888334467659171955156256485538516229455219115911515229667129959562395795616295256668433244127164282562122622236792434747147843142297499551664232364647331994398517246981956368595857571561998649354942946573321795542598478241265569654212332412845983621443459995949368481619683272443476711619184928646697655962114442912162961351125785439835934458447544639654765233555348839264917661924888243645889413186193493157239417339583971911318828947242954895516464652642662443346851955334775399754717852995318893876319665184159418183281791689866485351858253974772889968926782339763838642939217385272962531563538792565748658376783779922976218988244597453168646813895872592389193442177373246836115572621848846189186714927691199647798773446943951521822661679524283151285788963914984141197147456651668925611892281584593196831495451243613782899747287387869898433346516774853736533352837826649973522199473655197422495276738525856964882136545376425822384235611295674787331857387869986499851869436794326381928784572211185961993561881529599367615625733129118355433474323248899361724135845669193339641964743667738122495861868192945931394569222923162548533332426818737173184186491545278519731312984799997495934166684333396327315584462211583988557869288719439876223422461658493288186756678655266487533588327535322997464218634262714152783544865154788118961276446741819952437832299999785791345917987872994786886785653132165544232818197466945512967279465828232312211846439881976582528889712742753836469447424872113981842914287469996938551846956244318498626442341823778752346858279898668293336317674347472856664454229938261781447662498573228653863766571549572248376134455211486753399444281414231843167477495161381214432462674657944781421926944845287314471844638886838829592876383924359333785573155736675752379651885817975332637999665938145191278559246768829529464866661179177931754329911952888363739846754436399622522626684429683665239552182943185245894244292356769614712895113426895228427553228978458538938251839341271835136734667419291126999833839922424986342982892993592473755637767255769957137326565692866418174787253138731352886346431872679937651953726749728442965951117999655759129583554397484777777477433896687534889197825192868695337415964727284183863372457296728358855225733121316523657367927743527839311613522263537253744597749533352493653779122826998348113944278397552739739712499333143337644474219482255135254177379692356692912741845356751267785753977526616888873397863967646111496138688266942261745932685294222625472288772887851443491819211462899116884962546579728718618754834634313688742398379958719575847299639788553671497482252287662372323291936193231868973191756772994213296614816892688786852338517817125685965545682469944166826496198656142685954279173478159698298943546794187495312459344293911794948517815654164317132451649698193733423766273492215358391261168342563649366495514948767884878792848112827456917391166853131989273963255899479198194678981879886272486865791511318666444531318826955539888948868623267599521492186438417391176847253892754783881324244863861434158327492658936967272557824757251872619675556152767912683967562558718665111614789569527813459514363128528488856682634413648587714915846674447916169499752499269469843489733424139859623853757694577616588829221196167333418267494155612484295315899522752567216511962198418838217269344481199531626616557239949665588836824877837598132654548514952844326683365123726971334163457639151528745345616193235432776338233184867371742351653185142674487685979697761895959157652628146715292251826815481294958111924583891915987667186215599499472629898898386943752252691539567627497375113617861976136178924675324939439789375462873571272627148431374333159585672819835997681423558872186933589761633122671622867644732334572546598799957917283755238451798743381159153734532716328143212975213218112474716986518412522629128347248275536233773593644795517439143859313814271428673152412134937312131311527559416611849851334954256276238872723362446239353657953568171867937364588111936282986132849924627333772471564182268662844625175798966112158455461337399662178548444834938863398421941916192856578751153829248979863843342526163847952224937723698872115356852134817839223783942739928444927111381163974241445616498232523213141246342566689948688491541651864867392536984788645465318363348624343385874251194649959775919659983211687893913355359217716572569879837627726849365285755491557424397858531113149447822352415136456131872873276119781915945437162564652839135546413592986428124369625897681244674812199531432757718188747749996277376238251326976874747311219827455976782813419997362872881863597993561642872761475462541527766454699652638714731276429451936561929774947716988185525461453997988855239719316215566892937126814788392251181681235724816418988356264389378446458829399848547472888315232965599271181964717444632352764951398325323318678322774997164558587397728948716636713193817252989618479164944496966276356161368128855862355684379996522137943754537123237684911899532633337492744445658325796785637689912741713257612332892461923681581645625938699722992147228465524477838322161932139244755582122359932853958942944957321768769985887172356149344638359315182989557263378972996257161992499697533248474361551974679768817856598713559965919996353228198783333113357233723613226447247115237437761383645995126751464164576228874911365644146719746151497928796186211675178558513127256846716314834889287941882184788371942562844222149843721929287814997144227538642625886877684375664467788432295345713399947464729155723555574987568786579316577483855999555744489247794714262999265565318873121934793153578666562127447224524426875171427174639721553175425866444949972679942813858255686172616998976133825995379984532138288777554156247736253951483695514271926221744416911314243582932348349851824254854885318557749864687561542867243529948792455331688234278444167298183851986419566388695439734534342517515145982698467899771124446577126631137177913782557658981638331984975672373531676332138181813999286644861993159663775573452651558112476376589436693149375448473274311838485428177371297621467774995977725146943561568321366923312698368873455712657578684184315473199976211679735382231438857384593471981946919437549572356174433669647531221153696543667264695761725467478464633276423248587162134468196931284499142245984779971216916598616846848953449616584694284734584267842526751721368617835397555861643695361221147897571998643129173442857879973652399387151353359583578354251415535343948173287235483117422442994527711517635348877987627762851291861991653276953641292966142159135225279477962226135319924928811432848765461572184415485786576598671447873829927458796264719358115959735827817633391896276981882375147637217959288258864362439467861523243837745561346672895649326357579752425859984449518871811336972846987472459682542328498421917292789426551329472594423264254864932853497428355414745851256631923118346978813342695178293646638927751438218332481787697851423115878812623445573651419975916217685565736969416661691677157767335881253838768314373238934699333719733915762593829932824264186356227518974913383176247644842567178828594995213529943787971126623414254642153395197356943154516845161524627837445169554757297782288138489273796393257421131787896617455451631248353894986855545195838264325339155443621215659968431247578191994436688698153948881994542349339662319169864168835924467499423277418313189494177658974522543669488118316154542296184325568734753553363976321439837259616587852186322519131253245761731268942241752992814728123597559576459663638727988358159418154991535472634415183817623642445745686224376626124394955299233795263774292662263591885394217486882168468523648887865394714431999114849582745522297636996338328328692639713164384146735358289999769912873187414718369684493372357147214412942412238186535643767369971412516646858656299653828545442562511175649484193957238973426553614619163991399575386184324868127488373572411457775474715181883539356583623657324852221619688849764311572827458824944895763447394524661842575357631921486728457799165148286721564655584154888667454856665325472726175479857612457622387719346417914449325185328981118779793223812346268665986874773659518738829133638394882469646891751523314295368287565681544234297348567877312111856313367779988712447124844953937558774441348198232843326622814658426669673572294377598159248593434899856983192528258962876625857335111698917147953658835387771593913962762366152416288526393333532728973119724744452213722944287467155456436791125234596699117643457983425174175588937486376149374162393719116655337175512216133437657836736481724412861162563795451923685123284524599696642911445545694194312654113962535725658181549848369434733928171531995894848732547371743945852794783252636317441278153345719877246561624243877985798921482458172627678982369847415296344469166226974761886769411929433868764385863237226782622792644821686914489682492961122181334716774363592458588764765863896257814138378422359125481967245869539842669491525426954959664148181964221149191542127521576781588674995899799852853614542229257914384773742626612952415426439921458736981242892976126557189171925786464377356453954598396293274652297614349874177426235744152316434185518485772522145517893833565963423259637768862222991274428815146361233988875985284281422393617322344542318617214523654874943655879222443212822273428894187353829641774974156262414272571394586338495782187593733159396235662295924581689447611814624145681799292549617551291171521834383362372326277811721736768642179394421641257828999961527382488217558512626417285971132759987698343992253674372878971945933772596894819275592678555559941228477947437344782848773236921141776571212835293376234346937822998655655637145472974397891673672436889453956583571911688646893945424457743381637538686449828112653887552779732583332865746556611988733891774832254339794348819816678958125396421833893226196876543237138557198279559769469146679893595349948766721586522425162941189523416272833781332372777852859819941566639898812848114789865744737774345323184377977445422784256924256687985312998642263242556247453121618138337181286411565179814915175887519317326846881387258559947424164884614297775813538462366986392679941348915575736463588177796854746869569117578214553359928593777352218197755665199324226955223846155765539875285296617292613796392866319196623133773482433612239295825733384685852179213373475395776338556894488576476712848377744367112782138865512962156873546863573532643439869956251747981577714967121453338224729793471527187463174998321232514473619751358185281581492415555992252126241838445483532663117516621721324316149688839975276816467338451871375323194181587177794335261247264685984381339945695927433456162429827135258241791193835969565696576279794597566675847343288647284891869118765412875518826679398577653563338668856316178734643399955289592367143663279942396635628946786813615772988872911563914797375855116672661558647693883252978463963511677722475134312516794649734175131781727328648789358592573878272249311942884653587446573749666778618692771125373995532696561238978846913925441531174244789791688352942233656718715928386255213937121233588157818319137642252455146268417111882622525278383526921537467967155216456764582733325377993599294614237893142225537163743182992452664433737857411915388686874819865317579155875874392159627116983493149954432718238433284984661811193987439599312154372659996176185374915855786871216371359866454871261745222799628244269145681857873846347526376289695599946931518791324955572189938477379852913671712196634731624362888864953311369578921384445669757534837157174911812831263539594246418223821221291373388531378683322133414415425442668492437386498611841361812346392142274992522372455472452665284397424813164181325752785842359688321619895194225679747331355393235184153562873331284817731251563969365522788121138419982997942128144595763564565485373452954256851219665811156684199235331635218228175554658216516539941912323125922375631531161714517687718121492538981933949999358916676478417459346238422321235925672318147773595227959979982483841961763539778288973869657895278264139382258166853138983672988784187124238934518711498755743521928511924616966827766631995255236177158528913685251793892226749455251982773931445424684715388222726715872264298728177447974685846416893818326978886539116563946576145335955553431863772228592158652164558913335321477697357441195219555355677988936786419144144553517841397996788356886779173428667342461158637451138685593734578312337242994548541399758931267986219822111364226246919782697385896776867884294817386365424942532997673361579859667283614916258247714139176969816624975274778583263564462966846417785291578436641795232226791339118526664396859838431552132964954715452771254247969914126111496775391368373685372272664264394879498424142391837943299425734111949772284314376971389219683984167145153573891487414315273561766559964211479428148469875121186732636936164914718653421831839582543235832123483246578559532479533746318519658762417153995133175448868618563338368163252754951485162922777989725611835191486533948129296784765326397886825466658551368936312723252839422956412346372155774746941133964958688822348553829373876878155459128889914657837855932618514948948736517872565249643793543936611573134711856279133312655847598555848217293818722941195678227171555255965345115299118555377964128442937352651269169823441936327969142876831955841732155947668254267354836821393476569963618434748463645236255583937823174816279115358679385832924715911371896786192968896368461839228346324982582677465982727699611334856243382338174461633392252273558262489612398745898917132248583388436287417281751451253265193422253862593121275118123238638769984259399591428817728931683469346751779629659341112884842287211686743685559464473541834943553629173422765792937272254537772933838161336795788594518961637739912727739499976616167853816577567639393332118779275859131576322174993126326182918483485442953151459651272779868717944477562767681555552628495365858285821195644698143294944359734541132922575824627935327643525769861152298689942623144888238614589694613461454415618197891651999848218444479718379267847991989864683526964734551476249739827894151312986269514451164137928687982912191716656192117529111869557637747717363952952693592677412164747417132327412561629866597693966796498628348595566532181749946515245985729667113656653626629268673951432386987232696957618423369455587514293815974568218859275129467127536717283548349124931333368979622272899133867867141172397284145162241244438113827725954762156562675689823723194765259525729255422871753923313578984936396312733929994185495652549832361981164445334632171625679643877865971315727989286337794758825692187197468167174596375649421879877576223128615964671134865842838574195495156552819992287761842588987416921575645534552237291359147778369315869393657769478593317964789719285115269835772521859546725775683283598471858998172126697964512729168896872671577778336922262443439318896963891567389861986138452372151745925161698474562174919135149194695981959796132149539332745744184571575433135348282993166538937275322655857471377367673125917624134299784331347974522733322173476795753175198784236297338535862432997293693469872482124875441583672281538675652771882368782739185293136993457615592628496558456965268667981542182243982526361846452327916169157272469512137122756867658144959775821769852463537113757651855712183268943289332931216952945416525721425632554557667252346876526998939593547982648363476963594192894734986665828635863357597796974455653329799563938254793563959375849151829874966771159395589417889685666544839596511431868898476344789444725665394436323183828442721743914468888211742149221965125988278615582293376471371376677266983833281399526152989195663488976259466486247742939849495633329935761488912585768642471933264146512559439577943787824896922425966129951898481768431718419541936537422589238393136915846778761413153191114833135636198675442473567776866258541193512468792949284962447961815815165382161353262657681487567857452879985929336481259378814597232319317788711348343269849299912232161729599613436652536445334447533515453314546111353797229562295544879289443133958226738683792245623431364566741452934771951164526758874128682627729286271277637293878271137289861668275383945654831657559368233288915544727273555519263287899218199542893529774225131348127147936779859111976487889723535127719366241142147665353225466967637663177261364921545855291776438174489115131522565941448415147735273162574416662144178828312184591786932473947142539311141259517576268395578382434345248363193859364283639467499813236141441625442859192947675456678372496467991975875968626259726553683327916193579965836332393847114235925525863768239852871254853365756317773858661546634638922238693333989274131173635998788891669881179185597584757346914883849836933842479128594326827295568441934317445346184415985614169893985316848363861191699159355235422943436342527537576471495918358543784318459192847385425815639573749969793692686413844324776624776773642892968498772194461922288855919289284132889999334316334299691519436738917896628148669179138178891563352132582385141957848646426472615797755963466551134887439865925484168564791344337626457233714243648374743665187748273894254678721548992267655428235424738285955999788894558989893234496314698288167936281178947269419129588386192685293299974698538431377196685752261479256625367299226725384857863898724364799518421181529784471668431767237167918817958727165929851936647234924693487259855256142224777491872142379184168584196218574313389373418326612559758378124545762689839641192346311937738272557696587431549662282275848646899659117741793559766884367931511455354938896241116793918711749775211592279794794362563432396273783622749717977493558781899326684746829779577197241918897838477741432398235835549529318979816481422549363844387139159846726455385538464638956769664448918643961514449792697273128452253916392342675555695312523357462652271394452895455886826152786941157166491589114592174677846449434239678625426865962338913645578782648499841527813935725977514372435164156288867969532928758174216713126725491197948139785582912663763335754863456258125674653899966297673957283717419965331699576996753846654814654548161129977576131223777158513756663654559296898729186791631816351526771799368239936594547536152194671639665477259718253814518518864937773298814774688868398157834225873982862228576452272985657977444633817929766491518595151646489742922713678327368227611675213976267337595426152963513679188385892635384825328514765912819737216368785955487337693283263136746472149644972784353559776187552188182934331598733978855442297395194297529558432629313847956684184492144999832883722185781248646976261559432419779868336348193688285239162112179855777311119366174596493593698583949568678493991349978137486234437283131868157282979772419923244862264249954752858735855846961446551875768134218981554938533566911187553454665562417899642887488586231365731276316995859937665513925951312439158647132123789129321795735977772636437439786697518587859446122273796447215763414253837771372489758272992377627132315171196334298995185211971673893291399822339929528848835892272481419482593495436111883371478526455373423751293793779915142773227755986151268338595485987264486141537143958871631278566272618222265957252939992898743369429231445729424696595684347563415326348811852212751217522377597837452332416516681599352378927699445477596157695654579615396165899335175679339794241199539134614435933589412389694682534446786129522669699637676825176599977579429586435497953645931561468214946883436855448792284341367977471949281765299968175598525122767742569636144831648176818329485158294156559931184781462283211625435738373275372641576694895856297669497794121364321779259533153818756515816842254231135888283363236676256738844255267655453687999466161624517812326971426674364218894866226786928525556293538837627193614172753593957556697471132831181397562712985631289935938211118147884953142694623415998718818722599884197357618948447227998769919787185819569354197898597364244111629199146861279948786412725126177176871466472265134564635146753441927853491616118464637149793935917793931971562316568261149332832599782678725734489186199123195243291367128492828727426226325747147262864793774655377798421893696392577757125478885564396275443953281964565982769315625242674978287274638126283114565988145432339156398199797997344732535977191995524323292791424786839426925114465787995175115583265986587187423891589185496843248647286873514784831729367741945817515982342729992164889553647126777265488549438524811655818511177793239174926767137182562412519179392399689154856564519749889787616844682695861516855829697674235617165214791752237798566113535195691212671645757436272873135524983113269334798331947114317768966366482494773515598289611277172688225355521869328226177283779837649165526583523334831539795777431227677226356678951993862338161273748559984631536414781822638645928653551913145585864845197761251916261251455894389752252817822912527532576955383147362442123293345977134728247541176199399419633929633194817552547257976916878169122221691255218914511181677473374596545559978758198196263799927365818343339995794594218366358883474298421429778237447274788567814213953984752654397993271127797918292471754799138728146147896585294442495875788559452855425973482825945411978633557732274669817188572812989842186748965321391998734823111875973556332753762751514785184262648883314578745819959337735149294961192547411891775687459753761157265228859837994463187862137233747358233916695939247823935737811545447648297689513384576849529563917661389948987115552145886733933689627511299919454646125678971238289839858738562925636184881892611673467229966258691298486455625663817528414138878787634269621176356997748941827595357754524521146636388182953712235881133583687249677565661939942439542689947751526373739722625767691868762427479196378239389855514581255487124933458262199164514852866494195476621536635541881275351889388726487439182535593519944122949712338862768812361511493794998867979865832712737887727186574359856823394475548226897596153468352834154589833754232871475611435517822159942296518785722282315765436531423543283952423641761136568111133486584878821264149142687497491737286564344351654557716444184146863498732266222477947472879173658987751866567695387934211927362959624699255814332834334324941135196456361742163246568881274287785329845819824228763542568876544955848419399611377631676453986472864695525466594246213757145673748297548185623837448622426873136835689386747929754425546122325798156984558249114546888489591961675363617429329763242179928115172596766497338284598595485286583542116755566485735574812411959292313786333852324761949289275184394473194378419776669687684991319646846272913979445383941338358223886393583761693922216248153973252789938294354545666179785973387354347166482735271788665152279794237923562633149127973477583463784476622775988899576813452797865392863931429298154635969938614123217419441359955426893884644936146785728743637278757835288561165642924887151757612383791547534987288565268143693711189123675974682437832736995266264265422818266298779943622947553758381562377896674577728712556732659685722582147483954835869543697456826155258786981463858893142787368863368147644679864633936114628415731534396753638991283783144884356318528173336125133381485763288617558256479871472791748315523273927742379167983252225945476693774547674578277582583176512172358693358795522258417615155352475234368238679684434174578913948552877689446314646153489379573327495153896426779373522438375596235631828559927955286328145584197559539474376161478989883231631384237174599195142839797111172981483999348346848811789571566754783982725548121892978726763338686884954387188267255136692725584151355773471387913315865147684889824371628636327557944547194572452778739682214857549884483729865122994842952336979957386558433734913386481512198972711354987269641968416446645443612536924549513489328863316739899142624977716155865741861434312395457743414917384856832864284424958512852332869355736913231661865615789893987913485166278335329878347236434224451747364286527484328929562863297361896294845573813795741826144761859558932379559828272254657123116952734969815775683717162774974567649935824392859929625781178334178961442871946837788266364185482178113378461844423337753951488685495623458533874986651755892751289642777629886284738713291455454417674235114621973844963197642972639141651992199464758968522617769573636726824659925711552612368224377948529875766246281341467168595179929897374996514537664279928525317396833221761223868274175726346955547758824825111728214685218794247811782163563533354612122872295875943148384537851211422599628996589793622974659679699758618498947825166253617465325288958887672352657362521366688196891768425549615331473497965764442418251694553975913242847212636766479338683971559664746466529185632654412717652617882526978976327372613772447586374325922797229857917374427165673994585555366241742559799495842142479834359973846981759788262365313295529396589276241118815931561779322249697694117226997399345412334346316955465166665383326757779993623216642148613132342916672571742863526629389682626796364412565741991643571428689149665914951425313466623754692595452832327258688824475749199247683866977593351121567922821734591666264912236238274865157919457414939319422925832218612292136866157177919111673783533653745321835532322222278346588743916438419753874985192825363246426958687653749937447628154467988574333887152944777437232666354291623791515598865597229376899328269548589928714253864881461382217951888671441754941428444372572175263921865838312253987323451466962253338619431645843563697643339443765425457421894948397959271125379721346876954358167752768869386257271658243666363947114888796422128274997244871954664841711342443241548343629614979353423456699814856789951812288113443588146926392869843924142853976325928629149334218491695779966688289931844767176915174451247815513515598864569161657991915684235466714699945849895473573941443869448797681964943489636828853238963731589574778917861442336538323596544482857747322265387739562711464782866539242367786458394474418776843485488524382826645973312268742989318168496476931427646743527694425222941587179122775349689349782392486434132133198533489313271399437951363465555417635665871999722527443677232662224569956134916166799856569724826262266759148644313387844614185512726382296959379698271642949398561287286771718657574527691539475382991667537482138379929962898326414561223942134869762558636567917452463757859145191355918663253887123487963975474488989645858146847975679866393632429373667571944631298163672835976894169795799162261976234317794383687457925821126113625955624942299924525995997697758242794186215286537826425174847561729217736144786468999495769324495296878562839565355183659572819329896643835769384782956883963994974537628985893362555144339538915248899686176392447841273224914427396154752381514197113325614955764479744861912319819221671164531957831117296316296227274269623698371481999621249741566863724173891837926878791665619286467754144925797374144119569576212876379661229846241441396243744831557324425398912856974587862144288918341659441635113559335338655436348314257211529765777319163616131959365165926992459178975324736621645142443931276983879381743213267751783186193689866784758978284748726125523782667236699386994468139731272548615326765783482628421383299333293624299667895955886794113946155416624589278673241729119392916437888337243199213374184913293725413225748948868185473773171242673984467251937744271457644667835913448253355818235269823289961451685498613183796213284412287332381619561768147767866195314936153123168144857412277686116498892113318192476116223972572129899998228927154655276453591612589478399989784258664219459519557484212118977472237646581431375923234333229957169724362294322613826258479354951921346465776847139534369395791682695221688361973726152172531587746258216943129391796992144193756451272765157985965554657955221755752926412199685131485189691665141222863962921423362858727873486388563668741781117192853539766395932396961948139738723165932651952261766859652615375572164128124328395969833174492958944355255576395781563851289284968393717244764232277452461477764583853566932245352996132168735172357592175398623813425529483889914653869378241521642193931398288553637555468399364563665674483326488234669498424759924462719922569463728666487753643179248139385122383137775449593899613525434845963166833465314594453693236528995311982228649187322581813354253574552773535323945283163397692848294261392833236634739167727892611925944136338871353258829588558549934435957745669874655594457292184326812566932897262711945754842273863918491471195265357732115223487677596443342767282954154665812669318842266331959234548895375422342134338752845757191971596148263374596471554828637625673276992218567194138428271832288596184393149747941772588561778527115433737599394361417254231982573115477917935351381186498485542642267858452976894993522461714966172857791877465755916242112487994179637714449814314826136265844251913773116997327618319725388613614871171759481141851832351221461747744728646749724797712722757721485755618163934482152123286958995458918715917244339442669344133478368139629222645677642675968215931842693594767125778834331249542515774823278889347139551564417667125496613491424926962917448114895244794932963464159249873673942365634926223357652565532798983218661963563798453418942911787917763759995364298347121121189778443727617132449163865775874649584855516128252256433719386541578853394885519634367537455198135929248627977839354897532941744235248899486168983472125228272694197875823439228454656176894143342128581832844578923529197591634735673754728164865117917646617989457711282898365774565129679477322882991278995371726127973811541628817824723151221722419799632794564246697812822884925883755914369663223893964243545823186577883748959248434847181562769425184257143955697171778724989821328643336521981687654425813874794666888431528576241572953329699945613554595352954912115237275978429673923447522892992523221517449295596739371569658799119151774684132694531677532381289184141498692861123169812839847756158188847924934249119282255829325223986678169463373281486967998399587255951886113339368863542371139745129197617929856521865981983956467367936618692144229516614898424159641292959154475215775154876279133143237133468879445759246653655859963765891686511985888452696171976233612669219398765419659156242754914161981819566195159954567632123527496485442851445431676438539661411948582675699133189622563429569564391456816828927788833255991946265299871453243811593798297371887315383337441711759838646464443962589813545415571463236862295391548518652183549575687363372789744574428627861727375981127286169425757599285355863451552269766597151711538143538763897913978427933193145848191765935725912744446745948423221296799261651724266639123855166275743658623693999661662856352759333688449518897752717882416682493742575425194768839616746293332516642174673848731582156765888137682898145428191248353828316198756824638159867872616886615115979562924729595273322899459869356292283654493818939118944829744454672825263333135135929211174518756738344466668261642462578828684366979326872687542777815686554861466488865123776833614972526883727465331632998471732928169648829554977939228855837919725669449385772464465241632323393759673519976112548151114245463637575725722323466161261474811272839392773994329835841887367274456476452641952934597585111727152688233485379562892548947928634783414641177113293346149821773941381544551341558672265246294397415458712735771646863366975315945589359423999954629745333753256684618651758733194868481666879438689534498261461755584548925947715657196813848813349584484878649195883462645525647586823299953862239365538969423271652951845121243168521315247443416582675267261466217237641374515163229624441366986597261287638133354116448465954493229247898592826326758684188428629532122971152562147895392234985737939136121177389978496619897369152953455463981877796356234861755849285621927894663287719195159634642193174853218427176985599443795894181456666497194793131164233722119155511149749197311297629981172975435548411321939959511497485473924467197217199194944983621258349674383994714612996293454469272939456755115465554173417743659752686351751276539936267831185861927532515512164156663345354821822564614264359744411625158521492558818233557411849892386248167313193815168799784662781483199629828188574353311576654673972843723532469893114162626174269344515867893772173377448135341364515179769925133358982784217333673171145937538663552629931753919216211593346111345416498454554554174923237746661191639465718154451852255827473572434271742556889874888469196343576992856911478456734568478992148736822492438373836272118787999753443572525351433949238897686551774812153576518812724694352895852333347684145915176435659637222435568216529121517951415368988111467277739639671364214631427228263879542393259265575847778488214471424553867763219583351989798135257592766443644591815983762574989728895427671839918497754891397269947478226217997836691879999614597243145555353125673661649599849562865221544745282547592539414259436847881163671724463515535851882365143148395466892141574958836162556859578114583775722116888484638213161751118265636735424251594413618573572288741223654977927257496244599627472494658944535259898513843893531769924618151565454294577756998954856316991157482792148793393187562992581575223283485255474683428528666693214332669174621178319249895365575917153859299316926821719235781261865159979988579951121843411517593897784672418313494487626756495684452718848668987326877542272649864144727663451162659392598553438732212857182198252171221165317271271355963262876173284191529326234258653968146643852359291223845151814299983456739745764775948553534943842175647512967345849583835219392489942782878692975723196616545672575633729568665147446986549997243696877723679183716485947826539788354935282198368817381973515372917499717827644523241226467885184723793474137489592614359938435797165312795442391442775667391769464884964497615649615261889865791279475723463826786282271156625632578949185456923542758753395757893687595931423776849694823377957316955436567633216975346573367978563895441294494999434981325912658837371378618817831138149649794576293129971751423435249193861318827128114979912244657556741852533234133429299223567322784859913136527848768689846657725291182383734598465212294658419838936954226675599821829284115896788283594151589561642469861349897624863367226152195241225148918771146361172586686119111614495361365781888935693293193252491825951429397189649857157263392474867988727425389153867663892839295894655287714529895562731812722119455873644984974428572451523733668155318517983324161295257519755459879629218531745754368918873417384246266818881355782572257597216439845425293337785842856585396838722354773995664146222769198671552677944333788282892858768425479637329742911628786871737579916967598462653614483168232887778265814659824174411626529517274981369635615822263334865716422899736788159631847158434913454623585154958729894499322612846297545949325196175423345485568976729123145444141582715244679377848848952495798837816429667485168833636776244117786327163711227999253728342643211832537717728416322683415568678651784464144874515563793247114868837172475842282647816121729186879585721385413666335837797796373221682619149485817491179748366687635795617636927656642526442899552121472224726479944195628717552752899811372819883292543312967132311299336495364673637967253856976895717446863219472157772946424113572296771992838933591583235535672892368447421293542599892255792881915849571491543682562685155243232695652581445794948196592914227476821168112581864663312392792339811897697744729175494534793925714783443116478385715257527698167435778978615542113537268838634377844641491944235476982864626953636989929192415742339515967552723311293183223686728569955691662982191399521879431286172631596784883923763849762789476537586944332612787151817184812454291795927177354958948646136161479538139647451755548392883499436478171144679734286996984332255682489593858722929629217448644992239178253924115976776318273461574471285476776372839469375412559886994431917533616552468918953941438662642384655298435225921394245191254383647957779281682791923513427845198893461378346496486737969553142721966994727356894466152816291372477165436962641977482572172118245841373867911197634781987188892365392577168266729297285983662887316553267964535555263642717896626151376152415859465628688477828534551155276661495855714551332174418513931587536991561924837933374214516554296796642632115696833344683236646214877849139588171384753875529149416198992849746775239426878772622211919183946612224156732588658869859757942491513916478627471357333197881921961251797549186211824133719891795791778422339849921224484363331891866618729613694616944379593571456115787747987356831367295343387977554227916531223248757271417195741152841394395518373999949648122127189229548189726915818763563654252273127915877457838613868223448654865544912547321181365166419154538163454517147136152567197813255151286437149843348484282972176579688321825898122969277354342998856668649938849824839655988177842517252154826616198953431237821951665779942592291985217239891885742218193352451448859561441518172293993127352495369215347397285493683794429557974783317936643272521699131874661838258831494691842891793779135117823695634183176265234591413814684753225514812426739168197477636991311861139272843749558386948547557423526542525889743651144986531362514158399677651715819197659766826321141996741821381299854621311732735734398479398416382643563635898271611437366996623776822274644469439462987586137394885193457683625551548396888628816495549118369793757675264115985525958857683552727483818228696256642337984228389927217128877472934156654955783675385986753499582887551735293551178476942289226395948912531764772518192228131769143934175952427567366487279255258342648133165721447175782696192835988689886367399986465523223295683441428954673572117568779188445769781485833971181736513411354719678726398586594566116446462732688459878625265599119644378331389214999751365795695558975787725625124998914584942596373842513875466764555882285334969243384561917473817395413936212135353689679416687316855137648849363631587437985516179572345919834186135876554915422369583973855364866344888369711827874152347753239863159975845727493798911685898663867754227598237416296354722578864527838588491139649253535783567719581428257159113928371648983653499532347952852154871834521876115957271866942245432414764741341735442537121135677718163536658621154316827929475145841993647398494714394976823327782689932561489759178575155376154111993157186951868615119546242542531735444927913864263127731774826988421613414779996398161148439926658728957325223842547642364255819581375116527691844597513937418456384783335993966315866258887612249417749138424144529135813553667698361263914397749742222466722472297114493823586569561617378595624334652844983627674534361991551872127291597759495758973963917973175795744418348793591796976664961449714154867637977945532187564597568773258812697282634832578827564349553334383119262535773464219433377591838237143376733978378112438188969772574792365541368268211198794661717186112556582397216116985341411917517653181219829521117431461369119863972982763725615348474319219185373561636817257781427747768566183228271752466235266949695551148469187252387891216799668193197823839544662442362839794594794465647591847971186278937475744171534272356953152657459186559866819226441935239284829727363358937759383475887794286957673897589344262398676445853446114283849863269388155688163396886194387253468487182549355563141741177783938757455599433778972936133891983868493842774949736939632812999276825918175468232825677757846743424824629255967148595358941525855236587592887591349655548698963575133762849488522367722579365512914171343282932258728875781231421727742959142257928815364486427488242236139254945725341589921659453576178993486957472519311465291446954843171655382532452487816841544818125971518551684723493976929481272677518352319761998285775714611767517233362238117825482843213269811633757869679361899173383518488331516392248274353151278528256189239658773689994298326157872571483338115263152551372887564799638851661975378424442619354524566342297294622543876937852293548152262771241284462164647765998793819987981918355442715471961738919818597587412756935453448311212182831588219384765399534454464562645683583312687116948473618154328676925245212893596333583388699566157461981179318831178497166913597233221126947838725654359949188712122914618289962525841735633393393584845652557698162134487616845183576831975634429623951621295613948522528179321263468428548898172913953851772888934765597386193183388663639617489766316944543649977743994864612677188672935299276759949324674731538286488796714388272113459731864683321981652969786876929883868226337336489476244722213281367267681424952878592964974382416922781712985173821196493721842532799669868465546656285555548571641596471397759314922367811667721769216335891831213448918974645611432154533516526659441237591952983297549789339894728742481475573772424383215283555328356294631897948366676983238748563182444333926743391888199764611817942364665328446524223299559439234359715137871413724132177818821245115517183132313616812582363477886337835247377637116355471618386818492995532284884518946915723394143223674892279511394884355564967289446725821772891278583849235943866437919985164179818191823415681224814793198495376175265495852964344612911759277773289628213388613872153136944612929881581618569656752853557818919877826877624478143238473254843729399876537874678889626831194364184161723488735422463946944369677973933161944484611914497814671368551767841177538538867537894829665631314222965717583136815295251614635855142612259563134533948187441724337377592447648982275874617579812538268412165853969556897555434485392931236611916851439173415743363455477938127693535332672245461695142733534373525857915128544493897969312637869355144446379628917583413575351274577911538389279728958285619537974664617545451321926835375236823389649384627648739322639151732948992829171834797627761574636729519681597579948519376222675245186943992648533472398811958361768353642715557885123893878693678594657626172849249528896555722652997568265358252113872427897151241896713236932131318458128723836815475677269372393136847799982562998456173989127319993653431686765611117395116826814959393259725275176714224785375761571695556163579939351629245711758716251656993886721762685145199879474448937296776733999493993778616148941649226789978926396563433836718773784362259859468815136318878746914339534428454144547167844697188521364694528731274789353722429251286556888651768126851122262177286739397162227929494486491697495876795411612392231558197146786153633262223342464418317992568274336542753876121441361951116922345888954241741875892997886477691978873186959136515793372819668656422619214917667126444534498353883944754255811413147399738552729823397612172122415943816659822793921781887997128512893347227386488545424212824664742966677395843776327528799955238323871589973239752594363257669491777614612834798948274478235274141692152334613597213651463868271249355568828167777832877954769884817344125821587269446931316394574398699971928645668251271898155475223121112975439245163132946473774175186283625628134335529155222528127544794255967389822725136288189633912426813639522583986613492364654685365427469517794364693729164432758388124965634959318561466798763581392787139414334179916664449588616765466497739126926572814862622387733363934835437964145539682711573789982253785372675127176136272441227332699127174684481884499534455277327338846194532519848881225631443964747356798748622498419852995281655488958721583621441336424832997435319982939291335356897371468199529598699519522856535242287976826866625665417492933357564152633328869326745484577712447751824134829752335863218879892566546849322385317782992868656892456138159178698376564631495964198691495392151887433885824319628487426856952129662949422633595333964648132234989173114367515138234587388492789796917332872475276434142979158127617229496533941572876164158849598221149792875832118624917782631543546395582974165836126884146178323843299476782264765452755253174368476414871996373797853377575789636156433522157326992238874243194698232564578299788992677192291669463529755574452242298997917162998248994541976189217986686382472294983336413811621498967585622731128451981252223253157696267431432366243358469675869538153886727833456781526564951792596863345926251627668315599468627293525926631682448367827653414133275766327376511336916661891292418874495132662684274739698727757635964377433671997358128978654496882318951218296812622519474613291432226236145626777938855326546587798321814465843635491832575923682512582828391653982174211611869919257438267322519716126176152952856599395936167947447135649634799238157549136628362965417361638552356111993464389475825542594358573263162398626553933486535869696923227447297642834162624299959659861694213856148435685994899654648597917293795547986475754728962721519218477729518946421782567748688698426998948833364332487141919659581189773455672914932636726672528517574727275364666728489946188848575856573898343824652645344926764349795974898168424587199392968482261657927733665823512431536454568523225877132513864996847473828659961448941291466655339976246911886811714713849494817694118798775356325686768797168727138897564189591158524383179749543212867154114118849377665448472582757362752152746763328752578637892527683798862438668534671433112253812279856988744585832864264368648755749237991348721896212647492267629542232255926115635778527642314347561585876466937495346899928443178125592148521359662252143975272874423515367382248453556743359436877117633369573327562135451393879579332458485626362464888828114951863918756297732867246926625111286577351851523697492883455965973529344428369639358537762257644895729151886839754695262476129419971774862545319558174299712743638695172215544489285695665838989849446467719156974533979442139114838463133848534976263187299199482127421613366753368566286285122233855824159624949685313922313425791272686546739788228499538761249246484948519578379129861726649552181563223269877878663635288143341387687992779556212564972775198126685364541375995241448695114915563898242268667161113862262652197486288394969666666742867123121867466285571446982565541242444429265773231264762897341454678919935592723838294372915939297988879419479662461887967451368956743773511475521688364918935729483548898835375333258548439892728973852623151583797541384363425212496448743781958713839154376787825458233481386256437432758427188524436675693227658471554385183834167613963273837765791238526798214865151367559325784695547915825291595622265277555813456157638137987448554962626996222725466269967691356741891491112173518235121769894366456584485582733545946812881116742388716155327469853333512512275392162767278725689921262212328737743919626497845746842862183756431712572111795268732927115379922883939131298514377467167595586674866778677437755491187746273749915681338171845364372145553826626264296893885312648732277458829426725315482912264137144888558588151571128219325727322699344182987934935745666137769918733141337921212776131733398388962365287878899156558611949668463679187874653456912761854819555812619375631776465442516985831399361187641616133676617294767787613521273333836183654262638496957398225538729427572898151789474194895358119141887876761638675964353777577372449136581654311797121377924651774686234289529588189216987452429777389687548486283193682316447314932889533369878177234465887517898877739955922729443767255986675551123817397568492567272661216541642922551316145281817963983436499682727756359867857543722964582449611376819786469213584579828961821938518486832833979326298884965958799436117289386318936714111595264116616325353874666337636675182482942562996273539152714361868996189145334841282186256572456235723636157431348556251617852464936388893426559314819979654789272791578621264183474359124583399558414365271677914248259587725651499715323379961373286135696252399271783919994932149742391725834759718917787279283966175157639913764665323939847233731245887767144498821113986698852774353929623852622622811469344422846137877161223374553589423854937429917622734861395653495778169792692243424798728364512968664533781815145314276192441527384636814883376817224722855996634997476754161641263524699188651138675349636699714956415213977969835349212761641936565876163757731364164249293275729216722987759664969483312528871889561658213279575494724755643622556522433649586925486762225476422174216368396797346892914441973278488924744414236725896238336543371162435765978548137559372815132138261637124766569213238318712923638672273559295915227157827897249116124367276666977772443131745636336653368824521278413514677141663217444225656764493643189793757978711122587253482654843722986673543544692295344417782962249716949283543653286425294288482361855763116369468911528746565681765131332856793683545318955412478871893978647995348678464883939716894989834433946792638916298278647145928359543122274955574379133726217842886186214699936363255526237821988486195354246762986427131791888526126559863538525266968828895757358793779922774298883755435998622492769661728137894169693992744972158914974876566973821919184471675466663149695382453544442687735261626929778385421564888946628933194684562389719765143837489182481748274312173137542714542459577659367786883985738898252386333988814572169457729699314531153449121467573417278938858191295427428465211451158859535334343785426362672716711595557171494662193638685755335374829425455811919261129484926444715656192563453478578417798332612165775821965283839761539252323428985365361778961836778684714846624151575541346418975733193476937433388722744375162534623959543375493254428755259392653847782917546652184858363382457621398488221786984268184313346997936764486454941256954364597186879445862417691615319636186784461294679891568529139992581947474474749629665416319387445339166484646698664184523442275617513131395955799198449674781349889183122516966874698665943957936944245484871556816673175459152636958377764798489836132557552625298135692951687679172326162122532324873868836582489521116328559682958244816464692543653273927876172784275829278423677884176853459538845226242174321919415881225166839351774971393382223691693118672586562859877116227476446735583532287363249849451197649192649893999626839813738737481381544532622673165144297169697734668911161227533825345839898561926716623734466648161444423268159739371542967521325369781996712683511554649382413938887876556613863897261298328511388966411961246425231248969719746621262156169611213216913872745397412426922882892212792868142552282223714982172271449525338574581693873261367474497449871618965924291416433968318132928179764256575694237423253955136823699114669118431163377562174656815724171971893818935661877232713285682577557736528984171882143359717755399972514312698686779894854628947843184493653511977766242593286978377516861211297873476424642338245796272382391977215746219322135694111229348344955438938859962411711813636569854285978853747877846826989624598726323197361947621292881742182852474672397392952971259122221315442719939668663769864775997827261431323267933298184442831412127961982298991229917341333473465261268268957967848563585711956472487293187684367223461732737353591119397155381992227391462197345344273967485585697326252351983497723999638276635356762996983213884163136753215739496485173384571877179734954527455194699828165252867721115457182581849821636941125886886422939278252134175679689158635367469376281382689247984988641266892839437355523435133411274389878951873518958292693933949357334138125355159868827198393227831333944569964848631239158268942965267594388762514536432156831126432271598364515847478473165266697714763588937412147984281696255935292458241881885673182941555936456581394382479825233226251644378826845273318271783993618562988669244769888696764954295151148994817162159728485879189584586276667274367348276653551398536154799315649363179633867887749254513434886812118969345934586411761193361941149845758341698247213211437531435397872695655377197317351192143452248487843371979789425324517653875793587714891668699122451226493873219789259224973975929122652927137194918819396582174975149221833522812682511158245632134946928259349497657652375827921314995629543472127771897467159179467828871118221986876592397294939712588698419387875424633233635596635483213141827358611924276724276615725928119734584575882342759318789261971843182538196231395125972788864848245386996699528931417685452735549957556295146837768425959132576461115624128791467298693585633368368739239918145854613851423538254126939938722216656731762914738139633614386595141623689789252954825166494153557417766544448643924521169454697447294656191853134475571424773416216571179144356693141971447687188735732625941519793799733589297961432584167127887146128366265962983132437138725329721645261756844147269862633154936979394478951454969846198393785373293538433457742735424243421846266418249464947228641955286179794235147864367868723697126624583814298984298984745915725267614783292988398186551949411926586953262359278886431424364355892476693727635523955986422636115243892163735167453741462525135649828923285789425697624766277622593384592951891359912477884646785923351446335459349476164418176567692736468994737664369619517943612884519299662337653513454158328585836855691714477728154367187836328983352423669421226551149833453241464685859872883336441323557671625174558525684826559572826583543949484225783965518566647375528812759152419715165912574282742513678573614574179571627945998248595352412859255292144736236959798223463437342749954327749323292113347479193177162473155987295396528256165363168196481888598917558363968484681498927914743544188924299947496334216896369594711693912815634266567257763793973132323482855251817631286466553855175293477893873525534169624898394723141729996347871286147427145527819772771414172199792334947578168136393333631739697821213861675477197428671643591373384578525163862483359313552678795142894499675714937858913259928523612841797367661435234349331262422595674411265287611134855961192251627956962479239122416892982916958753247463484386326914283382877632755481628136667267666784971624788226278971537342998576852823389992627424466179279925499582799698759489735422338229648585655524377216287618841643597345899231558369887557431575633366735658783528497951672639183317979443112353282776743995893124711655955271488655228417885287558512997594542397798539117625361111319868212431999742742314749849761646456698688462526746929883767822456115953688748313914783157738872473857114788618897275469133819135211711278929718425841843933826446426433325195936499473675946479119752873482774493249596989537338382479716872192425364853784526345471331827927159575858927469883329343413195718655148831666554775698838138517363755647693336593162845656396122497851599822572767841314943545663357397378525571265384767921376591131847587845951487844525552182294178716599895932615956581599619915776226194487647132671639579469836557955493156758814866714751523266741389574148839315776149191297771818755259931751328821819828595576239745538692723494564455294731253226678427588727154488897251175496952793442312997435213828726254748827251379558281691962742357621592225232177985844929993227778837957461566245637928816127694576161886732355798488168769439765471358822945525243959824756623149974855948479884988868243895198995369643589558756532455633132829335299448482257699834387579661583192136763967636617935662538475773776341637289839521987229856323689124276884766618796527482923262273488967333983752392931122436543671565297474659788871872915658826862472919464331127194385858731325442532467781881591928483355265698741987644623572553482516922372246243797258494559777837418645749253521245975329386868598452725641873895483813721316165889859423389678115276547568153541426357575432232759293847643886927541298631843897716998642939512265364136198487158736491682533548164476984722426388837886938382988414891362414922894672275993999721919935275557646984292671878831831734349775437136345412489263244326639597949632256686814729842273835775368129334893473645539656928575991712744124352525967831422169669631793295519669155737767864729772739138489335338611376163444311464356194926349299226722954364381525124415137946857427512928347397898239532326891442281383117636495297159272751884812939238781421749434451425593873965877645677549573897848387664849326979547291247427991828574868771377331949953674474445282676344372993197982258575718236372916433522832529644471851664299491923275346497359687762827145174965372696344869836593575288685981517667271666448187334742591988838585291147679477119562712699572321648742388335934871141299247369222995223845447724727846751566388476886161584265626319963919436263741456485611163672667857689395569683132672587644789464132142597446657795953616975919323425565297753433916266753244255386842249925366446953537851165484967182983398832527779343348886382979167496278329977911244913539626623352868689686366279669812773434658645593451976584449221488521976838287512497146479391338179165538446187236939567486527324228772596114626118155783344965366232372861222832536995228513939441567643655736878467988738819753899553827299786633229973753737196852123742619352473479545727327892994267436342478525559929651439528835566179217967412213177191941624169666576263894924339139923185381156783418688978392284275363791715374493361947866984281627885955371621835829516293511562259634161211194676526134374421625577873893893259811313749171232679357525814139898839183191113259183734215516395277185374374588496668969429947454152578895243962426323153847672986933822235532664274478762418597199261383725881297534499431389877794721983479488131459493329296964235223469287981925854175984579982493638656354345728224713169947176449285728142523335795891785492935854225128261483841439497837829494615226932869253286125896588427778188779866761178588957696336194892768654219116764648418842439728875648949849526779699482525396273645539413354831771618751289797951493223457739716767633641418284123245588242123697451594544343654877214128321579214252696921274551261572393341159464513214131575582538767989985829361562773819356419365962948331345482568748653292217513686428443879125787543762863512651391134211212679323588654794868877889299219466287545289669845722419328348264783436844789673934163984617523871113696965712914419687148688866976235719281371619567362929715382883353361386247182718899879396375519735743466165245925882711338778651223559155567158436697639487253163498293659354187746418346961266496326579494713477917642336342881393849778247574265827841554641769944821644471786277851796168234137499452879847454137117613325727456391567452276578378928259621355875921655762299916798613564687275556621177296286766526763221926472832929648247822464938149122747839921974788359585777671573657339232328686491348725471528773314227337185635658429866997764985395938637279544375252741596884314895667264217534958122161549969249684311721473778669775828624537486827888825281857614285846298846417185866364458228526991519393834531926543886687538126267287469623713346534283734445152869586556727952683892154496911296144688351944993271386526226225638176811884173391318869471982344142711699997215236912748736869273234392172681214685769632217134346566763731831398774526737438852497853135297226983334896438392331125328637448836158347979788911823433295828691296938626584475565798916387156256648519257494848397178616329924588247142781163882699359881772121934638796792971128154932818118291444323782889781685868957757565699929388375243299786461945781249131169885398517575112914563587481495282712451288688688134372811749266426469578336194787113393277172623258996828426785485614911617768172872443174742271641941892567363548673988353561534518587633267512468556472627668998747311535265411256782743498398162772633258687793261345585314918166238443289968264398745264564471983726935839646165738345691127124375878251224719182996365457967485953776787148146235752286882628214379957661464176552569257318918336221876812317852917922642433355865843423543327417198252484518984577729953274814513337355615414759529414622992341563398757287462413343694784726872191755573218249562822289461147336292658858573428591699545657261779923798645786634684537882617674565823677145597856299977136694949421767572921795214991694362555486463218298257668966926331474913458567376181746532233645683164218154771378342994196351828925235139396223957236545161142933356748667388573285738244237311544927784491247355827621943764617998766995898533915667651825275864629298788541841395851732248724975985753596578587973145268939326724289438985834531634139821743323642574362844276247451322385517879836352425733336879992129571247139654875447561956936937873887599463639164819714486878665844692427671587957836255743588972339562229376852533248692841647758614825641316358662421495349125774155517637253918941178693493771275525287982372275282141379556562914521229447544142245252217662762294325257892295318833143698873973395718587516946719922271166344673954782532124785577574578213559843212464565823459117364273437322633667192583728628354662894515677732432579841512436871859291656339461527481441562149224934998521356416144287143336247531811561686125619117729152765517578434572983543453925818984523261113441647792925226797494746151151384238916187518167816278773777885118898496146941621137894271849358228857451844995997667173955779671466181974372761436123217785642676275363689755897498729587842997615131389265644473253191764752513815933747291538743941916372422612984267877929783876967694725875163488174756534722417955327893389536223687241511649345776455574525137385117958913825483817463694116835235928718899427517133493713375787168838717639389983222581627185792584444296124922233361333939497545988287889189382418539623652316784592289287195245987949195224782132249147847451748533431742129311534437112746729552693667877618651184884867427363333688255925779777945421152877119357172553139896589921936213923836534689882759318219282712982165718166833917937647556725824929499185668858649314858429891382229128574259913922217948827845156958785211119382592295976651265859628237138166295314691266361646597291913617227647917933448593931741631992613365955646878728829984945133184318792265732613394372576168476786455671944293431758795312148696142597591811143196976416519358953912751739733843531161611545429621685767629813254259219162594565523988649539744258169966225459912281954916789284189975486832821149935315873792289187524297288282164583971239357145796195714531636875262374287992369869439672733411825942351949175151993859822242123616731724632926924289161285287547119171534535126434331437855488189985137389781323655678452981788586179896763885258726459648716464161849416795199861395369138664179153183652951936966473375141447342549894898972667314522925959783836895283971146655996277672538622281799995918563962579235378239357326115694349635772574191823737458857317641593969227527597761484269891654693898818559199874723238227161321598379124134911272593294888821869697598891281217346555833715781648387257174284996542914274642695413228734142531164255562925174515726587981923928443799971477627187635423594796528897794621382981643183223671133913671932961148113399521678781161227319495498397427459425293289211821859288117747583425823142951932917825625398136456838142236228318889451878682225798492614114934623556523481482951789849249523984238789917144238397271185946134446214115718221959757755257761194614124484285288154738233898918378569886195523427788592882662477233922631972213881731818964991794984946133344521584564259547617195587199313654792148452316166765294993923286555658483513118674193482664761415869688948238196494732877253383768626421233932551923911615733188841572493785831712111161443632525563612861342323314418452715756211461537461681922352185246611229255397833892972196194698157268173592284473661658256526312927725975184539774739554294825897679165573734781164918327788277834639186368737843222943622337199463369975758321532636976918617552677665229851894965543222873636893558959944923328662884961123781945731623994225972958344355423415867718197418896891614948478619284855655476355845816288935885693178543171696269549167849328877284937233283898743637312242919627819523739918771923643766956817687438719691476357612886461141788431281149175611361547183287255987995999786355281224922239745233822311269793211232514726589912282313328187497529569831589479586716837745465116963845993739677247839593138438134318786968815629382242344186978318975669451993822934257564242972678134168158348342646482796972138749245841663485559177255733934698691284248387841858563145327776425434747675358333178371892558191633985652166898195731819855753614893356352941739111292276641781269375918192165976184191754732846764254163257645133542516878952528933237442296618853993581374536229321164374734597787935863394825756842259532761538232717836316771354569412568511422572154774341366621559686445576613727275598625175129987622167628898616155816413715693455451113892752266746266546115339775885964138244817433977576999976454858352175454185363929599496821114928925459757374564314232714613194985429383999345566977957418618986428345535559915482286916776565116831483828717255464855522167477959186368938753288573814819645349238854547492618445636926879393316971234954914848391772357276596184115499789163782868883699259756956495362267436511398548553427922551976192834474413357992233824868856355437764194329918111483767642176418165475815796597635791454641281187435714264813455725769114111219742212536816141613177877278378152363315996698747855621338156761876217615264928712263275979544532143793197589259355562158993445547716115763677682947243922155698368869335681338432145336431881616582514853885728921353885873732479521885173543425459627194376513444333739983215748599399526255499722983782191465324133184589117978966344344479981294591848649436222845278514493412761735598431942215522362799941296368627559553653115231399293292828578224267423623136155974294465222143459181342535141537946272574776911817841994497448122638885153642633416495844467268332199594668831161799262518224135235165539323327387293342153456867374617537758476185398413637114739271723496223621131879143843214221183312923284277354257431551852861291272589916731146769714799985984912269151612615272142411317886287293286246497814997148268837455154263866484165454167963745488984319586114521955352947211659546976723324765759275268879944788364836266522977884319186169437263545952693889468787685381224838172566634893748416275593693975772837481869133773379739898276543725553438331517835898676484937299535877691649322891557294587295148525274238159248273892239758353294712924729642449627739614448657918111371235368221783743266831621411347469876687564737133625586527641386253711456728522773229771524551966236161642473539751638669914999592917961297541415457213193481241339935954688627153763962299312335127692168829515771966175995216628378473254214571556263552172733569297411721167113628774879931376285724876882572824699886789896494875353739987969428317864853473748272435423928849779366639866941746989411612485451376838714416361958889848987422538921771111746732521494282823965756724824897461521541867939234698271542811546586541515398211669475428599544183745686115825861718339278122431684142642132618688411317129352318622675777938885525646447362472233389867459137678232665381426538857733377279836638694931952614588242377984867411279562656796144957174862157888814758714473976379966343457135915269149466653279176689834546926531445361825243149697489832423865998425496919213962619582613898488139579159179364534472533822659463418223129936378715757938182138258979379253789549924626424526332938844759926861752192533874596688462736627394278367429616955693437519151881187924555414119658781521536693611382636176575339117159291641891828181688126658558253262225295277974122834487331156361373891297785186278516237343758884964972741159676426938751926614189486551666523164766532613273582429164229762877232775835132381432338639596672384451833335563585617361219767885229293426962219679494415389867479399539126247114843373711586324243986996619398683818267326856259448947497327274354259882455171114887636367973317623619655151951339192527395525286436489884989112819951779122448182529597995785876872838839863761711551349717394871954736623878747793826687316783878241692768542321582258989457735437496463316436385499276121873226954599719343879398125736613924528867737762847757567921581773123898462226299864619311358326527795631742461256697537552473924573134217334358917558313431621968172572384629399954874196157243941287315656575469746156751464767775394858495841814318773818174731159535354747718148816185882354367219535897568371142658237252567377239618355171285238151764911627438379214511528932745721199961693521339679621413566937936832882233154111962912348839513185363375571879866156169842883292517834371357242736342226495613663335652667379452974286735385449673137384891746733252633141675542643352631794466671743946993446518844816985322868931224724957497372551248658645337349799195834541694617563416849462342349622176935495241482154891923247919215718347852898983462364666267186656379954132831156383538254752415933838232424339956189813287227791184896927349134632412729449229226594186719612964115276119921832461879449399586875383872764745872958882711658235753831197379757952839989954756321414513139114698771659544828539571819112992361236182935315168915995895995121124622715236731532921499997597599962133445916968149988886535284279361414895489384282861412838346153283671119947445529451642565969288445445437151412457391436922849662995526222262485914156648821777866217829934162563757422283349825535226997494548724554662886767291621319948383153417763842417127178198982819115435119483423235732531339518429842342379511823385436568418249123247264114295313756393223146936351965366665296459189292495896411586912568977513419329348637377426115152949679818831665437254784284788882648628482457898593751278546324387238976921689428794811643374692395972672631563422792656962429649137393556511633792966452593446359868213753816985261795843276792776596769939427843712284591169236765341333265938118216555561474149562584819382291812467912948242187335614542641721865545738652759473833176249292287631113967922858221438851869977639739914695789581623416382277839891781159527575426655274381973752721814765491843587114323329574656537882431415643433765975923477839417631669934267533829311538299249882748732156798889719762572475352436398384863741611486543769184235744672967321372329874149937459824281475286214445321624426241133441377875485718239281533136248361398975423883686594646749342178197885316584852491754428242448158836366815289327383614437551455247762342859771599659982536662184759983166123162827825877524522886773989581886968638924666117186654941788766351113895369759468923296364949564564743258124159749958575968714159432647449744628622569946716922854117752625976627863756417998173473147297685147733996626414112347642351997511183262833453863896651675575215313539591736992271835991447868388539488452941167159539663357976718646581674671474426263486183654517165122477494734341579177441772587888925655938442497295837994132719492956448172121849232911412582332416949747958931843833863911232362865838433325398571656956967184259643485595924761835421915713128972218666258534696147137597798486617373988839189682384934583432982617816678576434552933382524622772552118855487742734962123474531675784569997669733139229466719667135479358825876178981826486343945482496387664261158139677212495833952579335652656449216835964346532689512965111545555147522845587646486572173136461863415689146889437985282484838895244692514293136833331467749529943493443842244625757874546498382629764946251412885653996535353414479673277227214768858491825255573449657258778234118756838354892134978694579273574357931755133135533381537544681925716672174386738956997641919191561127225543125899398962152852996998619963263633561356451645634323163868174337562696222274636957243428335558295353965971434927632863776239948363558844867257819186453865748564728582977682372378893178542397778527513262388426385592346475141883432648876796225673896333736813944297874444156513781314586155349747534767162612779891157752275948771156753893169949943518725228185989664843148832826166747248947445291675878661832338811625517131559616973638611833522563913616651591188351121183334579769129674624622456467456778936982893741192464588223757425126795873147156272539331516348658217684997792318451473422145799419277576344364198134365558917857665412925341659452777322193877533962254688632566743464563739473778984231894149713948385667694862749153142355316519348793452737991886189224635276199768993175864931539531883319799676465572947339473315284513482438874331435146173294612951288422298521562856563672933937145876986737773858593759843134727394992464131325154327291413785594893928331362857188897847194543922213936952226724584266866219591611992697798369618134591122961921919167727553414216665666752743733638499144474693258614267341514766596591837186411161377111251525275734696394944931968677683544141523872412884277264831578632936186373412591918614985132885987584911342489469229527129397685333723746884731543594194923671292464528116568423651959349516415641193812548289444439453493933496494674727535568811744972265493932489759492838619574961176515887125988728991852798184191551938721217178777862822629128974975847856544322986178231133839227691275828241339836648641933834582598979893815797261935116298636776573541622281996998488917879437983237388495585273822793478322999221849678236533823983319139229131295952765396578775196898818711829314479799446222711299869749821742268148873483644762558522393356463266142281435791844575613938574798382418441799774122582774522789518748571551526928966133574643593356193957117788583986333676824149538734533282938336758915596991844726158377459272756547987675658921525341966873948692388946491382333756752439634483422396735853976241725956817346586616189664851465445821392125763223821675961916548119939141515726998955541549983773666561411972561355798733721986243798738715869885463235597475998267938719285253687819357885384299782452469865923694628316634933891945171847448697858678231523892885391485917766441397919161239418837865355921554573274978992931794489893485439777184369267268338666555783225182688815822437348115659127227726873754334376991891454264876546124489691127526596531845322766477715564666327866418472893979615375731186616382822659738825675293665663333752932185157839396716172437648924915113627389329789376417962862142643894532543321247778475559663827196448582814837594331775631822511154792973245893316283735616757742222318533921332848291651235818119241882173115388187252364754554557545743953471188794829384648993547111385432521499771618952741194694613155395235982941845199117456727913432844332335398798697323993584826899223354874643491123312669931629532655132485514625854919893854895851353481942292786176955339518174118346329438685283786218148856255967589422269678946556351244669155893734849716599244769774248944423774958938587591967834246139369427822714552291276768171664588431212262616725723398195251499332232457418178541771579974113135248374924721665641687484794986499217517878834386345973341738367278828596378696229525749712527235916866473142744594168937179892492977514727881131537229836716834921671932618712755456338988471853719892862732895241763552487452733592777748928531497751789435687845813586477111251714873724273746236574191712716686164244542715337963363342413962477879233393725311637859189276322188992229481822873558446363884972762883822892978313946561749136313489651749926747931576541353962191955128819574166913657571867165961452232278464964237875859546131166278384121417639396789723335322838646147287831769337299521152234888482299873857661489231334446734563671557632498425347269693264519666711563591433856562439646985851421467626647922558689643132616647783335988678734572535847998562228451839587468616748222911646757593674623257197672473563626291939196547662451127244499661268342151784459585585119448393328233348496731678217617542362592414637367839895615375118244273313666492975855225752243855263493669287374759261634848923538667923842568943748611174875928884576749895677851722829295687365711285164422296257338147696321692798314546764379981884543955113173982346911337235213656851352569757882562583296626861545569615578266212259578138615658215164412327827843888681452817626923462484266859927875821991552253388436732216118785267356291415633474147357857624241755375415867994416921785346759624141571965665894586655168533484797744731285774112665161713942311974447454811212377772852255375361794348629631756424598612137453523756616578432974323164166811142326876323156342663869265745758979546278472996961356262636999896841557285365769875481644143112786631338764139117445598892113261732754429822722465814683784999863937478259321556935393561858834926653367298233716345581464336627372497226949299823271115437998615755466158968849156155597275946511855449236929825429867675277617682235148748629162837593919651428432845698561455548196485341363995188557383238662571197631646946444288816127784821821572546139763979759351128519481438582184859155921944846786624757594792986971571455748416967442981449547124151185469219795537625658592213517616153973852284846391151161311161665861135333526136249246166262228513615928368972584587193599711459611111747525662911719959829854714694776418774964124928799674844214669391167463855346116962345664931949156781966588289765898354756749733292397744652527997832286868722132159833297348136618836412374366471253561284987558331861176393949864199217595259972957954584776761961871521944831926792951327883989866818791274374934128159728995871451139257474866267962932622198244246161797163578374367538638532755351328925363988424166828662636261282982498597448834316271334749847945274914556428749255368642426298615196459871744559176739971481341748373259223678675157945972886859676892712169836321113499688163921699669866647369369698556463653612567332896622456396259785849199235867145597621241655622195994817283886445186199254515714193473191288721238738642173433741977176183865876748411598831994182888396663149713443582365454762839668315528477622859985419785857823644984721572556454884862347937281489749786742476754239363955763891674643316342827329245431886165122475686111391123926558536133644769228739758759951696339842184351362144819783687636359242341665791895286943382943668462685552811998495898227221576312461814985983723392114736762383427418716393565794894266722841173713483992347616995419861145932392439628742592191521416519813922154126799949247389329879749142256647227111925743665541525428543196898518691164329673614155987296876526466461882658818322611429996547174619587651541262432553442985692942881555598513755889123222671863142986435386551939832242398364568656298716351342234247377283548293711571295228331745471189232941211367376887729773111118921124934951677145715772173173864865267652699313783149356454629995511364423244492616529264435425865882223435875834386292533175542938949282658131458977131426861853755653717519555343944976552646719355525266211633727214769713373297658165775636818528874744972281945751217579259992778153539647622186196853757746823617859713365574974557823486967328893852188635122375856285771491189255464335627744327835392221328244679992453126447129648761782595843742877268613414358213181239614776962568437567982793181193153338915161883638226495683682887218198493471633555184541719897597296145373345689187431491371929648242668892448247888827934835879782857646771585372153845327814663748493169127434648722334994358523463557359982445126248527753694939175798697721321744675349518881687956815476497579827332271948116791371728357194174697715718618278295356181779176435195576326943751176663649536268666214736228483599955317251765421121484814652991785394119985516628756937482561547867368355796357921693331576439215841565134648249319532679191111584549143596421331273338238148286649532681322334241563386189896359293359371493617654971478348963872197134953313878265112935732898198781175396673488898972443432321199186515962291989766811943265263161712297416413279749843159465661731758489929335219183387224679633697535426348769767984695951814253795337842626682379638924113418687219883954592728771661861192959678557742271353118964149159135991845517635648849635938942755245228667321774547591893686851373684441261237482122111378843771937471486498236447437454337694596333352899612245977622944793142764978168938152538299493762964139527414116919153962891266462764715436745225239426694611235491761394866478899831489749652181266186561998786659676559494693618326752841627273131774524973223944527692642459652629961356578763113762926151915255951176623598789165245659649255649746397545314221524188952855328172792446866387228527311586916714973116693219821673382231821581878177635756736783992124295143219897568923495162452562861374574553197889138544668613889816253587785563465218564434612582916254832378614135871193562699791315786894564855332341586646624535193673827293624748896459811354753119289999161534313837827842126316224113928979399673254736937568971271462268187145259432115851548464591616415118623565655239373927466436167577338573938359367458174625211867671327691434459985773133544638476416966988323219777871135497233764358846667786744531633962674949364947693371945297249434682976791195843179253662375128565553132131614811725171287589336871173285235616587974983741552139147255668229766553831194158252154768224835791354537637822636732197819392761785137888469523285375954773858917428187932983191628914481765565196914597785185146845273248584183673132798217599184691713661969227419678488138135384355591696517247994722524326843268727776225839537819959372854271831598229692544223917935929426418457268127251572762454846787327262977768473421585729114562292817993668496747684146145392391471279325264627285688272591621668665597912464982449356395457413269518287424812855769397733463677427145876157231696525387423779492114582286798766318637478635465565912111679345965738464316653297577777635669145527352763237446184751423968772223847913225958456722762147824926199799929515449911186389969452852731522572995796895314319335519672624759959527296637856879219266327593576428126778553139949855476134371812524189935338221115533135462432573981973396917197649942367419657845832242742451925899136776721394776981955178171659453829571519867356359657554529444634572521587212735689434775528872228369317827989548381747299976187913834425214148775859568465973663835276686981757232986832228564746253611318263876174666876523877483754763589766354728296846124752926283431396922383191574276559642259492421112228427574881426379585424566565577419156433465192951382637262629458253786923422516533695391463486291468161392432975234654689828437573368387531617129574932813556282418236867828538476768848283692732553139891543471836619517675738872183953997333395866796463936613711195384117337712281817119569838847365656378949966147637573446218835491937622517119872528742263936576558228369861836978642856959586132842657542415993766832435463965959114757998597753335467894189684484758537275849152698366575532869243976683176972121836573935192114391859157653754737475666165166585669675248422885512957554169697154111413244332772867512817667372662592816238385561121382947674739878168789518954865883967634886864679337277962356834121773161736183116623318442125426483698561258458919141884185627155414269274928899813889397849555975381297598376256434463236161467985994643361975518944256753788376865218543531972865279743912748223734478721717783299264454528248592847699569347566562717247852791883533478392847574643356131191267411538357441186541665367466362192255969512529253229634379895194228694455695619821674919889389799548884342783765722112989897675519396721899155536626724593259619648299277173524176637986291161913732658455586993546234743658659821976611269757992514878133886767854424439294883134411113382957632163586495773975315225443537381486734363721917337747281533251298761186357338961645453495721738594692216948734797222451812874633991212795558836547673754842294483593562127798343999255437546875125471472141964153968419153631142568515618685899285825839283185331161411279548456938511517615126132153179934778362192942792294815111317219565381389473542651841431452161816434353389623678762793738834813445869988931196863932294875256499974962644553238521539826431969855332495749963894757637269255149653782354341529993565272197589555623747262114993247754852511555916279986186475697362647797742232849736245772229846189767331453536398912377578462961736569594745374154281827653649721266115379895191428389145418378485885422282682623351355786513341719249457516668892917476826248119923857597163741932569959663373265341971686949932278173929345651173171137522413621417618523187985282375825956317247917759946644162377768263773486265939724487783911676491667815322814785122791181148676533314744725183585664552655411964284447818326655121476531951155463796387128774274221752757651186346974585453668989855129774771415982449864921818692193969337376764997873364355114314599522148714193769186419819239578329423382682967855495376287224946887115363358923562978595296691277777394528319654741589819568474241969311141995368317386233869383368398282371795534252764849766993822639756715257653727212177766847919873544169725886696793459943623519854148919498947516842744996347212425315344138788363435724438948189499824227885619742213636439227157148458147586569771933565477172675429313852516464356592149646894345255439479915249798882846325648954586434324737615594767399752546875527748111772221575295968212799339913793779889736335731532611533413672747625597129582635784736967113386147476287135277555827413924331834661288879377932513244434657739186293979917699738942274648211219638926815564336239357699528639592383763318542253177747588449389416682892646661958622369993922862428698853327413164289178361345586335199331151356664551386319756378788629715648295549466987851578246196967322231673519197773829632232726557561527757667334515368479551295859881565221743174691337383392776755719311485681949962689717885449929839956325418285452423119554434316282723343151495625825768992421939911234338367729291766665687779669672994729581399376821379945882747826297145165181563588472849924696215917324822957114942125995354765245975355341151434535935449715239527133666669712954446879759263224927173639589784228695569586797187685837785743144894459297757354111494162636839328644562227852153282697741233244996242453127222449597252273476666389323625237351118824921357923531362613225851851731932946638861996956368732717769662855516293371876592364535191167142693312538515154379622131226739997128261921525742693895817481368168885875817389459638118845772578466833314932866728638493969126852424645936113674437366552362936968322723414671914639275399483178811871211577658921837356284482362348358415251841923648366795821844769599824817998253887446838822388237117487175989267892484364372184685323921417414183139455773871138569752782523712914948316572585339214362413773773265985442581812822158388545613828317749987876158263979814464546365938727593218923129181417861375867639378677378578477517172199585338154812528365212842549739676198893363425241659733876749596115984211441764729682968432382892279599533698969727893746764933959997751199774656236589165458653433296215173437149587494837672924134633249371965824653844692772284447649666653134488571931997114447191957692815233979972959559883682786435514917295191286231128367534956496797417815823335335162694989629298938599179313725331378776627436338178875815166587425382844687218995782272677326167695777135744534192229476197793442818511184437836157884383151384364123121553136631398637842959286487788733135587627379843937945583362144346885545252146348922471696898222719253667862484176313371741652722745882566695992532647722677749892471536176565616869632797461249487429937573833518451528254378316937838475768919854795611137856449112848424214178456826829593136936111841361657493963554494696278878862987833661757912431699217884669747439686651359572531341938384258871748393327164317331323241645433395235446952471993924347381714842354777372499588771193721881164298665381521357135135396373479887543169291136838331769386623482145341249342835656623659291538532155968883965329971144953996758843339217493724712624118498972765997897537618168239638568256321719588332882697499462397112643624562494572631471215335135279439686834261334351361892293611544511173488511845861741869139273412528766517682156221296118124355516373922769775476395896697922562297377444311747377856415116252359977622142124849415955345959175952722826917391331615948533339734815176667386397358752595727681969457923531159774559797269827813857537789795662125984699572262445278847716272374861229277293225732615385892129495426323122243626666294663864684924555847951212778386552727176467713296871892157776339491198634395513989178273949463391499153572822121127733926962192139145382463564566148449134333345337654789136373775618411823145468122589582917184645465556641185886925872952669132578914666564942534919295361264419219455112495447847746163277498328354753882336999673378485235966771245323555944891128865378763341344676911494783875559186852974198465855875252438873672345342741666959447953194861238252785858815311343138336612724448595171859489413615437987158571239736721649679839362958662499422485155298955838745839795834765993496896691273946339287579946345575244713619894435333989984517953356626876756187519798785936521746497975549147777756515197658732279957411314972546297587352914131125755765952194613262785875377278733188583582943168235613239855618716555793997112825475676451911671225684863572653989546161259116128585961218373571414921125925637374859869686823863253255547919536992886744326591716119554243194674652325546295265766619924222579944956499118523988559549852918881285735635376665499344328418286294757118536182621545865585393811376886738236388432817456876167174761233156674427617343839335942297329525182523273896178911483613334385683734941229826625644994126443892174567479451911565744155789179175421267192172117582895453449255696692311597618356344878112816474134263193842576199466266347864275571779854999518544259783468775212288164453313156562438564431841158854289528724369392257589472476262579329282517436541378115352957114845843993735379296186521696396688263462624931948447188247676334139255416618583437234847584126418334754314163494917489248548979791266476782912311139842785672451557984662853873975758936474528664262628783979156622423141492347562713571667662123354557496519264324562527373484699945773334149561916168776913372265533855267193293898665145361486839114528228437616351855271328919811251163994654289264582613383373387473652116425249597646875911328955211412933446384947515114136721331351443777295588349649942523545579593879578927751694596747889335275451298981655623973535223135552176195984959321616758278462726924623212497328278843669596676358629829858581397171335274749455225186971728647235267784156182494992588659413235652219514213341639687432473685139249191499534686534376313651163877776715657915558874515759755932699268624414758535974349114696765571332651925768254668577727372728741895887353157513251922548719584562941664969619824894947718655991284159436386266536821681355843841255187725239863444482326898183197516166588564817146268837534834574179627464833545162734487759115493464999463616112274612377186635752151976237746844314331948581155169156678342826335567641488493799693269182164686232886825743823772998996192459962259729283565741839518217242238242114921357729813753564377581494495896822583552726972318956875225684275323468521227347222719221689196527743595516239832192924182981521394554994595588588789186173925945498687946485334991988585886481718676268816339527616455833461421187693573295156816441713147979977645993192696176619661975652649312891911259756325282277523787597665765769525246553779422689338995461936878382747193144292134823357349826644726535728147249629745468341993275726388181894745628255888867174645263861949314775679967842558892317684576516773231135698844723753492758388965177169538412663948387352271955562357211942997382998633849844381415125198287715995656931814321252752251868547926481973953364477443547423266857485472676892129863197738945539367895852539732517816578373735551329615856728879559196923274738649611985656533477276767174436291251247792344561288754452784413327341891123368476241575552872292825914895231956579526861157267457737116527513151992677673388922684385836676979978925683811511668186569126513489271738829869834632377278628857774737627593375737855552413288944227877526743215989434574782576888565216888199486429665124369858684915583471229859715227534518366666913231352236197617369611426982572894828932549191736786717495543621992783837736797374845664197269248315687261641366741295595391314944583298252177751669127647668951398627432539284249949793469254282934775817716138923883228132341542899388159552443629831533756619889716692546778831813865139699677447197151637591581766268137175718417113174814851927433334942312141841957347623694346568952972175958133756517677899546339426424817621975426272761795237258798189731627268675841929332946715692665537243919474365287381851311567999623912849275784412496426561161922222396112671991148579115222313424643152298298381137948551579711154257367285993985788634571449435758485182571869336288425457491765692991247323146653495841669635184383397119314868217689645598115434752452372568478936989448348771145171397452278971568412235992994412421155262968915845967456635974115111526612492975471914567853253753694354493599825915251845159425674999339577568949463446941882348637651417143947773126619686719572227266869252839121571438998845956661146152233134971914713585979425438123145247544535795942438369892684987519354715275568699525494563859491325674181446395147576822986926956414722764373876432113212793388928379344662848581771999168396177994727284277125182161967895493982354973488989487573678247767954188465593481428176233146812496794531989227258955578772241369949382379181895689236892816842835653779687756394217686867341522887154821685294614462946679512788482773731149599835928675535593331596758762612494985733284633865894469345596535923475683945229699946868417859341576934218729678572168897583415442933354115963718815683332461995188322622917267947415726763852359971122212827512152523188362476372374474564215419551748564712337454691956475815849713559929132767126121657246611481745636438594395896961574124163135478919768987567942188591886188635336282989725328526455434932875316814911873393245878212615782112682972167286499876796846314414572658664462811786454938658998335481355672662739263655519218131579584941196269985231772681483438377679769475262784651718747188916673638466772941295376149747637174326152638812832457851825466174515121274964246381165136473181421922938335648256251654381698639631713635998814338483821871633584655828316197328257348425377526871352172689321126849671297848326431427675595616289146245827648261213851299659267271774255818734733918937792718435492716286868221521313882152785224394892477299141269557642828341568837975685498593457111382214158822628265513353597297225225629512662468827233471188899321862722876992783496643641429449326396573162231468122365316231252782327524635571472598927549544612844575838384312469241774637998261598972798129154178146497195812959747716618613919613242951421526589259619369649519623816848888426322182827871711573843416294925647745836593664519793924533834387959532981336586555746988261598173116114236674318772379286344942343854265722153921157176589983117371585167362543548245893781989626675271986941374197566744632593258665653146163463118672935173386142586691295431641498681987115718947516425857911148796785584955748388829294995889768337674159523351122841329717663486142457389613515687719581336574177222951791941418168115938475773594677646639568364164656394861119366921663629345741295724119199935526572723656131138599899718681142687868114715617456346215963977935611519771221846569989476753435895746712723717343341276651784363736297469548263475473137915331693211837689585732358542242674633743825483331793828763876143486659831478591678851625713416654118981837686643527489959289643944733824572145476225119927881285456627974187614335636417285283536188874273833255616247854363524133898216478783143767342767819311479398835694998163786843633552599428192661949655833516668813151972781856839784376526182862157144223296678657964525112298393987398517274938634185575794422729449289896288951468896375716876799697476985879824684129479147616575392899266146495715753747397744363342257852489859423586215889214447552235364247178327947425335657392414839243849761454184516872599639122935228184228426865552591463464556967765976828314847987933268513298864352932762146735427743583792577892985249343825356829167436473262459764777968374955851683239445461345693388225411885943245178613547195323243673661144358854515857457888182358693717131895354629354842641775624895497567981442367651824881333712159896583437652416487766798969964942581823486626355121589375272465623695833484998498547463871926576745217455745584427154331331978541951786259617148733166198284947142219625575178842247756554957649749791347744537641315851244917872741853527859513533918932321997971946287962892154444237357456253246644448518622956468194627232544918331172744948574372644456599788512618782985732157321545283951891952629826388483113967474669739834995777395933323528154529383264552128657159361512327757586892257448293818735775895451119789893537346636497764143678788646524867482143663337631898665439979455992985332554316395262593479314712819433587718448844992229259529719642889569492165353575589421391354422476295411835272618551579493735762482711894311462216253182454839967137216436462682116314349721616218918552187255345965388269219739521365554267692286625429331293244278614921788897447988912921233539381672649428162769649731742184922979124955752826779643616714185381273476941922688542792261659976184231724715963616765881946834532744725285569839596984966459682765136444891872812398685319266333745369658634715734691221937651833359214976446729178181174728611835746133756238225923938291951143516298454175787189471281385288528937863151628336253362288796538331916212364995691826834693355177168688795193643623296565779376173731519118263424734389766674271444395385111353725134998665963996335653154287457851149894489579291655869277812586491379526564472437923838598646285192952597935166747929768522239649734883665961635417283944246218162348694298351772499682996515491534384693417564693451649188537671988346576123472616669568311166954667315716953113658614334329813278988468953263418358589991882188887613518723853678426426483692479131271142227484326847376634752654671674786423745418145587953117575632999531893234936574279489236788777619788912493931358295197675442193961751888162286895495251694794981965943749957647966471539998276261653937712475161598649529245852726198779815391359194145858444514113879749277392291494979713152442727692498127236275563423626659711559698481293721365497548192973127976824834195129448193892989291887468741148649583381669757665543278951165828765984148914669214421126212683358847241131486387539631241389624487191113239858519462485413254582282281494369219145263793827265483581638955865767274442633348786934986779266621348661723146813396684269175546559226387472953272739145143486131852479116291428581573175314716791737647256397945882188698879437519274888497181568676434221954794721997837435472237768289174444714793465117644656322229137469739118345754497653374595387923895794528182411265482721258831118578938626765772398471485267367215898651235692721567695929635346815571583142213268816397369773364712658753963279969588394272596857922796972398173132852177226712493562158286984387462579281769898144158966565973628756554539419213517483947425666531986327267177337156248981546189167589314912644438853741784471377936856356319642435588566894821513187591122175116565412879251291498147259256656312731828733842881685381214769488551632494677845812331359725553387249278635219789722735796231459163989842362229191164523245279176374258473684674689932144651547173477225463811167941154598543158486197533713627412415755488793432941683854914744864338877636978172139394694876253685462124622427529449788175689947473575936976727551429316765768485633225611261925866775442716445917128568485575169547161231774354864691449886372335921143119434819368312289616838229222522464834751579687557929741762814938412766724662216818872846925318958225775142252731518582273794597319676279384356486144251419758567334942769983622234648578433378999473448346418529963829562678567494648552282843828999845913648377639375472565637436418899963889542579916152625357787556451648482648538133384797466122556618447591332245453622458948994643577226148353777948172866664117364964578493669254161246792193628193551389545461655768237337597397631559493837892257161793452261823967796978557662477457681796768953622319153729946679337396862557828139935395399757769488164218888682574814422386952899686996864632769148579797382459427897373735899714659419236262292871518779169139484424236853862958199856761663591822244718995988896662237193451322535896685173741497511218453474526195652158323352912833756993354853317411333457458641826495638913223763875111756619589129572363574751937437413163811812857173211674676318159354545515699495625573938658453377629961429348619166358194848155626622553566327232745645928734295745899245767479553197598461679143533545911548482782439266232125377519999144772941274289692793239869858762139234239438398466689564449295497329523565395139788633966876496126168324854255124875162757277789385116471785296682288252979637555955583451979426635448524487123597846181177919571994856384875125718395392982748837213739117417778597926194268941641712713343129768458958463256291271431564764641475268915329839846979825391754681117998419392275762553162136585684283124843859314567764976524873382672955248179415282668119586824871965579375225733888798636127494479826744265537714573226736464892773347652913573829241613248627785118663653919291294154457227786376922285485494494717943653421947439547985515844114897162494477129963751291674984463269397734436331695625673161417623542215547169128688145342262932175385638344335182886418535517714232695338641158337866618258838331499821675679492178638334125938967847995443372578231963464967642336114648765892613718944328983124635187744233393553346678555756228515379681811154478934789145656416833682652665192785252156521159533789844818418565981285735621672849614993833579167975446998865138988388651917823529953542337839527455221191773924918253385967798544844954929211591315544928697432724119399211351471733114964796767267987897921848821132427787354969757436927191973975915763587772546379871478564751159626864621774491367214159424428481975326484722748357642582834762658289627177231865639678869235381988858545358344886654438241768767442276691525883457779693568434166274742783262315972822167819214822176344559688265357443133833314411935289936843366919312494614954936443346829956546467585855159432966289871756399834573847451484561189965139659532977251885823368367162564518359446951139412637554258414745469493186187938289733158887242588526625223924623585898665479537368829349522872129598354882733459231953995972172122856335397632535428717184291413576198538279323664533232551681737436278885817973314536661727689321838625186782813265721882431452534285773252332547927996248263395622179484516669241949552368587957255182532187911114848975813497212719852951649749123928399548359329285489454417228499338282115946955482326656267196938746855348933361582145761359843717381724516743789884459575568629347218658221388267611548883744667477122933951777427462258323777414115397482568299836941772848677877397945271899783375232225972668387989387367234459863974562516433921857674286511496683928179692894887634952682521178379276935214581344638885937935762677271699957172435192695278654712528477472168291589738155911371433261896193791759613426927944175381268757836992853994694387684292227173766365449538887315164374494281457982415367144875361587836244287865996422126592927966648253469146645276377826916793356159285199742168675366856424638143161569424529387792376717169954258294235576483953179759464449654562775222749135342216131465428655833343317319633843346482714678141364595214277451774312483748543558917327734367345765892175928163953575346673495762242447838744928276691257486951964197779542834751491425953547542941618652835298338369765997551744793657739238151887752132885858217562234156842829593516684277888625737122716987736177744141738671953765834322184782354758829677662736319741938216331794476332978159679542525335867736263784871685542485645168533116621889276234677716278664416616178256163776132793318165395955662476972258751929149845474758214341948152837818721794232597417731723618899461241219622761311172943394162918912932893969989895189428624814615798887283172969467398159531981459237754152247973712527461448473285869354357954235375911845572881365281416291513931511584941228244661611219369441481449724736559814963974888733861913875238773553838235514487653652838441217453545357718245791955237961971696859375945758327322724591586556131957441815627347428868717452953958672762224858588464144788873177824989191475223149543821688994676964863819221524358638687376633118484664486436751513361187549759678934472813477427754742495368216817245315551383156411458865775265977498753871175616649526883398785514388555651922584525193432298648166812366467414856455686695558354834949675314789314762321764489771264122541928749115237293631418415715769841614624136754996136766237613576546888389754243845422133783849483171898764177369782884252345283579458325622247225293517641248495438259591614326645885547552389622436375246657111598942696714666898526938594295144847196665122691432825773973386779377833345584427499965263392958785567781138569119985481629794572917676688524434312851812772218318966524375617937112282458558378274725142592184894992246982719525786389428537815315418985266996574282123865445955484273777277813222323597141536874381557364944255376525338362857376321946321734351893335152336954575568281153468547769274486171427962761764991744529446674271212987153138428482743666233659668757353654585324486643265328275949674838275696924578884225132624581753579937529876655975487539866942278161712699355742188721696288396982963233257511618589438956865563769971285835885623566451946472758545543135614166311936929646711453917228668964484477967822492447727327283967396633229882139263724456263359177629832721712717988314829244141891884854724994682513785718993982158434715185543782951429129316311244413921464522716748749769391314544735869222382966639585424443797161546457575751212151691844293899843477134598529634674666176355237364966326156128476732338753266892397828424124741413546312627296425195946237611632985595666376817217699312972925113653217724494115664675861953464627727489828328774132516592736988758587468279956249388838911598373122757665548162989763553692329639795359794599787754899159271142919335394654421275555459277261351274693957298294759284219815839847396481198828283111421211782576285723633515234533575484452598215577739971483636972311644783593159722719757999586726669938277581452623486185134794251244962618643894932549142491725838224285148327619763667896767349152479773584245121386955531245248375251389714114142636177182595421935164924224636789386184134675658153444766128785622121523871335949273547158727278479322688511915921165869731447264196254914194474489865736769375685198488896234661547819475493861279128886518754898478325854131157947726456222499336968432825829413275619212351273868691872353273581851762887814281848916239446775658735813692999882773375228885259122492651849728885913423291625525665828893854632133364673624165539911799965327539655912273568929891878865386938883383599646427416483258577169847275513376998637275471337933727523954389879632448875898589851492787915882744967654232869844874142632229383779333645722794272464537647665922754116488547954989332996741233297697245989574852784983447559778427231518555731798186329965731573284345979542512328849835217354463875373325466486261133542356793879417527144572286288333548217484313954758194112729653896516244565869234934344515469549189714159435447731153493838871779648944885419271176415696363441494387674195122118549998534768796124771181581672534433274649328921387385343491443785991455285176195733256475428676975191528925624996211757377145732339372162524822432496123835488411447543785965187336748929548389332985242547946558222913857666588675179232815461273263557114652417815727997533541657881592745976557128616348672546224364337824578179738362228373883218531222568356137953264989167378121121367282695489686974968685496596523231388625574169355224553992644856864635272477392814358557719194679932348385114283417252823721278162285923414721161786767949146742859349579752848996672364257731815749686569754543198214529281262625573239193446535445697616532794141454352575127552121762224373786631945182593347458414435853121683676175234448283923365831933199356843455799496697923585588786729394639987837485177315863532282111462341923651167798273536634744778993894159156634452793256529887676845358243615149217433873841417982395127387781781413698972112699729221948625783724873759859918978891874635194475662927892783489368245598197433888879558637875791415964663385564341285148724283223697854262627841968553223541652812586882943536522466578822886166124693776939581716353135213718319669727419256226841244554834754699471112827547121224479752226575413513684337948159496362473938569718877389984778716433571762518468254772778955715448685651899525241527673576947572239684663695117158625952645382494352617866467152813317462889928433593278714418589718544621522245484712572712558339272534664788226585632792746668475626963339142698251319472138775236722145948916811832668751627941591615189888358432486261323915955925522489224147174691722912497998338566476671377736797987226815527364891457474246826414226785236863241285833247818459769328631316539547139353923767533544217238781624435359532816559793213826693545888312255334979947257539188433919649754186473356161814612544624586441858485519116287457581733181624697426876876484927664637834795263895482968597788443816489867372662199384133692546825354239857192292929422681734395839232226726925226158216288517989813124584186587281892518259947936127465763322928998147962746438131766232553644533246822986637339286718954217559863444543184725734294999399944829153515694965536855344264157448353593163448781365887294598232857296491534393328696416745557742341969822331462221851334778441575651542654698699685716174828865329363438786555414873579851536166183225982636276453699584537932621942349483989625874721964666828812935973262124491853858223795575778154461662991975251861239777243947383348538525839916938885598793429643585326718699181969419178229274421842412371178264185182813729951944274492488214512991189342247249646175113823263353369374497999863451851232457573888715144743628853747759884649817578971344585369444118196349229976773796144559593893692135946833488666269515364633872984377959197854569499835277454532968554553246572422393711445798875639964187724845875234167637414865752958629193579983488141771156512617467377524422659353429423974135651486928368422256478319696987343369852687419533261981939427251467352419249992317395377229723869484524437226455175483213975351287638852572216793141351547962978721515562762431534658512217394256297553638752794158897827645951651214477331411614484265728313357378614347367327755969431251585292963376912624388674616632768288474692281352679437787448425333168427446461627558237852792224428349973527569224936691778881211934922172838639132582557325335327719725987859642799833665988419179841438293156235928364862592597471423222427939431266431681738566597719841633566571124261233978638488271333678125935342355552413142769882139832323847971426456659835613795687718992578619243798671121391758418297354194827286942954174158789698212512893511114399796199867626546686765915114444313892877648182749316796297639959338416159867121851429948691685497338833719411485325328167124654476158428358376697228925626171317922743666484944654445797414434135298445172455619143623243675976484238634769229124465779836323842263915462283294529887859371654668968585513711153149615633688944739667117377472564523176424117488244844661397354715922543844562285668925945758929419652936372499846647141495397237183375781839714467169118547241848165534625585712417417351964947733276526965444485214839824217871196538234567914314796567977655654297918355945366635372958724168487978892375811363879975835132879566255473742876954849213715882747252687752928523896827987575638353429285377128387767466193555379512519946636455121855455698126176127999562996597573198457258854365855799999537374574218834698125518978957811637974384167436127578364259839782568886282824436272817312284161317976594686927433613234441746855652182548931662922244477541136571778822714661852964411954145693568441511966941936366451765314569393343329913896532166131552788716941363253442994189592646725585288215429654853242199363834282799698149194478582692516798225284144957846273931179121698319727131424988515787785786645474456957988467216674352719264719134537325152762339653723748198991353174589655777632814187876665599796243987554217477774461917465344746135779199637395631719346869233735293181953672134195137514426588197295389546648847339189319967756475893746381273885693433429285822391573192998377836178418226698717764974164781453858689589148819675961366644579764521469463243199586522166423388641585521744943881432548989318153911442415797975117252958887773973927258527324714429515382959245436131783494764196955473468372814526585723189488874399646463544884432793191938715245197743977255597676874966746251559222519315664322718185659364298129369389745166235944498234544344261187952356969463783515848261667574359484969895173323796491557114538366653632138459529159184893245961635787989613654458367545858444486754431391656181826469943776195679923133186685666292195452162528419612819566913532621264361492232192171136727878931936461399413622628731381867669653277297248488451212229316972736943763376915748769971881477549133498715315778543449428554118811259819438796551883724568967758862643575444988966337683478243927161317641138834447114341164354951179733825596849639964969384678774657828377851894889275213479337671252177752832299117516852764322445443126398317227868442528731864497518227147768435269319173168486247857652327161575415312417144768433288319924962592922953667142875183714694189229211495551264331738917266565476476426861976398261951667322768386826493479898614788754375549368849488626495164433218644987994778615467996313745165727225894171722257856486651145526337697193275381965512156151612224882582817326411752966662612734112261349961492576562117367439629834858744783828474584211842714687162835213475222559871854924482987269679816328463459434615943141856714684325952285216467961364448918477688283291719346131167481271196765573792662675367473199117125781237495551517944761969861571137959788233174877233239115941944748616419626193625926726211394666426166818417577959639349269525266762343182748434395319225166572137262369522455684293115521157269875991842177645954255696711326393782775973635129534994453483992271347834987598431719245362662777792484882529252232235662727884663781178219225346469825986574838197194824726159785667944581964763561843213717775231824272258524669744853223889392363679885646982865249451648567584741628971569745148173136862528882744541685559963768161647787566739973932576362536432485154719262268461498134276819947442712638744679719522728487272824185156719176137967949877595576874367848844547323126983633189565881674467821432734432674872637125273428189132295446593971133835341573371283483735384571673956369326543551778942479836774968585426969314372165392263841247985326912823148254663789153166754275765947141965321587483688353661146629224399631778516674487654656217139559321487236782121785139659353297138156768336538516999953987196797692367191732482971766154753332981117715778916193278773957261458568148614494813219986371996922767461121551741152948665654334481136137272245149233878333655184986588395418812724111844197695993551379719589662961944353992591745762732679535521614938238466439895956124956597568851673318851831336836212752497262328459333315337918538693723447569393116446878468311268531764518338649272759594424339973147378111864771856795136449346448266876852227392761363716641283189666151262881956962242894712199956551567645641246469538998198983537583247691514148181879769557699357569229269573461447313248917833577488394141475499139354143835972719537842867497499335548721216377228912197736466388831693513249851641749512247765447586647851734797771621724479824572244729792251837887859296177425527998767972844532217125633363625314279866949382593184647764925554861746239267497615958624116459836899522437267716112863263697679268198231936596216382517776434348147851943582192729878535167391194788761918128289165898495934932399965966867674579169898391683712798293777335672668447276234395464273359171647784528145757276513831955962914673115927472189621912897382363738949329157255116996975793828982775797692316717485983551722611886356815145615343842986957198177692283685155568841938522232949688716965468824687779422634837775545131566437785453485557828476839332377991669113332776457295666699726515452351684742376994461119871522165271338793721318743734722862867474387266327357129493754739915542961685216932633662727299289543639686195788831276358977876729971748448825698695221916682243931114937718367126538528176279573572865535469162614455251768615753938382627623773917422588348713916724986557815115757885618479678241629373944445819587947775631344415231314758237176769435888912333744764247851547193146623414526691856379154197797191652872324872867484488788457156211296427794879527855522357952562581111871157998673934257843988145146214227897754946359923322114627238548338894387812714124225576388932844633841521689981492858466268333695978829988885815988724439252411897789667544925423284526421561641217174817398649947387829865929838535816526388362889671556946828761251792339944233979923626287854968948259944456643544785413197473275871865399863197475895113741157643539948823123758338637811915559711794486687852765538318318854625684122689364439872693423297558816317456382624691859172381136825446262788759118182189227129691234741818783673381588499111969172346326174431658516345334339235369979687819865714247661183895439336275855741192425279277457888719427892365464414731737471159839861541667992323794677313418399275328374864195454721442771599416938854341548164444567544583433126899213266962395632374732964365734654869455574947964335521737211564841776323696282624165238858884267344765935543693898411385964389193458949383542832561678164392289335218136378542596653459877886827237139556481539184428285873445256747792349372279411238695947343826686718635832772784553836661852418978731114371447772965521594544421273382598432288374725663116557464672821653761688859325625259894242323387563511295126577972951365497614349589618118655353448554992552976834884574438953285931329464552143411767111895114596527453797811242226927915516854496241419289293214885474834499838342372371298418887334715154937752877915824654532244515919492175243933424778122325765266116122635918258515327448895412811522674265878728239863652172162192268565951612535412655763868168374139514574616146292666952747565867797154424928537693277341186561231844275676328977285818816453566558955512933839547828717353598942737268361532485167837651789583745351177139357764446181159196361786883485399965397796811618334312879128447334853533994964876195372363116739114355544738195614141367566229939354697979879339633647293815797622981676543454316561379549918669666623266512841496313367257994968529735376359388828144758447633565337854469397178972347171843178511284621458155942155652735832663671123157862355451825876369424672673878554678193973569184925472448625459726525722967966357874917778222184534995181876311988468245856144385785273259789787533336821514742318836942819887539762352383667797569252243229862638753982247716461376499512587649415693795476812928657496654217147596776393783874728368912322125765343852139326677514215337538195637713814744392141451884436335687457538811239322367434676288646382134814935857173716173682556273275554746329936287784142196594611256439952943651338623812561832836578462566711832783974128282374811537782253225284479771698715184137715828939547885753791562869263932314116949727382541586662577659889179673554161295252798855691587474241475781711215485268628665383696533191171182518925776532949398749949145142283985452994198817681684488992191388733823222892569517955744843971743924145234369228814366751947991293596917334235125341915998788797957537269663163497597986754623226869485332438676325113677939159725663285218975595196454135949812377585986783132631366567142923249886475943254317422867671762976854481774989428151247894869956532869847335156861974653928713456422495917413987984347528399533174213683333432128443184914856163472631853295385238436736911517753816992219538141973544135274758138628728771575562714216624998791653535291348775755165716115884848179497512387742257528218685878676525365392166371822633481867624365782321426943124286424498251575934155187681983381922259154192595899317964952289262286291589638117837533828935852968577435387188762413685577963158895538156853539551828365151255143595391765126962844669174199493741369335635322495751658156994268283116667298237613767572161577394694151768571341526264469416135574978844691724765489726655257514782574834895361698669224629368647783265545959929774675936852725483798241536537394751243828989416666389332864593876989261958888435943875142491587275181184852693287463867896944661169967453522829455742421914469565351194245227152635666656982727253352755176781943398843531613437641716223789874112786938989321875945566625691889157551448269346729365826285364268814856562585166182563181517812693977534662277775911228268848198284846212328985466587393176976694177597728516943481129317884443749588269819594632633562141474657586391281239572634889983929373122641768769527661948826117945246398465221161836929711392995428937862273389372953733853952482175851967385212387568744137165371745732459861188644518711526842916578793689676448899679611194394949719966824458237183943153471665625411982426248845949343579544986326424455968842435258395348636167698133538312434859688293955551319923365986118493269179263617628529735233634553778674589738581332394616877223489246584466314337445716293994142156695941661983627287615895218313862354299287547256816285614434619733153961514328888416866398658411715992952473352981567286941871841331435662776864929747221197282324255691778454856818539548347367672232318143427887638581415131797891921624945633286143173586554244225176559912329723931388733146456864318398411383675782465778313988228137978815152521766232952231941744422111616647612234318421314387728838777242813115436368298636397169847651749139472998718561189786668314387289227425275811918876432353669386388828435815895773314428575593121982624295674251461792559998298277447747114528545514768656365173715468178429263523878633358655815451258989886137424276481256737262375163952554285592139244617323449946239385683242244257518139263146668576945147261676325938954258714641234638454592923515389714564727749183836366367597936886122384966975256872497157739316718947233729135692839524186916586488192253264524586538946436175613511636833384642185768419917466616768441567811118583314213748419965897743523533261582812185925722289863115357564622682789371643741636926442996347415574399463637689281815814527256794934869112861667648127369975633935311211385432196887524599863155575585523155354732483723698993458787248452866149376647816595739698322155321834661215885434816766587682114186452452849363652227755413513811345479664589744855539969319579513951816354237512954959869897758943933547759499684978844724488272464697462311258544338699947853888246863983197741173933726491679493979277477142157439612341498438635543378972185828888913152874646278395182188669547428523791263661479876985859693435386455461625562448137492461713121655181142586729613252388357558613121125273835885111238953717568769851266459837337341135494131815779786422293934657569988481361747795437436629173728616445471434113545277739535896655389625758968212628391153532196614465821616426577287382534632282627199159681237945574726978296457156951818831524179432838656271875451532314254652684656421937114648681612936481448813544437136481348398381928963752984337949677691319247239915289477719493249997837741553354851887557586691699362945979313598666221868428476283476863794133978599575426342869197784852254342281148578193278277745129144577585689336235342159823314227563312769782394627832723843254719139195963182444227377451665136827736222439653964672326472964455128739861726912469581127214548149722797768459585533435235578373153222997733681122464877214932345566656328576477613979691983916552115637573111769967826824114659759213769151127112793374673137992813177982974584643969235537326496614392589937299476397859571119769198356238756694214889626636582482216719464132533811673244783822132611457749893174139343711893985955188763731946259263434413612195594269422525238145377628877976515831663794226119536288975651211673639998329828752379265521539686859658468349215242157588541489163926763676486999184833585524329692377625263751658132378839152122148798294468423325443215211321424183892248969372815135545466597996286419115923193595959585124714322852752253453792275123515875396471556551896954162562723281619257281836895389795842912221271194713885464893751234225446354462822919436794979981413735369595776865897367754552672845461329795461841666431775842925342374252778853718441418891182526653967233198278992942721718959514719321619326116318369449235176546377427359969579315239252658212747479294199937846369264339949123758768166968633358264676568469644411195781553767474831487214967417416875828185833295222933239879599186568475857166478661974752719517254989555251897643739115264124838136161576445119262262577878252164569616241541465662618485291495641592214268294659729657166985558597617123832286967811517195649388159851123232727597547146689428323297299512573223876579138169981289919749887198375821733448426444424297275874692962145387119644976395111578837833926543253216513143533579352933335779183494943246489636551743964439248466841264791664218182377799713458133138497454765562698267228463365568397142398744893628331166392848557349479252541792524529249332966681527432575643685946949761967426467299356699958442846822996647273981815464458283475846835588215483563818344162287761354893512941386566499784713478593862123216234771319266647883632827928248751127147954617384437518391123878888683376637355788448368368546334172398862585164717634359193726923233918967553833674999817268658862252858593875943432212828683578673757516773367598619881557814651825665142457997757635571369635516152556581379844586144161132471176212768674668116721926927144242752737695951741492393894698912176248896391364393522792969659756368148767673911343512596451324759664429986276299449488124155521475717694211721654682594788339266636386595667731989227596217123676283642218861867769518128729186595758968635611486347138811797356721597359719658362874745615448918947573444497224399674224567247131887121551262581557758294827529686397432358497441916725195746684323155271919633633294612276734155359866765617861179339546118413737613277538314211133986576316688348645387117427331618256785434357111439239771492453277745377583283225938915844188495168575224332534135815498616535949776387521773975566985755488781758377127984271725214687216174158875476263581542162339149646949727264779136171285317211964667529236413496892919439149235681333345775914593683515427441988921234792182431687748381914993783795155163295254826744724924281441845341568973354727179571788821715228263851275646254291168948918339135429336789393592517391181822725256288655674834975785792674845358867621278659946494853929292637512173289843736365749931849192642848146939392817281163246145117382186787516777494491694297617435433982642218847286246556296938462761814824717425938482892593239494385567936758242979169218521349767222714469283269155875716639596216376613529735631227577149999518126786947819463475922625524463275734227817833169561622273497623276497187769976921873988238888286735432198994675663851663449158721152362969416961145191324238999995229226156642645153175487186184586596191554618114411839547144483131631786246947386368212815254446498565179664381816726896329644283938425481618789351731361225433714456885845713527699625646187248674353636196348997959412919733689114366865489379874814994865224124449125554571367646935311813224546547982229255817589829991221555298886998812292931822611611656255832432212321513473543594668174656788798839869117459698955761115663442224199999524574378734733299433534832722564911337111363673594847111372438728732441376633873366977983126887651773619362649865351939331818563531791626879745278162195164921253232394869743249956144549941956268377754527721725229664556539156983647998571532153918353815899496641338275138342422256435815743387329136539252484598941521874213824836378382429759553584571891272554171898939995858197455434441685183162955845339139864416749897395591685278691513488617281159778228286682431389518378175181967878586144377414465181888487482168916521737466883389367116633838628259232867545653668268832194855671483668211675921747419417783349376443353318799753494234911325153696819139889864193315615727221479859752739515994135584956667694579454426476766258516991556215652577818435919615465954898518873128689422723773218583862613498699557389561637836675861921259197843661517578251828394495499319173338478925839911741168418337245367294995467368322328168791514949658948475299921142947716866359214997743143934947131792376982892299953356449732534514649328317336311535179952185536788719531252773724222115314747325184126141217378689899331615236533835537537254123992924973384837128461294819291481582867195577278923932313223351298374184421248939131362572717825542939362384166878884942212772236328245362767444233626826873185626449866933756978139712288487948572557158224811623574683431215952996792612993143389638769771265364933983271364583545221297214549832139355472739974395494215558441633556974146132369819239675327471614392596999235215927984414142982411551151963374765553783285274315351455442677854388566774381711245369714859544962617384593473486993862257191586746455715951288778964177776624387923383676785441246543299861388969387454912455468122331316334121948673964198544344366487919392385142327537361694939667356386394797829671397356649595229746365644225261289814457396617571197559771287385374619238878525525161937954683118468479257998449945848533881191945772676365118193576328516526599165232757358967214636487137576572885168774569279643269763428155344639416763689633758624855759263625456122278221395156431895821162515296223125244648272361642757797396827228632986894928183156835445136647491688268459347442123557959623362311126841774428518764458399534754655129285536277142477397249513967479388839446149286915619568755582329182925528536925586322295634764662753213956547985526535187463618883994278822611162724222747918775174581273433337588899963564341847186292434666394184969326649534232642864229759266553565129161483446523833797613256593895689637861412585854524638376556895866642772821386647899736479969356898965246255828497369986871895374178583117578217942821317486793119968167815635227399328956435746631446227569171799632517159623275117728474361339382432146196394614475212626549468691694294723173521939972635462211379788951266597489377338874885812879775681339967883416382679151237993551464358146476894951955868566892937263966583172466451947782361444159445883189235869852529655698994837316514425812787829784242131413123673924593662344121534635666867934225564829954264296559115581273694159432327532842585495733851119514546668329394443861443628637568892567278117531617632884545391281335942852583644396484648167175297691776723177496934486183899398957934415792441133461178347176952653982552685696733838553268854817215359518867541722566772656845556171121896651511666324378842495992983962516565521243578243372861159345496842493416752466793878774687125699748987542777257524499657368827681478132389114655874748573344912148851978968233711974721134434527282388174895155253525417639971699716514883397892132562235122171842582869188677771927138539626791758934822688354436138871742322285176348495239562165833796936954441165794216253457831991683377511616975394918144826825862189749898476815285188479842337535598376294673281699436411533285625441951327535694546176129437888223227249782341684391882724492293424227995118166495563544974183424735424835741379816169555854185457999382744771642256192576784318998825879356319325924161648968858628216129639661142447511315299951769362223968963197746767275269135159351556342542226783499815627132147181615868968536665544915717999517668133838772337671169649229178745437728485596363269223234132994347918755395829245156468771869284884558977358262766382158233242419854559274998174592617518822853737172989278175424584325295281453148336243149589947358658275221435247761965722795429385991512544858523519181159682418998948182466127367364268226266145838746872373918524939831555159532394861197387248531414458952885914491488126731573413747643711311539567469931967217482144325334377223948731727538266279691913439941235997968711426133981982224117121519316166217719987184296516318368278675385945744542951591139745652418836329793246241371272246691732615236115319832958966289858721971484984594486472357876741523519557834273512157273958513563614567239637977981617782633878228473185138726414463131283468161916215718479919345447456682587487197657394285117641376844972621438273792221729463581173461631553369649659622557715712947998144369223277148284853433526315919435255553156964358689841452852784298733948534768516599524518676985747931773149999548581831687375649442418722591454391274132859324356397167327362671787999275916331859555377992159127727624114635629565971669864775446996397768229264562627594959493892521186918814269312161346375563615723313974398329324447964391661121349637855777517932537956992813946888464931671464425119699789972459285578435469792392151929715959757394936471441468563554434827783412794432465391146391734915672812171593537956951588641841316486583532775478164223967941961598146389466713617118294888873822725433278847997797516884661852913435651524113881522119466431521764227269669747878978915548589545856562327281877764554997646589854499631358335999444723587925819358312335957445379741988679951885794726219944471344332988984862331692213195533556878166754138342399311629163297884578253555479498438479374494261427231586913852574391238466773794426464153337474794825551128297538164468671317787967593594323964669995852783551245885134544638984883367436779784371764997469148526742584161138455411611336349982566614119112946477437569183172236776187187271718341187984272393861577175782752486473172588596783738534992166394742137276926683755687976171711174176883484832216664351858927824231718947331549916339425195886297368162783627617249161569946545362167145496156769665611493157674771383713327984848389238542288555582753973672944863775527735571918183369635729295362712575921912728945996568377784964291591682752655934669495274568768727875851194486843672287424399261847332322768333581698339659464448271393368281539487311266191545351389415234276123844859359493826844774286593914377752677526697362648956695895122786943673232857911795255623235292786943365441221291714165377796964448663196198226176473819678163597253462961672367894174921736175689826811877893672978471443939597578957145733989176913956249188645431233684882788479563167965738171182341628886623568764341712629517639681468929264929353323574323976845881572587789613835172394682265642599638395256438935264532657111348212949555997681116459523222246957141174563221221866617938131735338325652963885959519292894966497329764859947421372382461856484215181455358981927144271155783193489525839727617321738642191298537567951823473294367929229147889535239391547856282863785687466318731751794478976952231697324844616671649885763368471439159433784342315282758973621752566498767182111518774462733687734372247845945196853298269527379517631414798286762881796547254295757776255873449536584148652161545213717284427369818312976263215635885513844571441261367874185546925454738175998915939626923366857492754651151841344395887112697425591955951924157466844444613345785788373364668384877211671895364741667783147955332942197176592764729386599275786881878676215282643679228145414171967825426843916254276969318715791482824398598293699185916775345383464894652461629527118575198525762139474529571422212858357297653765593844789721831915741458214379729913271243215396879794595831793692818832243552138997437728788146227918122366468257871542428213724424224349875689276331362171353783194427395754761273219316439588897338957532888815126845477436295837632364442222733216743584194576247374617738891921585833242487981716166739628711758232544581389359956629479339315137261618636559554215942865895296823973746282135444838115583993584879133642744377661451898987245521423786759176731766735433246587629787452367849915567898212859592478214339912892338927727983842988788111991279392183754353536623491391389396126223478714966517746865883793414925353123417857622297684853183474888989219895556666314698996332619317217286541296726185884397557476287916469469831548916346999637245925561396278232123745234286899392736755363285385449952369849868849415822249566199185212184161843873365467222731728138147543526794928355966238299993716459591169441175571174984872943567426421445452898995394561664921651192235769858738256592568859894913135582476238843483638423393683985443579982866114367998328476664196343241316916331931742478945434957271312783425497362418392624128735755833153583329369278249541393768251456794125849857561523543818623757226527991875621652994284945391922553252247687743733249543953943998292325974647911124167253546644444655242595395386682316449912456711225464773392859979523493537197217644121249324111952381434234754597888712633133127246389682866215983753825127439254772531616236614969251653485399665618668281741136941815143562318877634432415497981971573717948725467711839369968954991261954725251722694629515298587593587958463544593854794213962611859544379523852236515925219269355119436376451664113585995821735245967694248384684923322782755377673422734552829292332499664182657888942486566486528557413812866544447466911559189834574743939583815552943186984966223687979727987532625833521797427686262243832574636228451439161738355558731877241751586428415587211656428496111975123664485922642616337166666553955211458841995264786472946571766287122995985491757384466914181698399488986334398926453153441519349278966588917788423627952882815722517154855623444615388376446817957563957397632982318135678259844589773413155243263966433337121568446775871484691997438752363498232798285223562552184859974313126386194514761995194488276596897516115466732821321657574933592353843377841922154917654136386499673899683675768958722215623262919388246483858643414613175279469287191639814668898358555972918926725766547893582497252557647438889355918787945165779833686329197923412279853359726617955575475266397494489615576946732287725239859488826777225717471498259572546475255733344625442481385132375822327879192364796844953565683163294771761996265858144489748134343628784763279644457785658361685846714161377242677344889615763246896212139853919532919869346549128638841725894747836712634378171834617677966439192573745251157131491947643375365522694119114816834928672898335766835235235515186578335415247692375796218748146783414955377937144513133986781348479863489172885235546724472494232127445253339743285756194234636647362886917881189654252574827481117275775553551396712857238866855563948573737757228313925711385832935872243997529339521199118682784169262451112935887886886634692997894138138331718385863435884872552853566377347955542763342628763848184729433138671857161212977362169331264566323417112113211926122143968315736166755866186277778863157977451155521196713228895672875572297192643653113434213678755212421129274438649762173449114634665767674916859735842176976438794351817218884656239436834566344759739459127482994827519755377643495438331868957339169844461123363685517593488129925818234144459628268817246147938418212524868731547237851343935764585537913875818431115938321786234686365532912734744235967925637894529953142315677991485187549138568443656777225913851449972883638363527283895276569694472669722647888596785293847696933178959113772521297517789448949247131931298249348989667581384296888971989813837636581228246555132929917887251812459451264718111313282879685565789625531992712831959247185531998858312391361443438441158592581365284213238262594238233182129255654973285999149462274472583497952248556945949784992347485724318422366759333212592624452813233974189663586816965116451521743831239295444933528928543484557849763661195386538328152399745418383639648165717448253472344875512755728433994636451586611186436611963714994346881738488486939579676845344568236218947875466324271655287542254755558126553274581545853696719285638539185292548573967225786693145897785214256194391922589148442821698118433132451441598493235317366166897189125168117856157577393718377165977483273866351918728987714411897524732997532522382979649179168719262261893154173368323229125884781715884988395621442653564941318277656144773324267323568842862778443146424646941772926891986143986271712164658535636315293796174682551656912764116636244323929378333487167243543195599832222148761198785517651859499282383585362361139579233217237154273411846962874812634943756451857988162657744225276561745378343141836189863265682238291527359554546134118325673895513445279224466969361182648817357592918929245732756664828798413152352132946518574238519278997313536638821462318512462378167887129772464588619551685712517286898855989238199944812373423231711484883895795588868985226448519447835114573922796594996539488323994494741142191658948582428349439867232245444598493141273916838624437549983322141344352541924675116761658878973996432575556824223888943729617797438475731412633821714965825585228954537466528799868155636184585289632357818678554359713211558166937253822688433767627837882677178883165223166231982665342499217985271792987419388445978197117715223171368988826659136845645215725823847636416962865447882211662243426179529216382714593512668772913511552361899851318549614462561711745871958734764498467794839919984452445327673922757425898788676121155565223414578221681459316726811356778118465376234368189551231355832623468985517824622567579593985256481279728399759815443383579983622738589328283152696825162969321373221152858964214895281487217245447441426322733912429547168871315838979599762952183936723499428912798657513686774976637876728517776421179337895381844521282832598141157979668185169519518792741654648335291898494444485143226271534357875953793226454857168685747963648934392594149524221987449136288181329578982723134122756669277965996944731813116497662127934631139724986166365895651753456718711682979586912591945911255724685642829777357496488879994365723376448315939669297184872397778194638558951916816514791929686485847592386366946586855836784423796545663298772429913486154576655288744863631863842189683121675184757233495471654752629831887396561373522158193568629512599227764681742836635962733573712732588746818892444931992258419472511374864743887269257461292148278116481844932537442177186289917827454428829963696894491129829499124465246231399868218299181928831366781393322316126746654646427444191929241362962535188433874616896997712836822165563495672932411981661643325522877116563645685673548512822364451141695949488846198747819146379374242736764548946819599584121956371542117551355726774713115998634677788523536917485756956455218666333175338828656932436969579235857165577357113694746332278181665361796421222479743365472279334759638369379497361696933941963337281916843863598557141344329441259249733999248982685697938762876789742831744533689149732597785353216498472724873876758997664998119638565736124391865655391798688451395758368577664128558526465199127683398155811213857698123533434272412216686796981631442794836244474485953522128272115364656269497844339571672478678284448154984577989836882838675483736531829366964846314496244672843486477393888251881229633989963392837566744558536648591777773992174728383737589232971847514713819261198361818722898882532812191917816722793673753441684764864853533295364421685928176342728993345453869391368769657171243922245578865785711576529236249441544991867335715852394395729663617895872594874248367687258193453132518657935457274831545344579772822777468793519883836341697574555612248127457336518133981737172532655466192824464166264336933186241676285466693998525947539747451428137663222411261655217271815856648493614645561615925732712385758577838282647697298561641758123961743551624384982837781755666852725161132359646719487462817482564168152286948619547273364992258444348446948798732559765164377912344178662541394548414819227917931437383446465718549829839421123255874116642212155836718641652856333642295415591973543315369455976139258688238225368589125949337939855613524236652599391874796488363633864376842981828785264782517779146474956944814683197476526284187624817491782249349966627235533284563292379473315212753374816925361671697624743363528754225725241287156717172416658412823284697615321789587627281931992399669218731617555217825716895125969881754614468879551939698119586575549819235122866867717616555192545325338638825499969621265675728351764536316645641592417875456179146479999563916955186873297814817444233277477962469947367946327941363581226812957942677251782486412759761341434228274879858986535699675698631932858136121718462822877336988171155867467338263344321934532328333618344167873986427419762874697967782197664863394945919186546132889887544929258541921828552163131928673964777521612683437433635627563768935786746894127859112562218474176434997686987663453598619546742375774432928674829269921853436654122454444311781686577563714358659684937446425572129855124439294251543277817263464437828352179375428636216731166489171986182928459293614285271719625613291392125134384691918188841391519537649132459717717595478497357299962955199861639378715545169778663758257232184112772325721688444618532234343732819931413462294565317529853926296288238464562828348979954255774273184729165346179866652166532858947328223746343228873989522715598229832285818129887185937186545456439557927829697495897495158583125969561333191829318847441389581967822934143124134827441578416393973156469669152433277223142672768164618574369412637339543799876562823768985826987791553713688334426671478959438197141322589392632278224198141739344464512339483619421621424577519745286318247496338389339576217281697238833562193722653519221828777589362428418689744193914986753492318548378147811298588876341679799542369163733653581367891867636579795619863137366391961845698255214664538732447966142135595318628164327288323919513716365795556453773381212413253424159427852496654872882132236578762512277426171358446537741277143293421952548663496847692628322531752856818764993586345497217469534618297964452699123651262917751221929725949298999163279369944855846717291919698695812737611984468838637627585334715876437424859642484145773215675152684325699663791194561771338732889292762516776775929197119772958968124175742219691519211176261947848145518628478417327334849934517311662512348279812534817891141662636766891797678721111779773648811377955935782554554521487741529446142534112245589831868523564498192244454657115977154995242579269374727962761168862152655692628454716412468573358553518168129754224644781447752516856542442316528882241183757797472925158278819697712618974653379462865682563422181151836391527454439997134275373377361988831654887776578795221548164151932887375942588356768792517811893971697181227142617387447117986373432939952745895534366876564981323416319464843386613388734232243583993937212531181297979282495532832913733874762782478396424877959148311597874932268986527894587472292231817319315193745323661487595627698437358757121542617645385846616338152837637662632495932496955588484565228874946175466596191559478634235911315891337886475538476137449841961349462959597941876488223195181125949244193875753381191399717817292215613771335553451479349928637747286554576822246283116987849523231875123613717325535924687648842828328578748569912513871434318389111948622568469419676719138867757732593638464314261831633528283756895157893324649612775925733997586982759972334184352633215395952548514512624133446599799238523767527856128419543183952855695862522217797428471778863147497973924224882534361426292395934612993314673725141273872911493853943263529791395311478677626992276482544493522842889645416194292739982222453646735688128626146118996227353516287646346197692292989682316556964717241859617736824872993537134415127193963725496673862194717146457257443615944691775974445148673487211372765924991478812314161399911936292583882929698728215334124116615763949131989869681914315615276641844747735691658758989441856411484757328778843616595437422142189344165833615875514857578783889723219592742238778153791568746727928776941162839733913857722292984669254259432384574668321449526873897112144262598854685628579156325936939344484368626177824728459833435268696812664361942312146128341766524115271597481521623225948914546955362411158199162373766556711485811951955854748765931566145163553537532815269135527573176573736169722811417329752318696354435932892982923643617748597112354746826914194268417171828528743916688278578984614321392244997297856663519397658979918212411129894359699528173869669569519529599834774725532718663519569321259242519871313563329669515436542555594472411747869726676118663697957484434588374236782383247497192739172321156469127256458278786849846968173618511225759567235828792497284454284296562497121491261318127442759269794743434372478317298832117912782154376692839659478261351841928113349888161936753658674567657447661558455446921266933377832575332376291544135241633959642788211347746799192525577762615883583516371859769899356122272649897257865849714584417129126289167782467739611958388179872499385164299763722616344241128267975571888654815976519824825721317864832786967553193174354736656442724872478123432528844225771314485662898619831972856266634754981446625385367364438945617873279324766394719434777562922798925845322741119943318165266336128511922185195188328124539242743483484682992399111822264978132379527766954984984864161466179397237814599986285561867783499428922612151849456892877545875695487657642726659238414968535194533286951211665688528824665164417724318318375834565445692297547398638448255746982425984193756366127851665928516656135444697224725498444836776231834366526346628246979362828441423749381814464178666583754597628991829899225532487935291559111999971758669122259843453497318398274259914915138112347676496215822237126527829721954692339731222435946677368239224673795768778912396953588391222687756312189979198674832552662619484924222917816663945299246417355646856137717363665164978498123576169652323858124629995735546672277142364448258498388851394862978682796131844784612486515882877635794416389757117235775343339983552872319374974676253667789787832199239156443799414669338286868978871776429598528873895514281976763839351298941827196556864851336517533553346317915559135419432882624868991521211656568988932918261446235376386441996784566666473416938355883427496965311966593734216949418748478863494391949112432824865528456243563891874674715887262713657251386565641998368845461522775489418965418497223996432464549968998784124863584764315552794781479238541836264649871314472849777781434416923375352373619883859427461711292438853188239197473315949199928241135232144954771981383373274988981493595991466455483729936325122942391899726351689841733454844948167135197622679653635768233527322124623274339285436812624965596787138355687595828598669956315863566481848586978718664568987563728347339976653533279625413168429244765762326578886747278484214238594968171726594967685423633144793188985857596983759281454558926324113596235734988816839383974586886134647119497277769576873222888482846556496113778625292323481229494938567267334184684725843864793995741456178486845116681766235434898743341278652161519586188621999863996194858864924862461212211177375874159835226592747747867864582868273255677236399863648334662747564779337848457344597328573647492778691273128742189692457722442528376293594367464424458229454485322841289515151573817729653982313486494344858795975547492789819947677991374144531984523679551453211789726229562548899157991844244113984615441584364269768841354665863123656594921346212886991356823134278837229252763859338364935247554436147853118393236151444767522854457242443261483987122497138313637341375581638816516546358167311934162519461231761424847643364457853893747759726848232885121555131219473146117682485573965918512523468662272931168514691191932174219965282464469219569577661767178974482527853753719666322377184861318359834189469315845973679146165888771189925945329725982986472858726633524997428289687765393487349791143331963872838614134362985854957181275462445385787193281676151858766392444853319918327373888964839449482867188978899537715511872826664839546234914855625966952133687961814527816191653259644836194799879222813523676871734127626985963984154495551238292692252759236433737167422534352491526689693134397993644686911141191658517819349937181449929123931185935616639412229252144956348346839389842672782517711285718432194932995152229469938136497249248639729234344261162865585297112864836747161476473657995514295381664238834861518753452892311739774297971356316171315484595566444763449375895491421957317654378544787614983422454449268933349194461129417758884227144936151959395316246811788191814185681686514924436926985794764173629688238519742444933491767173325273985735619843234453528224446964262724283167378613865776219795129272589884411262456822323392692518656534975989134795927146295355121764959457359618199793313737238285589423257118717676917278882799157179383983754412911517486555459157975263437667757798536161596411187593736491274834685272231769667416688228134517875371482458424254712613425765442868917232973277547698838394847913892515681897541219882612996787966216554634377386365534634282776386741284421149665117469886844562145143474477443833578355929366468862199446189352598433824841375141251275673596656477658922958452566674131279833469124816991745981547949956838264165545144217596558232126788414719253657166725269982183752582861776132626397814791899164212377354856828546226585564469779896532816497241752389735261137916658739367971146164147453555255711674591396391897199644878383854911341359977957556529896633818318322347235929664215174636926745467581393684541869266618199674119757776135488454379929739785985951637329767592828611673541939534476297154792883753798952145887224733527787874247397292495973695166327985662975795514643139398785316914459555914354798911839797228717153817497732281872854824645316111399837599718795881253495836436355147886846624182196336728441966479166641291699717331792545632368164727736895756578548791252378173435198676151697441119114331946378778426931989723723524946839455322243745733694855116389872726346441614186345739129758535616229743814211635286198962795264675539718229281699289984953568734377257159866935934721124361232559374977764456749111912437449675482678454888462352351593136973412469214672427443576526727325644781691158289824961621283823377745614799516488675746754935353927386745696234182455829313727118645329877389687722393222494114767287254882759421541753872271546155869247312343396371457664797312887699429544754371325971341971148816847881256573484881815812825596169847853398547826916475556995599573168386139811391828362861221258463281793673692674499676697712558756825172331497746693251922165848411817931969533292325497493976726786478374326525556185724911472939577313524265619317678158294387233852114529979889456251959487998273482723619588423937933959547365592763824862613896697872726541981156337514763953491277448982179974596257514798947954788576674561829534274553236831397145792147138971387632844427446259618713414191228871964395148652592372493812832619696835327182232448587768849991959432863561682826564239113993987831816263229391836358258548746418499915226244137652465328982622551451861374775349585916894955191135911937395738776366846239639622122224943426372998572994956718921931324645162351188286561242123925155499716849847566212235327528913543413986869525126238659391191244574662347198591113768797696729157413525334183974249928677247242773934556853151465355122635448525717142627921956482983155688449899693764355439178166371838663542411676999523529236753825671834964929518549772783367449817888274565315157135284419243133711426852382797598816256161463533574259378437276867473188915356513827744487184768416613412737467647311758356623453993143314141695335398213875918388491722915974496835736922412231978139231526955537181581711834719623525676271632429376436428789659812359866727958875517158916761749964831413197984425138827594467353736756865543884286976615951775858514989434691928595265659627211949338279428519469864329289889783615422454215139915336244112979249672716126429319832335645733746514664275716636518641184556829469735141511163712575673828599436297591541657817954491782521444952612656619379174414481632756941211366836754659181328489545139259275757322676665696434377879783691174795852428777319546324183443449728294435292822776497715138363133951283792884159598177571386489664783962931335374181736755382258627813116138545842825589817132983762962563216681862219988792798955141275495153138238937896965759153161519914215938729418194468464769729621931433294234133367114461332383375316525737229346956493335452677197738119822746332851183427564272834644614777399485474614351667749193452729558486824274597554227127252424368187777974333178488289814146571378855632963269897726696199536563347781976282172833392991834488712479356874171254483562544782642778694389687791148383437714868935785113961639523351672342727619987577663725567792758883154695592349995356713482545234427776135257146562132368413925256833535849643398382417347438844325557942795923842982596338192434969653732223496573732254153285471335597518857495768783177395732855393954838456923799886525197262582876247883574633621272761576633719224892138592653668845772234584514884986835991257829497529867127585783365844958549578119985796444723148533817669516427315774317778972734914569519141761237556224111273662918968862727749385916416423579761456221393966995385814446783658683114233528116524895338996141919118521762452113483725593197176886737792847947375555884193891478931589772466182537114423682627511558336561169322812343592664493438261716822744814948397453682925741791382545826228947672939131584453581635196626419265258259188533771732132782322238742557466217474456668625857969734978614124751185649482866552424721579962245243786634711365417688635611734247526178548564994662434785757262712428162997297653894263636452423654558547366921298614777392543717243886612284183853318948192372974362812921329513723616415642638154224315336176348698248691753656868297711327741591314173147492178786557568231379391796919738925693337874597624643592292164856394527394554214567617836932315735187727261571926687468941161633141721347494475942666551556619713885917646974467524278223763543831331973579815557754574831184366288275423212767433778251258564271888421641725457615419423268576655377331212735385825656863618363781414424486815385841425686511778827259486967496969991549189947738542469165794389277321118913575327453359838266964775775564711142777112974899585852329675146159236945933412259744856723316711733216718858963825311881112782744954525298983275795674673739714288549958647964533199355528498796559344217713245344278619557316761694993673886421736587331942627675964322519249111769382476537284779191232135945111137165627345592499513616191599592298659263621769711861579419358567212138389355215292237267192837558759467392792321443159757839683447483121291312246441314997954288825237245365478122942441925323215716329745282974177291282723822482993976373571876596494555746975164442878225392849388734117794291534711432849823759523833612121973333266349221585446637887978975387513136848886321783561258854463923216799468179957293398982418798918476323129914633843531762421212158671772762134416568625757777862728795862963294848719175751346518277663868277452222228583525256964639994711345455566294455869455727517867889324858468792387123674324899488418784639319526337574995375312943891254183935556214583121539733913918315498842452811112155916296486217656439675755855848339848587196652284149514988472384277914614377496691641948775894211892352678396855719892678147467446661717536222682652727521366919555515358878937182153795721411254615221916888586691969431361376746257257735673223217141266293756262876548995326527331246755919635712355154584226748752326617658129244658986497961836957616262164967322119659345417812561277373668389391344177418188234341967114841861883381839637549753848549732817794112194956798673856689562652239631838223793448623372127272394366339942391544315523624331561785498491531563893344585827854831361119141287465688937417182464581599414513247796598128736963411459488738842611259961744339569594332294877147152937199332377126448557835547341534134966173784328173746298922954455741447625136832116635316411736211344914497171271723243772745456369658188786792864967234418933459314222989458633828632161853187918228496342983274137234297515185916745368346663975686896635143523186511335882177545224677271533741381313691697451852228836878942179981251229843937948831497392387386499311295477171952972689828546174994912449156139226385256999496886186329224626537144569158187666273794715166628433767672479136653822283688259871247794831833477658767824638615628397679761188753618289652493854683251216224998257166921159334672996997527916731526117912833289378868418197761691292891873281118884624324179139148227193311412179439862268961875675285524653759683668664451437884392743197372329575331776619387716889179715836873395462932849411187995866357825144679761755786685474761284965468735692766234681218473491696233115664739232599599347576636248449895158961219159973638382714648627133838838833729972799879342184686767631323574451529596418596964549283223469795656695136884571923731942377347792362764343689679843946263876546762837241418355348432947225767433415129158884418249334945329142383884788677116729742936366361597675943899488951834127653279217874457546465369352653216514324911436178615949965128338888311611643151911314291592324212922873936141121141559519541841943121493816817921865896659634726926856136626397373753316168338821495997557177884158379885618488527926561367846242958735285923764445989915798212396968586877243576965855424234253759588275988146732217648941466631588286765577159268822625651313259167534971774599471532196916239135787175941389226268357848361374742547832959861575319984819846118252934138894751361358639512913837929212192465491516267197297468159979178215554694219818527254147935932843396545864744585198492194587669879434818272529839768867316961958771151867918991755641362748832599594489261958824477492576358597437774679564446773413658183932765341688544977544774839737829975598456399686331687979831522428857692211179791759455238279329184854965961839995739342168989898362657144236115587412496384274899954758961551118747876414812299284658443498588252838578969988886241175213141866959786573469158671667988372467941819557683687343398196824948633713747315563276416315875169932113366986332559279719176682574673799377919263171941748495532898168195795591898871854583126395111811479829898576661918228848348428465336215963428528239113836668593825436812153794526317689145874265797377473742184624362174652867226833679843141492627733277353974667824797991939991664861695793247818288877851758814299148526729311217884669544325633636487949868979657913857379642995522225191878733433717434388477828931439416278511672314732568249131964814421261327457828965788581676966388394335869632427985743799485923733154649593534212676854783273445651914852115525673156524841164528518892192543999213855238124566316995294347636446721233944471812491819242985638199222415742832971952875154426225135276659732918812188584835336849355819771862542749686968482954789369137193357421368864691786254179971681815445452246415562287583371438319643287391831387585233569483223277494112284322961563698646867275713113122544738665834687373971349639841184456213694152879265188941834842276897965459537443831625788172288667343878721463546517165852979645469645317443686246842316483355791543173816164687259379827132692654952233738196711638528322572636121134416115675737588319456598199193533144591963792422355894694613855257416412671713737327767927293698338868925185358878645226945194727513394792316993846368942451722362581859179679954488272316377413451444332287172319236445972592847771293221827948869484979139393969979281262866641679965867786872869777684878343389274759427994178946593871793831747113943633139913462648797978943743845298391271415578337925718972164663391317347894516397676364478724953973717475735445991626953724119416686224786229697659344415715735393924283793553327241571951514943234552611965186799745739871264466821871967455934718389256272517288265252787379658367383898949756462977955671526452969148933787333521224671622245332245927285827269172428489583915128529237628423329451298136337739571383144775197942959853585257194222425791281885981955293617416628859237356434721626245495236697473375199542893964586926438986633941349293383579817518141838491774617626754199981521324316145192363114688976864816848267861361485586844632317588271995772796733372855216337975782671237215777194269579292889357414437147614313629676586754588219552355196426687534182646984795748872462893552213591654252532896672718897242241581536841183252718879667371384432464157964379431217163779717148275571375782525545251528587182997445462829162525948988727524523356782763668719283989852494844168636792857727635722797946228524376856939792354835114687298949476161564523657938429786596381336822976218363965896664313832743434619221947242611376697771845166526438522146396313961637611917557281923235654285479532292282836554646758213529856899917125398852295869669712785465355167476261479954891869837463788383931546473367646513585312679317588532168374946586734254312232879521626543836474946452772884162824974538891347732467533622117298485847716648411436978349441159997471941514334377874796641754634361364414736164641819573537989215239668932536971862817951648558972837629872458445416211154819796779539596632565895314429798667343175925677824294633963833687311518119576247557718184367526245296986822545289758646973625137646244825968576341295792143456221744115611448971981468653897418471772331365942131166822291831677655666692286388384876176949196759116765873491238615392795594168178745222451472332752721379685582245656781627849124185112978516639175643794488388786287283933585582845115443161938447156347586934118518143359332174768392139632122873676891612628174893986847149326573151911271978357645138742663219324314421418243887389153229339351579812841654832559555776697512568447521575867913956323872523668482243179556346431153449681846675688885749373715829952811984541918677151976157528513693681935924872486563176737568727984167558835172618715477132894591896552335731971752278771969318387842164436522686794561556366284977173425857125673918953589297594281522197798265545341688497246564616625495119453986943773496932383854372772526713397664793496534617144291343923342897377596147417119528643834147225832471974614414355218481784395867815993352783217527455413741117797286322579781432176517679771459167798854722845842492957925959755424118579753237365569252636511143443299163376992538552515255148372581386613293345999248542156783821958518728833331144988273659842825766637329642655142749994987968535288719763827411684474862458391718478444535356413649125158878847675518851375914267168563449232988437212249539845649395547451538479271394246129573313755589542279187125438139876295371828752968766467719612588298724794568543318845516465514323975334679323653546986622171483789113568491665998496947144283351251487237382772419193796225458463581114832887127936396817331976215325586574276967587166779865576897346983311985734338915982428917649237457445998231911487538328971883637361849552543671323144922919262997971835988235355659941231947136814896283916421976869872975686356635143443965162538415411868384946459672978465527348778854682966499467653489832555322197455641181827572728792745367566291654643733371352229393728565164137481653871794815734996832238429157292487356747219697171373924829539667293865584343141267448729762618237513851383696591235916963123845686861889147696718198793895278535191279983731391111878157554316815833639793812812888783547767438919162131319491578346689265997777683776796645682316964879267935683851339882349479855243158842399575596484526443438952256931259196446164415948272156361853767756299785225618535649255221596251779758259719552115929441579985161125849799654844334278214113617619182852716289412828538948198749637821892499439511264958856521574155134373215146262566331982928323734151251764361425947925116838191395429495811752245837438911619648261918479544567159782572532495211291947871126721788835978217527536529285397868836799196815557218741669187764546195914484938557422477374949273783263511893747488625342725632889195345434697335196628681142331239664195455177576226985998121134989377712218765377866354155157445362933144818335112536831446179495687781171993593554237279766715263941936925255498811427483943468551633234649169848981627812248992145367629626499386257937132831925449919952591419134715528691592926925911959199992253794653612894384764759657545641721165335494622187552317149584565562984333675782527756349287643188266597865233475148663472245432258797472895132435381428441884988757485663976227535667311398686451189456753353915451272219968594692446119225424859966275271919267311811822252647443959456447252983963944259494946232266711325513818991416335528241356925956497576365396827369183217698272812557274713284819717927686493683737535896114494365966724353511873626995596834251545115439789766916415854435839783183626584459931661955377751618826187725168151996991428183143725332894398193282772712521713974586665984882191267337478447745173648137415614639242978622476873136938668129571495572443579955268751517418355394741864122917522387347977712332594571972161613831454252822134273531527613773856981495575677984226277827174368857885233679377689285867564889664232744991827575484869414782737149214512583339667943882359423126137377425638684287465671611822514221862325164481126584444525655966142263668896998547879221775261864979235114793546224145112527584881894393653896397611111263811399377597842122651311311426696736543392885176131151171112761323967186174562264278276275342472668356863229336642457865489435681495981392224676711497935877334464852871982349819957531116747264548636633857736619363373845652985857328693265716642968242716795379989748153523987263876136616932829683587728925621818411961553534483731382183535525455442486647186247166263416866281724753216994427223648979455964125489799389621433685482426823214652522558421343492948189751871226367412233267397581397162148259776516628834664213222737949754611251812794159458561743335219571585566624928853698652875484331378724275676459629574662988311238919326674218169896351339161273863783441651466245769783797695981268492457482995561348517276564561319444172161517521371977534981891743139135285736753731573851749693995818415886551723779145927977276656485864517589755769161748464928456933283942816362276241965357282875192485465982298711797332841926326444889387486156225847922812544977455372911526237699382462514811545963263214615465383339578858813397514733194521938261996882661889639892281521424239239796861948881768976818848262173853438522489355142613495211327591734674793637241392431931152699763131591753475485536529524773659862799765991539872423374642996861949925494447314446674936915592585466995338958392848141731379327863442975758577751554536543465159384479835772457582834477613117135462344712935573646172632942745169293563645192465853926219372677686832196694739314595216923189838421539178451371639239821939913744785683426444417319281373164337695153284828347967875893198431279673891382915591367736935777875632929147227676691473966432119573573566288845415432627269479326563829437229659982144751697519165445368879834722825381348199895437853649512873965472516314283715489643584661856294344873271551178132371536512121354749957991918791828762322323357529515294283953934799821943267827867277684978171549411494619272956763321797594546576515965873876432663632372635272813318675853485651813131293618779998666231378733813125934284951948813316332214374685176485779764433753386486823271676224671646188254581128699815862583751724312237485596255145622859235195536638376715338742313478281789232785591162484357476613431498399477827813952377914663895933762718589269455572272527716299565735572487413869976127786395241694151277818184961552229748252311615622313129415459661534358478438889119291931475429462786523465243143952955982533468536287423926239324528117149375237745485677288229561451154982495968496853579371336362366764883387126591747764886313538193472698489937912677145675827626943912749623422578272638218869553843916868999146952125734611555738128785484388773963345796842314125872329637413619833412985116497784914877517867751979178677297865255632472157821728735572291877382744871875545426278635744721538512878854387838446218672952985644822515934616449959796781978443814864346616259934814573569493674959374834538432711968394144389674691983426148228324134437764721271267488983713634936378844315313428167955235478769396179491831152968653155582368387884722714728894647852311527245822284454625494758533652794327798916331692131495257512671992661442174132235265788428585665739764861273496822378191948595957833329436556146262972165714288861281213768262777874969549767534552652938745823598895738684447781856938893373422391663432755424597189969176317536582734818241578287272179591353891964333256184911627715665689867863286491918498458129575934899575883332222959784685542134414352729851173167144592855147477682754648734941543883976569296764928382145437472768955691519174566383587839666742536985924821256783121613668132274761252533557125337398544356463639744886131732364982735959586748692971473445561858911515453836786863819143588562353392737919677253524426764519634853125725662375526758324664627113393764229337678253974449792491521776286118765588876299167217258236634334111548324834741551265877449653152995726199562516511997621685788888448948885945476565137175643529364157825417845472883599853295211524196536391747716155949358769719219861489463243647131165821691511476415341543717418314785845785823443866811272822642928492951431565751431448528673764612797729776249273216967824981331499971948441358568944635113935964861944677792548342794294376772257239596266318942219519846313526139178685115918128168832463514216213969461951852647531656816236737923968943827172713777358869533124399194384981142317142827761962382289416813917938731892677563571699539119498171854834171635973142974785723611695967264135612815993469831172131627233535185274762887871877171121734976374682146225911187774675648925542819913535124212878235699481834924814156557968945858427255138528819214758444237712443246649582361272536369772342485687352289216322464981847972118576399417427958974472456152253899318358881564452798833337532729651475153118433612374596258321275292616826558898926275789699715125175655219189871496864633584994492956567474352281856219457856295389936562996113988699443228737255248694782483681531374685457962565224692738986149156414948644889311761833731333138778962825283122287269323444645412117287696717925631652875249779879487246627427779835913526482368286991551281968842432573122246865553418526613495428676867961557813243994544784225971657243387177272469724271483989945548877664271417367775823992984348225861188217734591972271258582212687784495177426493519525464484541319658154775424664516931379523544497281658189445885378414346598738436482398223692229958372811773516154173984244254138965235113443858255442756171573367761261485668483816181687634759424441579836663944542491243417359792738621286469713952866296721681754514612157127312587916667635699859399515296936175764321973433426345395615287894371691688832153687195665973743168917176758844291791355753117392293989464248556626652115316845144422267671335987531642252645158479596344365753495459465527932868716339545929248774519852654728599111965456279147487473547729667458544988416499148875928689555289934221961599493161561339263671563784778727656953818939946284239597864636391985175967941458871829495757386364779265849884761733572146763389555571954742297371426529175394248775769143253969891441347876289956523526731916885728853529138823564715277358735297972323215997242511137643425835632653864353977128221875215698941295481715992694314392792351144954481441949998328747825949943348675629793681412275756349233457224764643891831948513946948384894271534712785778618812495323693918142392579846697477416936285475378497545438187624364856564992437267929352148719135319965355376993773697791572463894779294532229486536296352398666943852194225144685315828157794387672872282695953473844748416745491577575643137365549823553217646693341794196722266147281512265614946915294876982685314453458829112792222699297245775999335926816985296354163877344733645246736334733366662948662934298792254875148363938112967151478247353738243968259951146742677491135287111386912997881464421251252761471489989267746672923147143319355484281987751318419613426647552178397485969189819761811465118116936675179177858825885931329239823489796783476256535917839852733152839596634247888379963846927322394243895218886624521694385916235648936337215866216176494983495858741463172557168775324592732226178914392456152928448787951971588478788823427518442219885883829756523294536286919218197664856711252571913521129921739595871431556592682834744636698537124166299658716889262523183846546752361325295873798739137321774448575596114482759422335956922355293552142589653685716391782916415669763829774122583191278368818465321511466868915115233957748573895844871566256767368453226972259533821755461936642477697284398341521595121912566694363971388113153293694594749319625812839639734143282641924843894275457221292586715868859243423839264974883132582968754757988261277463832134273379253417115822928664947149357683487628337829911866151854687335563325147839719775489364622354619831334995766633262286548662912893824294778342658666318963254233514824281115359916535331645967297588896897222213655177232636346194874443163263427923636688313892267412697823254736188646466655662412462153356738337181637282747878815919244816638345398915169835525926839299753465984774289952494984565474438565953321537512641938364711133978374595556197251343979448341638455794249848563487784517341483227696119884629866533873516535856524114982244139572868218752146686187475598981748834734599692369867595944733897688951319269485471219594966245813598638534472897718667844458837187848592838997678433217432324923595444626415172713124667877278327851213743349311612976544359182767877951274194165141695129127293871665572871266671739131142751937183449525642317261273265429413111353195658777594419634166197297222422967734462712654969657367977127294767193263328624478294781592391566366572793555892619988936946192617155234579968928916797392799859665177424499291181651479448323377674425764673761635751594325542399622986452618679935974315767987949927551612567459847277554341123825561621666391274882646968161332876837883422438726889375271294281864542773816678356273689799927983437593864431254752929989889677711459635967972446538526313269939965837323119144786528148364356243635346546449617368152878293716968492936669521235939217916286773521693268199923415425916514281442491716596486626158548199496439468437977516168662516214933664591332128868474139379871273438877899192877594996832898726947834593592679237517989269149544225565893951872522321137939973384739219594471532743655347233441814725664191143296469773495638718171536825828128553521759123883789732323694585249582557568746924877898267596199957292847512193571259964513113997616889539647874788784134233423273651583455133411277579782123239484433667269318315952929122334262594751456375196591572463594899948324358865473112968295354723717648873558985386471281715985156899676731518945473589541938443912969431372264691838772754697887973795833837397461247223662249936216778961779314317937383316399718384179146966386188697936645416243631433128657244194685248689293546587789643266555813226974892946484253196412956335647334513796343667866586581913566189439619232487173711358348684282224184886134741991925758617835936434613215679578669245995666169691151361828674539444842398994763857773864621154197471599378653828495779231135533159199916771942781267168171513897816697264257326341835742881261842399916331942564557131218315388427428849844989434135146866385225856539413719542844437824452853337989829989943125458239573557881577448346328439864687525779547584327141653494471647388664517265686381345584812764493258619336774492435872253338757872621644121351583969174396952648799853154188125391396725219363142916211617328747776337857773986186697647278943619332895573861457126661486389449461551996272216917574593119154989934923531651232877227337232611612893255219222498119642364514465554767377198237937981125456882237693321131753455233234668346458918149133197241654956322135651551344255454166939315836138583536641866389686388318782384932373937113631699216937796714115133424235477445255846596965375777918421757471994376936532947425295946921648637964655217391132541945635689342947393712431544678672134572416589218488621673121986978425665194124752594569762748446278633243533817956392367449274779543755897278863483519242268426469535913738615843994817922753388331632913863247446716497472719533585775151364116677216843913955193561954981381947556239439514123368354752679672327931962722113348253526684441672464349419611833648889537871837962386126176159423281134711883478695216714318259456569831718155814434195315139864519472452146536958457767279955494331465568221715538295822726245567593149841811364263744814417863622915888869884199453734165741991181659434412721745198494867857864928751182252335735564749515199481355344468571942387669521821757871395731587462688355385366242828958412448184142956574191624695589321355152465551216596557815463374398613849385284833476957582719149888162989497889916611448519492371186374113879779339353212142268366883184362337151175395498515339997296523645349346865393244565554363814167581414189528832168512848128425163294492344215222963245947787283492732865276596783995489966764193366442858417964254682586253542867491565314811325674722436679755484521849338359826187329777642178429494436352232841662437281397148968319934956229175127825833636433163156449151957467148631984516722926549434428163767428595846418598143875217923278829668142772421325412932623749622577381447689691149222372656516553371325962732635646763837477931248269655817979332818281726498523237272652439362442359229859791922639783916822155278181975944925287154335917913428217314697988586171514994684824744455723421358866816295453844298633994335351236626325861134443195394737251374734356731834157367786159765771153578951122437152739444398676671928613614836431513446675532288179839988362885944268734276385182864762596674167573345752379777753228277744249877111564782567242543359922336293813858217352976119334225457867146331151776953453366787212778483994998954549773119667377454381571858654997865255211836471897945929884272857263673655292261964345223439614239386632959156251575986228978381328962955951465592999592497236267942947432577927116955974786381885168711957548338822329687215283689459434187811582723671381898257192844333923961942298336315111619892225316593686715427147448517376577997555613263614317941779316943533277636943192532225272112696848254726311629862873489689747331946317947898874952298147912634728348132712588974983876567529881624516686735621928195742394382344574232714155146854417546863176433745715191514998438273767965587841311821769268991718873568926789621691567572462432217454255823674623678336552583614349663933381653719541286225584817653855273237418351368871227596252447865277897622747524526275889934628135714466548398641257536528888681251587149769632636488831697465461418912988739992529392351186522453242349112999242161285384824958173396196294217313432849222517424633242752162792124197918168698962365439535594795994795599359244469792544993362761231668694498824893956355671745757793651981772141435858315378753323576575541644676152981498273494641296641694169575652691418546891929573533738784139288228962552633588822194752155163783569614766924786986351465862928364135591172559248673618184275992314853851995919765115823229728848212487486976741242723135985669489528255842325448518799378844672633358822953486136915923796163316539211495632235736318477982392834754783345558839449176774893976431718922457248172179746125312835895697742355162369222733153335714163735869365489392454668872332647811375311648666611176954966139799737246219956626622216593195163936739358344885356556114313628922574498332591924679179491641531578818729869852218114953926978125894665642426536237522723318119599855419549182795356527747548586371811653562731264815568322959687767722977159954333878591785744491162358943748161447396264737166952177961134841874583118471176661768453456739716155455181178734719444768342292716232549657429779623978892919971683637582123181941147826917814862224861972279154167847537117493514781877983898114778539231879121488455153332142519341253349241278914497529733773686692924846854634953615676853119778751143626179365524872455656522477379641357272524919144618169287725789793419551841845294989917678147816246181165148456855735482385866379967963367111694157595713388724619386622222271675324674883664925954414635743899321678967233624918258619183452273341136748919399124874781916133466477142722751652939396497881227653445527782647839758396985186641874435283456938884613219516261257589186331812799941261121737732489378891781959854968969121793832758537416491385669454366335697662415254783711166992427949497244384787165426422912242835674488715164879491822922134217674891679176452371263364456866623813869876419537652776221796358538714581221173627795316375999742592751752857129778298625214967296371356331131998727679179475975593637259362452233888786613219669722537353587591777646116316362333475191338987854618118638255377514113936824518968678531346772413722915586836712468211234699831192282748231782927747641199971979988141963931122775448438315492398192177379361527962713524953972871977714638671377446687973369445443192454291337961538225351185627837851371393178111822455453814586269287326523424395539864144492916935656196327657189974377627617399763363995669367264582343913533497734924478395919357472661814153825216443253753578396452433637918528152377642897626242273446146877673799453432182795713146648326973242176418426585955268732543939342458178898456842457229363565488622417287932615749459376522958619749558251321794538555197382142916952766787745187842441968162353747813469234633325558644449664847426763665927258693555899744126767423688171785544798367132532217838176973952394764589293245444937834522795724281448447651995487169511661132549583326962961498194943989983137175395881986925614917395284486984392781878459829329849366685272512788766492373394277993651977116374249688625834249738983981691317612578329792115988886163132142713748561449539927784389583676746919665699542543192529577735398778644213956299499441487158577344198517712429348283221825662385793544314445468386597577934162431774194437864681239875677983124181489732428777699576934621713211249212353219778624216566547657771581725926782544854491144718365424484876454597982229224584411841289576919258846967877235556539547473862877659245832643197639473119395573238143535678777529467677696242345248499756634265191667315819943557286251812228628683213783686821648253133334195743963249497168231835237451758223328631569266867959553296262973314155191115692386231449145141362666165165613731243276279583627773388784244516631857464312552238556224536887549423158488634756589111354932565517712658491665212122246438684925695749579545946147241783541932471855892744228721435413666657785778257319722583526156391845613189894524485534885378817982353641638861318751137455335124257411462148268833835679192593817647663877683475658115924154344998654922589716361161551856279578233524662532258154198173781636449689156299394918318125374246879647632151861261981792318633299952695718885791799768789631751746895365233612679635314267331394783397621972138981511826539657935145815892994782742813466312994598978457647925187268594135124462158883646237535342981383684828133712964677328743931958117389282462557813445318591676475294112247383953295716564521157657957169887972282652297558643397982688656343551525624368123242839197843366611541193429329534616515378414963117116348279112472922439261455756356971886787824115247252187552186673659218989279693397595259367824177188876793553772522936861543848657424983247524555738313456639383925392525165521983713947599438629149281697248236496699438369212915833972695418937586328243254344735913172692474133554367673895267667864934252663827243981179585251946447653798979772961957895321213747412761556323518494173584515877427584428141481229536775125513334981222116144155987654156695718996916216611815313968463122583372872483133123553848583775933151337465667878112386934312793917821556812677478616119539598788569424194251878737347289138896643483872186164836669368161948592738116113719982636652358352199363262663932721983638753577676612717973256337335678343489147686767453678299822468171329322871546182358956947174871813734922955663787473176764141131393684779235583231426182486398427675943864313524565154372819651397892977497558883388626786641661349436955518487615465934687534667489975425252822357849296959315933939362786866191785694288117699782718876462951128477784495145123382969585689681427986426829221538634573939897927716457828749782554881983971662432865547312279334613619886842175251795425532554724874852445531155125456818954424792986129573566166592982875117466554155192257854593599576186733376681281295979319549596294665882441557566853872826665265431919253197843438615776341757399381185493167399241617131294822759757286571211113954666675966231195713359469369655811368763476575956261196932975366493177414952445851851453549176615721542936168544638663797783244514668651256111362117386855278429875649655344269471198783289931827372245669176912822678997871751587591166953443634681478146122169818825499633885243279173783878769641179922291714931837114472347211296188218178471453252689713434433132851558384338543682552893136338312456275597341697643732134556386531947386918957622974185431957699683311711586356444741283288936784915984933457191454561777551238428815317543242276512588333345176857376129333341882938761175571266783473395529516688563661917924581727946598447995732176166857294266959597321119582689285678388793387237869959896955854329258827254967552437326911486618613595199584238362192682629389149388887625148875973232282229123151828481994871366578597798619914986734722188195741599268929819296678948246946411369366168838758315198892585125141967562345119849338917155556169155792925525497321211825271776771341442882421242253224741728395329253341473586791912375446264685691933961317777866984426932399859752147158735312989221813133917872975769532962959961941234433119197563516592696572566588811111121766196656714452597955826836936813512166537962211815376868342931262466829515625695933517431433558674255295656116598747481413666413737146692211659314132962327858121724463463536556859955166851642613948285336871466351867441594655838656178756882425491934172337719564171845424455984186373594275931327411832275764151677827235636657386369386841256313984796258714532267985578683293491861476346579684382838695895135119246669217165493565323893395794697353173868397544165344563933482117224589328963369783138421659749361618521416632498611443486441276146998928471411262395542176184798286967714845861889334531248597325791472745121118132374486246856335462536937147839966395818484916542695186881562458177557484765399558867544479624429975692177697532327951398358571477837943683335455141169883731767459133392424858452457334596662396299527568743677713425775339448967898544417664444666243565599384963715146791134489993358787716912272676145247576475698477138628735872485887534962539466169811683159287665317713745779475246114419327874393963337793731235844264995762192386519278541564837344642218397336976894636772154677941241861693289767131687882249933147132182498365166135714926829223726823953879375978448649321222492973267444251757472334365367495682888521846811647661975591131677756497571161115769747275287244918447285299399765628346754477767591218628546512954777342778454983113954617247333699424581415714914298568373114363394642682143433842797524723149368622778973315598658499762965981651727625835374248876743837326371452913475913216983665747569185929129357847158647792366112891391292115888583245714931521799628647757235973276756148179149911864429241636944518112819813612677128932984677827627796577746894516387575842623374944581354933283722458842192318692959975267475745771563552782542637624939665139596542796864117368829212967569328963131626936542323333329175996882975937529153284496737534133691788371922827935464836679971139197834825985588924396953739732642323694273631411649225587351524555814322574414467477816642583947427848885224561196877531588771413186964485731749426158197763883191776994576558489985884568747955812512848493221228617843796481871121295923245256995588658396382373383765978582972429284913531758185252658386583625633923365229827432576314862133575867173594585216354785161362517183681849386697223589995911251849218282998658369527426816812895715523512467184125765336917975546986236453169461736358838436979457178614819735817432225857343388885745115978558171282666299527395667178465299817925972581432141417293949458338929416444486581529339514447271161899544872429471493443777585481479413899131977916241417246784729751938832928617322262986544715771753535626366988294382935395861835177637254852661988171519185167674426142426672671587447436742497829533564121378315158771254494964917252654681492896663777195492792416651918947226772949659288357496951832635346993186851767592229714787851373862159744611358451321688464391466672535894829644675733569888734371433712192956313775921898561987928289397583914271662741597584275183812641949256212385333962388876156321294128639756277564581377873493513813565429846573932857644773122393647169143691873968622999381429673388272542529615567655464596353579386531661531165639165515938286114756712754759312227757159967576841511686959979191755369355993676616764358246134299534548137284744419735547251559312745547254527957919363167213142116559264625399999935231842134335888615155575374255677661763286654423827464891216763438494611266597689415794894471692431691716356123944513883218277391369339964565758919277398194824849773767193468267175613313784166944198798144859557997236495791484684563365649583273895434893832389535651214163471558982472653762724288398614839875763798763149191419337287469446893973849232242382115813558582272477651564677795995376539368574511375321577246735253695622467817844354311925587993362623748429292416826928466155371431694545454585167647473988415458317652285544948693341647378713533297315868253112335378195765817237767342157256378885675251641444929653857562287966433737781815197961244891898685237399167258557244257536515364665394391915669363577329769385551979488578933868226847723639283279117764547733644127788841747154944629164836189471248823886581875335331623221158262942231868755277781742952956762766887854638944713776769855411576154838199894354529985968499455951333941929244585483878798633127149333324237576923399269921223825738959362119519748744535646726389185911191851834687939373955563471751741834916354946974357794949815978861241765168654978738121111487363376242647392798661362461319924242755818547626462487523642534947922382146896442571221484636921691838932591243379282339582173932915896156158376384416454551754944333827422358776216749184268552974266897921787398861769175829116422881582649378144111116498498939127165239155948349241879617399181877388283676499414381151879887865583391458196927356369346213888346464518297889513138852553731554189429248936766968852987259214591433347938694199874963677587736868183775535834721116364911573248147315757131591511227426564877672383757461319469472113759936793721985622642566493513767549118379377838982137667827182736637454381953742844611382989262825449867862236211561598686591672116172767968588635573331889846946544619315143815342565542525919653913833337516129276618769351195395567699359851767327193927917445971541474358324936734825615258636789635941751243695187547152815473434837892716165564116712782328542923613773368714115666744955718781141327533213612167631826386254357377811139488485147227645169574282871874811649142643497812759267254322692655558623953633897713336758817863317168353525794455787352232827147743478521188434882526628799493157493254142973252393954723652946574887281378693721815275449433981468176293952124284592134966265281996516781881399548531937643951839579947936945898642724477561643581475177762149813975312967911359386693358563452648168354145169888547772427651714629445748235923767324464228288559583856767249424946272684392146984279644458378762379426746859447754617852578443469312865459383967327982148872117147233757685879591298483269361964786942598976825743672887823819377751919696278752918986676947873548528486113877957755421915682935776525125491186769281281748831397848349789777353252279233915924697431388265889114211133324794154686624429898797218219531719295553124454344113723434486456256691892126549859121354682326841499478579123997897932381411984823749587488687267958176116294575857796424182897482298799398656921789321628797535744524543397889857778841629362736267411649416381958732783618781396137999839447532394562623481429912612473426169187534685824856646796843163659466218576957332885354827122487223834681175897165598871573719421683941956335931479266213473214262566541174566683599119446667184229763869215773923823766322119421396662462938228481656386487237256692837939641578634152681393117576649432394231183487545573764429183915133446454672326762138479367657951384828285397873175911836582376293685482822598615185268795833442799237318457328735242912483636795617338174884567179169218462931481123829297643249155956881874813814185994757952865459838915385665964352716511677212294983311866252686656395343954152349561646259317862591135329625748683657172192788827829349192575243598214493669452124947957194416765474793959984185479264863194768294674868756163611426792912277986443728584188449379949138246844577657496795637465457259163546772436175634187723157762667811587629226678177738933719765555593253165622429182875145922466815929325776817615883396687714393784615172662332711129786357776944394812966289468469228852629113543812918616541376288963134143375466656416949967685372583875293747392842525522169596654832341593333415567917224163727189224263585726362862572877147645657963211672198274321397981745299795996954163879282329927972382269758243548726745765757444572686641463617568932497962595843999553679948585377516293442825914968216119857385835544686758258543354853838645138572838414218962386762953717299946128968378164281757742112721524115811627424732716478688641691981571533364537696244992765724622759791927361929634923187559829984854935659742695886284848728516981283658611759147755938898649238255498258323227882473142916829633173897728939517735938139799663869148798491441213596417276221495499278926141961319748455877917546344144737823842796532117718441174387648331593673325326997731737165718641689955276788386858921635996851718784219768597171863824414177947826135191749446521712242448233813325814887621253323446579372662983453649391326548761327145299378514666696726369936157661179997646913662132757651344899916885557247483494668422336715794272627439168317762593725296655873133666662492167315677176639116318675131361476115652368821822453399612727755264728744626787822131199262846342712686156524315417317323495129181348844484795235955575715216214137921247616138513859421749359763453477248739679765797671515471715952664437375349819466515942913497542884611934815739379763953281835922262354634197134919284412474865181216677177679968867296343729227246794481256942727436959321123746496735638332594235821751753925564927489222361673245219284376812294742653788735148558465883463473855919376149444287123592727964147637554257989398999257219915218961595928517536325249969849369155195575435987518122996881715618118546977476125826916683653113812666154889372763352819254455635671284552489555779859864298641118136472629564921715771181843844746383354388579541117115988373737245579787644587498187586422673397744612255513342149788229477696369539644194427519588319237987513544318726156697644564586174724168598269774433985441879476757153883687565887986528695422986681967126862331837368227559647295282993577781672498319164827547955143389967925154874689161614399792911915786192469837622673111871172152529227464435187254455531427522573595139462861585919351483135283432834761946884364299237529137379452837822418725234956717691427353435916256928521825585244176892133534238739561642971584891589581833255926763716914953341388226299413994661841431825948166877386226425871764796778172967453272683325792767136793519585229526684916374451963531861618239972639818346779774936992963765662724595437894761254753958225671742192424294479584759143854411474673613113458316782685869389336673844244489319867135511329341897271584811741627328768899613593229257638691652373957726776126236151713461415532636417974675188784743978118552714344931376885652926223914767928252645662259515796296587752554477421877981831299827365941186412153139728711839691437929127557542854726586567526648339229864628783164612257898462285196182432311616865161741586694193691643863713498985958996565864124177353523851648133823468945446743477539795757541823168952596969296948817272925917212997146522549143813539531121729919612264398291482624676676647628577684923723759821377734487249886655836197463354261933351155943696989699325538855856171276559898497356277621495788495512965935764499916668697175894334438921487826726362921727396529852553672363833549641712431172956119467483775928883743875772856566593231497888666841927483568114663775724592357929811558795616961236717156289861842886765225721634394999516483567656322743393366695984734473628284795878187413961468721267418235694971779311586621493417148861319797774594553114233373177753883743428768123222534841147713871254385251943264315788892563759754182695689896126594473527781756153213761639141688926276844818523823188942844893794391874265925286584377362741919338315622113431178496131294294116935586687828836765267276594895387825573155937582917614352631168739377571163712891651886148143826742399495665854898976489384466941169989455838117994542559896388384383127688389987421575444872699927228866795583325362794181249131842628386635856381441847851854747888616368653289324398173148321119879486251568589818615819549659527465978915654544385765528573535169546436781144453838381128369766619232711813348411337239965931481494573563877616638452246637766615952396583134796521544286953512916125763965334874837246831961159752227414836114596119681567572546658388561262491911877924662824569397952156286276162853119271527446931134643341755929331247289822414426889193178579492415124895936377845744141787635755256435828544228583986954515171485937518352773421618184443941978471121855912253292911244536523361362335826949259359362615257472397421993476381124949191615343561312391547166167552451411834971111331363167663397432473455843852973889186841261794931175658734829297195577684643146142596468759569367715562836128623752486251295932691147229729672846875489589171139223844715762745412859797594695597781251626798239394263821179529296292152621432361667849845897616215319461413528674368151629379799221155286536394629424475392279181996514156675935857294533638637726276661227618294813365527369131548284195765664955369711446347492199418874331635161922865588217427356134466428724825911457277898513215441962844124524558174862693913546433627938389635441625875264317941392884791653196157544949379163982279439585783387939323349136333439372211588816598329652645176429345556493373812644597651158788511145685812172335675339435283843957514994192224679192934543726821572959369471737746738273434125271366292137999763336152384685182217726828517573785399327785284384955436286833192622543319627945339863381973272322376596557241663648866853968271418946481294151314171755951767788472121929433364661645129185864511691693425751917969551569935375343482623197187673638664656973385624775173671448691457792397526977353749916949898732492529352857562635624227186859998149175148875847399729428194982796612216983466296257298987286456126225713959667273881679387922413924575878725432619765683373424625163448311753893768226434776146533776696569849115826559816418152228777333296117687231112632526647414136456956614326416578621374914316951546195527958594455472752182776729238769464213646163237435492163985661595715968664877419849145333788737318794549926656549333765133895614473737517262715647924426695156583755316111172645335665125539167321751251368411843398819251166778743867883523586726596511516172855122799849288759317747788285459951938823821686415289857674919895887778949998548955831586876865443121824794546441823861448924448748619178322855847212345126459213974762583777351871993515148949237593651837563449439678162855767326672644499632664532427412988529276329668421677128151891977738745267132873839541345323391972736243754931194956169481611697771294567841859254749688648788355374629493378293567524287146871418669597725634979521939633211339996844625177354115197959271283272655115413237437846632547465763837327867969793476939274818475657378153748717945547444635462827544248512271954397931384738819553866596523617827628647819689634811441982251833584447927875737916951839943926154487178756229821414486279561975313911875487277217446152888984314695672111627437179675853531961221677877838551257224588731726738885462144878994794142924985657335761874162951329634715283647479735811226311322374654963236852734115236655777814169556668243315715227782259838234288645358687148559227432214137534397622479273827738462671883535944695742647728592347385463724298547911954636565598236653823233977757743294741289991556737149336991654763236244944188551354176765711186388812395693457562878444895812431319448897132778945788267548681611444323925191875453268912659619652163365664751386511291355316171266482748123141581699635146752668386469152465422472224637192357176712616732272398529772582616323873833515622841681557795855475653835174645628776621488864399755937334786246913674613587796771164796965589279435786923693259365634239687495336815386554869785247551517256679359677232697565978723764388945868625347496142548411667995788155926439178563725645691389756562943576462328599943413422296842925273619731669553793924243725817424574447493348617797292463943674921464993226165645454479664829212246635956542195439876732923834157591194648747269157718891983376136135588351167871531399397535137739278893899576538558587228632394291179367215656591348859722751261167973683257796719595566631546541248416611369849788124677621275288838488494377245156313164271688469297846363965468999195411468294214896411597933822622962117826336514134174766147298385484165587137539836113616425243671977535237879753453512133456714792543966653527742882995339999379434629274425988966165587477215237487284525913698313751477297618337956497786146765939176775344257853483159744319712618276619135819946242196516586536444983796266268863871412959612245523792327833618885925119969163514874996678838616197597593489648916415962645415913653392529373274713289354783182446665616544851121339264533739963538988641826926949865217579455697485248329811415389799446361821559972884764794122991933458531585372451826285587575567793644582118253123732179825361931284642743456767121136898334427345688843987553344246726648979513961845124778982395876529316355551634125482279398785336156671236377679126234143911433937695696324871772383797987929113862322843128195233482171861861146278341453352763192288173148243758473597831996286494281394297562317467139137746274673512821566686422124926799316554794885831488129121523981999545714271554582384385426524512445825233377535763981522153312546918429636389765953994199328452942683646364148533832132952787771849182617911763135337322589267259158218898864266689311469376899794615484279586144965191928596475835363571537141447845836585223696221568411214337829393949461721221367116127449129948133177249261276887487131921925828924727632649326854655657738219891372135288119795141684357966856873165473373241644593917693377864159586724936979337627377584279674522183475972894555272821247193445553771277356691218389314813246691868874598167978796626995128677553349779565362139682361662528263395361117532644691717773824631758363473925278537697254436787753569796186594346995619152528383529498897546761359721625866583834764532275841876747798264622914379622748222398862539346698777293955227938156842984917565233842247548331136618796286732355528741384216298768637346817932474146164474983868511334713595632935639967355529279293572811272473825811536968885794941112137264556125167544432791184974186792145547143697128186184472778348542985689857449257755182258172724812461254988882557954268955937426643656953722876561876662264795468514218571567293289845951221656596816654699319527482965986949489179734183913944682668155649678575447744944127475532236789655483826581863274822354376844618247429157934341612746963636196819559445137451411484179332832312256189582326246274581493585614728236273394818426763893149599872693291529798631196365668418475544843784752614523149596446274617871258424664915318268792317757344458289545845355261939958724448873682534926442867849744595939616764816298832917592466724297147622892519283473122358738247842493581621548785186211973786469498645597652438735346333591235164728378833955637251773922834431791528391584946661637828191543492542371318692357319981781723953296323343111225934822889861956265787921121131514995272147243658227817818811862261567761574748651241912783767973928685632996741864844892977663955712265444927982366545733498783163379793184772787442714944712916233993289646725557627921471561274372581445916451112812849974981318456489779314314575767555943164798236293133563819376121515811179992592714148329346847888368376254314483686517432924783518325841251688846596238219677827659132146195878527138849695477132933137736223953655339299725438521723396816992346878896667299949812131619298333899678134843727796799761669592672627431723974643212277134973149292834895182455765873576863176175167446855988445821178654851458854697271658492883889544929164748197713767596674852714286981255954724889628285569529927425549834295572444252697548449172524496725262495719869424256243284524275581628179165996221724943494691149219927813492912984478517766871779679351589679867294944511187955813846885842717436818269267952442534212585655396767673498174317469779927372791467124353169379116873864592761797398723828755756433519968124193622483664548914547897783584873143389656988889133711479536814117345389878555567738765626217617431858725471925677454714424174716771452988879327151322763159429186131228194926521653627822864762454475374756397362533325581866991347763238757383424745273258647661346659323151383656263467232987912666497781818173678715536624425561119787757654892672134685125462563429195748237285387654155591646868667142943752178734137576639215862674758113129972383141683412988945319211312299327629668818996781229129951269992652517388166735646547532547436481531367164737179624366419243771833858554826423485791341355422494678433714356583953987112533573839662832367815191397996149496577534525642322722741439133951517359591164186357321353246441471185944139446952672716119543579678161454297882959118619653899755552586915583767668438383553528172129619157423178811648894135832133983888429626596661448642224226514673414266716461383257368579228576816332812447475689315162973731312834925158775243163678865237257339621925882395511766531943657361331322799828367342875968223949962893963854679393571966787962747837133316664693849835493198163855457677244593777669287387282466891557262611868523321157665892371315132171257898931925681269396226738835831529322313861876795325878659233284115144319386855375853527531748249542872799474791375526268342145888975144972351276727343155259636523926313447453934657852466338879162693936551842296771817428295211369552996971288656746388188598634478667264162937591117826566418645491116422594242243824579999764293393834973385599881226126992312549722919347786654565266845166119981171194662226572987561967557455462451716927563652387473138763197232293794349684722559761527736548758926258117478514378421192535491172685595232162498241139381811827975425936933253175178895986857544176468961385471877657144739572869495399327654721585399662517684523932943517889847355211351927378551635975553545171682616586223167131527173316713769819358978274986937623944424788668593489216684285847132473632488247465376835242725527644896134747574992483816967428162351854327953343371669256887683717781113697821248183997575132393161161329812814612991648951261466473584474454824913166769876713348587833278559849245711688267582338812227961844756226275981638751631742338392667378995474446119162235456276442159848376619219125337662389713918782518168989871313969277156347915155862648526545842668364876567952437591341985458514338515151746888438562448974724146886281364843784528563469621913591129136529687129966281152943372383386747794416482999894187494532659223883222641729618916546978942953229331494465325915658135828824136157996433844443716619172863165669468991274598678327124391416762697486393742598339131459489855923652281354513335237251289164555819827952383514926631737534977448339914122373654226288932327151862753164371436837444227258942118373488614746228742154769652753461698457822432215419875631894149297843613746855295163534513816625497557822486914321573923293754183847628667247568625815924388687961612476181736488858459777645222273318915978625499244111864374481521312798568898811221286413831872992162896785565576684123495473562776756415861317856267486823269236791432827846522937676267564475945177247821563665422946783928522928542323369535966151718899641832575716842674279783753542495467525975567735133991265398537954616113548311712992997435378963423922276986867145134775382987218591516285769363775142669857577316366865329256423836982956592223847432754759399582279363912123396838112577317364471295586686816598397445156771197227755223713343162895211776876597353764934357453522942818575134858114417732466616791889636148323123452134159619389267121614445647872974488339256172873743186539126223459273188684762834231774675287422447645493767851252338785394935968622259335919825157814332614119861176997487379774464686856355141236725553371257573841425941453465937461788693441624645238253388871596574433667617971483288425292242788129475135733751179791228423581282139522184368355235155986225233345385494629445857352749451753986394833194138512247391235289488997471689982722945564566975812611338386284346528974329926397566588327934257718586927898437182631452144458128976567237969667839975978413214991545368955921683478775595715194158673467747896133819357728227622488614388157661831755526247989127877296182846739794235858537428195824513587259127439994846587396767118366971771424423787335954621321146533691642982251973467628541543996244218295319397523274137961368773272981421449982298411196122988195283224356245354194193694782571999321635258672171489648915263262972935448215493439293183588794891983426335665888716914253122381488529133698166736426839932269216948949198894477918571574689498193877877665992592349495753782699876644289678836859698273449698585237546513385871849646789748586998753283511987951825483356194683557865195272867847265591199467612477885283378942768216216142812949517925242946213823534148228311251942465668277449692995717446451445571936752586345434994526251384731713477525238661958391825834295266583243756492486296187668877394953176439868196616223868656376761867391276975536946223177615261146865872469912495815292751166269745223358238267658157222337933887498524336242995699411534225594223164397821899448478422733281593898228898887622558381453679728998819688476247372199135381252141722671516128756854856465489583663719669352126699984511947895969221185199212762658919994663167189187687697653627517495862177875883531279845195746486962978755133375383265674158786263369124526754262387834248195622747648199664879116779193882333416171769725913912469368545668819495561433823113349275928475364193548671863263487293675421835234477345411516833552718259222734272984425475858183263977898952467556987325798597613919698494539374853673942781552733791529862878253419683761815978136288164232947176135311389766569287973385378985587917934899446353831158585373721411993371215739922926664281443473472598628181982163737935968115332471332939927122374177473272615842764956857568686172617935185458534829414149897394544236635161924495334637516234578881544951841279693854594126452341384678562568527693952352886999927284928175816565759873961651543269561457747383767634831974927244188124887525781553944922313926314115493145514558741123243444164465894296646981645746851293489825314513166753717271866765193975394744949594765482357833343538967229613552828447472965377429314835885138321244762966474126836218586187827822387383919211773394152741331112239858137957125344658712744744866832534338839454618478533996382865917329112946496143886175693788177719699793322935113719268445232912862732163245655825732574976276442525519723277668132177475981525665926887295859653769496884836382873451161555519774614281662299276491517452992868338547593793628268317853142127849692342592764469389974267368943891124264248585493389615222116285276583815652271418358879979487894442621185293222156833731667346571732739247469565246428374198655618771774418455768498234633487847524472722647913742554817235719459787757821592665819291813383227286752532662737298127197325636444918952297379179781589222783316796591511246234111259161238458117656697629233433548444556391192855415266278411654387632251259234764179686417362689341555469471747145992522258216139163619446529323711863967887378185436379821752812976273859577375827344216279259457964248284722292825345843767691287619428799898989512976243892819569599368247946986283796976167123962877791484962578748446942532826994662799986233116748342494575255511679568972273756679718154669119166192889996269727687392747658453952139928535597156785849683338522634525467916611277561419642482445896342931582598153274947976219689112394343472185483785473992849759868382429527956123659748932987863781821762456967332395197385862129191176211816438557146764249241141937657537259914618274578382474477922673498378648454791428555882574641879697459184553485239617854118185154678586821268661531294515313717155893484488245377286636155425929499647976899426934586182523924963816514183823416864452514615181372822229499749234669899168567583565676516471382747616522467115361828458985914186657397432132667647573261662968532141784996143816544769725711543756725213717987531816776247291464936546796594137217664378986922425968438977389999756183771362584989613418136835899397564599748135896126829592871799545894867651248741332272368346281669954719724487419526541254861927722281252489239961514538824915686694798847758744685937828298666324784567131884252654434144919531898355856935351414746249439372242165451143567517861574416433556652196189346885572428768391445999217795628296654785551378312791519278731549294562916833753712862788551594413747827419674845911188832971329584376916863146537544226414434463798378853157698242663213645972149866741956695419576785947524638524178162531162918476868691962794191897958954143879555395389469758738422316529796631151679624488362192213753712364378335277514338537647812172398625547954694927768522282398427378723417666158633464473692433159829151895499252577724973216321212116195534548576247644955477497617216658991757361934419945585234844498287151887888228112559963346675393998976653564374429415639187525714591155312727258988532448989559898814333494119997641874663517486266588727127196869846392442171675324985696416972855364517694561173372741379866932557897557892899226391327292795739518263742921832551472972249522563368541723695849975973976936273398242213373756634239437929536766569669896171733156988679622296643498487894867251848515467666231371198787164778843693247884596533522499195473146316539227666218459688576913216847489299755466211958796396616389927836811346847841611239699317398871559573156729888782749671489266192948253834812679743699636533132236152234613761533882643386497511115227577742674952115433862623622133789342519894885427693754815918385119358127515846485661942432259659574375824398846412395447542517344662153572254884823346199249873329324659674142522656256169155367298443319713955229733339233759357192433393586987858272984257183882123242489977663569657872589767758162381287843189945622769635399115223231824122915356432374794594925227397598688114645863222672863385994653512221685151273429596734223577828849987482518749689252553781572345244771922684642556619888825959563749831988342486846823795188134297279167971119693263442741643962668573261361228445678842894189246983318244356188544328387785699288418222656143985316134792362171811633686191378797391669884971951914251868776555375231117415489488794768646371696129129759188126885262924542591292183966964665244648631174223332431525192467861225188185315628759711319445231142649347768329984854974818311324577491266888776261547838648671916645551238895319453135788545435189543556335665588882269923456954797141673239687565671572816311679284349652429165612668738258215233566422663567818173736551261773818459695841532328581135141127488232181465417437285288692693321933121267696238946554292361573675876993561283866521831965113269657237572489676216399375876182955778415653419921658566143642746313944587637629674429924277359861153492964725572813795112735622626845931392657837116516578949189664146965139793412943599493481346649245738517747931279228447371824837399249813516614535358884866348966881859199659992416194578992788475341359214293333842188887155872395321322631853936134922626293322743754996871273885276337746157131495784361387555961584267752464484761277195841336484799465511938315422131595537965334261611614524854156996447143565981951921362656141631264867123622516596532686178241257634246586635185736784392125239882295644287795168736256267779657876338547396712574189796372237893435287897568614113961597619389522138728454223524719758519538379582353188499651129995744677414352475673413377368257631987628133279727967284819625376375125738935887572281479431857574875447239617355464319243326964349783596465271616836749971676891878117642148198671245241286775852662315518317164978481599176652716737366986682188826865762426596167674372949147917483959182639146893239314226816544839837979883452674595816485148421392988876191257516996534837669697786663163287738427858349896754532188374581363184678482471956397495233581517714962711847841469199522659799369755825798572517517368524483298163544913859899531265816243452257491781864843785691271683927132752829795178346615712661952745929981859456179648217363457522892899774699216979888525849599679648625975885482369111485344389154815312781227343344373716934948328847916936769973381561143435256931721293867854173137122254668251132252347912418712492527864678682785828528558418548698465723589658239871635466319178994475624578381267129666285182762198659995623638349295692299365475239918569722536454713923848474775665411372515959439711893621997463993921171565396267246497486121319591587633962587281639357858978826865527713951668631455131916788355616376662527479414826996553388847475139172827647938527963289964792114191172746438168864172967327436736734897439245911317493134766438999379922834315435964277542174963981871852373815392618361567853131118193229599929181816852636938139737848888779687667142313896787649334212879736482196226494963626558758836698335434945584969122665539312771594136339877253154229662481558696899531517223427749694743887546235178127729951733682145223867578966666438334395652745265441187873448172794923567641956589587264497284352553798442446983832646975583818953222164297785167121798356636331553658967635231732892626268881844288974646948921199251766544536835722165658548457362338882223716276373847571416142264942144324941568741597627121246639734156448494157195747449462113976372725543848657221845689781967584665918382146747721168936922671126525444547111772778661253429422963596741549516782547652783624718957631574424992136881958121489384956993435823925593577488327246539218359621812351597235156769311212846887867192131743247813723843925514281888992976289969131314515145453441329425843629522552881395721963975816388651492555624642113199487877595459389433894257368667596183723256275117396791436292931548699824431832559119153661743796565446878851995996991155119378823466932727815314983887497325196322814985656186564732461181489121292588854451817269316395443344353581376621791316346865399523858186213674733663386763383233516215715171434699817584822934263873344639762122992659821193428795929272147348327471452452683542922749944676398945979214262525616889664821548242638648965116556134181472425339492256132442986598997834965588427531134268356914784465761218948582693918744223682937483493196945183484257478726818646876184778176495729455227817652238835383199638119934556225879993765284483345145137472883379367534942379413916318945123351265917391528467657277969572815822212942983719564261866814983465585578666935771176162742121456793348114696963169675748949975444668568827424611577941644639974339976857577838875568422764769173979553291873659985736912367365462396694571735724196786812538963993452888961422732489979223818287332429296337499538424325515314136277195618357391941462912342644262869321245855757873953187241555531563575151425292477774388332884839976571512921168726153775852334221767727919914776371448833155457424195875765231757781673876412944342728295717772459417783313496731892621171748983833581812141693673733731714682864122182285254591664946925364441641849868382621777971551977411374358334952123289886932928659576911723127228446434815996741697176147259851783316595185759797495998723597555885444932395165884384144294949437859243361776254671975394687628294218334499824361358787144785613914636965856372397974677936485786139636119736866552718491939596199841452414998533613341433261769554588628918759919233265472547482739591481155945957274611654481554494331435728213929378344682725154386317789518791717631888848454772312989839718768421599283117485515713676545312153183891111848389748916559971264562651551623441425214659655652898952116177322342752225179634723417517114734757921923438371741871632332693978668651892629672769732863912318964838816968826182954938339449235617486172854453547829743676598859687194368793846527582748387172929637854733916557315369187884885838523884184638447973871559936418261447746118733528816741633263978991755255837179849423475682877666722246639336229141387755841496178272733655275269188852235375861677759115422828736592724251537594268258789869642282363776638377683417165932995994138386957775432662378762859348741669154721253318535391375217962127832293217548399718746255952253844954264998626687462986581585767142468748599168785884421459825529754628357363131518738874755297972423247853164215987864247646343473687373578998386962375939662799957574731519247733868352116366269817288229143715981725824541956837544456259429818888351714788362814238744675555333158127495321492815777935479892186898536148186266623415852739838426359964661376828968533695677327943837194211883587439678134766459742451769647895536484286651186159293258122791243772188653751356254469261439443621729583747862377723638662694966827764138715933593756521561945536213614474756115269711866751293814163499774464881841826481418789985334191546823797868496536415393615925977449727594343976515924274666262916777417731928568959367633238327883534387377122816732493696437915357775383983273745764134655356789457875174281544121433788213782616384781197252444475643453621871499776776489514852315549811888828785452988949323454817787865646414749937721643967248826591955586868752522575852675356895881338814678719865339376799479956888658915875641162199679616482178834634111575472661526577115113975246637773229286347874475964162575237894996823446122468754259386698467767358582983217982495323882718484998845844154742871312589659486776559933347611888818946811758426961764186755733613396987841672267233431985467716945522216273389192334422868538112564674382519417539862937778579625972491551482134199282758685546143372325353555753652826764218712938148674818282556736293513373374178925295924178631249481617834231122531122527389393341381974395397459442584312131454473478797326969894942262364399646873642373958838232347563882754322584612996768481513249338582823861331429996743784997839578759946968199987551818297889746691683178878755499589389967849498456744531396735773691687271199835498741759232698867825532631613952825881713863648329872824975261353631699874148869635827224631755827775752244929773345966327382763448823826318284418894336154229453233514135743263142464169361215527767269642858152388673499521961536243195279984292968318249225277871979486384693788617422343758425412341978237515255987919274925455679665478118533112612527818353819765392193744954114155836661941895424523687181581885378835827797238678846634672659275968349928631487279723289343241735559449293221838811128841165137672515534746728598499283277671447587138481953782421447555313246994585423516774816849584914237726164595746313773456395686917678375515188517784918537986476232957418796456124515457145662274268998867413123464897581856954379168955785876222581238223817134841624182569189338252952232823216267576711619631446531643724144659416877938889923465339591894369289776568247127454785634614138957825569363975798976439889272175757193138325784571112981897984568267469282659196916215273871236942777786751649241849257544656258326974548511415388213857212726657144488237358687497682382464918692839641356114754412539775165814997851985586951381334391816287676262248796381319442761741358896421435313831951783859812945625256298518891876754128899183654168667428297274758159838737972376133764673299554258131913691627129484631859884218912991359311822641193277255565456556569581461633542859564921545289646684538582844929865355219618573921273131194495481895316376123415422624522962498468898425926256577628178364313148826656147652118761467373692895686241734597697563498225485665122525597847695351581483831376677829378963523146283322593529185857675561621824432664793944752337184531592473896961321515981213821154192148328814934985373373454458767861681471764141578716941476141736884822886289336196691527232113772253249758671279838789482591768973176142898815797565413552537314621125294985454299549874927748199191511818244543495373764437236936177157861224343879946388181673381974651671994371255872571547775762127173172498524991247182767233344941247487238436439238383194227611634361973625356368987286618358311635623983418124812629278994734676247425764556937178986875147494816648923467959647446923425144335979771196781744587168298793235612588587166139476173873651853314552399185697534231418672556886131169157526258572512358493179773688584235739586636661491697654822661973355393755311359298964344499487512132395816931859535858397225975176114585277242194689317928416813413761277871981437366957787367598764879457444487192776455171839595762717441878466544268675646586162131765741577139546283746395889983158422568269214722985514981968273914151866875246344684171967873264668545122626249597984989677973347981482553167925794183949637751547576531836437987475678531295148886448439162758486843585695199977411143149313142615863322732518248353565375678738214435596656561285431856414366176428878532268285727612342668176717483246352179532392415662477937676978514791652771712367315197755253192452326572653778518897663976286421452918262328267957612799427958973173888111826591261349371965762158336126198547543575581676142245167668267821564612159126619734328974899469525885971881452423635421799636577964552631674716957399369322778475719951117487872691536348424351631526527245821879923547387612665696247869341328219453172731985355868544467578498333538611698232527462796354193825977837786598659475555269578759245927685234187935568985822686591982649152459232588465946195754842995898934846184738222812386659749228911394883255975146364729782583384312789984479774481661528677995335493471727784222187228985664196535763833412713919621498854353716283455795875165826955631155335843977446823319891485857863384767864617288429388327792477685852537986695445374186754889648933176765324757374672246435478361567934465729446793816448785691657449674156189658828462239589643276144547145199872696818666519836438772475874751711381146787668192858185462826996823827586132821815693148221718389661317811982862431624435395122178198878765852983945367696197295994771546922199382618377877686986353286877877795865682469926615138357834611279665132257149798191935626867975831233447141911718792253838525997921245858838798677882964815394994128482275944891578575845365654145873988482852798644936562926429796985823987157721113658759371249737298486282752752127771718721683313952561545719811678648419468778173129262633413569223953978655442753559691841986816981277932564537773532615693272871787479515868646898958417624881758595335822674143846675336695579217641212367662744491923562828748491411537283457796777933115877526656798326642319876568868345995551119841484415382847623546824478478442471711249323184227819245182815932913126946234556325139527717291499681183796159661163925585293232271287457951817814195543962284382399144639719489788233418536955183977449418347294926257189574882278812642564174464977776624991128898852996394639926794345634635494278366985248141718132484846276582418996421234294886124498925563794583133245544822434763464899268417618922466747789145389769574424974866891455122836354319166517793279657682194376711122138677346543398956165482952963165911524268497272887224318494619189142567395913981692932752112829834878586977275224426572583774646933672368984415746483541717251652818934632162545974237396892865946828289386539927348966555731223685494421964855489274828381392659198421516881227935496333361426324156195673684486826347563694125539949586754282754378924372674136938977542851125442143469617829411397942116928441554889731421351479163274865519553831714745761887794121497747683875844227783661339741669342981177542863531786729773749652641746381466617676246214377223385259777723364129543244579282419934891572787989932256593311542423693658727524317421851181133255525679541171591232316225226541972348282198237159261772294736724958666765577373297265374657228693458924461188387194531885515354588271616714533233674652991415853771631391743855912456545575161426389217272457856981635983477418936846563797482879933429567287989563118377115282274316351959647682783619329737934365898884747385564724645626399626194882255883438699163524942914414782996484626576363514817997337616795233684331857197466966798458827341598819894483229725384128818632779561558797198969487787467239397243177956645441378947773396314836234827472825842725483621242523146417255235719871318569663615917458252674145922942787644894384929744891395685769837591871297699563841869227783676325492311969895979154976644999521858988174154459355742295585527411399196589735758222339788239779898797346318674475617684387163142721434154921267617364773488682763816291582597257873139368126281459969917165779446658574375782727713613318885628273121436715986557716137894364272462495974552916666268847173589636765152597796243758433241387241615219359927431796549742769583443853878768392369913877953881224419687443263397288565159447459889646369575795523359764788422389253778535195545759535993634753757935776275518983936425686152327898366982433131324855222817927617533919243454576759369451942792335635538673119684591524527686718261794569751517966898349886467262231676542582286766588366993518631688331389487163611545124365138186798826765369629552154479862669248911576812852796992348324479383183139619684854543666487724643941252193961345787944571242615789793993288213679473729734994462341639957768826852113186374619734796671456237713913292737287151419976911632383582792863572275316114794746865112379356692619221739199463848349456381849919812775774698883616542279153142922189455715584753416514427611892999834395753928358997329989958146929448823114838526348236921723415358938248521363986797299261492916618522262386675133852767715885445286212331976479664731499878392729429552648276131593431418238318141995148854456595737867569371183973476251595244696372126944842248475971938443892429421115487511348735737661748869792691239979893666137793756542511579673459348695117775141774835961827163997746255832334482864249322928216881485966197536611925936128838415443738437179639739112613485236559832665362224176986156375886432495551976197484972585212689213453788785383822319466776934955279357125542823144879445138423829744545998169453649573976727898773226694419335678535822383972758868418847769327978549667754828613444227983714499333299864245916359561159329658661879765189679294149143975839685763728227173982485298575967824479642554151448576185843337919437481444748783539237511733532364993846399168311122872745878194473765375379911812177251737436764939446874854844942665638361837228953638814377561726277993185686581634523841695667275874161638366438671955824468176462778739556177834819381627314859926778632229812292111151782175866434296497377485696591659646122765173513349867426965119964576742147398512496138723224219457921924752582631243924335636571362263536675737859151573145583598524866334797472475523625254413354539151439166114645896412651866118914946942551714383723777752353153557131164244553723989665889195349942947352695867255221688698122994187812871346161571439388188188476156242266762798842759547454182687219426981269843917862686994163772694283388272472157295695999276335743852679796899599168458464896461645791779258218193848664953588542922978882692491685341735973726917194773943162239552524911372862551937311426537472523823839124258241961993545282433624817797923846823922265673715966345995695888459651656224474879492992451938763727883484632827757845189162847198776115457437113786274179254863739338754587286454962368383578849652536864582116513548366513385351492978325526166329145795824339378466387838535155958417988222248884412184936331825756444366469157487585978511483947581996432346973622218857985188736725347469866218318192771278941612125742637247968766933941744884985458611335821686278562535813191536496518889847454398542822221274713343132125769189924195216333794928121321786784586875395818277468279292359828275652171651567212838847951833559914121185132733824717393476629519721728311483564924552788249281162233944171327699954122836744749851255442554123917318482955338214317641886286476196933128549359661234312729457955447638582497353365685756771365898562418648263488946421978994474329459223838177951582578378615836762773855761455483539456117599165242427783727255497433933571487891932619871586935766849995133713615865643681273537212911513764833418862929936178778977917374666896672763655262149825526234589168615772846462455336877499737643484842934559694126694332394957385569653917966268827259388772499845799879665382963687515373512394863751617225211478218644875914489644713324735661471245621111547392662993366622668772133232275894951249465926281957959352568857343357293595193286881816842736551786496654153262741721314465121188618172577884957938868215715712563379525193488161847656917477623841771389536233316951551288849223181198951662882476412438193914212222915851148276816848747947357467557133235942512195769543177723466168271764894993478422629289435131857822292591736567718627569153137718817956928564334176731625817577257952544399711117578649221867583276421658418528276129931917754961692546377128834426318498963358317451178678462893424253948264183728625482327495636841245951348611461819131769312986999484418168194285176142962251749677997814623931337932127232215161761542882175917799889593512918173126293499891458336366416516314515124453421366187614244794323663164498639755363923246514836272477617469335759942254693185682618378915837292285399569856315565391282563283499729774549179525944152297525645625481834642582976271381121585946483465828866153769787799857232869295676461964241298867732455529439886422417821829795467692944976853475525297279938574223326513188326867376882874521932252693981722287893381558818881994263451322449119347383962841839345579592644445468996292475457362718757812245661561168295639456536389169284559686583492854798349868864773126185533861846215837793678145357944397562645255637417664467992576916651815329773414261516385442922586655987954294419548957499582638274762456665114948744473331382299465591156457842515942173191399234673677323886946421426736755758226473284373866598441112786141942578686913189738572482649253246374132632941892559686848764976693995968151121374143626582777337617112717818735138281738996637387987268848691114932913783355973761466249198218482581859164569725762375184984733881854851196957533649148536798985961435344839571834738571951848334366789163819881253999993176798224782677867645751159948345814725983141825588153147131854334785282486357794699994696679193461867195521399649538788344343478455154615534488341117731164311245549981433862584685358353783785247126158325373739153887155313727538123844361424327615398739191742444637153285417176596367256229354615319527147644283727533143168328739689374136455536277472776597469218245448174426143771746395931951654297994336739996969598171975931348147551933832427475263259642676478123115387438954569774637773219112412739461265699566828485715795735717644668127154634462832491863343196362962767129455538557543767956572677833534467811646398564259896952535787114793857376222546315881143512312581865582193346875454356697627775851398397622187623857526277843427446265926114766141681217882213856362863353728222279299877988263697763987369961278196974661366435291399114891818616293447574116535564454742723462181325962363815341675858119256453475861885265589646129819835359575951948454713655255136118533371875858772142316622234834666793768253919194324875986368615283469264554453774251649364125434759675929255412726879685186638993751341264615776352311719361959334258164524991524634615521515427842647989277229582952393443875458512391218839768862881124481835675614714485352137225125453526873344613942566668269671214556933366537829966523348195115549932368999572567218331931539974967282871837973573395497341346622239326398185342452891624547198222233752659972117396246689378199293468513418518336749487314223131267818158898622294123753164355471161865644416524835191495611248143229673913554835344263733836548858715995249522945361533815468143913592916847131467429681126839139378468943645772413361363845737664599383446913134369376568932687835753986576779984912446349487179544732478845743123166779697394348519647421884985291767717546869611563394383671288164735468954813868178596753761577959486281579755652491955221277853781388335219764792787318425291367496329638584863942761612111947676286148887264566643783773876533941543422138474136394572748381474437768861698981519965938757794236892676535323363148541414183494973929563994218513366397695833311412458547867617933553112584814854978623388948632876276324515988375236554248191288795317767154982394848363261379947468135749227357639565771897682437249623544278731787244313962194617668813228981157671982287377647483363474263258824813929656319957263499815129812282363327848732547786767158147146272484167749983651327833725427945173479253131496416197258691484882127933225254694283917765792279371952264678936355435112581797613697813169853577929519657525276425196392286444144984839571186537127656864497799196478325224776487143617856626424152973484761398112262856497138443529648924133733947122669353286337392193486768942743797722131762471479717373166229498271363227455493363989195716645462477698444983218487395865419844972641575862171918538913543427715878826392318488241832185417978465246765885623426599617138735561984659137587829568429121894359257591494142833778699512581814639478418722894169829769917888349177917778857253133998987666489396996653336941243443231987425445823488621314217541753841472925497644595414734577652825863954483155495836298655299471967252588873422794324168587525519234272159491469889285932673913925433438356392271187571736937328842284899538745644499452144775659756946878642194343377561948492256859436281389622849585678396422996929537555496671418865684325515196959694233789739515973394835233837687999267129979466685968471653421199915697684628286673419474615613594152719952769426647574834384533827988883158989543281562789232414191888283972835143188256168398596674581778759254451266772581249797245312975981224331717856968838532151247635646958138612297979732727831583946542333184284879642824586645827469582789297474447638877529891636575653563298643385171723592664391765911131984293598661821875395361752854742259498254235212641166231296579584524329742152125119722631288146577819663767877388259323422335862543518775451278193123465586963927266933367484283395621158744135649332657374783921472487241544997739874582859242278325829962261832719157242155262972564449564537796692315429844931177412456819477147158688472754861591625295132735439198924199475424575985486558892891682982837368616283631265154223271379452177947556718714218521727653587685389934693474794645597362629367785687946273542895354979939956624282874481635815238616418492964373459787859339741592143863958485619588162984857896119375571318768716412699974663362289636656422282722871857223448646518954585693873859834646878622361156415875952336218571157728934139669145531652263919114885687889845658291156362562563731278966849494222236753898943326342228711551952274748827621833366567437582576673946737587661786243976614861426691273819665634258445895271211751866957913465879613192617518673558244834169546516615765595263418322614819754384944428858474614435575864838266651981766593752285632927391116759748614253327534887977715625289244894118331873351857617177574587756166979966272266926623259697362867454349957173554194329278814989634157942648883392624621311798769164758911888917268521551519265171454245224124649471424465272688623137548749193949961417824981643945589353362455342371952349313596943778883938542578664787617866459626414696441586343611361946461422852221754613335585522594141172347369434794917464996945448344568184916385676221619293646469695593883412978481551461513148117456635965151889824858899193894647299586181268141325295294474726445493981997891832341759186358891328617616276358472536435959747769629378885419146378811286258835776692479929823449319338843724282651787777758893813835628771298353221997653541722984444312319134456435299443514682924444555567892434843776925384475718152697366498882269642279596976671838654294972186951166816492968941885294572679264269849489484376344854191358164571454382229555289555864888684932166384596442948893377554313714819537776418493272488143564734113955732262999327444248494756166451822928127158672196735119695329292483285888546745318727676298227255563941894457988659326835746469915218276611398153173655928554445854661222351255351616197942364749196126242146671631238832967432332733446451197169173954149761883965289733733438334518922877866141669421783926848289979157722336391332399592276984781775357479898921149998115593971947472199189771774753553112488382928137826693778943288487526434525327918577734426734472223845187698399245798149713158368533941599439232711414473577393235328477418222282332658895633736267993734535652775829619151334831539781134599755137987873815287229187189528383886573351531848568567264225953221878192134117863797324635228541516216417728494754574846257181941661181852791955392675289897882846855941199185514751178957735928693176184983432797715519373664422729226614746915774233159325556617538188452953429622826747382843584393247332462324516288897981139558652374428641889397266844957892657684924867856784499184568158293761152447112679928815352156866122237359969126916697212316882394595121826737427975685716384423652254236718449136584955573814178283596166788581138522969249545353492186565314326267253156999523652751396727158653377582171912276431469131736471697345552543658282236238381728778412845988243962183685313474252981175563376662768917547775198376272627854419574465218886384912638789465894741277677555974474435284138417881997645489876213544153465295983961635263959559794218433853349536688184387232212513345629753794352151477191319551774236199368684787714423433377344756255172938217968318442668381656269677768678355975818974692756373238714661596893373269539684312424394659788277493618541399719742179434493319848297941969849694711753182492285993786773655515885859167387415894262729863314772265161899438897293373159478646762267336167857657773988825778244459172677362827584782563938753287184241966157795173329512476583281494491995664271482321457895214243682681146552589612646334844167425572586139378228372714287593233779827429346157875155463122234492373125148542338723248538642179117427711465586457761414268465365996656792259784449489895631157545191769875742176924894345439984483558535988285676954377719798946391933431338786381617377357149658652893725682119169796439134188843821192559659556525166168366249321429464418364815311816632245965995931362187567987967529733138636119135244979667354915866178921631543166343298934213599216988839873169682912784194343153749433319616474564641951364578643664785745282638992186913359213368746211637881669857357472382417379889843629765541265893939969786664557718775128244624816611669225669239196498222673953412568488835757646385116263447687823559433797552979569174318875647793734994648745681598828515158737889388643326774723684443758519288215969289766146385619974634543244749648513116744285173434767982254118748149612921437659936714738227192885746937879535526177458179868947521193871733274671214121997781431431618672778944965465453121153276236983959753248574917218213528942639734688892648938658578619512664535884664737521374921771622876238797264436187194484462424591222181697939537125454898931269281378447138162673218586478395213149872585481447767515133862361564442598826861526266668844979925348587477953195511175959335226659488925719919459366869783384838767558939829644569945992229482268893695465338674567957168916121891159595137874331915611491992981985834435193425416956185975162159542864373524954449147534839935877954271431826261953616979962348133449483564179964334822717731543777716842247134555836986669793178749322335138473855544198967255137848979582328513946255141755247831618566687438722346739714228889941676244986657771343312623491474441955343997664587827978218235668653176365821369942637447269615569876482874989963925658373234671646374461758645826282118421677632258584548311783391491232288742856793947767834153183195113887162521724581164468767856365552247398469897894139885571995559574382127196775187866213293647693921123722388775462982292355914396317668686454981977286322722131651396165699188975674395456557623632247696593289757976491956616969173732371689654249779764335921837999226174828232199176518881862661662268451264473361819697673738784881634659986213283242898162928397359614692222439544623537519448953814273374416461621863613546332612928245675211262247497741472533624447994414429544273747774926278522211542873725133297974265873623733676754925427646223548935277549796361662183647357512393821554323959914212466181721851121156488562453863998586567542552557275939264441528467813566511665371764669982944769551785346312738794151858942327261239652283345124529493286297914915879987211622953882198627318699175973684754949116116877697456253749117472754565256742492145651834824561525971585259398492856837299545596194941545364292276748557491741439623667292511728283936766731754516762371521582391483158621695945411537588537656685889642599183523566214956619267645598557545677923543848397394958496241884352943285458176896281928632619944136243767565145653544495656448841364639475888234486725369713676612164881377191438989416486633293388676693491333121961598952371499356714134166358354392296322462385754256442166772911239751986193567872425521288388411275372771117884834376495123843969486552563239522849477878163358376832176379219493229896792926643225321837748666888668238319873184525517262927695441253883769968399748463554313647742929285161881655481735246318972254171567655519957929534164859165461527162623526218251556741747263314929171312931746771343326822243534439451453525173197338921134376599545478629227426258849941267716649986847769311915798672697367822729483158987977537284443958749811739943731537361888312517371251234937299351966144864915633747659952661484589183459859422675349243399248576484728613544582115828247159897335596367699157157638442145924747397822571465178721565668169533242733879915413285349794519451665737925894445653175834383228383756547826269623829393622932769934567148665415786615976969134936373175831372749399787473375678215312884812974794772418636283812343421891987367635765526135325447678657645362914489831533954387154898552176167495487429793132635915869956553292539269939322385875259145781899951756748659777254579564932812795879443397264878224261554634712179923141746233955462416768938236127231385817192528557124815628218931949429127379924624914565275176161982983619591752141486994399915114291451399364467515284514514914223367487312647487795146476766277593231751824642391794441996523352565439429763883862185175735149385637568435713888186594866361278641486238688965764393687213121873821333191877343563729539731618889912211397912366438471243383172952173292882897541466388617914199216415583673326343879739319719528158516653884417573445466436288984723488666996643976513145643531712948894384846134674867331564544537496835298711956343975922364626455937447297192726812493429771395898521231849991582711142897827386948151925823951921815993674492985789771251545537527916353682879347124128161614364953678836914936537938644793918314559342832215766459293561862681935858939249515249158395462429412995688692642155959889415446277365833682735849334211142565282818381547611984825335338475893963681635374372663285628545923198457418736264329526187822322622446176838454775616223995116256299887469313679939552849331846565433178988244136179353175158694147333131755157664578786281149343965257322725471737685113197931226739452422959921679279588172182555589539724615773589436334432587935787758219666824755467789848621197863773538119574911779652323333198274436237164464439285216537737443775477184321652659178621284926282739427849793857754695623993412684515389159433997446997287437584835453267989388922612311842599972497622311338139188319283431338468228359372264172991728952174729422356283288586675656551648928861986584712651216661315357949835912469748894824579599814618589971116979859139466395285545383178169745639532367886395647265471277142593435661248867221846472489183132374829743619321394939268956258386667529781612631922838613238956511153921979133124315956278953494498699686698889218614319195424663422371728596416277587595836272513639611349971686235873254862912165924147935884497863188564654861351645337715153739937782146421445598831691985267141797892443576925696755734359953923691635971462831584967471376467626788175111293231536363479824575143849349368461423958375157594997371394229956198383118614354653479487898894382211419361785948176914783551888998939955813317124694961216383182874769241479279439725835343542637183996843849882653135659994965764953546721688754166621519795162455699369328294598959999858364497956872714623852646544418245574158735815256431584146477271637833695174678211258553189796758531688995353263177921128997562325263962486693898599692381137257564768897457535375324452444958784169838674227654175391524728687983865723123787184523455736584282467928131388976337563835483891935727528557344865511784232412394865516459974459791868281211349635266611697923992867585616521582998457416197276363119559112149237962612211838553763618518612524311369589572316572832683342483714738776713734481563722845973253526482943225554519869844331545887325418529175325299184415458927647168829826358657665995439332885682463354978744519997431353421888925348644418657435267382424411382615458898552294711438569719827987323192846154434356212962843522252451534139552886596692775127132276227621565643372831996597381316827678634987395487386934753683364122973371981327955547912379694995172397386217991445145352211599196235954464163296711235335385275887372617922122781793226743251538255315816127285254476838243185819421811422129634969552355654934956836866977829225268484837221615197674279842762367196388191951469227534428484619319846635629755767419731479828858631274644619275794767713575358211128472842649929475144492727626737565638782682429824352432984645391743621779821783117249347682129183345392282259551174997666756654978397415639664672961735289855242961611163929476472434843826249345395491782618254377661733346268686225283434158566221283416822581292619943357193715733954526663682743736951559829283476827384642715167652516577585632314932485565151615765412251724934226454799284244729159374335517838463742659164325339255678128712647919174969391723637294886766729491497683513574726445723388951889738586637873145678159476361249212169622388692158852789395428329424375394152366941218147568389221548978383498982912815561378291243948666885684874954499416325248431385874442719194433273795217859978554887967856299496674175769646382751456139658478144432816761399465488891845683486728897464582326755433517975313774644489637758423766117793233589944261223787618884474144465614516823824292842629966261696957316987268576651712518225274768488976672428173133383984491766594389856187895187314513942917455784768367145544264524717898533199466281784227433874244833776966891419476898432717122513779355835965713482234395987137494328791387857986297515914516245567346463237735334974574815428874588123226898322628164445876653991782813592234385181434891566755714894233355673181222512556929499668971395753851952191246737675542337456811295181289393856513966197732413422829836855229761166555336466697777559234646523517153575211768436171174547177337942298798664497914912354852574368486245191439131421534819966472219633232375376317259649535962273145257374692312936889732337533726241967336457548126898129652824436423245771314126715496451532775415628186116426986335961993179411873771272712491933529419795646733889716877117199341371131693154333313888688288221247241288493835144323271987789792415514353535938451666553322289439969284435827752627261583511443438346689161836976692731971924146861538334316894453615692772186762714536946625968229578756853419579921415957443345292966549879727598648233866189598683136913974634486299375973722669872562758111349958875262443688465611765665698483261786739177823362338774333161487344925813593728941617131246364887378769918278952122714736352539357122912628424415574947561723637338529671412842289673338398651284125882831914213171293922866984285573666655166353261563548127535981256719215739946181334145777165279759661232926524647941418214622587543445645186531234264164435683336461724223866887384699932481612247217639716293822169152299259372982734694113394491396524429345544696955355673913132673915949473732316749397586779836237619557719731394323861437321933684627388252172492577511342334582833551364461418655496328441798872926942388327272612144977946722814497524346954113226413196667846275826349844144465915315771554169542955948242578967477754788185148143626439676362119683152849243956317849716343432299593677591885414998858572614832671948686655995474368126277459626719467123521968375175783428379939865467617613439847394635352244129555216976218281711264587691992956556143653459421536773542542645281883148383325367825268312364882759143861182516298693434459827981885262269491829769191336327815984498414443424489388311841521919338179412744171988819793833922745441371454741849611588761942125568676629874957818856623717827362229661557942621396968128719425636582446129271219885696465386749487521122138948935375829348922749481492594387971588978892692776614644792119896754431229377544994458626827686261593513449273573816678349818424473613856754111272747662542384639779153638827835818654798837288965951212983675255919379252759554939959148315719399226231296151544438341161541469472985995498543774497594647682518686275514357535974623867525675543149691826658144486772423879324627475556121724253629752138959391947582183264568729785788582322415163262466813784753122868981232626842977658726971282367265177228712818553324821838945559156658438617352573754825618963857412154994628775949321662556631361476855216172566386453486159974919594915511747375819157643539821768259618663399779673436778559526339289146355231187339986639571113921823448851858681568139977976368251584378463212166868855552168883832168983294211875651194219887169165753163462449894894294182777684157443789812792261571877954611915659917788957174111187671931122586566234929636936824671773884932576989471433825416864939297489425123951984365715392673573221162663967955462933461518865186981247333137664656871922697185774787421613268422919119268966433892532582797529621529445242874154286334493244195146981413689984382715144358657152639679836814232492716129975678742698579251663792862474451817689748486492357525691747173154611664512132266717267231937233582547887181285765471193186817145188876564572948485484793272966475252718155348176514872998274792226385189512319841237425231611622249647477616691513234657697658862625362922671631833386146711486657983274432493375693387758787342938255577615733382591275933566559453811569133261319326798144598424714649633848867798368152591333712155818173858526342146285217377572962769844684317421929428256892187353146495726456547379195663871486799338799234877694493858136273732563322235511361798974786383555799121234685711669556734353597166957969327796753687268682832436922617549217772931555414587628219451113913689761715335683344154989989269437212372885343566861357145961884513631728343488954979683177256416658639443689475762729826632271735687521769616182244135777784766223865821881477582883361929385796172463541567215484519691538997594639973828648167428267218118656129116287939846666483194894659261259778462454891538727216661476382358184118598549322932577525244377166476236969999183239971384621416853474951849846158945963424354938275669743616211993598631165448254719674734354344573344448782417868716187412835172315639516656332112699449521938158619541214635735984828658639444294138148491873362742486359383692195797536514738893931655673832831399931671844732834999345627719738611677762135326795538189858721472447213415725395746545428281328362182312674212676238671488591326335545512913169672538565214236857282641732937884136762382615389198152224316994396773991251577576371483714393712388577582539375993131391639899928875523676593982284213265144136713344491949237344664879472774354567817892714337793171818174498745425294264586355541432138567432973382797145658113245357194746922249327811376175399814613986478672593274211617236926367555182839968375585555267758485138536618594232779124639415142544387847677198255167421341854998327111768457362777418422416796627227283137644829558271429998449262879971634915749567598486231246323119161451825779429258861775396596493536428885825749515582821469988222863641123486336764855989777588664728829167578245538815882431386757439434971885237927585638656221963785183151563264992354119619595774362567514728197232632482431898234461911372172784836973195275996333222249346524797484783299688311522636559991369917365585453364395467992891827727444972425632851386965154136797531817847391475493999593814574225186878597535175263112392759152661147887549937352663783956962118912789334326851116484679264464254223244466949949576833648174589891915449934828775447611428667646536869863334919434174925879433975561536669949771278479947889165521664228113889986733716394291642697118819186975557818437745798857567437236833376956689353722697343986797269496971649564736975719896465172119697751616988476835824359866957826582531938865358828253228723494942984186863387968773195956284578677175659877563341558943552998764469734611456661614417741739486831882252286842712131795866715376365468577151211323383768338746361797654357368481617874615378994964638854579417367145385722611197459333589421146748277638799798432254412444357711637381258128751965496528843424476194928729474578197548322553981581871642589835634368299244533571547592659432984229928842184331374924178911198419392184393625532933329111219949869967385545998281413323333226112998635179577475426547768979579667529926863599941584269956893758499381857196999937343337726971619537413123711614338651231718878822551763823973315169971142837698653727999177317893781795976636499761459357977656824783289742379245179194681345725184392265483496713792151174555954473599937265745914199916359745182332224839393773182972596569967189191474492659867945194739626314324359689844728512811374334755287513561354625464554672883368766426552676937363617973252476253683247495977693854651854981494653966514191669845299275563512866142693182156931549356692942926539798897992595449464933916198641619488178227661495777977476239289227934746382329796473218732659551243595133155924551762524687422545685286481872126282343581232375733241877855966574697845857984457769646421816464822515171777123679643275255889162321718775586744697814427896813934984661118782942631953731311593871247256115217369455627748796864887592192512237162523277945612998638747887999696746163656217396259923591289248623329584295823437429678696599462683431749221553273131898347373431763647659694812214183716443775742195659518888988485656398555928117673422299187815369888734324125761112231138719335223985216617183174395297176889391598928578176473692212817586416465255993799336595715885534164599913492651574123583152594799149938367432378678826221369648542434249773918665557169184137781823337294484249784489396789457448769479727131998347275833778422287214985698788612238611977627845546944312261911123784762432215568942372488468561738195238348784677794942678413485295698432299466225527565315543961421252352186698149895225669954985919224433182884774284659544943443355686885164521738193936428652976335922426857821629812442216383915397447112884835616641861499679299743442619983333996172119867876631864924912244333921121196674336312694984996328629622621287519139288567866487248299241258898791618465939577271989814829798467526352744789417586476756615351981616779148177615352726476811898859426329116877382454999569548423364885894461199234523477321153478756136452561373614841572676813677279724869886157531588645225372188869235124628452499253654171269945958469739655694518753259275179555289152196564915679874792397242659665665311791158936495523136382237694924172987778297648951668781449731138225881691363157194861813776777499977937843247946223283559137866643344927231824335654789781467922254545358339763216584553587279383646251974849169517842189716635997593699973768718592691571133421271339216582353181351386298531636667577126241449463482999843786241988689293246962299488352439843932799798812518727545261313296488557416397546217852477597716354198738458982692385422151721345744415341948197225656762733866331561184177876688943628781165687533541947725363166327195181548291544437198635721353951458493222265597316957329444639563482613637176786382122956497253482642714511289818819194633447675739919358366346935835196329987449438254179683385757165797784538451275572441657133647217874127842869316339395997261861447848523687416149968557162147171864515764414116993746542545342318668134464864453526269323646865521333668935368521135946199585135257513216632472474958568425827343173293755881128413169811372194291528792169262892298177914194413344123228224394323119819298638863364564476885126337397226978853969315642129622253873594271944349179533534595629996245652746969966918261511971969574938182686582162887827823997745127836874531637614395976266938341923511943186656174561176558483574733716995559956493599154982238599669359714698237366262569562411366292252419323957664619456586513122336466397472247687532989539732753379817645757415957245196868133369159893268917592216695289872197111971396985724834483781777876586674683281652144462649726494142598856154129212658713663312595654438133424245499168235445594167499292533857375282194638988383123942185368196593692155852579872964263597386945294399773929896982487636354847356786653834723299348982617881625383847129489699632321472169921549623325153112964186122127117151112334838138224522923224735539639861134837648988179382764226968944147429973769557586742153658542935667564629664322785989145998181646382544499721898376279768476429947281439391369186613668494935838536558487413322881137876369841683338166697938995198686311185144366152622313113592461871978471696381453573863112357334211156115633668924291492525236557652253615972672181929161573238873187248745711898999884742154841939753416885965654433815999363365139371858444898142221719626852364289365197466379381359112686721138155544281896735759669728388491295649966136717162926987616354464917713415865561662341812545861252822152637184149363342375861775856952115812216941255472757724218813823383594997913449594266576365655874213691381424363778226752295781191459568599835992813478596965173128154894776264344672321826313614328687854479894251373363784145566325991246225531556871259452997518887812423964819486599444523263951732864159439477826858381515611782867263995932713487216257727684779475574976246464174689351918365212658956558195593851765755572982146831375284523897863337774852955547574171432622287519285471565918654162195355473914721367213614569865164588915315677793523773129914391649549969326986226583784674994167891786727315726364633998387583372348899629181716968257975633949172862713621671376181886358533339514675745712838336313838661893732289753232393136655938684673846953828121358551215696455622985489671373396141251619235696775313268286416829934983916365943352468376817497381578868484866992137864445174892848634452747335548123556943323396257593655487921732976551872911624363437856647699786442328417359786127813365125993537567387123999582362497989578722376994796185133158286885732594631221589186589794692281652812264365223921668636986194169338453778271572547489978677972815541816724652815533439187884953515495155429598842274182659145384723228759698582698996169964482853165831789527676475972967295478773256223165733378866953662998864178689786258475251745992181756254912889495122545619988187153768157235154566519158957765359425129833426652212196882556972923334315447193213312889935522592834264696395516635813715256316489794254772322785265435849459198856262548651728244666259184983768474516371332145411915824312476313653279293397736827218638675295548855764983666347967711466885328293668157412936711481426993335134299195645827387324345835157651979868322793322143567149555299286171992161492486641345388698416913181296224453915139456395145635834943464718188682435944547919582966212472379137269663127716754841451587514416233188289959525897832889541881593681518484334713596575527495553711851689812273511267598248783963137175865971121235885798566742143741226523525437915374139684687951953693845377967574875734993786782932225642247975253626114373841133134598712318714174584891973975378627578617488776114492489786213964611462199765366694843719229425876812821797223863246416438369847327498576188354578118649365338859588334943756113893566482994788527459742817516886132679769137978623587677427995597754721623211162319976698287646311672744854959971976525333975596563746921495392288839352448998645818498428847965737553797485338718446368152737391954113751283954797424337491129114515771787182452192414953954853393779648345569578799193388663873249193836372338297995322178365678578751388519219817229427243798546412449288299968781531244393256686729646446332289142155475689257719772495837946848944481847852532498537929693376171429383168121249992683552769466517435632332345244492537713648189712363385429942362513173336244913938357788671896947244577171371663487256813982676389736423359315643348839128285713775327542471835258121823641111377787441588561974775756111911937796439586232328685159751651533392735572294216163668534577539659822277486896392657499746479443325431167736266419158813559383524946942795429941845726851778138422916275617692675145631698511342533149511359326629273332171194257441491326247798725948145145558192131152665344125518312725259869962165222556956396127287793687583578181345728357858476236383139487374297768582277913625254566484112531286934241841193697843479771812829422636798797946639766732712784715867436295889441417878159226586963696214682636667234137948596282551962429682147759162856714232376462494452564229135298669181327853992337372694415925772689711474763885513562911582969127986824279557987243234373467358946537844778467171383629755379254715488756582278396557421856862232679435183119729474115989675887944886385475456382683182947425229598125563987526764962166717328166868313492252717194399769589285861682832945115715134991848756242391483476866346749138113877392529557673258783456358258435263225258726131918144678584226732143557238732711425772629831513696832553214375326783833826855115787732153479991477759931515915383955158385275111776657797288616791296125521921997552312128878447556158499481578223444435321254898513242179137937272514945841329169373579582175882822394787718625651798746742219391321799461321675734518161282111133191936857924586836633641759852951143638438666349882945929884988982345977832554432436817895282171294791383337759982572251568755675935842174858746884198134998455847322539793565243542345624458841663694573638243486619951296978935384531882615953513497426913715223475454614199349578319899168579716251691199833789599367264911981515553543435782632557264555533582936379522971232366972336768917998526567755677894481522188979569429966531987666894855154839785527593955143788378642246429487948587683175453179844957698526219147715813437744626922689431941844514994227881243824872794787771121418739417421692968948317984984935796736478336513416146834121513872544261893444763276858259399577629136195349616933597323232178631632232655595987236947349346198151354317767355977569274197616511535856532357744471386696357997958533284318962489328976512281874636844264169198929795455563541993576883188997787666111557789868915684782471149796395458127994894342619746841818337872763463631154324298861741564341496632895991321629415569415838767329598877898961799335176458224755695472252937816729326861672957526863967141739312144629686872523187384987959869173334381977128417244422215192998239448434234965667999199698788489333975487773138727627576434262984371718475677458229865398693792128178825373927738694233882251261958749256457129778981268463387473245151675486253141156883229856969574632168673877772459569544131987331425282558235269114857359347959982418554466862872266971813598477517452686263349454942922269197647272331956279115318499525413267884196989586586826645686936342918318895844482173646185677391481121999574792918261779236955974984973919289379184261183666154432838218127853752167164329824266349149841524788895591822893218841744637679158947486477557678462525878634549322959486239887622763349193556367453381792779441516721629853588223432411488422462133195979327238472692749571515618816393134746573632795632682242833553754128674937195568626738821965339632398781489935686249921926438291329187124916363977878761493222242139632122657934619475324634648741713824868552812748269522975649618889365919281363178129225669429217133633532546744554555111953863565726178213787141486986179256582964669369647341388876462486945131476313366189117884421568252654681211436924933591933987792756123133275767958397481678347413923226532987782521349395218759931342883972749889813732233117998823991288261149938299393593291173261379185188979787717967265263478495393711497365936721326842169898227586425159643214246828934714524162714217271372785257948328759165225535341468536951635566321236648291624741593186139575997918562371342696544741233161559148995111134283626999112418463267955365468875137725726856672887672117542329732413984457125113869959594736599639727262953463638613663135674536497923297432685545791993459792322922239762931363733822155924146137251226417433616887872473766379983895334157417895573518875491278468899284925694141281857286313148827745237775979987162781211414286759372839436324921178288138537911937119952563864771679471223714886686571727983368325253263534712361816876565772614227423655926151932617263729879271822177668163264215929282268276267363128825129449931848955762476112493274676519492475251636764464593819166616545682197158725951398578475935678136246731692186226862798282638532145617676775375861149856918751854214962537145531523318998763747267552693387739772112899566649445999158477249116216275221784728217121957561451179687198167438248759835471425412478178874526329194176424554995122817695945567566763314648837428418258642187733398627971753385125931784792464683444139194433833326294673798167392694613144327648268524774589328387637831352995811652929377288925777461475674164117319235833634199835762228524834554456739182371353738849781163518842424312449363535428386382623316547958182817269791417945297427971756463644358227268961561312187153698842277188794488445454553357415289396994763112855381525739478986816415771171255562514876624592283622188185288635686963634963171431547345753695163568721916213246288812377537123468139238749943551331457299792138741552424328552674629337297499152116147567222469731662371919715815428164776912774728945136997377718514881369446797691293672318979629997823866346184112369489276147936627883326825324449387215697399942629851442853287115724284812896957732865949357858428836126385868641826311236811652424935563839794766385397778723954347782965934289627246913775959473151246728947897621299476862799984117669453143794613559235384283583348274567747997352264692919257471387624386976791896155346351997924666894491959938633156572551242617187535529412364458195351353313111752214144258693413826742161462336556748164823153434998994139252696269165446751184473162463378437853859484957156482687724139862456721659854658185343914317283427889833728162769384573993511732421393564379546464721199249212443362627944887423783772695526649875936639117738996263312853327294687258258821519225355521752361728443247128168971415957112147198831154745641437476859551554363945948422874826553138173937354537922764749212855158846148852294786951224245329724597991776875253747859352772644982781757234648922695421578732129278243865238919168691646319491418122398899691696455318939878899711838718767626252782674451249199183853617379884861917352275275163247397134823398397913138544931245875677967277915786898642134248534182786594283652331293396699452849816455763838961969387847672855636261637921615782619473941114567174246827888356496334437437863571883464243876516938369192778935913248562748278861596596564455845949794757673349398848483637291585454728485619628492241492291149584756683152914753867895194118956331779174363637912592991311195617784681996358939177267286185556234582571195887784599297715251663911157156544211659558238633698888883487941341415351262824183869637875668683622945851932329415357134589337489563956147259198534335573496233979163756472371124436983221732139834199635853863296783914977268941349312787962281748138526132816949859928614731695597348859931524487489141493562812645319391342669397391339575765817348267281346265984926963438919643548257179596194385971312992854197893491449958476863783982156466235373417311148625883271266891314741162783886647134331346725745228324592771235846269283854338749569819976988362977795968392965891871766265189287856242161255634611677383682698373886993917451711867586754823749918516787432493479137792973246237887545187326453354914211424936623367765586931355646855897289841265842379872887351836414932825921493529596573397279791193384765694845783249558166135144351617176349727129165871464856282233839463324935922397334619326439612546868259732859672832653385145298774688562546583665739147551968745284139283721186558452186982855373775673844832486221429927192638894252534897845456577468977229818322364744426961518245831643523344571843285871821524916968319644189963372758729771162567388342538535851826687554561795334256399142417588156792156916547752462465695254957527632222765449675711259665958711362473449882738199113969454214349466719587759659451746671991314341912869523487312385831931951474464439372528259276659731736763197431358488393128773655727282481124147886615716674848399127244355559238787267724197927828432857492315973687358767448239862146775996393459285951695497282485962542961195113597656175693832327561657666166415169756115488519255219765369999494368879317158963474458785675694929716736331126354688556922471852632394916927553811655146262347419638829519154334387691217439969822513443457779987756776498284265324547863438427183658387994329741294761913734433688416195426489388765654837361528258767188735654419865257964815631396915666231561547952647828471498988454966811953548611393938978756481876457452795456574866653426865843567191171624262546192323918493638337434384799743451663853781833565387725974958382347522781863128546296694988717931672859824135877487145533314986142237998419786534247771119498882194683423381944256924923852539639996237446441755346637992154117895416241784658182744523627918687128632691155763927267428128876578331599585169342957699491377834667726675179993287936776793486842413169455454661344911579726391441735661185451574775711573292244116662771315342628977135354367677333499439843995692485828244891534854686669958316455825739218261635994559443263886368831741656628117353285491778395177141296757547371499738785625222826945598253869887761549981392574966415229494373147181979918946442972583322658952661656546341774851998229383178323288832444421696674496224521342661332475896865322751372723646892824959529115537691638889153631713997939739262731893671575748818197771653558531629876823485164954621575721664624591971218724298451517978934285624511631392691546586273865282733174126255213357884311585193265462763377797923692921877477682227294421181771939922999646394496214545553529412493692454984322833277721962813143391425823243425532213299488782891842323536857411629848786544724697738972566286248122988532894253724612766385998791878622899114286646693239627586464226395295523265724847798556182494923342883988551844513458156185576618876975719793153387971589925586354859321371464692388436227766381675695623659127246969571356764811369821976878571277925948524895829892998575323448929423264553834814912768371413315145451715198477678843669591811324769838337964722495651698579591866848669356727757211369216155141614469393855539159265176772274325661478754215119926522198116528873819674984474375827125825467143423389668915242723313895331944265583549229742714134313736729146683836757612881274514876447341898171645495573591839127659483452258322652288446319221785723957162883158166799421342328881974681878263858537468393423391278646622437612464189818159367475148689622473417815785589416243546495266383532193661218148652995524949567618827174183886741949581875721472362968266554128912948916577514539725641274676475468358896546898769223239686113557373253797475242153465323834178794929287714328433679182363551231612529289612344681487694858861821963881631753112949688963759732827995956922322415373269544497578266652353474425841256998338975781446561787228592516196838625183126662639442181232831323274573874539682516624647719749946493669912959281651115675557442181336236411319374464732376919117149652282212129365737754244144747792719828121956428182395618972641711592494488919817147587375437497446674912812782485133859283822565112412583551788299475483664718119231487632691319346674931381291124141814963984717373765783792892296276661859139756123581759838948655111285997872564721785667461235625643133729875236395751586598951414716977864377886361328856541572742439115432121636666332985132295337228661862725479193291592611143855611576757284283392341591514787347395859578875294437467417686319128513461157567888514245893423224965391394158637477879359581712217646675969722468145161919889118763428824785921724219291187988854985767135526578899717616493368666222735266813582451222669976731233494899371528753864828715377399538818835886641816397268684313256945717275649721338934782112437839489287659531553355714825157638577376932873817142592873377931877493185172442145194261598289257896195591625729227544582391315874573832984454366999257475395773139412519854368868783329848326437468518382718584451682465387738564214842993841275332477985557382611984283366373785832519155684743841148464989258731872776234517781693429817721593569647259589247116456337998957394256851789694215839452141945654867542511469689162997191184548824568718734683587676476475637417853623484733982748475113464113897158285668956139856466583883161765683157833445321845594671876852411514387529151135473731717382521561798451354446873244114643884821891735658992568773173546714186175937493281346213419663233531937439168376219728158814116358451284189896426287172862262796531548846725456873661746863831574537311862397783149913578751797148869845164732135825261936195618585477884255347738244226726286134562148452876648462874445952554899913636823577312378523917142431319573154391121347188377972214144971275514515528225943638739133429336867216657468952114977888111943529231694429114214512178979154315217166588388618158255152946455765462919637598393117512515139596942132994743462652393442944984486588667931276321459693887375623251926798715347473332521137687892893552433855672815945957515294473628751934592662956541382799136387952855393448444987115175977596391475814137872279969355852591128146535827515621517343716855867762313784434985925657828593188654673842274562153518399938335981356539656911196346154857669167182734587178276691316789346141848812249956763323343811634237312181215299755187412671543856586674794113188575215363315571138786145555752499829434564112124872585929484523594336672173274562698199128379518841497694912357316925927743594376426985465479191692283756195322953459876322222189287562151582676821898329531638456282297235482162142872824867692311439142579685789965146512261381412315443399877753256896812939969189624843728484698276757949835743684967238176436242817581373735994381192899432944125753779843441869768957779762273647994987231296163846524589695868657845548566262346896134994579334116661315812945523925414761582783437457837931362664194459498675798533215997823178387522551216776628838317988385192754898927585147828648347165574759949831578973664427232738376741534415443341495636438411338781744174517732759212745575598366438736176848912922185532181716348291796371961152359713891962484294153779766761985854133228257565879146112588466852254464378835312215896143879464578824141923453463842445623557895677181162495631715948499654433889586483522164135528257112434712561298449545948489293883936287442352185948332159968236528147781925123616537533528241883786455345755995548392433256244591235568924523176884927242765115117662544784871458731443619918518154297566943876659683944744574379688444927195758716191363619936895647928637112983572596766649338782573346935223469418173737551438465698281793938868575838583514241718427586778554391783539781195265995654119954373349593469478875274628938812148363312557483361676837621492694439651884423747795387148978127468423491833996765283886782484139851299262451926535712371418811685794698743745487757974814784752211561434717235799486766144597727764796265878247275752364613364149318923481214822486512871297591429291539459741778338495424963983883836762635692433252674978166445737213475724856279437614419144596226453825299716638388729622862473117288598578131858621572657785175793652497299174935862136794192562725754564469752347349918326362324898234569444658282172993527758137841286138574393419688738494316989887491348767997845618557767354243871814679368943592346813536949226216652586281438543233385968881491956284812833687818137614591539524133492565824493315975214356318519748985466796936522943358878628592491736396897448632855643495254372343873452985847812466516919346351637862169443224351899399213838891577762695816239219137938121891846592652242754764666448249228291751816939294579925557452373983947928529439775667111836943241334925665617674149648732416628641843319879535828783664794255119194324299943524393548816222622611941351243495713966646357428469453477491638199485148662413248174321859923732669153819148353159461446327588653568738731645749775898339978733177851612765239195575398375157354928888154566465911438256649365747424328574218698641544198133487138548295495354116161451363591193847646285619911625661676815825197762361721711662226273754234743418634615566632743459614836389539282632987649614847798171599452369421519353214497256954994937953984933858268517222816295587282479662946842682392462982439147274149232716763882128315337331147441244414989277467186619342235877992233521447963671331243356743433535776719495552583587812476617861338897736371428676356493954538551339892529551318833561755117852874764915851971653998864363147323788177542539584783668884196716975872435678526893148837136697384669713269819499782565267736445619679886766614572728134696331689547525171639977147831291722681633375673625512225887917869136988325772834374594973774549343931752228391638877365541885728919974984724766552278622699961751638936497763217423275334329385347948568234444175492814235254577271126738263569997288511915363178988651456693582399138138655842548483438187335464366967813387439268411298822357572266957275717724563683465578136342826523193765911377513859763275357918318673174199849125981298734434244882297486369351748868621952366645753391825841825681442437652115569699781355335784627858594694241218967982314772143726666925338248134632741226329581145726239953745997171172613551555816529414777267864862122275311791342272548253828294385412842911834942185799171891339768852933924417525995892879792667442644725165897395664841729875518671143458938557113487458434775622734968752515226453188729196648619116962922523157355126934578348247634724866961695196588835558462924485761356314814362234587413415833318333864333568662929741181464674395571893158814994868966891248577135194397987477763548926931878579968397995622387521322824891648434253942412529262283364652696548763147186338245352578832191534419613311842646171226998186149469431641523787274195775573276122154997159317934433819257464965151441244165757289478383827313827852865361745453389117399128399173259665639154472383911712531528833687131935263381571541793735517765477351876194141285243526166722258984871471784792226467963425649428884832999368469995581823275226985377455272997876434496623134612938764271379957689129561772123326172389315219768758595572763184589718539939915679428865932139477337289972871327268144636627654277985782868981616429662234878196784252338136186527473585872681248554686388876537165313789846859784142669446977673913271954548417812966711417965355562566919841521616287216812336772837527492344394812523194336894986627466689818298439649851539827489925673554272195858734776757476377634879295384868642918573391717479765664183468222412267476547184158615993248949171286823566274578328727931715712739312447154491232994685766236398328352957386388577745229733352163897182618227975539951912247353531228378281876429314395518133374496213121916637567887327139466795315516496158694472114716653312642182621215174411511871534745798816966987475815764742894257626517993699437798274548627931693333933281224893698943715397456688861978981268437312582912646283969156954861692322469569613311517312995461439551787742593714854474572118141985953715865944218656813114817715399469956338659515285586756435755771665287953913322859434857431888944352157347679644576851593572256682785519365128475959999245461828986446352653588874862786212283982524148214443238514672292329517547952761184216157525634754693337121296395626321962425689957281883912529172593678721269954771759938189176235573343359144411484287985882594142364588482822859376164551791194121578327498573499996341419418819766586225863291189694644564344218756467844163161121473629842262126752436622828929957198982196298753985556738439313923611719428193381735388131952242413483414214531613132834828842172328558979322462564756937711827848783479419435581855457118188772549787516559998873417917625583525483143776766452773463234662823262464632218642818155456713785191246698717472552456782442729229332771641476532656333467549451373548592439171235767184737662697831779812728832497196469925284766823613874647775575191892419785357527884257923461859848978945369911689113685939895879666458885785744633891293273659516941828395769112481599727962812595586215681581729768638325415545173693161118261936888719248683171449544645541433911661684432749663626979413446636793659192265921271767587732385853128917123525531585234815833417618498299441883839343623215434194933753677764936859111311754252644918176641123616527647692926169459255729631881532285854934531474289751623619752759244526969996423388341419464549452714399298629956771711747281934285414423175159626797659467358767198539746231193662227252976832542385258661779935156761857439683812326182158931545191175628575855976463677579513913919461227792288635981537577867956993913662881652131183739315991588768935292255458456529448928876633434843957582316866719581466939172455649387418183553411557239945989543461111899244485528232125523466682691779684821453276477928264623872838786177193418955636331781968141718314924254838481923982177761732552943247631467459657754529582536619834587423258112786137965127778659997638843544711312898498166821718571355517768798887716412984954789714244819778455125766863147425485799181956792293668244457297625195183977646654911824169877539137535722565939421392718584246238871342477969991839198747169762549563611397286268167931637512656592762881498914719482445185249788864932951841111948172571883751536727913187188983889136925379322883684872561468556548148476396475623919156182736361275111539266627827723321593138135524567473934616477698547748652114549286468828456916769434397496741547284965781372847789918746311354162456924942126673674437156971486411993487588946392524238825843573572719457151761722234995488736973944978682647628731121568321817219497246419261833934989711781399338143573477469753141919978916949733969217933996299189166866448211596416919298717624521185739451389929521439218769221228681615543434485427336113924925782843286439766317939539729111578552769393168788471333294194142986161189386143881812222521835113528625644248535526727768742242583354826131873423874559433446575789961663658779166411343576122581476443586463368998922268669898945567726352577376258274138118793238999434672317823748931832699813682533889819582755547529688468626768136126164138472123971716567243135637223515352453758738385997299752463614148274337119837326144919135395698495737437429149653943845374743582854686228122975268452878142489473831443244231656481666479598444726759154367432969915442492134586961965381923118188533662674123618595932123323121954219375776146985388589721912917327244712215783321159829991191721435795815274514518498478387448479847218635875235154882628351187951772444922433838216278983181776753985377419682592118996194162635823439169937166276956564861933514846643635322848434978454357696861524776298361113311236669238824866222641367467787699246958848214626888824541217877871475258968329897767221132828484521836732463342918729821892639172265727863996196857738827961868974435112399819483156926623799576828318536416354668241611989726297937771312935381185155132914523215872892984421338734237326677878364344432764795567979581157724541974317462741296882621724386749726236863146144522683655974546427941517719393744892155543886528111152722649894383477831218849649754715778757174312994993777632595966443217815334423722189742881366819219981324656916224987165182672582479499764354856254859356423561697545511725299714178814545789749373824885294164462341584952924842223481818214559663721115396681792131919831375221481481891558437521511482497729757775864819732472422341489151925693177556339366597722659654655114311956577493143614868634188598818894459179373634819762171718688577792798636988268135231192841796466545318786592314726825999878594147676434974113474955445322172485942574951251586972415936923251654691885919958645685167668974827376264753747491958354991787269786492666939667661485874852568436865121613569134262649124178891385797857283185411654556763643562131724323622162127461146399545748618141491486598134147766629173843656675623252954368933575482666921577948253348774555793241396888846538244477243588958261381878542183896243856283977694712788533732929634827436724484754922875147238292473215876224489781867361984782938248625336665542427144232499582495256678234666898511824953891928433988611956636476557732922813645824783688241767312965155135388869238485287254873169464976584379272919428244521716652948586913829119852654895866421524261841932822797852232627248289595678669841121695718768472389248586451225316365735412249357261919534554175692254694716632346346289543931489485744124676799334852794187125964438738185654577852921428239614956619516171327992183135736777971632572178198798797199571138735787835931731698478177824927788357929423495454381288878271748662364286424868287385963888852617842251683167975614199277962112785898867952659298496314999191267547422997162961799429718597513357888177673768727659519458219423192787553829689445295131949781181168813184942966375788763731838734595712195381818475251323485158418887987514483321635667885481131798596136475796858313981418421591348952689958633363551681423461385278326221963298353399442577694921743353449758573693636772322713885929354217964234485952284365433924848158844366594198216541973265648353236551119418229862868185539353466821921859772547623521973788125515586671536671342693689867668927576923166624647695953848584285921522718369524273677949788996587547618444485792968752628428856681359984421789975639781611495144168166397366353815773734663267563258878513137317774946393518244459347186378189755148767817621166999596223922885498264845597693282131642734993441246639178838146348382563853176199661577349253675513659833131539485533256171338777123915297151188621746342365142853932542255253915978591737221214487531646161351648496458271181528272235621745698447972788796746553664126189549383879957736399854119511118153889157952734254237537487587373461465161332746158891438166883128965459481644248817951656334536421756784747149931724788312753284358826279884776736194824888196421311818885252624323615982781333352432129525686918367655834846161294495346813414229883465749446465884328897237448336662136968594973394973694338149685797374222519628916164586281249617345546776647537933471188983843665918675139762564711798597771925525363865641786155135873559441982597673137194799292778923856953983659951551919738885676852536725978763817998769448895489521182479354545234999933613149991888135951493814293186446549439517321714633814332531153697649471291252525795127268164423176923922936176445836552367698895485677679376819383837952721599928475142957537456648333494433324951454548289924477399538861983387422755564444881599442327426553284359884128497447481592234777985321288679429153682731953229817448456113944958227288273484365917743343636932742459266493828219882115368849923147152582762673551651166949849144638877853118454517624298971974346113797997833273823233929916339849198897579786967378469461983765665444182158645363198134911387742286683788642967266979461487151168626885737734449146862899595699552148512373626529115385344684548643573599641391211728142499742515742981855864873845648776631889253431314781167341714561224192115338268636642265335679681899989422237981533659162539487565454395418195948393299341278825449868398917592332549474581361715671499289838951913949397224384741769678551445335619647459667931117954619743265626579213169663752457718671887348875694981855921165835582669283961429718774275281662111365273468399279946253571636636641157484213939814528774626388752866694895296287429276648166832117666946455963695513166762453554218792336722182432637293337582891669682354541583635344557394374329386422655712865388644254679812721351315874951477331555893882944979999476762797511565954221415692571517183152883838233634654123379319927222389572484646992414621551532253372227456718397437899733885999126237862432352994673545623212123635229353477566724956428638731974485319556392873267899652533429747178122641728923782546678829783498289443413194452615262943819159856881931238574623148322413496382851843855792953365177326556273367341514974968284791422967574799433464851246964343364569217687528754938943548851187443353991541316698592645431537261485674628748318157219652693318356614165749461264785748787118832492887341285112478842619419282339317922939539676559519451458571411192284146993547487332366193242131249543133375814646762372584686791745147365755128774891948316885958343969434844621191285915592976891985828212562561687977426613283182663373428574533229861411738926982218449295648858634674646428925125869778221996868215678299999492967843565554138749396926815844831513857392693576585185664938221369544263332669217614151553274289233548771926836587982826142569472635411493974632219492816152189141681719817358468317487982188983949191881516342952789377485362454444431582994298367294841257492846288336426635551179552567296389897728351793248354198345965572561222945115328144443266661917143154347757269162396513177167761965489953669555685335432237813899327212576322879312744856626895836547584214382391474759491981463996653963481419536911731838853952526892139169923512675557332536677256348245135285433887591542218723346259553171613799549583694465688293148336397566518366625851399118422145663319849564115599518418238343718937891756157596356287999824193785565438143893427935524595884163598141834112333935476724393617856548521831953246673244563822497951792775769173531745191463591285354429885782924197496432682791225466433891983282922555612772773227751939926245426561832197375586351333134757289735717827634181615728921395813776246826579876835287179998568735358831477354836354951849586368783555592227599124417481348864631976324536275976316145168844196184726258665161682374781554853561831436282697755772249184378624696629248397852328523331657518867528432141735857799831986536322963795918971465934995984546157243522892679715216696185438933656887166233194515253852283886151738524136335675198464572869474335187471913461879794141226142575972618618834711671974985588636223383232915376432338625164826438555767957475897939789376557289835399195721211893759677233841823353252733743822987944667741832257473435798961168753218783664878595747216193197773183851916493342615334834123791987262263791915175597889371649648454569637728125565252179133986619944716568369826331537331527977961331876613684226358971823628214337314974233443168955947288118449161547969194411285678486277829835869555555984812368186714485466853816351649821145854434673197673753476521411315881313678787545719846577417547925936283959783153937574295748539922539725673988171726225699442343475357614982798669282642675798935569139527675432449693751329192647549389946588732682956976875939673492485943715873957544911593358698626119371766951685985935159918769261278243638787175567972962727643659364625484981447143228479134387114474812311345837259976878287897234514734867241854851438346835646997369644268253527641364847382971517552967771922666792166794882931676662338328485143249618995287134699712534471875178149848346158417477521847834432234117931435265811653526318531642142735867274654798859469212276469642916723177446231167987294631573574235533276778885472181443589735157591696264942479587421758532926774743459743879716458433375467834316531494671542287938255782375684336464732876184676582148275643165582963259647914662666573935131689676879744525879136574756368326373761743185562555112476892723341415588796152386796823513673897837376244657866446928358415784577294727281957681182817657126563273443251336984982151815416151367591814827314692617787228733758497487859589849119787388261545275812697545328328175814729763279669728452883694511982453317425371341985152322662759874194845363276274679819975159926336619235443968326196973586468191551553986172983582188327853752796641938644733971178899584758827489472235696783781569518973754482428531979657825772731418683922143894872736417875956187845146241418896868498275569266831434846867745232961678134948631553846422186687783741443736588533816457645294861134178341998641822455219528894996313936915777748883383244133412933235825371845734153376667898991212683199284755961177633312112121378588486742346333985225436437554491239714736359648169582134788117121199363887741546485587844745357445362459123166694251835389825458965999891116675889961588559894778268147158514982887835689668845741545249989277455938486342124697542955843759484876615248241588232336629874712299869263985934746868429496777875851676864456729394145964531128682659235669241251563958491493161325148594417422467651489429615646249898328969185848976827877331944733565449358732518189766589563846191534459221461278145682438713213256581391437443336684836786917222661799732464687245517175755376532491364599846459891516162698251388414653537172961811517566379397128584726332427497448184621549341188451973114743576374626569482481326313413676933659991556394533554164314571253317397341869212366662982337332662382815981812936592689612344581628798186156248797945715837366237986794418923782476835327134645344893233124472528991522125478991281583794122362152283294631419436465644846171166275494855886727453816299685791317656831418878514874483351728839485177917784543811249464334296144541249897141431534459671991514848861739543585527863721818858332917979924361793388559539314136226813795129189416262914933325846527786187984835531631823235618248717325114585938971951153524328299821321768241938823838268589398279211266979162742124849688517325234241747633716918371348278791313636698342422192739742649428448599258973123213474358492333966726631527628848275499248361657227781732583366173512435159114626484456494729227468699915914374812246675936858594253142533868237352817391986734949243485569373196287816814466859663891235162361877557237563147993262275689716792435148884986675891998366336815947442229417175554543379892472854587699639325861214541429556539877646497429895815258278924566443296645366235615129826726962516815567982615166567348819516665234681379528125551285174115579183449466318219554673988478725723856893513333278635833669441893287867918239347199661827759848156822412215147757593674248222926587637847241894654811234935125764436199712792266536547849341816247747618878993445988662485465879643494172969114691447585119596451689996973973331465913413352987945733431627749865256486511798482764116157639515931567118178895172471976648688181135735642332829166943517355252155538971112394188783943667962276627495416635944792984241836853493243664326618188186599572155495517874185755544342891647742361621416725178632956134987661787748778448856718892494783458526289957792565935725844322565397825819668615117677151372537957647136973733243799594622764359913624391564877156995346412746647787217263549234733256787961523291912527761684955271849436486685775826582549745351335277614373839321868993877382314721581816179999975864159778798269226197794783579165368335114811721338917365512516842764264534595527417133474525288364669812351792433124452712121855212192226376427629955116227292712721931558188849734144645365426486478433132915768171545151682129656598711881367274327722761872836466336224249967278849926993165611223744258133759534524113318768779143448251426368699991229975753756881685735251911899891688262425993961433947937927797654469491989275216381174754432187423462459355765383399565996184835151284919564992221976564962345849757146983472583589925412545929884498196323461617698138182663551881588111436396956758655712956934172881814433927581345896991583891978158481682331364834333472659646442271338552586869282427573446179297221976113788517538375518115125735731242499359992738369179671944595418657672561742568464311394634175749586533596641577797827269566949887439678243388967648255199683561293161975192877539445744693948958363459849936678512965334627412147461445236883732938462713543546383315637215568759586656899143679781352972418273221675354258525593428515744451663629154558499838169829273617674835729174894776572363379439295577949835315572128245361394213658443235655282383297533652863137952263637145254573115368554756451567829522147373573918753227762727398359343978226517372682358428157971895992812443171228454185981677646245225468666677312728116163736339741286941598238289999595767481343351845984796515493452827565488714876365623173412746727453899659937553995212552625295931228274167612991312457528847449351268563233313443578229993535559665311613844177323124913255611656176227499696326528928233782747244745484344865416287919266431154428855278563994522311127669654985769276932322563573675339285573858656347468514751917339357785968723347872632187176719633391776647861558629718415166928247223777453597357238968454945759472747383632346168755581884448385549276428553148813451338773599942958581324537427543565332579464558395327678311953299632769695949668181756677562871743999757231196885859526152139192381165768877556931861375468377595491876753397789855881427244883323311875194773666244375988376517837714314671745448765254971539211871291458422856722336624566465553552696437422873995556892348882936285617347434724268848862648831548899533264626932715682755637661459392517969452632179254697363496336466151986148255269538364483114749244333837643158911725163273636549962235888983883764269586737381366479867555833998424361734452577915789435897197927343414748885575853885365974666379529883661218693879495882247765515484658769538615544113226882222661925771722472835335446923125389272658629847938442785375677915912967738712484238396633171779269466148818936358267638936893718754447226919543349912784363544417742453943885199988156383635956628663856933522319215832984569922876151553795835745217315752652729333467646128582113732297352524345681344845784785956166781931255592636129577934329935414395499959212692549232654536976394734627538687831643898249736345618169812568241294574277248772333937897953866985432749353228351542232826212789232385119322155989211483993261983119421442435934853882271386374475425348581974258546543661278525856481227215539373835281398149533151962773235152344742861654596782886954266661683957933988336915984678884449497682484673395985573829518841871447566913142639176257217882867891646146341494391814624392387966129632355284413594844264382187578432646164515643927433661768516347492917346791982615972946886419248338951521528789266269748367272194889831872748644269133758575774952933911973727142133218165522825917388375546258352672477729711381918736279784519656874545414442332215711688947982578723254576619829289347139738865745958295855747554577171942738292776596171634278525222126397126284823338372688421842943562364881153375192169882874977223438616621847446542439416883594737687259232866599632672349588851518223136222761734899914752646586497619221387359637527882846584924773784713337389849527711348749916264634767475267129788722585575182545819537944644513373539967464617986938622985336443685671326666265856618795327852129686617253879353813673193877879836385911387292572737847113899662289688727435563535327928387253362239981623158311831522331145262373271333447266349391524527943969387491534259873692733984678874892522465779656825987275632427796847983559414885382989442473242735423657587866483572425552765837368524262946465712742286443824549379594678314764848956679752195923871327947314687382848813822413589591285894253889963744134354511359457736251438324686888313643576492175688621442799487297551717446443911762716885722432975955688323514671649217578711717392869671821377231152799569549368433491472498112115285922974791544762889928728928446837825384337513781672544345178641432859273724982148273495991755887162968239437531336476865849317913198922854495318945622995835525735625689128558352794893375726287638196988733556736914231792219962771268932286848448861829931817974999783799374117982954945926513913871159986396984168452843494773961855743371958264989173412678953848322537633448837744964932717981711754595738592364641932192781751825265748587513857759948116181162678231879629894577562363961865122724811752641987634859135121622784164148293381143337239631682859356658467694698829532484552646551996833581949721763811246398843842324563545316463652765284167341461816949571127372347855251874811979574512513139352836441327798785731172322534449522245376156725287394425567919862876393917578996534965312992978155775965612382943328858958145848316892342471464685451354956439269737962988124472817732126759674537323311212549639383395859715158869191192346297126344728689183969968977191518221653124862779165952848547487318262563748826732335498242889511336462645536198132651564642692524959124556255167222158513571722116127362876382983288939175156247748474552279276585276974587991665491746844669298615212549248314733715378644563324734877772491753922449393648859221498264393368559783611964848659688414733158793661731726199854822652934228997254236398897862252397598899688393724344122718713942671468327156417739932281962254392238158753283855847955141155574686381245463656141726311225752119637742168433935996627629194284146898995737829428969721628827121799589142734654451322473354955924861865836281525657783817292684869945327845987452929299828977363246678352741474555475356133759963629435597433878415739432616412763695944676963883355188348878134383876224819287493811643439333669836458728626365436488731644918871515285147663116754516571851537568985588244444917358814978831576264712525958357173862259932978694954196582315993388493384471138524813551581189497235353689792632913258116114933635251428477429519724624133326678182123841583333314565966297654453653847875917227574968577232566721994772162884621826663474521182181557754741983174539666118926224268823195294491743698298899411726598797396535597756566355286166715574193646185851597131639146716243552815324888837539682585255759913974494883665318266324727373253459798276421841665185466284488632491216748822777374821437765417656676349131297825315247992443197555278971989561989393972215314158466352241195174912219319741146882316529427934214424344317391878898449282873283514947266896962642576493571788949423938626192365413941387356959881184734443579119313332145641527524887222567467387518623275126766245756792537155715556772274749343717386428134593948515722184817188716337149478752512963961341148817441144171846985162356379374954686781187269656262376994911215673241148644698223441938329329686888893666916637851833653575532111999245736397972955119466818999197991454882568554964898468368156755771168294959244523459165971544122116726111823364588495892846236326987487579685143862441624125557245883539498892187221261463927622119441379158255857872827229879971814931835649225781973783561557447729812376277556642918264299743414484622238883357536442761634875214655667446779313947112165542961326782425891821114715811254359361848971468549549898378394617644617514439363225195822659911673934673816842953542814178959915397554845428412655846343138829338984467888639794277791993774596495731418261939447915194371629268622663478471394895483719751676537683738665584873212571446492944693764529967354574611654283476825192443328953398659615923251732139363485378418362323724938991113128356674523349471642134832732143968535866191146199283565648741925767244752655355263498861534625182715189253667173313177138471878948446359625322532639332278155858783316157677821883726833547132889919624271943131292874927638796685536853857149168236518179959416959635828522416328879576561391996858338279229842728675211231329814637444355347499245665777799778221763188521359153628985764631533518727667582597847736292653686836717453219347831683182347516288768313513546228276574798449947613533774916537344882349184968637871136427869692871985992287941626739451146985161958347565358229872896799487884778612457862582569648228145823199849174759717953715636339899917992888164934628789341752732622421589484676937715528594766827958895744181683452894653829481175854427636684818178432613541547933454926574854642384545788723514739121777152416544986454235365748651616312452995382816128545118762623333467556863144755598198855126349574219696899264693412377778382148549418177993453692728485214327151999797476521761731669279591196985954692242217271336232281279678263412526745453474887185992969665916267631165381769457856132897498994656751179244179764356446174953327773889713219164499933549825145723819779978875113195348229624185374241137895215523137848799118525939932721132572874448217227868451243313326463649983894515191825848268499935288185454785283165657454282164572389713271689795258983291397654872752968916885299187385425978345429494294763282189728248625449879719227693711818879682453877763634435284464455232971115483958311653162496739242448448876161882845142271752766788632418914981954558666539795473235365155342446882648181969486698124518943175753897715791649298198449323439994383943413565484283136948281279587781122368796115416999727634573349442466246856286766647419666879794748462936543129682312376753713986831924567678526656762346596695366357693459291655321444984652178693351575495459861994292646744593727775293637594583892956628867139796214477126465644738481256958827437875486122475757686591185867591367795396543918766215223788437453222642275475249759261428262816117372379716238192917149854134634341477247649458558342136538771294129743496431284898911643429338631694843565563853752715937968621771953288735929284364856432393469454672554946854379554296335561496653797282775193956466988434472137316114272781875512199833178272811421837985963413512475673481461482465252648878138256723951886824161464527394295821481674653234638564815535844435463329773985347173562115488721256487265442975672727917345215139757472726913469531221755266667633369441939155197998173589145797913856847843342132837275178447138312795569792784867574969613395135214651518687163711996856276577187541482249845196984679276633439164182315288688276533449992234229428548956814612254487476588891723566369848299414752498946724786833469342262982356484277848226718943866962959284622148712524183886151647732539992994764915314581195258821973953142327717237575574988769866151355485245857513951348124981595521957462746486789714514992941482377113286725282243593872965194239929237798216421569656742241452434356924825356392266739843887931354845226552261276848723999783717182513256353379754524713771932549689893428645529761231597579623571369691454894779782721366328576511551694964331297359386898544293248196583715724549456936781199313212759929599734668251738627557757832724563535892617678541274859531782147381869829576229227591443411624453428399146756668317241571543966287917819484131851574521663858466156637665967942978338385669495111763417794586574396125571419819775914774912568787389736777757624914471752897675494276833416168557885958148794333548122351957692489774667446758913814848924574621596863596161851121594375632974912596735331314325355683944222413651233645666187513969162564595859862126681379939215129255515171956168526653544444835849498886882477339784936369652126955833511657469237539266129222726297458412238951614618228231282712546375488274233584214116125384437844472288512759179479171498821414831948789853759596493522293333526629487353516466894236355668829369296822163787377681114551321147966646743811627275285539651645349894566747799426834376131285517597742415164915577894417415855615268417814393731419859589964524849671359778941971856893689931324379215262965953147516875767788195115522696282485135722187745555955496556274312715266363937472766395851456686857363898181717883493877893569144669857655625494633829488744538985779543994534887167816668122899376128428771158654333899711789716318249916911754186366335213182613425326815761268895438848156216447968537114221191433316991529153748482283685773826146636576472644582519767135416999552198635698136286142844374964818917759328131648252336643937397197763685497549354566939122842641316575913666681937529421515769799356647893441543274116167522381215767456699733959349946587724734291746315378563496471838588951461444164591246475912984741536552694981338442978578667931962516556944875619797643499171176216862356633193963525854652657378944178622931226467852316471186971376138331232878553673318316884921533345357434288345565386975255296439755596814627173591177492822544429867547898595744742582663826247123865434383756221367424614217828184627945219722756598757178748657998792293165249878544349124968667436646743255133886229121416273994558922237631828429431462987277622423536388279111843879866574135376528146853753625911876534736242784486162235396786863595877382551798494416834513187447814533677656376626399748857581369513768413139599128973757515421371545486688437438325599231672799643271727569293925463486453512576794665411429611146384817168315964238677698568653289569365185679873748497243188216151177575831828972712535724543146144781253344131211442724166259863239235558861779714874169785571773795239915972842227634583948926275677567954137248982339524324822379935629122735523636677897388395397658559612153325763442169899328174837777983213679823928898738535717574253453719581773651324175545282686831191139297352474679234641699382399492392936163329332585655463592439659842447668571638172528766718663647779435273136933163849418274437184926433645226433795635442773582873415668989522771233666734971157387734522462539543718379667661389152393438682536716433487133261965184327285337897439557351556551958371998321198732676391345891884612619442431293368888813492479831881823956875211188779917144916194985271767277265132922626917417794322387913728232313574154794473795813513774586617854159528855223694834191558119774188939814326665948347372282158366259238659115588323949157252987582394148157695525618614318415144273577372932462923872192832325733979796788834134212319592634185383243721594785295335374436644262465536575843363784291633196491537978635998334512832884282731763469312792624864147134443514571716736816857343645247681839377247711389865598752375933914921634394322217656421547929119482435754186216961592545235236274297662969579155113257669282787997762858714619118333989896954654319484163524415237525493978333664582797147477899431869157879135474542256983662685679575252264591743968645919158516462877983242215511254654648589935213899113223763678942396144946467645545766122368161381884378823476939595116233138146134542233469952991492113315929522956168394288388427428739139981275671419738646477128872774672678246276247991438238926183449597411837431131173875776374517466287268891992918295752378538263871486276365555373737855696513789728325851386712974667126767834895537912139598686141852527291679122723725664432936919241961916818179242697949132532545531521291816821871564467528663225267267256828814869295857713914439135748421192476486869521722253956429341359387925591553524538823363277292229811369314545897668784111839941822847666911488145923323394297378342916697645548949162481699315149238798453897789695823782612225937896739829587446926184254454856535118181837572153761186311775338738626519256451615793333381813685436976882325285754176394465623155742329342768233648258584946242616636659635547681595244638242292754319361793561519133476289317573893628688834974876213722542277457617466248535922532883936143777438174698441841184161353947215848644814646621717923147421132415269648912663533233447168261311825779571626977291433139755774756323279232627426458651525882345867174996147778314168119586611176784172676344163469278126677684252668825349756883898699366823237383253787642239419168174564776514628976649743673588376631897546717594257222377524332884863516176835241952978629142231416746454937441435422283177381339893537829553585827945332159173953295875729168558242675879776961271567939924678592648126993588684539222914471218473174673819568919822922347268986392658838785575456537551366265673848529487834268812456581197554837588526398615475421858967613985633384813763281522596393143331783892382456654515655283486628676966184227873233687916244795652147655966633855194783316675139343987473836219618977217764275188386913395895765553163838145643469951279758225669875147841394528524631486397763541954747766928769122259768535679773946612393978879983859791158926219778888974861648833882997788218264952658924887779947236894623429894968759137794688319978338579549835698692361629448235158795758631189838155126951863457236691453451433338749434319544256824858183135458232154474327633213598397599125736839376598351552881629357258522114921669484438527478383997858958451496334667518244872262846631454484926382933746133338412964998237618236328482184315155242421342983794325954152473877489522555634882313798193239525153115349711979299469169372213728128533392489398234139856967338129862991228147858251145742464165931139139833518424427981125421814815628511852682924512514944125486957797782839131471622826326855438188865848749877838129641225758667343735599576159851714726371926559632271117722697677948465447192853169161732881537211956481278263568564536624666376362919827643879725167728284712347427397961248119525296914463496127747542456257198527116342671283856599633248846677378911158165251889652866649216833512616313836894758934577487979221271891173542927618966785471483318386483637728588384952499537666485122385955782619894143985641378779896392669819899292589943969647626234299189968877125998285147697311628527512389989489287591259878741681232451248276184732737623586554567792616433921383466127465998344113264795997915251752477866791191326786285865489454582268737737867426933318847781138155827689275915598838713379472276667226132522952734694719646854499921522663868839278548513286525516558624999781698442382498949491146897187154914747865985879728832391119793292565249738216978749879888768877924547419218716579557346211898689923553463344881726549959947795686821167489667738272177961739186678774413468922838134739682581258925465681482564366639587745851552187446484629845597455939514558666499846288162412247648578934789318281818594644757422168951328249958927766139494124239125955858653445111693632943356257642126971214623682845128344867521531217238571737921412246412263214235936773755446477689231236445756249727982524952628522534167542255126714856352392153295592144259761341725339368474673932136552317331392824749676934335437972113636665736119966559871413111399462128582181187632519549848768714915653751758411541484268934794174547713876616569687913795965373626486563113668426116475862298568986441732987738338865442462296985538692789462384979593638638336679437616441659855894256919722388122771415468344723226716678696597673693138962333445195652422961527876179755887221629184325492453139636512999691552569881329454656618257355115259394273214148593154868473983397116533733947886181466294482691311853115417186684628238576635555539741271978437788611366818353796669775853785454194129698524783259126691769283583985744685954269261619685593751948323661165481286247915544629693434671675123221644443877338188331787634245447419743929731539361328982394748479343534396448364385163283655383215448777221146363869277323859961495262772785312686483225489385324631617875415463111323741668181434494172511136336356421587374327657853913915527153684732369781445121212511953757896268484242375777888938932296875491239544769246825618491621287736838672938941623182922962971642124972164758819917287274462315526894991365134134632458884825465945434469762254427653431713157651974318264379721465797757962526612942758185155982441116792853313516679387772379493494973257488538274113779895725964451665383144742252427316767154588433852165438443583213888684832664849144476221468789966724196253546431667288315173858429738433676319365982713198383124895628885494311788958167885186575936714253573552336143721329865267838133389524656259531553328844515328545487742466399344565348689211854381954189718532887311269979953362466764624476644374479375169475611276537963527844271197692439988195657334685368685784343586484283757471738255923481725963591718973619782486888126186572621791587648415544121822431967137197135898638182483564796673385185697177839637775922389846165563922638391263731222348232846283474436256151434454478281254862198531145651773927443152276453452394398752729819544858955589735854273947118988833226891448312896213495185873766866455489321389899137536923277853387825846764742545297788915679818699162648892145554122911468447195192254923137562772852987621329718932324616262338413592242273144836156317932944784123246353657939424154736739197418612246499983823328671252152681442554183982263474241145359317442486874261276414727722246175899847434731857598869621744341819784425898873621397258132564535593745333111362481986898843376736919531731756883871469343661232731663645619287375429333488492664721984444453988419342579318454726713157471568499322478398234615165368995952771593648478281539946572359755913952225151878821714349375348738834935439596377346661696129882664956598438865588155114624682857252791533328766571971232689754578647688819575222217229377342689442998878635246256868785519667591599376249743357933692242197746785722325188314996155278377941518178291618538717323739656341392198817866619479291373338761881888568245814642541577789665643621467281569923166123791646199351387895959841157648826871479394331821395279383947727395223152464555474991929213873612934237364618146445525335412762863275899259954587928551981156231448826831836273865698787692214257938621693219485844713361472896588349397417445838288414452531178892721361985556464195549682787567627652751295722131674432688445986651815734295317464797845778166721792154573814648818583958754325384499646926271161798993767189596836698279897782751449615312252735474291279747813945715235449522949369375239828113572193537578673597434847728518665854216743591759571864535376142527826589738713541626968585299239821368332191354215792549948762643668581689693922582635528384357513441418357549787849389118533283427456271935883576494414257365696241857858227563193433746473822344419983894549848971244879952184425313681935998785719175169268598939276368757526995792317323962854651277942774363732951572866942497514117374699863947994171674892533743469728794987567975931229453636851722681977724421794715658791286268326492274594573834388157176691422851167425772154462266973432463547543274751844271487174316442686249556921884211348846266799847362225816885215328192627176961687619278756266687486547354849897667474258865412141684318782662327954368244674867836265933189221816232146412778352977369678571551173277716863798874519566313367255471941526886563914858379594319636739781359915185469286235465427881757883772171516434947372714482456135491498548962245861932368494116534672316291314789873918737138579926156675615974862241813625462343857414963369755758639999325549634365651786641115868657688123984318753721484473868523371972269598463634662889164926334321436385921264639717523913535857889497997114366225876156398782469319998698924446922527147824151179968737528851453593397877362268254826567342476635844629356472276657192736863424897259174791827462171334729151439144941319282737923156327223155158543463472553234338959661766271914259595539743175859715872397388693432974847243538498975114832671924919484196448287974475756913995395234432166774561897372752141559962214411888233213939915228264159261591667389691883873284999394319268224942891879946265654572793618439713882969764489733989258428341211389564441877631938843773586596534381723689443435228385634274726153924372226468879697159466647232333759872316282142846683345968981255232352879174347815128414292226748774851757161741243973393515168844328393899964986374483633939713125844133929216732161433615575886359651843754325522553714261648262136219374595146281461776738545636357364523137645672747219143696231746198489153621673493497647258132621459343514451789817662276878931965989248583552442187384871773779158963819154277285913381357524428314484488795423893221235885126956385622381722891212114582194677396657875856936145146584694851679245822315897391894442792175143146427546136754643176345342746939472116718373646843556979243636672773243161324818163659663834482658763168279551256411366458875931716911628663677218135679467858828319479236483293996453388874755585312334953162461985294971345783224455831937162159569967971458779194675678375489335221827852738627875431258685518939911686857699366799724662112894784852435174191661441786886165343636858365655612745624292898232473168784358718862433652821642779174752165946722845199271134281988462568962522795195811814321329155292996148297616985175486527422841939522232881489895324866597689663414636614742621242528168715771912363833296457369421225876354334468631849575191931941528253486611564657594983985888931744981542487753491789987475257231628662711574614782679215731444485252331377637195252172544666895419432457121719323421573828517937879915615686517748884966716598275175535983433216874279749289197513855444686786464779654662461991384717165643178536481746861969986367953416623564992965541536315939625855416652142237672624244746698172513267352464121163486849498295455661386322612727856439368177592146164684645796572124959656495499115353726295732944228182612942842367538946429612923629871964148274827611252112293564531516921636917567672772881146478428199962552297853921198192648471379255319519194386395115268195911935455396295533151561166874265247782311719262466421427993328733519629789695731372324813243926156926894843216242453643945245741243821284495927153425699112675698768777117687292433983882938478253129629468287328516684876713427727688515323944784442638298439191758698129313681925186986728637792552463284442433831429989842421656782898332364546577465349471545993282915121373931756279226251659967156448576767832448459164938814518152998575147281926812293973324128217954457165266647757144465666476279515311715378943646863427865572421731712338231475959182867315346429489522333451845743828548172694432383414748613277367112998157481528758113973279715515794498236376131942238345215656115355267684397389492225645111611136643391529347266367821331381473936154295128625351832964981828121624934524386691683878167158859891294545964434482758564258132912932384761192331495359665368449632659124234366396719766381135187252954365691229799665273286674378463799257368127982589797344761497666571286997685733612436792731496143162641319871131263822885835428633787727683686791172259633164825294864422789259346462324538711228594845913827742467488721692523462745235596279215844626665725951115536866573494878248695176661672914691148476653466226723368334425763777413977393824486612435775142418948234964246674224356713226346139953458662338549964535746369873757182758869523518851424859736912618773658511759634665141914594653538783532697459825418498648913255123375524168959479228983774977489715247553447374285182448645474334757482625342651957282955482715178717858472536432239324762931437298974791843485498429685787829649326686659896345976834392973935856313868748361756338668855946411942338281827982615479245648289384416214295882933578582846663599749341669147331577315589955394276199256968781738468897792211517226122527385458283963731841872582284246864418226422773646624772971394881211822463429783345722818847225235297334475443667148218992713225634346683116472974785585754956417732389591137333692259524918548312431489482993362366217597331151283229158147463598119757471485413615628322158396196872518546976336687518793512121696757581187599167617576727817976631268366816811571127788369155617624549939519657658326152946396147382283132187842663177359888473111128431548212367563188165713914815648691412527274462268637927397761529659791416743858621292932696747693572511274558319339512661324183228378384639449361211376287585717624442893746562573588116755334885238398461917154493192777299577988717543643447776976143762698387167722974218965652156331491219825595682912797243448961998929791258697887956761995681771562441464323992785342231699666613745681112311368883115255129569734291291331456144444858258115977396316447372985219584398218615434154587223391711658978898658181486734544764744898685554319117245717941427689967735369689589212663356387846732414839798647456612837455138692742124994857492952125758252992175276674948576762862246141241246654219614459116293215829823846512723762197197696826416288562112383558657247896488917634471589717842796321191547337981427375335828978519498442164753784411833494299949778612718283451771762192311394262121292998233211186375495533838829939238931232348875314645938711614515317321444229631194575346496647157878811222274173421954673246851428298211337734175969427532116247957878791463779376397949159563257824683629995822349934838774987678936398177658871873155921229876768387194758526592817388398385742678277642484843133751589397872829746319548812924277134154739912776315248929121438141545817897974694127819729753465417898576173523823593464348585925693339935276358696843266113484752975968475919759332547248476751957433369751614637682494232715798431656611671933692639133113562495468929867859228371364573729859385275162757757575591847219183911418814177743489839813523429611741521838582721792672733965934818959941889161939187351555838327113916994989973981615659232954753944442729717915864428331435789974326498478959444875598541198995226865692586329797256999999789211886344482913862586175154932742829343771859236374881386667849822645811875887415783619176749721774264332729549998268275738619776282525686538428224931493263131649789346798638441843772187288242119833412164997861146234852666757639969964363948841554947182666338215112436729593648832541695327238628661332271424297249218639432294159182187239558163173844766785181187185897742657853936392971478376985573257292887269788986923749338674988717885592561357858112935783271949627167294228892692884453569453414129839131819978157582627661892112184887867854648395357913172172379657332916361189614214412518735689392582117115966476615666538986826165254855459876437893445234715319625199534521154733966578948379239548482823737199385833616543355217146227499198926599851484628128833334173972763312386235585386267391786873948169278789137565161889757434626522437196998643149128993635185627759458947791195995784846334795559394287756755344712185617886421259657332896329689788249827458563438259338859816874687469114951393996829694564242599345245439457636227976423836875798211544477141651346978151647116825879217819874898575271244854525911821591477845683199224598849329411459495179626835836275858879729744683289141623184792176854724678145353256216314773871445716174867382586116636193478412873578854572721319873462598438625773556892163994969216345188839315551149335434639648173661353363728712535977339284981246269586757518561967679598886899425353938768514699356295973442373817118765514954878486864197235415125991441836193941636836648188599978922983693877838411965762511497288276534711383223198464614643351167691161198399519345695958274289959846944764714538987572389617582476869345615947645373511361128256733556915398163689739756756661233377878397293452224299674331343561256975684819832331196419433768682268726297189213191741573739586712574194792612812874931193142592749947317467557624116126329468422325145672226878379961572426148379773239442938754549587628332149915327252253917361319869672875665197713826117843862647614671137526296367977641715978528885987639347764459113274561413382679343155822157967364629669977145868163545741336153314279157851436232585969983677817224129794737351498883882948618329631589953577516394672755525347218267252498948578934199551975775581295324228175867277121127575933842364685473858674276376124495688715953589765511826353944273739598994242116457438963355573745584474787887422155941265711965423768136715556541945941419496838995896567911555548842862891473272651287977823457139326485422547783711598278413126146575916969728998937654484785387924314899872569453917355624141823253543519556581771495866268241455617847792349296244621235148274634318976291119523974996499396658978776474384346533722361379844631497935452774316587614531494766795486721987218855596847987262731369832928649324863447134749822947829992854785962286788252143236827896881349835844413227321533114884371494476851291412143985285563799748175759669689783171599935294167874238294953829127955857366653339643452645837738323897513268481435669622294866696875625832668692947898917384842438871462427377369139829557731953849765996712347339212155727723996872462822145767688773355926316893127119394771537385529911639118319999929286127846387277129931859748638446957631268865566569443217959794387131155831377914847157742621958652656138264955338923697757842696751343158533955636885559233371855879174826111564151496428645729215992384974829225264715458839839339567845126937443722267959923845799463864466191362576261253346714741936352962986234849855978648113995539725723434617672178822722111464436896149398955152844995195241584963666494388784867256656259317593748377794563838443998513422961344152721266349274464114445541664169231346879876222422756199255461363386873651251482656265969415522759326581415444598194691639162126958696636169417227566427423524129867331826866577124665396547948814646527993539241596935479172853216747446689592642224662568642963436268737675738841315441295489521147819566938723742375275693544648227173555426599616134584846281913698844475124885586745918635735873767195587974322896497158621918374174522118439529147642584583211617848948781732635388526774184944628512389351413831663138426819269911138954984255211324165535552552454348636842362483788232676711854268921515649867944857914474557864656795158934637192782138464259614173578369723532599792648843794119456272154386444314466331519728643251355674216636972595545415269484419876287749337586938359865713144939537292134671363198975434648929863672774141256555242685137729716872949443357883496463856527588165367181425113333877252793541237642451481881123488193353595628372516444522532651569875935485113253795137379434579466848267777882151664371124562496989895562349555511838839275214792572927252185546527299216635184231322826924567118728639281688991912194684131639592454252329198199188447749712751785119231131828736561144124278247747661652534397843846247554378932697543785114787951663318734527775338496896274869825245818259826349178667274558441944524348229743539395913358291294546868679543795624214539249357681166834777936496726168972796555662243629313842494118885954618164178438349512742152721215575469866697522363547731892723278715681149872917259722881863288149497511488587293163242228435239168717656484113318512734566978874545388837236455396467713391177529948729432866485812671891916558442293135311747238285365355899632641743354326139756373796275927181264478699382167794863578161767863299959878173653938274979155621949834712499764856673969854325319371741779636811467643537848367285248225167758684338579253888616229939446299968381138933221181692684627137122841843636858855715963315927628893787139614388869254575865527496665267227535321135462957498127783198719453864876323396135847515714674628884261782929523186736117565825683119178168119317879581135516865266253868669489276114126656242766362457393141958557958523136212848973692815991645431272465986268856125294683556179196233631136919419829277531138937539781693274114985893534545337969837886293493791269422764386962945633232361649566586661178674758211414549593457985442537395668488419763611844533155118827273112952727867859382497996887615815989951646329238377967545285765253248291723735653347892429776381614314475648183217995126993622671991347891618829518921519861117996131719869641581382442326327917628589565429368496531642363953514451397837754493144998124318568893932594379517792281992413258927219358674524384413491631845536246161836278616946275237292653266862843569228722328849459514739316488635656427548422367217679599937889344885538269486916653592495173987365798524551141696835173579877594963715968162221614119357324173368628924729921871271215837224359221912373364341448568931653977887877194229653787532225379465243829529941895163715936443288791972823716785281459842475583342438619789348766792776892359674716657534458233782868337562428688233864219911279356187723864712534719229111117132631392587867999379271279179773835854193677467283281217114171264748137384119637946855445843957232133742242215788362816489575396387662666765243879159586444852489135381767379566451398832217244156565649266113646665448548153466923366372973126672215858743879569785322517719366476861634921766734255215964781328814866257123795191529916274215885261865477645245287166684813491815772219873486795492959349578647124235112339998337433356282936646158567679468381933256665857321926651328254173174388854329949831586597222518814232916437311393331761582542423735925457277287418485424477618881373827525234763692234661321197224495245547823182293448461478181428831375956354373617453481398239192129414139466626361588417329328421361663598159664523453175886727743798157842697947372678156627381549334917166669486533426987695658671951667232161612844532281755491596652363568418693845153117556615369485629561419693996397941591126953425471591459558276761829832527769285345261215932618671563694369278791126126618857615651819235143791712313963737487842822635238397467587773945673356437691913633378916684786254578111869859112237128777944667994795771655545668359226729174764244629664128564398299761657134447798654955711138847813858651984544398693163965858628714658636981311179375572155897576931784373394391227663768236984566534851271599411166431153742287739125132169891996449544817825577578879975964844487339691382737465242238614988435957896724885521934137897286928392172643821472464767445153634363569623815832957333865469733169394366535196292714999446317523442766329719417587866819448189423498129191922579256735657555477726537436428465389751315961598269712445975729237992923517557263242376674144156746837178722448641867424737132795377975656888642628369732434593929696962649493655381342375623815754459593432796214147364725115471725754887155556869585856356683664138416211765332278654268836182384134744718232348213529391888925327781941864977687928748726527148716699774962638319273844484177837396363548711431447629967364146776392645515548581233128844257824453516957481138241442226531322546886571118122835868179633743897475913924834916482288241414782428818111372763281498312353512743623433459515633762583697857831173325659519973238476536212884981122567416392615442983693872269261396937665716248347616973987893832414959539143966515193489178351481886838732127578187325322255283372754627717465262893324438936352337577357993399587718241834448679236842639858616477381364797453365958911975745382191135385939255648337325888216495498827399223666498229696526165584375994815161611423382723327766982571841346395347554525746512991146121134663285739281654384473377888882247456928845881228445763459237341875467249728628462937163185798775111713574425162245951258516473883743191422937942336449291727915378678511683486419142152133733248195746894941672475661662834947846429889282349486943998271574357787766575798646239328135172496175841397756519122154756254483199462391955515517692875591838936862189975435975645732371343145729828715247635287758875798993454335995428181599254121699489624947536977774733658851998936887271823419977449693587466268737544415745742475334582218723595139469943316543856313413274423935761655884437622232471788131223688753231563224336463531223144293166368425636858574726737941461656283924565951717168641434459424922222558153112828662693938769251262316121321582347317689465371386527128249288312122771716233161612322936943673874852822425722781792994577745112486577718261337396596833596996135772341257279899537111359938549996931145741731563363396279923912595597962123179316434152943232481731426528825844377771864176214375217769441914341916983389899126636392245226549438127344213224776315429831485327138752173484842472993786813245837612719856229356345613284496879538689574985919443983291549936978845773179559493681811945746234916573768624554713783666149562852497664415858318487643146981175214869299574495233976288677775274558467424664286463161837584992357183715279686123418489147437651258438854892594634362375127662766418373662791154489596997753928568386541619624951891599164346183919443494355549639678684918526796631869374637689556293693354824465351178449198832551691924385622146152886884666819969869288549644257336813269849835691628462325729553933248132895464325259381753797979283985274699931336354338617384293482998257238252786119968586995233322145658563741349236983572994226328873628892825727325552641152573449692479559122742286441454491635573521475466538657272216555416854216143568112967674674229669244644157394194288745113523478392655951671179397261771823259178222627674671619326383475589475277437194359419321958274613558966688297532552383377284545689575123842583628756173781134592449841114252414188775843955384437399399715845152829393587995447967997957332746926856114894436123712397931194686261769149361963233462154963411835882895621716128354559734864846424593964943635459793665952334965415691883245671439785271313698129577566779326368126634654713615553397864775211113775121491751285314979357777767944545484458466886273297863549332665114447173652278587163326249386895228936291317945642863585314783394286616735328873958215636914234533293655286164259968521921432685993268576262476272113195136295574888645251388915115315796415762149993426545425725255524245529623613744487829382796246561812863223497735516433492116652732817129457921461994243443917169241852777479415594718942241847859824192727567997467152275258832824222384939638254969176592275446868976368221945431337875991435991697224934118541464949439561951111721922423356383686527474467567428521651866594642184829165712443384349325853196314586482852885113536356632942562898537512699191443867539723767857798348597417441626379231496971548473322952785746374276115693656594624728876249866373783343598147488759537251136553821944383996734418459954856491672766984373845175819794178617674849447664937445824793198849616971714579862595886255454347297894864211975234692226752985694363758158145657116237692788257674838633446891582193852939743598872525868447485594778861634872749891366199738276543418361757812771797396268886538859685659448516585294711697131915864328252193651268539588391282667898724924287193936883692619765545326617925623996484733793778313643393984445635272535615861781854273551994457863195565951819984319545544977542742387671652559778623166453996269387944198133919761166691799315333125425327417473368928986826448541162583233859186977665256779523529767868253951547194617274226477343929624828962671141758161696429611663944749897899963668638259228264357621699289164429383197818624948711769787583824842131721582865646612569227319772875756793879434993148959678546714278747135167356559444411254813131895617193737272115445458638939929378167339956157581935886668669587283915899494152144521177932861488779158987392486837834525792649596311118736975446229462931194944574574356844286888735937837231677115338913221899672154736357314195436327437417464568921456276465818428161812446781563617224861341172877857891578624875696961194181277852631686437824273669767965182766829977511272697864729425812188669556296124372957328259639837584538948559776862583386259232981333126861837423559688394225393325526291262893947995725935564784235644649819113793364656192569872345698679568648954228838864732865314161996761555766648314687772293498487954988464127838395962172229957752941786186779587974171281185848843811418974813518815823831394287377396984465625495966349368676393923622856497746232845661428147438581565295868471554911952755477335371889365993157548442517954686114172998498693436168328913361969267456186854177673494384519594421144743227534271429747977827357259624835576874824877574255871495356638175753933491956462838967482943749394586726829455647322951144326246584155636579923643737732153666214519162518598662935797892157766226123274813777879348827932688299891197388546322245926728867676555554282935456679162733619366811366663765291767763835286911681626273547867843598781397788856817313657343925265843753531394864494768472663178551736877896273623987725879976732894471161687848136797174162733712149245284867679238845341394674877691298575232944827331469726184852762528131224695337353334833117264325126938377719534746119419136456747431268837779142753673486919584327332995762575749996244634672993524724389347811699392664921911263634852874454422332586867867973125499586912252374422987673468571919856437552578899997655881637617591144778925795684448825877528167269646437817365699489966698414129974517387923573319295744574876862222831522768988997362718175551761944986152849748364444242686762745134637712775591833356495859123635887667834373355579118584496658137893575792926563473221559124727497644913114759886217263154435154717917297563452851676871113527978577387932267343318976886137824561389861186799831727315818698954962847745415497368198488137911217481164585924651448277188779899527523862353617651567265933821852583768793954627664471963143127276333192486647493628614817118714347646674227966128878358858738252715361672357968645569344916821981416474518284957492325625196274215742981799294833954414923531841314412482389762956396787138193123453691629686771399876568377579714172134972458577354919736473354751853249484142766155138665981354239453472774859465867633112137548373611787162197574235535646279196357235921129766979412764462371986618991192867464295369796832921671469367433178577914873565545512537463296512459139317553197557718454663213247139161815115659321155419619923634541611191556577572812872754816359219318353899546626693857237753672482216485338899467643345999255393493141564343278831154554468886236429474887184977872325662438931563419777585863459472926958842887227194732397542388469864647736446145427536371497234129573245678372793445172119723923869173549456636761276466327528714721164999541127143668291843513973978268112213816162971953293481776692393413683288386271589827785443562793961268185691559421197541786855159165864313457288287821897473886873368688812539348929998735913588724562252494326127996678158316287523647776117718498965779598217757111678277948677573849787687252943198726519276813285963721535628828689239156746945441612654115986644656551923617141192157557835499754497399649352452555291884322197435263937853197243652639862161793218591285484187242295189285244453283311838136731958357354767112429549522214886772616231697397328372112333611377446969117626457164274496666574327993792564188794911341995542864543722867356134425548546171255599752846552154485849673279183633598571236341668252198216224477626474487919966781889611212648299836264854741317376345355398117981596972244364982415939467268966915592626933431571953788594379879328471974215252246424173599476297143149349864978519926255272691314516439315592342232747145294224564296127566799713876579888319655955556313862732927564353162125611164675841924914759184399381851756212686677977343249558586551525935283749536358572427264718751253561735777292148279875145919914168231788497591327284697187968373285353183733853461729526212848256662978141425551632573183266981646633547567923966193311527215268739173629429716216545486187493265252423353224845377826425164379785926141463735162833474878196173555168295366772855181467377774139434344668335411818844651328529362784149962512582365529632382228386799685835974181632585512733451938986468965363216363614787922923891436222547757373533991582684963996697751425142494674633799185383843517448952171538881969977395668719552247454497266262168777243814757962696134741357452229732123386172232734186121846857838929257744866827136736811386957859654328693275986658248275761534598839588715183747559277732685124886834594912275819825588655255434115354655661141131579334737379579195559915929822968989253879826835378269741732737516521697668151477393166229382942473531187983938657862464483475512755863541633498273328656773324488863917161319126238992679881228994294811821722335934181868879779178468549512743135523418295261168915748688752953495635444951955746219967732916154597941335319883392298879951565914697539149928146356242126171561829562466357161695297219717852723779815439145295614433394977159326216648542151429752972467172983512155918114145119216233838927267362753663956467366988161952677384557713997543168755551556692431676446636379575349885938597521676218751376224657525917757498465865738755377731463853527256982367631595131793729114344968646772345384786755827727142447381846171498756421912684277321937991697536311742833989316937828518658291721794867155875567248188844662533593887683179615228116989236488737825672878728149851538452989752434881956838632526568394482356488766661333185246772611839144582457813826134636214353335249588612481573175437947372595117954715833979286629314839988478173543826214121662692865763591497632823332633698747933498647676338419542795964847439778633389812732685844449613445211953271162234383666199958282612796114118229638894493387195364433923334144117777116444134569982284516819219976687119513857746754194674694481938749679854527283582958397636738581448223574283432525354116577326349251497724957198532732477218742647675447722411353425553263135379845467948179194235779995196624497934727624534856214294593254493284555297638893523832171385634841385784347227368541648566138492529987311922648392345191692432662451279251415144267566626768824158965971191593717564136592463678563949848877158784186745872148773976851637422299698262638732418685379332964973833658792464513462988811986383575739488534784929198878866495642193942774151442442238915654917116399475671713857958748292582283713649216176361855738456695893172326235733457443894738397777864186598171395937297669388954731939579375214695315861798684955958885613113462992487465313687281869428519756835962617137486184279191852726398784844556384782298997972142662439724168686964173861557561725958829236174669975241295942923518389191588845731245353847927268975874933617279183517881472286963449832192798796846624559677364597478587565324818459714672487636473222866386767582452729857511146457432961625264498471354994997542264468311826256983926316786438544979719771395784975614273725558946795673681269557926344514159842412878136142987577299449744627747924726329417155863797761131694486657278119724288558224125174412966673573454672517328619127557654321567793159298829771672336981392347115229139921876844967554574697488818711692579252637272637996725596376345392395468185248836598948555167595525152858272155594486139536375736321396122316766994697659277659371399711941516915455119926671587516387361311899335735735383321962688314234213136598859478611786854665977386589137723751419478962327715333871774444718758696471611362684961937372652426375721761887955341343961124254781252337416999413446631523947315329442172669691833484546739441872716913978937919248682343386354423114391193783795464687894528861151571579757926563721399741526521668515579161716877996879821452417267695511671157847424294338378184843383349355138768178391237134317636769685996762658486489972412154639578876552596433152849879175436274951694653286471654441437859476761821375684121175528551236163639619726274575572922766887483646596567184431778869136594331585134679367699765551443993325474776132957616683136279469681137394896891662218422927953721714442721319355476296387973343314647717838752288698225813136356611471244818926876597178382816476493517777579256715412228319835575715473229924584924146965848394864291592383731123425811385123489718746865236238368849867367685455227894297829645428493129776222633412731313166516345646413135276416578689796355979433973285592232888636596939516449636854393415572334774376217841793377616836374486864289719383443661229792328556133441329257571736658526637482194337368273829982545296768597695817643458549427562181655484943434286312264296852141994533826168466996112532115299198531813517344743444585675184183835925156779152386633181599997271661265642546764336634673462178124131574637393615257515851947758251198461978338744595968953627522539355452275158397883687848571533558973291685423182348823761712957645963811251549652443719679774438714194917959915158418266232573344643932637616121852677181236561823125277938529515661378382836728928535327169918374391228382953644587118693494229658669587672746183783442771192956713651397579977345577745634838499753783321226841387941593785634489756178989673691384244411863311175771568525774793116456542652658125161823481659959484928182247948444525643616491339731428542335168499863913652685456488342454958888673964338386731468192236531499166343664592164199917129662799685219365723829128917618575543591812848218589491281841677139378468632352199937135117975577515341114337436339922422118665316731739963695317299331542397827489453447596936645568612631313949874117847448993447298359371574451851644367155398117742678615959133186412927446346819175846331123411942242876399979786369772873914197211487816693669285252228528827437555235694959976381592242913655489793362646543169998123312666285264398453996292191992231387985382721555843452551541652771368897967812386631765819874932956746431212431982967438314696682354885996129118283825545914463597976565176965674865329898344593279825222718365542173852676924242113523683318853959134381773285295447785125811185886315382499917452129521111998486997425563443287378231339318146636377622856274892714636557341813329181266873252312655218833892133921136612826946212622393563665756758318489983592753782137273657232953781789948193471463281345967152339387271979196243341465851565577596113198918513645772147973531169671778668527672237421928351267233111876616474585227329135141752952147697335574995725527112976261254912745272471842492982278685711991253671626781738836933881349238344581551219171862465632756678492749684785682776822285441997746899867135584651332458783871454934819512959315427552439696639923212142245276616361493341894895115228342868328844873296275554155466189364185878255364972425819245753668166632456882378319889812476632447981125712839669447427553116339927938488561426369899554764486278869788544566983862826282419936722679423778465542723321462364825982814189715367439649576691973361542741612136768522579238215541484667517519285936182993714258396641382932849323832921371796424977985277261283554655673732274569258655471498634998465727843189913758395423286575319772454763562747566997215762373249373749884167713382993577695728645918897292862181289436185666329819787317573571588422929486817788647476123369427358441377858536481927527744685498233158833675213193845519966385216319283449848157421861646275684225233465249954676652725243791222533769373367624189249762942942184368286592254562475341524617695131848477672826953476427778437839713549396387972219751516239911981234144771457566322372884775752774267423458194736752849316772848353995339139492867159871557639455744266178917293788774738381325788194512412111388155527346267636435885915925943847378982518261713281672172565738555254495392372589446543688152886319649269285222165719976871858489452257966578684144941517583429354467253799457762255215853184918244959219244829934343727926495228512422336516498712982683112623363495617167795556645712912153488718168764533977631919299415632593218174325513255256165984447586796593833474589183688177421168748377559885233941299196637733596223867745247442459447911673813534629373796439463497287154444576836653822463319647346959383638211865147162392245869463472544353338821427655859245172498442666898679712465951864361389133389878635596633226282627555557875752614153626836435586241675362836886281543924546184697655971253631357391482845433782546943157319234963811184417685638333527147161546736724154622274996247752457489153624829281387676289953998546541892373289128775484379658312866844152369371156684891855686763355641777693596254534628266633857412478927366871324574379843127757884686312888991347675658751525214662182279968982648193878729239586584612516394568366654325337375734275224844289814558889312928489897218583881679135892732823642621341278467424335795977157312564486594339951372852338132852997335875396191127392323125299477291787197616616336457659277114823881589249699332766521347948421688646549499421586237369964784743585138978928877481216182468742979583281162957585684293239192289237346342425173622142354253371372996539651167429512537943168285485837773788428357511294411228647138796874514438179198429439284796655242492724631628461383292661226628758728281233968986395351462823778459367469665454973397442613771524449265931555732162714965232283526423924968542748898284616714954696896283935288967786145726922471949657748357143711324885576512615569233157741921142429977427577133945249814915998131116658315997282615695875364267268713542932651719267655171586191962115397362332248912419457865941142561385498512312442367952446539674612241982112245461145287631588847141248348453988982499163119893497499223968356144272288478366595245257453177661988295823747387811315849155811898516188452179759689174977457536386995729826872749645933667319837425787677345318262753819539412144622277882322137292562414254357618626494435627246383413737162721582921453815538156287549144116264264289469892595224757651162567882219135915164665938694799856434544446936343688181839318273715168312885517666463456475282443858688867317974519654381697842137984779489986326281598567341543142597435423944652511356178123335475127658743187237162758559782318719453336435147753817652539651521356677211514387558313455318261285741551512839675395631152876884358393333525472811463368444922446165398548186366392527362643776482812655544169588641265338595142322486839235184937854376125627849987569562968342936253655117892888434379465289372996351762451428361587423831867946561636861812637575326498564267894866432512654411732371127442122496848188244564646763864417518657231139853298562147313753594347169253936245981184723997336569264179361874372379641849563218123429345323649766731824778978679911833465528495966947313191857747729145496324729323932331225878549453982414875795887111122518453286575614981449827626638778593821458717295238121672344111859131256936755258159926131539514326422814478884787678281223163484925995332219467123841852257485787276718828854456749824948676244861431222986431915877369137641126159169346878978355861873436527932837741438214939415471613255956139783735545936856393464678972675444615168549125645861317113369713973578313314767243174765991951247573394524881685892167555549553191429779157115584588234676522821852728723423861218921387838919984255927248525545326344136837734139621234176418941665966549291513464386683224116962347989799849175492959372562158372971959733729158253169225439156253137119262167871277198531436949342941867862548656346187121594427511696271224167682189881839162712759367388684453461448311327476552477196843277413446267387825569596395779186826159675283964418368987464362843447314731917346272959695921194338147429519244751845715295214536341962812715179153632142552994526513692762268973335437582562813454692767874771984426264329598744912278855312399641247678528382681787672182211264387944785413651638384382493418726329676126372234951478517747598139986588215337632758418162712513491949869373944199728634695745974178943871164462334187456828216523397483488714836235769331152792921668996867259762247271275344444599388965578455568374381714156595434319656481746654872842247786327737692239313867145218422999431284843965886161864375916195137145429695172687754171461169572275617576164131896292247244189296767323819222391719822525823842598139319321431399272433814186225136857877899838746877157445966357942619397269943529324848324859552713532347232573593877699874628888141254977924262539177864235114916922318999215457255942353754944525746424445889694288312577779121685237661158917425144382968871938331986981672313716234328995986729617395361472642254675464852512472181525553626721177513886837163262212655816578575225493985671896915179659297944455874172639528118515451478152486864371434275975725259286991238724131162579965346762671378271942354369596383826582657664582565698934963591772329475139468524963764159399366487333736762412798964377386122641372634281231481276492221731885811954362383312228767969822999479465681718138141826612583673519445813873665479559119258515655698177454619956891892617457922371277892252247726795855489179316313992116329972659934563468388819288397828816851742187224152831749467258928414477686317692785749685491272922259996525385543926885413329421545435866493837128686926247178221653149677959651499991514119822876179837622576525494434744625892497389932187538977411774134513642369353351194899531596789149483528534757757936878927495498236476219564338822519299848267171526236973485277317136199825612663165752189597227828428298758813929484573522243814746466221181482229677729832122476812523432551662528288161172218899832263327273234942848954173842734831152768181474567352648922194466471547345362717432585377365692247371814331591334482797433883995723793135175187434483125394693155423625133531262681893323672986327669172224338487566788855143553299116228551488923581375768913332242763597535326465581956737951174348688331742387725721473177174496255176949166838499337643331579284599284989673412444996329276185443441648696846969268789616294637862735684257743658436385895247823985343657321576317834313726496774218463184121541222642823352929439255463764718729974145271361294918544719179841847132659575685885738988886769743455599346794271644442229685558783332165644951994237358116661438641846298583573895528339784737581554173929177356797619587868527572878159165789357918857444294842817613518976891682567299528992982652993789368437563183134824912176265433359272737935227619989296712344568466447239652412391218889993448274827529584614743753631539664479841582529871143328661613578725689646878756749179836886123883352214881654328226287765366455779889267232543464862537953686154922838559694928394456141398893374366111179461289614227246925143468168965999917867288892573975221927623192882568366154282478881962732922219354281675993929816813875166266191598555844146927686873388895594542386869273764423199327116446798916482498674915294126717351828619247376233422831332992526597357261897419642734856935176725449146224854817988363856353824366361873267547235161235759932367884852166721423827841215297323991485481152183363956166575296595424962957954279464179627146685237412697392618645941893596143665296455174134887271369417912367776312898291588296322262952177744474453263311121551666852957522857291516727828773749423498251235953984565237993366197346251163556845191613292428927742256252417981489449659881683446561166395982921854817786844977622627136534715799169848411718459521324965435814819784524684438389319695227718178956388546868696516364766536333927645488965834365791167619242443185523429981316775781442455598696257478376296863331374598948697311948765383768981827257151811531525381717982871861676289251213244563633221487462428936951961274539782993132668899783387473479732618817199366945814221757875847998677487393786277578543331713483259877696864571128972185154482696584353828275276953161565884144693916288994411996311357735138497588195895235234643777439942772519229787191512875152785667834975886754563514681295262637319697175559985235583582897951671638236679568871327665745539496348252618644322254919472725643376181241994426541722658839284411128133122443185167222983891232222924325369657163763862131253264366677112957652827193295199425741297986161725896615824434365727745424931982471941523845279542314746138927154256288463779724733217899682396611328154231283466775454313532182923727249246572948473893245334434695317231777961897186489822255524845557534328398996624595619951444879432753672451912352822626748116159123479614695729881951524425121832168929467849817792744275676658754655591384154833117324772446211565924132445728117748125248758794284577619272872545445758533282619967728636722766289655597825185971742593154229737693242733321718771828224435397867172243564535292273974317726412117131366619228334632952624144255956972541453274636621761174488863459613657854315876732747276962197157392986296762335498115592691494924211629385497837637286255274476775746754283966628336849347784242624178586762332144637552329534685993849316538632183738959812279768842762394166263436231111226172965132262567162315817827828535512113228274878999571251833764315325527343629518455369452617827348789323663513338654687648328952719641896246459225573335956859121974954666292113459572176559552658942318827916231188274739785748633752542133645753551833791273926291334536699163398382551567759368291634283198418346371326982718536578887185935648366397985154716343121728211664579919696192461994396267167133461461229838864952372796413115332277289161847322449528157357771887595491483195339279174798465443183522568778391116194472317741159299446222941842542887998762756666618129293387432418297963148685144945963281824853763449642391714198584812983367533756619849819329967347435542383567128992871882687412933487524759452242228386444163266514156529554566686395837344569191584946979226874413886511855855713216683614271521798359343728198397865135343494454288111473181911686188612849275682383419527697555153813886712169377527478927662167247525985281118858684485141246869491997315325199847385678782366296285815336825798516974742767477184464986467826777354626793439137373651196778354968329888132934651815824471214591412391293384548528998446357695736955964182445376176999634294756352737135168695292782644953328943114816323962571758713217448222422791433628765731511729353174296376397569325897747717743948357874414158871459123793566659374161481684572616418676812476393597536594841191632397878915534773526164457545698726413293746123464868213956595366816125479881916393122396846352932542179957157676776986561196289323529395919755333921576676183814245175464339862953919656244534847344871294289284484348863196478192488598896724261584358458985785833671451932336273698543321889361527552554576293442285426584311342997232588286331449979427737751758562519318841984861612374939114869999929793791966935952455346521419392262431425917412635169611642661776918849339979133648598562626683273947879866869123962627678336543837524498175876153223879691244427168316294681295316582442554885591321839278286617255498433811359479463379297757473891543723747675611747746511247427461742915672132195879419423154789753843399591791366196837233591575857186835985911519292815164919584272863362752693492682987288235643729144298467597755843561272645817719129855515268632977895147538397298183543857711897685189843561271178221495166145793391264329446532353472887581151488485827769212336663852599685622451832587497539185458517465817842833971599342259674434168649223385562521544558496748144897718846383335368722562136838218978762379512948719954156638459236991228169352122916411963798521129131836752963162693688947699699512585151246431689847631391259299247652675218366241893831835735657223489899615138117388462734288999246925876377178786422694912781693395771397194862413552841819878286664682391677816151134214199818565724943199679275286597896775622182386575442449756396965441993191237774327441316835422865954143166843254887816488829995479783189553778157627365146934572449647692968673334951454956493536491158345992224697533728457591139244957456567817559821655314316229514348884564228191965475795416266679457694116915919447817347953599434194584975455388169692387636478876214511945474269139367919546323934384376814128121946735678291483719137696918718793465821731767936827577167837716932423486442134625463177761431124264592935237499935132897949931346785888391949722235424997989914572949668751633745187586164154482575431195258423829566172465894841464473887538611556253398877262287625793444394248753972857563571332691833252565339626791546794735885877173238662514272216775947525182798911756816123323889483144633612481566146656878267195398652811859985499944629435924543397476541438977751113944545899118644388332227892892296541128928773191834945514694813447448238985285366659191569749973616329218726132776686722685482642273182842355533289651798236389416614677813454562426495218726656216473153277633754482891662227737364679896558724152331386587269886243122676447741753771429935914526728864497161146413334336716167637413743439343762994325886482944665928341274349439751347974267533925748756169113888721597813665855228173679561757427457138474758378276434479344185828532368733569466919347361668139873817671926853553565192156849826916764755339573729328422995876475942316648596867788539629287823416427972831496964816766674245575116714775894391769236883297644145614882351778745767345565228522962441475342216682395749251811117231157682793459478843748837837549654393472696543326491273955619554874121271614846585592687246181568869876946221767297365887496532317284777498563172797184823465495224581129865263332949321557186597745747633238352435456411198737311675237549364496832461471233843919423966871221793738864787161341283378856857935217984451157171188314199574376776564718714411418229627475892458995375144475414236977624292237136453866393744146543394613736437153248868132435978298548721352157372156868991487216959831855158876979565354382992586358443847723299256679997196355881514777438657652128918727331618668845678343987198889659383443298982538252449258937772799833243931163977921825726383452435648831836124715786257774919152515377451962422781494161562365515942677673794872712217252377728292469126375662832842567774455254389291728274256349575252575981329338399196421843891214442831952764582482912995384393736927992168426655745834352681863455244449171745198581915164248473876119927979478236326821134861148648548236174975516977179456468222974876382579119695492346882594681158675731721581121243821969336331987551522679671684975962784395493237179236183251547123199429858151758662179384437139337369244958923779976813156749572287192385177354342713126679535644342361878593926985185653595948361597573322593989487852291694421478124346584662611485694662184939731255792167337466726272378661543557926132854588259766883649783938628322496754558525293556324626378289238793947899318554185536153862773552746524344288485937423698665999174514948346184566398456322712617958442165762927646382894974133828663668134335978695875171374645491666468779276935413818845298748693227995812495845125998417271939152841331561954354744464171154969143175111295429883238635649935838135545644186964276838382274766568912465862568765347275382657293983138525759535968666183247857155348199565497883748347551335948562371325655333596329974986379225341362836259418941826224832652176182264779719512584994477541747346452838788637876276512355328952587669436289966573923248758553691256188697593149341553218162322436934784543635558513824529759882474752185257693543824266131928155418517931691834115431124115818349291783841824225666667177557472381458532613915361936532276914131156818968359675667119326815117212782567381148593293125595115724981127745748587716118657166438725726489854693372982637232875635196634618977195382445168254615215777227924623941274679393763373648351931392586514861789955261534258351469628157443491396712744168983928869575318547676246319725593674559316735579225737368228668926251181753298121584328929885677193991964374165213434225293649258447443769265676828231649813727551284469366823594316369249511266274528444925265484919913864869376727551942456885384275449836753323967161285873381586931993467699876581588164283232833923258817785242281987495517699989284973631153261258797258816684693888142246452456226839618266625794617811344579282674525341881469739399333669587644185418397423384213135491358992499839658289517837139558573372491373328945885567269114941277316432653446824479275985378485994636781124616153959458875612291553121223573167362296973333443487688699846242767875462684827165623582366869135612247395676362733961296682574944158777343969131337335782939323728595228495397329942419612523794542944883312933916147897949228562756134243436626329119784614459534136441784345866855624984238271472116974297762247699188319216254443149368924147796784424335849173477392174586166624156488752668915634741178674335639167833998688231494591367671133948611899657561591951976623726929679758614451419484479931293773649614474799739667914797817184357117443823785652332711482179394114646937186649772843989987917297562153851415372466644642322931776889164185611857419763884887854522426734284357987953231519284535666248566881568353565526444796252856691178124849285636261448142326776772573957854416913955659771447914251445129459941224679556589289594447838763656657125959598326354697378145399855565841781511125474192995425299734228395246247775273251792111974385214527141897214539598798785213623964676556367619557336294514865142499154571331186817427776252755884779135168165546377844458522989457251755541195512385529371568494128282636635176294646562517347548356598161567176539975225747481224664479426123665541952325963974339766697218454798883115511797221296756465281669447748277256967875549174583548572134842555142727361266515867514616999244647718434449191466126477975878342993645178977113623259756233146235498885683374536841715327521133562449997235577941922544284277433556456157594297298332549957589735468864613912629453686581138911436311569751812756194532544333365885932995975159647181244566783361853942329724686475488734313537513785826787145672111973313455215464854422225672882878198343763388574824935582569636536258524733579861253691746619342765517879136912126275348819723888348935737337428945368248919278993785358989521314739543333349138397722499451479633576798823724643314443467494466614273144225578898142378917343892219313714161939743869768372661771591762276269133328174992147114163947145759662883698977172763158252856329275363521217924189385199274616623148389311192499337726634984645848666686585614635397859147491874739387745295547956641644283279533551113522976661234278685892853187198459446912124331189569643942532366391889172594592357291484647772491388286325764988698647912687716634552182558936786551241387858521865863117899557212124243937678744139449128964664675187369835689183936927793959326724431422979778969551229315236797249171268236922866877797321881584492516328719986552232862939888327368899569557983294289462449261887555511455154262688525748654731386836851355661728679133888151178751236351717788544436715519526381493917178745587921681122974591549641447222569351429421517856891863896517663588519441491174653638817467122469111945963869324587378914615741742734121486318755471262622985159122523451871645172197248347842752784928914958555664477211785948127517297683536972298928986479282832541319442929249929828345363434488597331532354146927751176399646486929152266671162737733353225843444348455192117379852187287671995328153552663379363461978645724255959315461687513747744696168473977897333382932295778226722558745423245463455664139742313458222563876313557912395268397632334489676286441931149565383945268496343861593685599445953355751589123319358616964898383417972919821141975825421799417647344435416421416986418486326171814146675316247735465112633231212515172682396867294713865277297347743891911587216577753159768492155334325353873519174379356974278691122447523864759176981588895654656888649924289187776724683148413991753634143949627287536741571661644996491585555173826479436482446745474323657264444882813452686169585716961677811388469694752356195655151217797726642591875989597943447447226897452592567956814497741475187666311441496181662991664781288754473497336834888987933292211975311641373866244131724143253241671635752847352653625128342556512575931113748783154546378423963219592492755524738163689421616815764813978439781586745676635216683153341982841888562928582981658853177264348237973273921128274967275889393125713929211313119495212599429729281572482492613532943981832783612657885825174426591788679848198143811393619941679548215287985799171298359342299243852369947425323231156979299992287392286838359662776373271169287816124697432387444861978175882463164423165283816392389985354599695936232749929648766653288527487879482555447391976531747589227894733977322931937579453289111789252438168262254781635834734892716849645451555833974556728198358842685239274665853287768567383165234636553998582781366113731946448812365645383552577278351344978757874338756991147855571614891665432755438137141825463322591566189253696597391382728849188143751566824464172299371254963776131275657183499619436542826193715622286884122163915547638238498869176654965251349784436348177853749314789213236193536249845631894733181992113722164577462823792164361441451622728965689759139225451575529561641436784668551562996944484331383425884248994938138722959372499631118421319692514364469386515367377129259998248464881717358784411123826825638464852723547315645746938418861696971141385114567132623353238296774787825215651353414637859667335582273783247163393656339286897456572731143849168332854761351985532714617981887528693978993989532592851559437177836122811198141289375319252858549132321311915923849371285368112114135255345636821747765182982983495798323775365339995413481678717276198264781213192531769726586293892526974985184335392263612231419461167346755176695691962174114941945778344731379849834932432735638195837281227191873356489452814713185893724412498714332276456737936415776115244924347454989651233773231731244534967593891644767933346298222664141788877941316988322732543788292151947629648237947121274432331445438181944746539241266599723755287975867232774698613353223377894682177789857326976291412649327775872548424245742351382545376943419453395517171295233467873476697542751112818827238564132467926671745855835595327153466483274731794167549998529325559198295667636932685585435356692699428875626129377725257772331389229196467168885657162727749867688678223919796351946127781666324262872262932665659259927973694811187193396462815739619496556935834544853487468841782721365757339683868196733525584556682956778647722621294444883348885981546399971223231564852275843331374893899891913949424431815138155434623582672865887238228622426759129468514691169672583354485959861796536895881757895129457852727785238817396361159651575168221889312282712347341115243758669657477585755779493512926281946891537285659226266496697215298876729536891793418948497127626412174825513673893697435147798438635825464622892269792395874616368741366737816812871981577737462335252724483164349338365838574796311371629925238251976459215563984121172853365181167712532167355645642636963469466937178264888343796759445671516218826622999733982666589857896526397858948829118174623597186737366941725596496293564713321984529292264513151669915284525693854763868229433489379787138677862246423234165394239117719566243255776988385823236135715651264468836424253534736338898353378794576118422654937551339164481249597997837193475139152957385399337836518217434747632816534963876648298918542914576657219615872446244134787876223788498447935268672174542138731117856691273787445652886997861761446994921289922476564163739815849448729847739966412818179949433265937811673568198378975969882117611382348683493229927412389489149177191959278489381919948976879765475458366294132912915791366333869215939449831932122489516138394214696649422594614843683285924334683246177137487862929348628951499622319111749425517431283986926986117917169992552283281388889467176667253252387394513531328244841586111325534264514756877672964993593534167483733187664322316795845296583229491699355776815365858266725937766825759326786322696512973565331823286197675296355894992246659639857456113622146625923136771633527242742192215757248459117151411125298398518172686439431936165276575494244931297629652555951456194543856248147818753917312346945399474988782363248527157261755373219618465591715445159765831256466426153592652996592467949854589112615864929228767893596471728729879355636647313182332868738599476291754327948236459535217156974583558888563376821753273976664913157935771998579555861957613192217989456445393237614618468558777466292835444656316666493358924751378351774138668314853167768233149874841244118829394599265977282157441555854635644983999486293398931175549812465743133872481611313419853843877452745921168919949279155337525258423714799699583499295727568883723973343291139368388759486174444621844154246973881545573989222684667161374971248283531728749797252758784279273192345215179158654727596812839127351671177161725986735225486288924969876662643142614134653372163358335881945247397618954371476619323891874498127767662878825475316586663992783458114282963499828465911219367592382798795134914651242351276826954114982374555929842956963644247647925142497889772867454627929773564968117875742926652922614679715191999677951232797887837284164664653619313316575153845553857214578638657778425829993546712532867529374159882453351594164115372934851255133267382421736937553645821825338433161393364867511864355336748581777715932316156233566998562398366936528658244856193781536655581174635479294577277335477132579677948476284521337959396997244281773518126477489165994582396514671821722367196112591858168528875857729945744253483467263914689264735639984397635862577667925931214755553873435811157623414997996372726192344835729471629118898425596994227699961898869779548389627227538276172152927884738455417128751567164278359937499234664265948985782117823725444447792128422311779978641811344668338549471512588464228118232598421165982943981727129839642881621626915217416477179962834913864925425835565112618594676157332613154636183483554392659353866927222575263511855174338253438129631887314565538935468262414215178247967212665458884691731141556461145656812446234684557551514249143698278322925382636371322625537776494224416724986512624775126784323533973544832482543819311978311564749993285423466746666754573528883772999321666229785341788939717974152984949552428952911793553248544642924878811614785763998323266429411877667727195569869681986528468445111861569115171948926667483235634621655665152136837393922233675136982536931233716435536647894496884947639642892544886448128556145447181843923166344877778423127459258141432627149437183824225851765467499541244286783175485869935361919854867285763169497883865382381355542259625819858536713339357463826931882373246978558771696433613295273291414112855622781323473782399618549749725377445466692861188938883756626144887323782958956749517772344957225836114298983656517263297481293575175595283447177674992639648895312849267411197754253316269948478542547287296872285515121915741583727436954632648298699689954192363186581942116725664532426725731949487471571252797149281752324317155882848862931725633617739259854333325112213374737987759564548851183682611838299998654619853738836985234226935824679131925288161557861372854345592594485913698653438454529852412541879369538374526359781565794848826741693429771295164219689152743216365597463583987298265961134453188527263411588318123518522856143895511731889619391551493576171359819882859719748784723169666681661558633593466324595781556214379324176425661273522981944555972983281722276284435523526961557735944814121748161623854449484146439621122175871921196531368652294155155153529511629253287843951455759363415454426331538222317433897723953388728341373994234766946697892129781515543731133497992442129321389341783954957287976919122942959883759144438146724324325319594382557559982785366687918439379796852585463541966524325267984843436575911364369811332746443727969695196212536517549514146417192951458969122652385245457978686861895782682746855478812519367843922481557611296623484644579253445673626376384945374538775699933389549167794288695147814373266483447343911318968562142479684133455978368288184829924269928439573161887615413784676982873616452758835485825173531937114454888163835463843441684685495829217823294621814148117464893375275865184536516811629345635851368745242674324894756779232616632495828985396686159626538689342482863659169636131172735592415643627972777731333331592842171535686473549113135358397581687639197624858868171596325964922674572334717483289348869455646793259271542379597412396221774454658575628635584335343864931355719456998762228541865151442577937873562237348281177672615752444131376498123921936683744318342655672212923295198756939249974237674894985284692467949763769971748126413822271415189965231127281982522813911949547433855846564453594673864767712434627182737161311577843129889923273982154761871826599791678569777975171435322484842712768614571166562595836155337517683543779775321569152646178729477629986843274221114277874745672343239794921442353778445718265378581451741784928284127588393731578414478456836655156784413775731671817642135788283741182358731686666319512879776949948153825873448967818885742335329923315773916892572368633745267968388855156635772896647922547243979755249791267246811612655457655528943892827541112161235661424875658737818551661667679135966442897659341186142286854756253776964619533531934143727282786964549899741184186488559257325811265944827926214732586482213694599983264955466639786434445783132929236629156628587129463831134325247718712363211812656938932253766436296322532513567258941166221854373894946276322847739825347423748937421937559643314286621442525417158151795668887396767792853284977672541996774583968637691828116853917996552891185946696677487962352842486675573956526273811596639713832488836121672378558488159928392439212613778786531379173864783926826986244123665682587863241521193682395697763231368954256298396664683243728939856749965685394851228522783585579134129576996481492243312669195117418355854482431534865939749339968784268696638682168549523345232199425265828586771425466589191191931546826674132173598156955155957982562228522537877581176561154752898999751793479227233779775148228997772741977988699967724227148837593677664352211186767178883564313668324648657656232839717963282547258613477132644826786472681733448398535237391562131766824886239948881393921167279245736113635538396325626712328232685396557999727249799359471393461979434113873696555579526546762858782272468726362718659392878943821837162724449529374193278173243235731912346276294513629516639943425415547155664994265196667651882322775561835324539149616469458579756283274785137941991437472228192619815273676361469492938159948998979486732358384123326139914713589426888914832233554945846215443275853753935247482766349869384511185259442755582658283167185345433847761845383548356461169582834217774757275528234879875624795115782156872213135492387649998419876881456677789319436289178828786373318856533452394913899781548165485269712846164555634682546442868375254437133467739277339853948866271523214541223121743618881766474425644177997398253412291266894235578875564283196237345451138431877655291519698319843487381222218953371411271992885133851763873678994935942932919411785851938295894277679663752693661135238938426733479346621779925937449143874446573517968924826398132945221555192342146738118638539624125269658783885457157921663635936342287955132666472264219462854476585271683858585681991846921357916523472656593951949923614638338869296362791895987889239483224919818424593481869646558487698987867699948175252115768596245834529378252868483484848786311884235151966152879216491369988965378782868462548449988914892687214872167893946771669459647785495782997676851437483318171749288666844581165117744965761834751416979438335724487873259233596646234155887368616474788592659293725111588214953689957897951861241541578488784143946625399376388332389128985378472132551477815728746557345763599592646674354715588933656222562411574241654825472274438149185226262485549822348464886681489891326563997987111946325973912882722367666254964957679965266334496632397812297592248145559972311854982563772419524326761667798864151216583514566787453417276953357468915155499868512743559153278894695198537414254427663567874564922311163893127459214359936372762982987267468213924448232768835123391916653453744167881966748248457448912346519916594689253956881524324437977868416773676862449481712255732527358824182768892829889983566616332114511775464535523322657397921931372248773126466687851471253245262384142342787446129156261385799937331354521254655659266284653545266381642747212567583191366519935464526781481546274464489931824368799268295258875392639633613938888815534148825444597458519882571441783287978392631265114983148172141459935753826842343631934721834858651226496989113265247518591876641752281878777194517168997184638692719796673463622437126814167836996965521757918139741421637298786363714777577279134254126735694221481768414139943447758331779182931985726228122345129833998817998996468971771715396389468259848636163859726896426933879794577329836111981661391894282159496227919519516663592662978172911513212153813559797853849745836886196382571725684368552315888476974613749621168595339469958785272632785746753681913848833689197258336789354593583876657895795419232799625974222488952721299649642722664969362419294355375237292452417714629869778194639152761895935794966832898598841755911989482841236828897646421484875864711884896477266819442479856333593571859476282762795732617329677724799736455429588152311843789561931893437868726511541525793648721611943618369911853915483646417467559719446327393693921274614451185956988429149388579597958382371875353294297926873822516335463438864273581283769131371793337461246553691717183985913981293848853597756737434623213381399583376515281854586856156475485332569221538612951435149665194527764574527378562585987854453895451896247864699747244928353431875744457934383167771252976228394667192885213418175181288719427783482568978328126524632382133899138285982793593944396534527795698496893962292495835476828487956785264468668797279696277925698266672127873642458317825526875781357548235378522342914554941418433176888316156278469713197136868165643463867574399259567269756541915231525263592427353168932475575898839456595645261456248275712299173917456819334269873599151379365556299771693128984242147164979514932999147358936359543258545496887186881594397821865989823262839537115164573264239637699824187939649144482696119872631413611494347141588637337224366387657586911524562425147758274712457114694644999121524298914375429928376641138931882211981427847638566139122795883993991932616469215716617787255345534626687113924483944711425949493744491991382539812273113696634797126126145296277374585635397755567159663171587314651124543117653457313511657377632734177387942276896145111737479642949577271387867461861922569533616564279297983518593575632464624369776696383644392649182137498724681241768811349583492583133994252365332922135963291249542639144269672772874361569683526688682997765921996422367215366925673863448821728441565276692394652926369131112856892398957276541532268162162256734863648465998952167863868983455831975719299973979654939626862434422792799696993747139881576618949918178936524888571469426986769759567359819377125242982679246912956661549466266671768824737237321877811756363918975746127839551537397362887167864328738592446497126742929526312624395234378716517181263223733885223736162843573371386416779957468632237419657874883423989884521473595235189765244475663551992939177589187953567814369624693785592259157732188768175925385544193216111684871646443835453816295424914971248312744127552732341762162457461282264676229483416573568712448557573939449478618245391159383227773155889826576481719724742943629914493474921557438398662756117988336563845881622341296461961669392836129517558681791336422467275458868718453111279382832857665191775645489689616525696871536925993456993842711352629196248731329454943226376392353362876748669694997118636245378695872345211151438148891314741619176219529624556461248268432571378978839691946671584489322468585273145994987554591839841876625231335814192647986968852828489883824385694857546133726887636594785114574857592194454842595254521921467652491418734227377672923114141894934964836347863539629821224294675962344857643884855747758266423919932227872151525187663468199381164385162176128526372427316234339668154261772522149381991613836881676992968919223131139171363849917496681372283576577475591675655394851977195432968616244211766284568555263796883753266676642251586332747926594758963511163267115748793493141416291541546752452925784833237267687731664247473564932414626333199751717131867113414534996538726591662375351841189433812453125664731856371364263214485429621987459344851886292311738269121218843766142128638768721636437548322487989189842796468421164797528556354262245395932762857237768623248553665184476453628329995656859694858356784437678311298754348217572417975417964885814679993713551681378798493772252517496667891858866645365642756897646191671754631285629174348727461978935911463462822728143724559436329728744979141212925375539462184964727124917127228636278124222697968679859551262924541332653793478335219254279361614626871149377119511335642567627879556569487186927948313457127715649186933532223817647872582352795694186447558739383169117321489948347871415377296512312134171974797464414942542281311524811897265892231513667775616756926195692271293243598265535188789488748956865178327123675984851788652446122438249852199597872858723856447479383268367227894978748923657493322537353955533911674575739468788742565849392583549796358285852735771355274322556334959768153326783717124544689113587453256478846116717151517427565299415932725325886581422152898327246649711232699247278283453273787449319312461375883719945252429153173994131158646795789213445431727916317323975645113932364787749339959682888232643835159427182915881857825748882174568399197287656629312774653758983823721447193754675651196261169341413536346419867331431945941964894247769391376899821814498483772986651579686275966146576294571668123279138754148642388818254211922239133886389944262941656966166378171248867761976159225729325832648653438194281796617988919482545319552351658617268856736665718127163186941892517481154698968771566664366345394933927277163838875342557279519981372897593766633966111728767566573662319676138334934995761415152318437384796538811219585625129339963781148691472482348789289112197265359218255373416274192193292927432252956483723339648846955146789894989536797119963646341745312281579332891582488631254217547756783715894843979742746157811675244414973366563425698394974931445675962387733173533352638121154512897925787974226451424225238578658248617485716341363575987733677391251888258872898255544225463192216283198974163778321621267376476994394971476653464436532268785384512818845419645977629734493922261342124564427914666538977259364488599846277857314755631356172528358341758443153427871995412463387911184828122354132911542677795495493874676799292393336573153582922218655125134252385833137375466586342853346652879352454971427165698774997552639555789187138834383159548193355299668565267949367471315113238747693347853546362998938529742515164396962325841139731673546586182319916137511514487533776324923954934546286336563296463194585679162314713444879299745944483859644864345468855764647221658733697974487832617273636347282164423118357949199816168572299396627928752445454224729566674693264956621854387699179925482742968442894878296965762743171344439164343639449935489554761874317223446788732524952817273359579381524193954195491689397422468386338636811221648596525165382919642394975985939788339834343443396436712219612471192973497631859571942242192238247234562215298146238333442544357168424534934736349952394448763369191442834196728524642975832156965918181481152993256452825929516996893942845124348782963454414993572756848349664431527862382681826181575497454786847432541697688287344773497665249781934993641458172339567234647525518786949975782914761573836676126885589576954145511557849496197676224961655958398343916855554311822117253547266191382965429649719829625867584183111286627579449321372658396693893712363829843774791855585144323683618899874131599584932435765913374163948432471328611743118698926331534456484514265228438288971593544879527757272584426134931969124591541226833172413825297283194443376497979366395586195613812235462191687593932579179638819932477576534174476533438372263955182738371678916547681517613996415576313469269793561419271451989437956283118986232173188123911944538257457245757864161861262255598313947751225711196273288392841561755419411989989686894633795842915446387374362211898251421994984428946562887198977881822812319642435971268967744322313583693556689176982867431853872229578723381187775851584668856167995766984991567152291566341845535192689968925629838874497371833432489375267638411377627344427659797624149881531558218832264818787539743611753716627499515885662495267437492761422952892279735864379923662827859143223348211686924996161242826739142265175143734134639644725387281316714218579882344196457886514634293614352249353552186874424766974334648762785931139625146413919332796572739222225285589229411333482947119912132549998899738751989173773664666811798578441215392298565732197676646483226136465674421983972648283722923436162528868856143296124386477799316446123996591729311648374944864497118287837897638782518812387626416234896666337195245935163723354865155691133722335737232494737293697156167349453835557796168877137732437151986268623281876654355837959654751267927245323977293675479234699695395119521717426683919932371239668257119969611258558339367371235839639536485491145857783518431813865717345764777243721971713783968448162537894698871866836194379123927969758117873858431929347247438124998898475769592584417932765566865634472847876834265967134479155528856148616398515191793939844485378762523232982381359453346673989865916218396424448383695152449335725235154685929646896492444456827349745183674538127647689125695428382699946389181745493494763284111279153671579643972292566785985192997254311154342452488156544943222746166262584719957642186478581654269874831392175848146573331386712588861989187669354911223241711868644641548285221519521645716681444697741558861891742716265633666935689634529599552732237689956647286958399338174345358126911464272776595417315528953754344489696862411851671123717972416734692378418483539531891598637291569787427365698451531471243953998955786422961716748885897183381985544185269339793579958756964961515812228241111358153926493799839219421234135149753943583852735545476488891285969243499774846291637266144142437442682558932551512327839133376999157192884937987118771773119588384994272464152762639796885733662961267314718984156914582964329414439151521319614284633728149179412416357476336644196377172977818138664399932576875492188285965767614833824962538977176883378843684866137432565462167636862655994379873514761285289843428573962278254314669777175968299146332459154584959817515811729522145379284621815886436715776638832268966317497975417987454115877983788219857555974662217526993671858669444277575922242783372549624489222539376768871137265318369586417669577143729813627957773531261715763355536496557343119262366437883928559189644457658473598222899199745643696931685432672484453452315678927419568999246384529753864331132762798597412939481255532855866143312141681774611625267333727429539733781758117178584217478198141812271245955651498818445243137927234148633986126897641954356948659164726813525195667763986571345232513984335735291855143791724337376664996579978952456625786918645292581136813617743394761451114623661663254514286316682617627969215261375635932653211369931626536833961432824178388315296257619382477518581987715535934559328137273923861758428871364728638432148339615671513389425785557491484226175632573712533992546265193414911563719978232429563277577827117153423311213345299596244824524339561881892126445475199381732154881878948249774311791638689784263259153865832152222273841718134358152337899995116313586556359684487699378367677288436981695563719569486213958666399886946582663618546265349195734622215753918168822438852761223574684158458255936168933998921267515829744558941556348638429435175567521865558614247999821662169614345311766626138737598664779639943463539181784446195942417269253499731549616941559943963788694822785748697381235128315673432713762335984712725226946393635784169272569829981392786424677144449346582463352382568191546141573416845182416544599487431935972292786374324867216944776769255354432949361645355858225791615149472565481434869355156535685988835971428452738652147699147536328715836669742596581348143875516286768225287336884716629897346854429241548262748118668437161736176979933849813614558292998959556153934328288458684412611395341844147567366199858189359378782776988625341759724632556473342417995757371255127469523259363313192567173198699235186481427656854191798117766678277825746411995493463253737385192763246777766215531745817535844199213878555164516469849592985384195373237623963618683542628156455782995656843113951293255158694262451715389598673672887382251566692662281938775943221759864811568635733724582175287252137427564315777948396483991615718458285424972676495134422472843777585926414571118612842179352429167558189446446196271486291332237773671514937646353281791723935713868818292845461778646627811269445325145229755611465926796622656277771182956315452843411962126533388497572993436419649635846388427346983962214745698552935553393127515812921384853598689935264565224594685623987336984986393538159499757217416129517985413666459499264875614215165743284549174113928394654165569934341684581881172881255551996989213362699677774853867412491188118334373249817281476916256154844655883296176784821422925429793148626744342819379491482833691994746228642632558588426588657646191722576738773521362811766428938989136698376627552742697249922711723362188641394467527239131212172388596359277614356868761871887925755379286857262647423481568159624141957533257212843181236832783186971734837658732849942535593782479441722576348421314557916274211154126363885627647182771387697691193618895456911618885793452222221481269594284254122691845957269297213262471796197256231635332242852967195274663377981852374488453548358665921248936819136464298543457214595528311891783438847681825536876427257236295446229868859392978599214826436869579565249178165714614995647113959885498315219688949337781382686564993734133171954777545573531176566737149436321788333788132137674237839753384443265342234337193415988953271614819333555967656886484178496345626549783288834413939446175598159514362589462692785728324773577537854191936195374645467734981722496696788388795258684257544525655224771619387683541865419759315625172142858626751736366141151422819922996758423495912514519542623593793366118347737877326269331479747864463286857435255772783629683467713921595348654129387459417533392583632955728139948783522364494641884888468261265822173219548883862249975882897279376685549337513626523191269787625264617531271332883171287264825221581233131153249547455259539942989991393218321354999394256241337227336656377413882612136649672384996651277827185256349894751978367812829691397822445325698586211982154924933614748269618456875963168448741982354168928853341835139864737735761166868733956937439416779441926922596268464945678519175918189679618334269444919659556955844691551473878723992967892496969227372229596367556742322461946868575695444169795479591646639214942411853359239655494467929839324454438653664428868214896787719134466231476727684413883359929822257769797367926355533748649521735491359176768393735198962813865414439336992621884294178268445865297929518769747966364168992377886577426283155759475771569696364729452168264747765222277235752123957253978341196518625337792994198793891724723363124636315484693552741892173398591964573922389535618677773913852846184485513455914662337637892975683911351595975332363125795892349639565623911543669971431728843795741112412445711686629691574743217216346479849898558317454727147757371828893682437357982354957622349421291368519135723947232983917848957984734635997279892979269754638326578839428135824911816881144854411284125828498788669337331625954172374765593461225148872733228514742116545771782386153235446287569679324789757766372584837545282158969336211987514653944677275389965888497585234598882147855273179547376924446895663677442868265119737328653231676834577653468868831552326438585267414168494189962996137669317714553849678986872161763428358128363637584282768865831152886687423766424723898773255251337895536792333795984751965479313972524193225494882246232759688975926316537965443556168233981778278899352957471635321933332498215983817992538581911114346575376664944733876624523624956683219675978441617279522883187635846613119933993799641728926778253812921894193463326387188644558638839819228453765484992865211973745625536271536154454439949945218769293829772367792135939912532397217588464589268361863753885914635473218446451287264327695186458885985639264372187328177575129887475747653979177798595242642531257631385682478248987411664817722485423769817721519249295675337575816282172743883896716172695332722329426689866145715321471892963283124672457151621141277156251459651917152856817899817512136162926826611685364843824563665261352842483451866251432777144559574557585721716411353531234578425769527988957588514845857194935311241848633279929293768577759389294376128435337355622468143151879295717541972686158373985381267276756319216454968776974582418935681319229755959827415743873665134244155919414475125577764121634837131522451888398646423813965247849982936915835698338519795217981869862562935393125866635155843828795849922451752237791196679869738112114348313425284293841625587477588892622863371699863824372999746535687663981948825196533533496937586242439423295615346588637331168582625546745214527266928741736583744396761271633348939713676234498726482418551674466235582193532213741881635782927449977186329529794772744212383135823529241192961337591811138221713953877876972984634623625437497593878545131229673944395827466114379234637747794887216676322732258151522176834323943499129282296911951157631942235464365373482872876972623627739265681116344532618294356616389295653653287628788597933573192911566721137689566316997245553754688359353911746467866681935298567472397587561197783241323642587224443972626716473696618862911632955242393974499748399275475426521944164341689554383291646168629613917432479325544754717313154913313145172194648923383812127427737131538647891582719199292733515196239882571528798686696668818316829797954885745513153618488299771759434712376626939189927737695668591861997569151957948611361726465542539385189174767627553515159594647665173979335977632972376326689245542737751247799887914635273986449512167181759647337699196294837777873581545418232881789318671337914252296746559736795634489493984498527272836688347699826856144483245942124673496165947532126463766161352719848434827569661296563177183243135858241886742861396613211524625291114192765842871529648679141651552859916589676627571447342396341436326874721272928952676794328341872448719736928792968428759474459584254235726595672593277115448387513816477925573513738438962889439629256847384535716549324482435396211785522964323876788237469798418476727892233529987891436314233869541129232472361949971511823219152253266392538423319359331641445569865484626567687523544588623177853392654298847597641188939137721949195313186735598496379282753846735265364936475214732749814187551166682875511921393455335633476472931117547539548684216567795332534543287739674432732387956379523765182754611852925133726443485559857122473467657951222656974328314995142376921615726871467888697997491527217378749326352939789477217267878685358371895186955781591217883741276992971379953432472583271334441839926153847279316565671692936918819594687415236862227277461851731679137667279645666463198173146193985659456211665291499296489988176531555975931449379387826624421164118595987111946765546997348445634483871562455131564153786511864392588535769253298593761419395615762523978974183831117137966426893943339127326598698381986527116298422322933582331159147678488997838969953399432437331987725513386172866185937169781778451892228725712419992697565532476455456337817837826975622165281725161783352945736323774879288359755723957151522134391777695429385856941746787981229287846377295679374437995683694522295822441917835267857215465715834396341431222527292812347617289698332254265416136216429189797666478584891431932542183981851515142881268299272325423511586536938226143941948169691942999542944755467641735442391484473316499874318863935568697526963284732699919796988535383144539748919269159138627459767962414377177183988899651375352146267594281898276955818846461463189727136915832416887771396233439381983684165296774441469962313132131488674293768913157853864266468396254563739638723496772998534263878125387249912241898997749265432332769463453555535325997813255267433379413658212634122782916522254561311665475547748826116547642988917964591145718499188742495583283979338422882631538381421868175462385136294467319237259144941486514916516842472474189993376413152532162655782827315215432861164297393456824995725335667743658158786931592891463874331994358154721413452541567655176965491185466596632875921675971577116914549278842828399356733889689189533449314484224148612899747645586829741179479863524692576221678249114121856823174434679282248942953363348829225667914822934838914249553344255691481763965447238551416539843492449416691124726562591254937267499449988998361927965179362977516549527316142133738334259357917551493124627829981713118143733377326527888469357428738532794921552293772516442274946788856247392411777727461577862449124738457587454126752798584516527881625363997398854833761922653431492827116734519891167258324556585766476849371269265879682936674149676358275182987474432524972464431945763251359985237369765892234318874988913791322958824483515925793189871141262455136565715297655763739833747872385839389718353737111984167734962343272131866239831817213886262385511624699292174154764943548667117177436345542746112595658414115821553177621784394444898538937499554851492461789132491253846676429785735961149841179174367914455423896282384167164971495976329852239647665151767164983581112986187941696192157862151397318495894587556145151726831858568317787236779374777759331215161971758461837764142725637657162259215949922688982952415161765978889372264422318393433938894381268195211542552479622914784112138826436479524651413692959361462344877414455799749998293128953276553293527976859749547858644851495614954542226981844528362646685145521874975572556896723877344848389366653199244733485652285568295221775964887169387842951395125636693189467262991674858787388641298496342948137293468245963636755585197282885583839542138492955492912719898247429364466295289739818979947752382298545153671542322119993757884194857362518652782983771855532931325831171736893171348232784866987569556538927224348951128594282738674217117628942836847586984166813234734495289461935573162466147359732179588324416854149184688312275361319149379953247954413233349765785588425399514218648851174951319856697117968368123996994488418294842643338155845935634152882611884147268963447849392686755814883186792697821513523679255626114322782849522671812169184545146466633627677624715812718163666191653824561322683173143847993593657747183115263368563746444683838411128328735161716979414763146876777518472767847334374759853439997647485561235967394558543774763426154519522918626971824981356587283533474664335822992281395853551813149496728219298426446921166246449289842651679419942533538933656573457422468398283325567461626163487138254173881112568394265769998799594892271271436256572937836695545923139946978583239323995654197498782675362128321352451815215853621777293394136141275265675258429476195413616218226631187592432369878399669179992554563212444569445265121937916151596726759114948554966957637242172644219928422267542936689482689743264945876992634836495333581565771164642231383666395727976912478384737841868224743294981561618535817581665376649868356393353995575233278695268944768386512611146567665423838622986714355415418955729242424275363934368798238923493497538855372564889559362154393532264948466512979834759855274426532825751299487269634518836257799771245155182797659981672387946813836442741811554443419528211782164687851739675118348289919177373631415367334834658476376263799952971497929392647465981517875659846875666595759475864823589944828495851498864791276457794578869688164992877156164717466724499456253442639434938398134694844768473627768791983712594953436792538889556324312582631115248717959738572194424561624725348917783655313511843198261632945745513668299339313622436489474948477743452375215455598226963446174747172298619934483393798923519782489598368141488697875665916874112952786581539378865439829486787972939677729547433865837775433921224179741795437512184752284575586783656626248798816371388636275633988659163832612248365128625187366921836298459572288788541859575166158667483239447126961144989486191855584717649352846849337366865849497757321344437912934659236619648324935969491182274638542212155876279654484592517859713813916494819665113443582277248328519248527474973317455662465197948852593341637857581947174673366142182326278863511684381647863456664685293877126274593555221466122479987174786493741885497444934172959657935553727794323956347645739784376731983652973367781544817764181763751895992217884827318875283347513582971191777169889777185318158297385384351166854829527847542451188416832738313784635318953187185825597669499667929448324422129511949696535381981824636967979829813862415823829991343838635516586772812384565453477659592952589257236453698133369924854958196191623348616518734625991395993693554888538268149382871799387546792179732648331359536514423166635832714867699725567927448644217689751136785646983684227171581248113115772236825162484981128132842952318529111417644932934737911994235877776826479762855237716714216683369841476333427738419978488947253145171794825597337234852645369464959938311758472183468532857883178169888754689797933765951638745631418383541519211566161913785337268195348388297334828829196518335123547374172815277157956596328711964671987267675389963513133994198456455261828245132471583873362196732247328942545562629916222432994927638412565822863853374596586886447378314884871146373622379757391917847226593617134385411375193193777588138387988417856974483782958615417245734664348936363541626486836638111467782574991344316844415967867983661797186119538913253639325994268237836546379269484646567967363175867391937743679944589375981288553382363947285277535441838946692829945337946354995339412315854944738359943667956588329549924316779594496652347876617651542872448378617362585163633387331526659487237953191596768987611751316243856541649689245943794658788312587239183149964457626181858668716427325529524858629126199756636156778229161345187997586562913528184815791834443931778424515765553833392375717899866697137492947221451577846625411958662391484295238185678329759745599628657876479277733564528382839781545232768665237472734553635594546158223979472229382736887346691395116493341442469542929744492329829459673526653485685659888919981835772932576724272636513384271353739821968539936998448766983198359339425167141648483148646955779692533138723675513726681174542489542834695853414674222238671618552634983568798954476598345396252314692848617413841579293722235256625798569218572527347518722345896366212921768811643383145178646363772864939719663999284691354969245322694555422611629968993399292723772126558617658444243462361433699612366926771414736162287221471449575166532553835541648361317252297583135381463816959776616411428276479797743923518465135675616423149928781982332968462827377928223913882878191287924195733414215316683769658666358657119241651182549815859615131884575498443541694474858798212299546875618952912348532392212322165642213988187292854183393425531984194382181791875283392633174952461688886956843349578742847333558426314888372695543315387119345186616895722871424543962672586985546224685662693946232388536124677179437994253446958186838449885693445223548862456254736561448996349762114871825438791347282171685569559927897439398322949136284531584475154886615537629523132584432778274652221753313355557695937194721175285241371686949688181881251167666289217265758716524681596592358865765481845525157394443983117883458886869391815445878266467155379157533553643975451277713416833837689845187375711727496546239412279242559376747718347991613543659563618535298868693382351695859794144796215171839158173241625573877356766364346241958261323658946761336852275799884699721986779334367832958527495654635613189922346919114846575941393744952743865556456731377761699963358421717342876458365931988874299841911625792335161553552338657532521573942165569515749873636378339477662766213153527493756374196943699665365569711459624241531934382257573939991835896219252244562766423625594486874484318422667734365627166495961398718549615477714155751399685724685348298725584899455474243713152574393165412871795332555715911168586682221398268671734285786682429987188217934781753162549117248126735545226584558755897717421222784147568217552226695455186997265468114923566677246761279669374721522893148695328875971837664134985164268927447235612785349742121526842723466177627686119973174226618761996513264922422318525836476252342872188479511641472854492816148225314151991854981266585675177889319694683667865871329776273952781641988245821497328384881286354327415228699628359986465573297537167578337278913799446784192634339976717424214473496974263425858645225856366692832428734965449193513987523262354475257544977886246425175472595942456218596174686317724252392775829438367774142553334749867935416347274742245391532885671463893427223697611139972151627543832173885134785787764878829574846853221623982358125392274121494978299241448573374794911223242539458352495242567847238349454696431356584998144827539443288537171195533922715196848772989732449447899182263661244912299163216949718617732987991481581487696289151811473571268296335362921538533513541887713621153678669713465695949127787848842298154925259628212113771463147356259441865826637837294139443156661514689171623315914316158354911961318115167386777117622536926912932732237856524123774827418997179252363948588889245517256845542566582875633419313864468142596631388476838168989364719514663236254981563368156872342372537839444831887912797384516633764557481764742432512239469121287632369435717831889192947738855518733665124897785784777459234674447693184464142519977622433891224972271526821979956617659937959336434574255142937577232124898739363519933436529166788889379932957298991323964761447226142944149849747768955439364176678773275959823588373795631137575451657142933271996166537639376811865569752968958453916768595264139586551546321965355821679174577434178122653658174555511328766397794496659814611955415536292621489837473452722616145678397358396278925149311461974532349975794211191415424451457799734621189511491531963417433192964325323363413455351581313422517838361686827952476524545765825597324462943636773424766133613162882128122474951273547151311596674876687725119116351155975124681168616487887797322315713214572677448965743391922142522732178235868663127356347442683764862684169715116732365198247413888956341222632394439827642472559444968979142361693575238264329253548336148365324459863688119924267981593319739174859116816797293892741161833639114825514972772951124911194356356647978374532636737938126352876539316944486458911513315948935676587982311855744794124497289646375172213287561828319648367232658166275474128111822776512324369174679127518328388556915226543449787797438268986822411923575719677356889694581273293395442912779484172842289285495624167248325364551644652669199551956669482996251295568614513568453117946125739858294955415741485585388981463336146532872435474733251939864186789323499633258421735727613919588519758791895746718271831122169719684444533996556463444456653513561815146335871416641985648779925196488111588428172169523399281789228128256898585681642759768736747438233823679138982266922894357981793184349333139146747816331938998216529433635637199771313394184994555487649193792679688818225515868396969958228384142823634285559479974858769587991183345652197135922297973922691798921486684287667777473764834893584621168586242828554721193372519871876624236317952423522657688654642283495134828969392465234978432549679172553348267294715912745877844751885129826645815385467845529993962573454918388816253936477456743799133514241912535718354979543712514845257357499879694871833184244537842557396172929417479778181424216452979586788727345322929152463996183131697367181512694618745833531733772317995144214563436727169133319449138533942297421892688572712654555498582781423491567315476449784313169128269399354174511153921342646548464383116414753757157172345998623932232862146312916724847225976378481467661191281752235746233759587533378376394479571954556832678421547464983419256351795277334256219845333564489113973598232537957931442798945846133372194336839522455624327891493729838152624566611162493172121282264868929375735731878975166184288575366293655137114811417915323251586194449853562932972661182387444943477352596789875931129258871364591235384852838429412336914129469463981374456277117339829219256183371397732348858671452273277775892839682795589346362487695362742823771941488311837976645251233495672655772413585272734149162481847912469698846353415729725853837527753612475991231711673158441192766916144643545525662866611599764355859212465996453538288127194418894795849428943295912714512843721181573395289497797968327591662669715845443262941636368896862127978561994319584447163752448639437173162482421764569734977639551367553691721797132985472934879995649888869948541638266358736525978857633626459422337753525966453138699851485227431115345841465777446422358879513513846319246692445967981867716147229749764224456832439515275779482455321631866448671621137514542577998851936479336377381131474621319194186633545273899893739281211111417969224721899789862871889889821616538888968836721887765743734774336114999772344322997462624981323924212278493724813557618996128319629836765836297453113891492232183956522993522346446525665877975269692781932165588249695961658173932199183197546359318695751567749859857155899534454224778624397272955759249172495726984745164789984449452258398869357532146325292646461675495171196759742463882844579537967473472836719855123216644685372917234327887861463583247494922111833254842527643899114753235245317622995147791979871244557979489141239733492388366289524299147141154925254372117725575885797491485776281627737489835314772511659926643694466193975516783933978871323672927516894435892184472257279436536266845367647756283298895737279785468884647312828138897369977855382179434254345247837653551235663769792997431835517363517529975259229319131124664389531172169474484424217328565983935932237974313743154774529928291693796482712984378545987987687645824453624711238982479957725479961495746917111797835831592138924963426116717786568942981983875171322923583251797581778676954351482473622926895553519365959274212447698671261624854779365272592634484242257117593861876283332494721245259769598684661279393541713826321395245913268365295338398689121139643232447273772293923761671784536858983618866884276553519566828484381541326714219754994859431369686631552122432497796169992128976537572683725955524929928121897359116264535929469662553354433168867574725396242297353576819115881528798328841141765912582582969922681412295299365645893132118998946987295625441894363665776454248747455996448327744999565991495278713212834665339738564152182588269478552817441392157452559797523441295475118137232856911861622856865391791593315481979166917282668987156116326754651646246944118896591289712377631684297782181969518616677794456414823581588585434285843411845475656994942799132539114254327755228798182261272324325638941725136986685719826937468729614675177756224694674267983665625172578344765214561976654819371767824638813423759845491872798765455798588729184977516573642417833492259922721216846494657786578717823793874875368996352838476245926286453831365145668651577181582289735917933537873746784483539648592892584736423676344573734677527516655926557724337785856313954794368769395975397965448969254534849614534929448134568344359692975845277569513495741574898758746228746483222452925953342216871492255782994138329714938138724643768235424726537497899692363636893614146517151781468218334596185345758287983859876797539978476791264983669744732381943828656324231628773647118137221482246768271233889153643555266185299764572573752656821255662368678544881837292356936932497523478222699583392427928692841482628439678636845977777536711748898731697459933421187731499373263925974628511752751423452387683775262623463447592543877995654832356498634866616769936624289461684214976452993557451912319255293624919443533788413592723638257398688622874142873132294546251981748591777271357459677812526514578227384891825561416197248888224845564844835461492911534392193487933316687124254244285515614832524744382993496629938578847221361624953142369832734561253964889841245448565438511756761956324218321754689122863736392386727137857832389282367549969286657469945736854853978632626434199725628981675949237998951693182863415212269663576256151999398373614124241185341856351441269197348649953951474559183227143133756519495689726162969269873275441981829387248743729635522849263262243179684456738682143216922247241447495638392258352551153275879922652224954158973928113338826718963274467863659942742974855525322528864649814887862167443884415566242515575864548644377566886322845984532196349294629255733355438836278368893891152167639864396168785511389578573788332316646253121569588435272439262473936551652597545377884836751977271724678738472898667859434412227188545326253333288774715946157755519941544857166842291794299864414286249625329713932981319285525834457498721792973161192919561844387926887755843148137237163156474166634317781183786499115411847333896116884882251791619239223846124725313681896765725647557742343694114472549125577931775458572731131468512412958652619154781852765891541681766639679573851826192581535682668119976934218381879826868237472273169752162879857638325246873981386251356323398861682194771178195691724346565341399418776773671131981415969584513443219685842844843874368316556789991868343435718185411231766444333398222464843741171173258683124353165291484647743751964833923446742241278541215489365747848272746859867619621157973447932847112585461122173176764198899873674631267267374571256555234211577739846552288625638263686996943624588133241992455361528117611872229923247125359676617498267244345236558161585542112752567289514937662567415969159324469176936328974119851355259171496313895526313514588412926724853472651192622773111951132693978215369469529796996971983143449259575511452321919697585889122936784334368481471429177455257441917339664593538559556181615357348961726275327163118616666282814681652367678484683344999517687935999924682521787119499348995688177959427568536146174897686144851645466122854467963252911514898842378979965491977291381341628383529296193522519338257371322259381299898151319223936663674798626636625419349342534189357615465928568999922855997395129779215795441249131316794423924789699969493426327448997347429787747743672713444178867571222291865547884165389696472129141249236578256652179837364466369373276823637272377261986432948865182654815533651476464895189864363527787339584521245535143827344484263885743284297649133225938276681769232449758411424635118835573649462486361192222584984767294447383422946956168216513978588722549671864458954664214491248921263929996321125572883222245945841133121743753381468571683176659662873846111438464221179466931887864247747879695825922757341418193416189756516987578642475315914345842716256844491244372782382715188357873356795697135214231392619524291335883442155565777896966798117149528752956381758427993573473176927781875592566317997253479677178736713152398828617222458415111873444648867658498121265985596663896268935789428339335833362827196522415873715546459832167248838589629196266619254137142855748586347246762222137529133216661417942655221342543284977296743883676731242264217426812421195372529181195291611452843174173599659558656965916942224329626866729754418994484178189422473157529573814612951347956897934228879727998347542556351838529932719669359183726869394377138129281946971777949536554871573374282286773749334375739916154271689796253516449756238128723138186944569721454219721532393595294788234195938449321463582731349617329639121864685621867941164814545587488464833283279953947338581139767513875193329214398112869863738477764253574493823624799675858575159565713141422673942898363111425361832945976133426596322622653289252355752354675324855916262479385518973197464986261751366492331669557767392779396369286825146993947612231397226742759331734323516266379397129593757579632953214819446265966824179736689664883254177694189669157929666433629934321189487242247848784326477478699797624347552235182314951576346214866398944165454685869917531159536955848244679946532312953847889484967771238932573693787962649587863649553445482641918595657594171334278412859914983742286836333364671411585475763936154736358474839969917454719113617989594341624698589323694594754442391624675834772683941389665998126278536918385444627745699198811516258659486829171755325313193133648593549121938113623944342544717657781792783593854248461615185748427487555814987482137288686169811638383654141879982691449144924967894167552448325583527321612998666971716858681237578299168267824512472957615627364273978884575816942137687159775192388167523993477679338132999498526332872271418175996799988828661283469575516312791461357139874882918955415934293238243855631119391185525918426638433617969179988885327827648399132393989895783461983774327936948267455335692947946393635338821636362884253447131659812224895967584662975218811865745867156642389645733242933998463847552215243195558762953242967252816916529637282947932244431246335825567429937221813927469362993475829551453264244436952887977214685631675871384626119288984514862413379756674936536444223572847978285251717198532264576733817694423827887597349356714475666325546637316945579514174491855476711373192686243982288518593929591637736994497685793444282483342484956645974622182335643771193231635277665136135256619886876187231657313814417722372259735334137981621891321983118233995527821419579548679677868681989422913943889744699567233991177919199293562335584529242441347147937846182214652914738953886588371845443553818198469254432879786771295341421329965879292388347924824457398319294679699736551332724958577317227674533495159162323526463183713459793131435232353594229428787132991283226648762912424365924715714721133586353453574891382553123394496644368412658137956191393621849413729559615597192791639781774724185939889338937187259128994365663154933844646435148949738154519694186261623246549433385199441319617233284587141963292792635655525337546875567564783842913377728339174651997743129394485622392125123477466129232259678939968269672817443935956971927719616423478458291384877464365935985536663497216244421246562964452994561798418913253267724819254434778756576477681897668848753186353136774329877866512385141348774975632953849625175383787721677865428693886737244663821591658434865624892363976342533572546467754294573619997531663919163799453762118468358999955255151328154429518455278167863476872892796136877611138825611847525514663164652222323195655637368617864171535556677986541882517368155351394748295883436315555372165591529883693172313934478895992441482368517714744136354134523656684629461231595997523924265421978339275276335714565646153694692324341657289661915478963222661792225279988845735261966377443413523938917791263678673281933164315596486955961237983392273488718156783378774786373692817146816619378684362629256425595399788349365913448519425956485814683526332733976715756241688159527667289353559121574188155951792567275299443354292691495881769995622931865279597657686164949838279472456864613467135639123995712647673348618944646918918397668722588712572365719319199818674446684455592637187927816796543986533958417558257847528197642838481775515259164747588377941924751737368782687951698525218299565536353921187773832573183892748281816997114781963929327597679488569158758126192393313963528556312296961771371499611815156892421531127173199149991881484154285347348936236128118995833338646269983774486888788577169372145759638895233711587434939956959423475245557728666498791575179811247751115867533262939987374365389943844421972388369257884211637411794135932148874898476886847578547849332335112581327894487234978652574697117245267746273885372126263423124737244828525713239431937377579752465746588958271112115722578343488963591395112912221693749563791495645564154254366324686432682531184539834148465196443975233385373526499813758146661857471687115367995776949742497373118967777393883451844716936664854759326136314558442711483948334598529232653987739819848132854213854656819998661531514217482691975349711699465517547867586655642265234184838378912797446191454578871379661487277346188677613968755772636774481125623479139315179556618274612613164292993924431275735542892152367676775967398325787232321416432189655141761581959662792722465563327721896835839885863124269615926698776369742629194496821771362822688213186247147476957924931113261871279782586213696387779778994861987755893493662281856824613979167732229358514632616388657845742314424249199353593121965658212332553976965898948258255718529641775972557937832646469929871633691277333126687742377368245296465472294495953726843468372681226663772129414675249485211358379825182272122478983721231355181163579786887124892173285211717794959918586287566673781399269939424315153661216753931959976768689929324569688254546632617183842722553819766572925588638347521682846126982638621177831654395353426137615767528425296261599115357848519865616457757473421412846521461256696239915642872923196747763687356859759393379579879432298466279755639459676533519342552377975741393247193646875718963199877352369473172435822383268377253877984831127251631769975892415692379662663387431417393772793362388244389527359399919365545751878793122973697625525332775249236195396383641293743366333746658267675293357366538754375559194799467965281826468343661194193573397884412483938751116925414659889568718946238913193694224478456392173866478267466526836274997537723999535242976638119725115856428727559162248791591562162537178839583388593462312257353595291973832168997224444468193343642649911115895616941377276589653716696697177637229346953591455725364923629272793617292449475845362643885712879139748882818392726981268537625516471258449268249827723665425766414429243958861632314568981566185436349534319363583739637673182623246299428444683855797455562622836445276119576651121854311352544177585196932686687562971916149455194593985133681347534523227943541881277581848862513865265859913181197845827694734129525999899198196771251929383783524114983882681257262253181347599981379556614529245351558572239227244989639981814338372129241152865264116995975397935136949945119635835514992431132443136929421482865315715736838872284774696633799239689162645422538814264736196818767563616958291871386659258727583249411914614691617362176757595899748628988447397124221795454933817658456278817519721888333615985549385893673323194162984344832276293663729141259566644877349467875222393296311145619976699535212724843162672786245233782644154325589884942918523135393466761172429397671679522724133357823829951779437493445516717133714986961137961618943373743555825322818712598457231567642996377897978848887612334461133211648327914787564235357684675886949761452629365677192759116593296152187249965531231395196645943658746451356699712631249793197441215849854523383446459328536261379763637978316649174995747363371245498286915559556845418143461474813721211766592185525428754781171243353428877975326858623972978182326557334921352936787174171989191655367768682775443141457535435489826471248425858152185838361799672229143983467372371853679648696817611898234851987152317271949519271248952236333938947755747788584597472594126318192766331897646995633763264794593667281279834423974249355724953229936143835266453766691162457677569163354861595759329424569125871776919485434789719642187999566533133151683869741794992681526168371575533717681659937186146633458495847297865929812619113665891749222832616997967917917264653526447529789387964663344951315566189731798625311666989384294648247129189831361316894722931485318919997881716737316667769718128918897465444117737393169138931721489936479769433161467369252113241143769646587794729355159261474486753696145813265298793618655882556715318698895313163323178555791251781538318739135246553297765771748782622594386699254354938495469337398436765325338754946784339242861694379791123987272759172986262331657426527795423587594682298311365196537397737975624971181811846345898417279867338615624684677292769519226193724474935293659458434365185775945382765284448474195532948515889426682189432268478821913853332173629727659855791582573847161166327288844728388325562645441446977785568849667489836999433456942611155939994633515993835161644895898391289642782272553968122491871699716669747854999285986225291259129675658333722641138649158163965922475297359412414167172877263555681199824664885291887964679824283381163437796214273878224196524732737969648258566753565864415777749536498213169624869355686143727759298118314266442465922415786441351159969275728853333474842475599414389217678343665813285423862792139959516349685165283625881959953936887411357754272443722895791983561291216882297431612681249148485393424992921742792768863775693133363652753717976142927285754946272446619771567161262961435728335468129186932637742838852313245782573471864935799871756887191567515731817119668545519977776622361744814414378113562469225777712865346676913723968293194562241336859316896177263172372638642765359279758455171367585547311566981787651586982917646198729665253231885833411591254753625572886198166557877827842327577124112711517162748429194225873574873144985681743585485815373429717992399767621959397776293425396886914861531516446112631963582969459836777828552152224398647633567549117888533738849269113675821564454133885256839745646892383338674976254658241114577957275417254551265521424435761566263793427762877438469712177223738998248814981614349319326146319118822692979131464375216719349249129179265268193529839591324247138145852367167318381331342564357159544659365986794726741885391895747293228716266446919987317385759578771541957589179968688316782638596539433162178164832543221373123665617814999896277432642768179245684363653532147869933198885717265581745987199776769967756236931488452859558425981767532143636753687762695436834819552666928473731496545977669949894958631376548677121617373356235539473419953811422472298413936488426655559729761896195836238676317863396377133221611183785542172747977584287497456364633176273357854692811449174791253459967382875225494347244614629844749467444956385718532882233116479415258643171632474551564765312242647399697758785129276541861174237866726481358751768212397484616472943479495369335935164782952678773911848364286689284553746793568858743568877544343786841429766549313568335977311578143184949583414658472968697634547645938877217472228313162824267721313191791438559378674755161832853161149273928745593857363336412617521527718572931216932254784844585546217954246166648762149423861314834528922537181847949989155266457797589631437412195983887414858527365138259889998576754484768528235747542431429266742179445186919483927261292997661767691298789616898613621611476442191119987846426176427587525167267276964737378975416154886282817414119472198775225729288617876427727655753521922593492161748479151795279529422661891996979796691671177929861926194184681561129175173764549641241638987933143841447793256119123186874467671854886566862463364662238674331425694249825951276532644491723743312636497882998531595933995178487649179867846779738111498716634487395269844412374174913882335673392718782922947354744912245691831199767959954777141431634984176975951635639897619642695183589176561524166955615558727125464362816857264759218654436137663988969554359624635481822424179467253196431393645983954195492327942232754872935433728126555667361563648915117659711511155692326373626415816651532572585945177794955486965521553581548132537297582129515156291439482285237956683785635239738771618726238833371658211624586353323193716588715871681642189595825934384941712388255318416355837238657841991128842452283727289811665358348349132357565635344223379783626441243457993565979389517485637359373528217453849868898445988523539671471215397363943876264125357324352361781516799967583874388919334559517567926912559826155946877211262796498988143125539924581292326486135823626837469361628628758386888369522113649666527478144971658473424514877843484111925221266993244585852625853263145655661241463619185346711926339774239344279549436851421521143919222245561393236812734774868158979183537657959638691977453168855852984758433275935921755161744218417771413629213614669164138448378845875146957296553457761494221194489984478187632876533572782672929917355152715882534761838996187978592886166644786251234913611396156244749394662276288687748767462974347276433539957795578345162257572188621863767436873795392396144252993889255888475645164283896211311598493981627271677995374884814952791988848555512389697184464758727795588433782791761468794158939618155878956236192237886282875724539996881412819923781398585857299198677616886887945875613288817696463123692378953448899217887646283574833949844976866866554226843181463557421726312878424644227515641896448399939926848191423173527586139858742542215915156242483231743517471434554145549153291494466617445467722215658554763692937587221656318528173726272341423172883746477218815176783816857154142316943654444842599689264969473593286331663956996864771166992152359973838223712387653559147351476362545255526634298543346161287613856271622375593346569166164725999516567684133356992997483754233972527275577711389477116381683889932638185645773699399837875153144117895368725985814785553957241649328744516994463741276379994958889743193683928272288725714198886759958316497214323194564864643297183813452262573872127593956165864944188283339616717566752357823116424222555395975611275399972372822333477816383743859379266383374486734413931395588595412839265594165595797727164993534527433972288737296967563863295646379556764546354839576861181533269915571834547839777453559492717697145136461153139755911948128877571973618623824789389373184851517694745696877356284191397673732471855294881596114413433199252489453863239289878198341539454571415681894621687497131172916353374731711971128748449355555169386648727624715477312136679186814578238889249686396519957964444779483279194942671111915692935392341456455749885896885344437756878923657112889458837351783367853634878688665681463988956272756118496243998547582789475181255765694117496331867146972479484869418828557169256849346573412797637518353959963556488126356434187836552846632886513414838461768531285259722999431661153978954896894429381479213268262469254423992433251277187393119235138471661893226234832542842654157894961849149652934277351316711499684767561535537835559588249278945491157188641323777635539337139669664362225146323974515448941896851276376781312417757382165254738835553221131271845563679184456338863173176173956592669656882413279476763369465195369124792742149985542766792212527328787859964752314369949148299821678364358624644169153956855736884528852613966373276461145527186437222481777494511156241681389922634661738457797712425384312293356713674499179749771398628847161721887337134987864893655527123285263884685884661948213544245453858147385872337222131364786229595487126413625446458384642263212559341881143566219937481585796849763752744891319383929968427991966321374763893821992997749338423945952436715975165254927749571763158281859247744359641213259135339147122146798123866887282183425328121223682483779457956154495825727748996234411335929425744235797361159663992924595446891113672398394259347538877319879889146265984389123876543273161947941556143462363648283411615597391445838274399653561781751199828852335142571425569538593492483266399782738769216157816946184381828776858624634138829514111539499267741693955357138188388229269175659728913338141838546367373271745616395627311382136652378596569929447998629656768314539479925726669358111965641471624651643913568483293279733769831196248338574313521738712877749748252174921351592665324411174948762869241365224469792231237622487564477384814151928131243994122767114743114517418221234413715872572944144475926726748278458835962156569896496868532349174865352556182971599275928232129494738873571667597414994716898738211887124279828469847128798461261258761176957794777477247983999814779686282952227855657345524594861828435431531215579392743183469539363814857878325144317525751593528898374969871375595346721769111999716112878895355768349315216284154644731528943419232153472981395658922963756996898194441538567922723898173672262951484347273865845125932288483488426858666732225627298325154382133616552135246516226947441669772132666869373724435928752718684787844419435697939329985255924482164495337886469481388794394522537966488166792639658426735177239825453267836888843674246743356246672796568156939176489943377881446515159965547443182885112779723363767753296739137116525782653878943618827489472282632199254431124485255884721838981189115357368795119688959932621739728233768536936884678551723784555368544376867556812667738886331666519836323157538684356144666732362244765959712569884587744416423546893397267313282638393633354517186215921641858899729981116556254764265118283861742621639274788155571871689865937189943859327123559536594478861668552746657358593456895132997962816968524248988222791213393987167653514827615336595515634933528383422793554986645975547839172718941121466754316794157729716786579681526192422181494966937685143999952552582689628124696245748837821975923271232924263887251934615612292518511782918287891784234693711841682751751667237314517966136211379434418463286796156732444155171924344171377846342824858253651641965461388962686767253977232284271517645431588155869956568567974134686129167972458333878535232535883584489977291933391153555616184332651557266268476561715265863294359395911525262818868374759968482411782733248327184821284189727947926177381123721182199596477152842359967168239248347286723427682725512216939843656464935176835996446456158131286822195513274673296732345237245736845385592868177749773275789352834262692776572246293329897713885211469447984297716937816586754275219143742151721323194641216533832745199214276217516859861412585767357167484994645229195925273548264969697187441762751242659893518894843542276241316331475354514383766929137731851473311745175314469159963545519647767739237757184988975118668512188851873536235523419819565315512287364416138569699571435854395513138468961816775723654938457897199935721782367728873375919788497389852929935696472787287155985612586577461729367425233838326776914561285266193633246438259626297552561186785858252683597469978524671578245729425583832667454286453419222684525973156311934453986326137385647123338857849264463174685424776377619483166973328525874314672217867685971677898659236466814824698367655622391955967512272564814739484746864858344894121265656827755128694979794272574598954534299619568855634842188437322674983844788553126499497339962118496669847783984523463276261469298655647315593744989297713639548394757576826189587496156318252182356983574983929557261682516614638327564861943798594563692162524236972357332511349695745859982315892115648778792651224599597638926117671438197353355714553315916616462485294928253514768998587157583731131422226566833631479184832194216147259795378531568466648847157651375144661324369195658433137792818323667698925713278191213871142863919767658928245944953141234319599365111792625118393615718148876813493373534935664823384986763353473799941324778159376664249554891169853874232936853419732777156242925312625626381531313589185697699211372633351284224561469738586587524676891918339666692573331969611867445435257113663728142126976952686128623333588759654656253847195596358579738593457713236329128567282828891639864645747478378135742834793755632984458186823636198261639794356344789577968329728645687656971594962719494326297951428173669718294353193513123727857644899769568884282342644724398142412286133891199232485747275978919226728997997819946411137413214914686374164643637267268899218419856484789153494121735614425364249777154859188589452912443859263249834329227864719888122397123426299529331916485264156284995237836687621519248753158566955467141688359281214968263118713248842891734553674968785985855169943133285649886272149537112517492514722275254761873716315546275435786813327684569839369813529842411989312968394276212992333227257155165259179487196184396527241846341666653582271787197759452535149115679827934892612475311353847757294175767957117244664698872536255543118793493916461628495548162515715574723922548599438873578628188536797188331971814771837788586338717415227324313561553211958571352991493124343689734945139976999198137328651818889273576553942949752373137218885892158583787871835962265964653232335184452137211796822217673884916414848851662631292312969246437977342136172234242453648452184781524526113326649875938764861238269629229442916873375141327439355215117142342838144557678212936545145749963944848272839741843476871444339423886594785658632858545468871721989548826381143228962497275247345278149676678781676795423946558966761527263141197657298482926812467328134338337183681428429999126857649972795493551693434322233717451358517946181249372693725985629654494187675798626675946424886839178466134582433999484125412975882627229677799178927328748945423474295951629527418939814696127365674168129171712594465723325942497794495492462521957328549933962631171511646786771582345237424686783633686154611769872384126475833295342946317372158386677214585784227311842558663491148658915474786516499644399647742496186624192543281934364327181219828489788931148231656977674775646384241133137848993589255623176614937929323896786135948599687357648438361549227719193842891515178791625669579249148322491432837616567124961873775586635667741591256847232118375824576842694544557132634845761143479863923466711423476858324327554548749975546566714288919431175437391277639276856264964897795326945953615522296712117486155476161564624166375735834563967494191145596793429882364711816545945847377956277155271439529163667149777451978663179123164961215828784429416361568479775151971542319641481996943889745251256391412255393382885163926331354863992127646754931436627251275662751952615279562685256961986443516581651157892151564949937661719368313317887182926329313959839845675795473171272783713988879854291671127324331498778957743627137184986626149178844739393653455164563924627524397679598754189595839121473124534289248194492349722624659851283592314114432555427568733717725964194394736861492157828188759235643172434929859953634533317221583888911292276179242675914515564741531659767254276344723273629984936989855471786419671877237125417996961497475915862948552362792581166196722212697672436552631878874473855165224872924568731717584811296612122498491846517587335616726375376426365338779537358799461887424955571983859793316276913191621926463451645694735433133221383484829165117676948472664776893131592416897554147974928396765977117156736571873459752671246743444958621166954389263329233897231535377372977295119431353633246377695222498127427349364516838346996426556357978612537877459273762393846561267827159737562477654874957693617488194156692639484751956725875613521816465537465741835396783144385356872435169533515134682985212747325356853795955458796985395568271715379538133577256833363797524574991854646883516189494664315642931915279767997515344789129473666657174148738488812279161997343897614917769517387494398388113392953443128167695334663581282411615838131826574917252491428448598171873844482871475515545389138936922296534519637177531957861643233442994354217894546539315369572716814338648328662125145652588669159572335157793914417871919765779516639143713993334911181967523474127839299488719199198193745982384966885723683582482291564152189475963444682849177286241546654581976218556648546245858892455794781391146699552966449229464933311229324874728815357379214597716828749227578359784311321679248821684694242866734165177923946728786135538624286682987689973645313814357199527165164811797141571762185895635341746126196791747812819388741365338841438917872552722658423548861753686476163217279434255418284258416944559769476317633163872387136621865831668299852257444563264725711174149958733847481836142314874881194177741924761743336566833119127414277278533616828464936246147888296822675925517253636249754422241623878361611334577171954386389441627443593424662368353771418343314946386517972998733999949763883287794254832922794984866732129327987391673874843331516289281113889419467643126337388986813813172122957521723446274862542722939129314166137362867253386368451351371666269895979674813527362287315472987866242299578721447555365692689465978277135996938684199658826642237945647926628575784648419973175767322823474211687142882678975341162143479791867551638695473816822925363232196742794663991271651853277489588252232576775772647711838665524328531578244512765436428264795926769816529979146468918714174565231911552448432177866737144389892782747971713829585158741969847926298985856136165678342438222913531219793316912468182325145235476587346676266392199322634146582231854422946564774695756151798991875317391855312661936649719498485995635518139375378732693631468847319859651477994666835177113887527582347373162437119517217595246873917534839162863823533262674152442195478374559739863167224538753961498125469331317423224676551636775576992734855596718175619773349775264347632162533348799665888755262685346452694727586342839694119166581135274645383816988837226932571582989243661741438211713415652519797612876841872682553792257497366117283767643792946115339978594194793967621999174784217184842242529815677675672939359857232446496467824571936219234118822864484929691147949651562863644629157449498492185149185362425876781523443281289792799325357834492342676874983762931842376957387421677264643828919184111694423163129735998279969867277136567663864826215122127983699392737592787158778281381178337346529168335841798526444451382995546453265758727468993246254353897431646192773518397521236459747361333933198348177718721255117834756948247872767338299214614476742334148734891633342241592839583515899672951993126239388469397447937884978967278782619354274827619377674459175843993828334614463381846272189563752923654194431658732259456391466558622922454428272496231841975421272273427748555694216189966597594621851515361819229726622361899361446487812982713675335442522457579918598787866223645278319454181972731518383715978585215259548636618758467747244972482996848692151815751324946333461559943891985976449362656277324358252431429817349365529937767183997231362151774691152145821528717529544657724274278382753694475127879224895392699526791951287778355367645174343185754838856423347763527934367565939492176627951536868451875531133953959511294247722567444976977363457317427839492647389777274989134765496978917162799656363762655129459845636442491355881146191592526491863486635741227231839878929549534763434888781592573551352295947424556824692642698934967166661482636328677721889773178774338367429941786558546493699366689514245948916641484822282217766616819413213766785976294313179528119141451625394681219538725677586481425476985253363214186543281727769295774298413624922664873844628537914323953315616763259434685536217637833153624288484316773125735488161375526844772913569871343771676682143727174265322388211578434983296566263679911939749786538837146593297545445437291169612484187636845589913445163169129156465117681137128263668963865769494815463466268983148835211576515975429765361168361243654619151547988854479464191213468728633686373158384321639549776648399557165468297518461414471833651514319646545284929969387279424474794657391618999886813521452878157512131181881878348689524682495146349347325291925863714173212725337251772281281767937344554625157861837946964939713336782144558223295899485777636969448532885585815384221688251847879623611948538146357415239213889832981185836641265986498318586368456454837599614283712542371815649275567315264663834976214283747654111639245582764152571888142796197958952419475871826995698758357952737968795371262842311166781485557332912428444627647743221248692325514545479731484957268382952173413866493275293697423231425421661956475782111369181314335777643726364822932957956165387855527788425796888983777273612475837695435895482271546254414552933671913583929147181795135479472628628976258262879838331767793864626512137743928891624689259434885336538112493272233671584336694237669479598714836173122454913426171927767536928426716851251472988179755397988728289853856894182888853282868641557432617396684761635753938782736468528337894261314787969748991545396219887212323599385268948892431142829539751818827332125894936939991953727887668391491871363864764648828587153872811887993178443786567315911297377365845153885154699329729739455261655158346742192923883755688185249655578141239332499664132931444488835538652664693459652843776215987431295349699834798872248758236969977391359242512398492276199575462191125939178297937244732688134234235727634444135748112259152463774245887221433996796922816852128532919621563853431913183666768591681532687963295395493558224163929173241936245664193457368565756764877868473848248472198844328874161746673856659486575359789556862835481665139177625259926862557639958924436324975479371955189731636427769481677125841835434297258781556385332933525518939349955822766384717811942593385218194476642279539218313451668189889126669786538458278413468365243154621478932766683323658374798993444471263238796136372198476366598726742955824326932931777483822793366461842263745746813441733792927444437543717189761914165234315958481934195792657657843465786181918891318678834587262497964473453142151828691848664713389726941254359441199974838198436296781795129953952859222931752261838898498384578663574656531646628517246164412277323778321384856696329915255361193369181299474943564455878294393528425424362655811234511429757988628269486551931933383325188777548445473936928992229441759536378113541723413293314247222174691591744615746156266679381486745794757117581185611157176915678146412213951958418523221811267961611721995989839661772752766363423374474763635581658723788424645872398764936474438291469299564959168935326854386295131949994288295977418983412911323417386594492799439327657738768898526176496565417438173746593381942637377823263895693866495524526779496178484663122297836377538195934632369625826945627335977785387749755526197681942764252829347991966427116763857923337319322112997648238794978761983612434635624487189968355121218468692944416633441336151663772498256241661134367389995959217456151774729833158786765168178713317375646618823681257653559321549267621272152391425169315226169186737754858988928414434736342248612486759458148978399673196329171217763796419296926973183713719629485655295214885473781851121182921585813412791237585461462569562598878118277278937562597644688637523323139757638274423176424176817137331284747564884181522838499291823731195751938427478661419319491654763227319242778525564585424478744155775678745586942381712247911315772238992449922259139234924934491523211355246459352363545837357398518533846571415529763155879518358291484931961491477673169999735544572865851889925663868758721164419696979857747394679444215211551418984879652471737662971382336365144521375512573139115243364889383635652182127439341744969357375536981979181823835719285129745187775762669649823492299782654252827284349293274393521489544848939748972971397637868997741125916869765863882644329198772883272758735291488632853852629798915281142552598351545729872841531848842987136852895356233416458433226313916681769284716945569493613133333771746654914596142981231524755113175649129359854141153295568969277739631655439733747956591387294856718764296268433937565583313587247923242758682974521168398545159842264338185272533539358993517571585918717224365617522329469116144534384995221771412533568468972324643931442518548782927853649869224416559799552319311975348214224555189958893914834931465264486839337222991291474756882318646228149751949857894379858977732233946811994878557974858645418522714494483768614391675437877628789128456631581819866399976746514415251713751731716336224787447778382452626688658379882159684461187223374832686413481586555789788599726918266797935984637915963712663263178747439827179768345524771986283146778661366242966416863762479673231186911524629259836291337274496484975926487392284693715523861418896286724444551829289532797846626234815248593574382333392975627141421834674722149272491687159752693675132493517413642691395269438684196245475125379537555962994652151654191593928761525111299554657713992151342128168659577412766535625729743844659494351881167699251623586869124943357345449918823875932597518892227851385374155432734974633312514288225542956479642929381511662869781234327954818119827867823818765878118894284174955631412681467935644514932328613175915163298881254694876117758165565961379156161439626216982786231627643458154176846567155133745797451694398695379824518821174543177135565323849622952842848283488192556177251112217382565483621421574961786896916634761297458479426713889357957519876885528456488968136161755595473851312246764468272867843382829195135248794149856932716924114914416839599983877469538221429721159522571369546272934835777737742794831855899426529983469142715973354349829759319398534337497883117431291166996924656987627395594336355451949431885484156775124446979495588439418936431897498633328268616448378161693672311272484318977611437234183449469486525935732482534247546778625553214687159387338742485952822376676844548356188962199585666792349832275919598393582439875444577449655135975714942273161694941673437939526996389496692651144981233935876575993932589645647836858231617254652854992955318982575278349954319494772766386274222738552346766585852938656253575637473416971539913195859564891254872912598649431639124959438443839828168722654796617993725569641532427188353513163742124559423365595293927268463647747983925251589199391816742996668367648162111999827818462651116842586381481479362942777832823415553962198125141244321982164394648933133744348452762759965384757449743915348173148214298636981634517687211917121831248192688642181659359439141133147946994857845918743676579573886469958333917318281448995943219756649463654484191235823426626581143179333662961973364594146694586883716161147234359797291649998686846451464166591459978132132878452177122436975991896619711787633821422453159548527267147115866938869915319252913628312922497191876775286191289451261352582389276843462851868793728844193112927691735791776555725619197417598248329889857412883353253783432356166144939659737962366444576711216891283157911796712355713362382852869164764723384418888994122397363268534894123554332931332549176282934312724968371473495549545953156475646942769795935478321826229665229712877746238776497568179834446415592265878545174721527419854384834949526369777147189721694922394597438964831434231293152443672922664359632664886995199234489662726141992248527116525428766622783386374577338828468911767228386514931478191882627527573294922663964992891877139779427636926273468857846823515473494167648356472347839411651287436632385119646671363213267275898451588979844591535834949656235871917815787946987451845699212797788468837529116852925485294364142866658391211885967415715242444521184813822899476915376779723255163543713892728329745313384698193256317687768579453874192441241455185744498355278466765888983937435898237943459395862358147339961451263856182191676699594215191245151335833132998557586797397399814826219393591255983562282711672943563481621644932378575645612795941178229174476693341794263322815813624621858417731691925357437917268528613343115265255669412292798549498633823438743319249348528262299852233355238458362295946662861754867283594439255364857322587462847555614146851486751482521356449983343646121257722759811726369246471634244249921175855827442255783755167462363358843325949154622885281927252376159471873768129297725617312438133979856222924833584944663616499785761372562844182475741199649416983811956128436564136135189939617896881482234879262764361164914683261198221697513579896991291548854853674633363519498988916951735211467738954295244932722416378788715487282691914397577598125893654182718857947477113862563142396515674468163899591676732135255894361696592771629677259242766145461429968235286243757672737321756798684397824428692248421932116564313642233654322546367351459916437671782847277421146761796786227875843927644474468944913572193879363555218555871664965222231397333577987722118255551951163293725152759521622437881875971289451856829861922954532618196213948134526582463557819151959569753655985433669715494399384129994258656298445316645164971383272697551169993423877283571698825184628624513844221748985145826213674446686878279343141634915425772295763348266189383345635176544652927342146644573796258645388643844557661325661939553317845597761215761881246239273594176425281292677645768381287436733463882891856519975793712443925242428497483922898467637761952465596445172263453289842698683738267791297313647865749898756929726485414134398173547436289872643272611924452148492124642618772977138238553666495597859921776773576387133387926465141932899475723241942161852497882884164991571783676872857886664752148438374432688265449138574858163794521753819626168151818282997165517571652613117922882691888494944671746786196776865124992849233581563242741298884384673756668926863275338357135353729975531212897913536361953588758735277388467257599934929367131813329957883598238931421246849819231235813142844646668682354245148259539743926479935783997321714519462345535253954533612443413754689713265671875317477621741926374255461827813334172722796887414738364346926348644716975563293575491824415939883263751197316552991973314896775979254343873428617794824293759247161494681922772441723141395219816745293184251484456548677187957631131338653679914558295893597249342264918264254588397786934758762887287893318756476254746221986164772461681545182685969571468964431566535568976134618565591486737863414751547138489334774613274851181564517211948761228578685961968914454163156822834771438925912791926322526297289546587479759728811432673293711654292827883764544586534732912856265356135291543871423795885169575111693112955333473542929415353852812112216649766118219239554838918998228871746255166977823285185885786463437151656133814123539918466112354948182694964376517517353754877271979137423848489139744129497123118911653835754666641942971572672563627899365629274277364419576623874662588941957265881221266728996251498282277984462573488159848464483291327995241378615329293138466666696295718735586927836138864429968587967739267858431143729161947796471953878653595589851755749417955941136882139677441525989821514998919688689556291332729692541848639676445389898811972832975958811668382619697467465646733228989144853923882528254617379489388181576768946187712172788636554363498955858347927124382944698924253148423246838548857951421311625819649863536289954759789718769359114188432948744299967837793627526925756839793921817599258421971653116698557648728466472313218273464823667421292948665785985792936417563395315597353621119589682322167386715145879131242199956967164882363866343245257355259845542819945121635858363888492375829891874375347822637825645761342129197425758538671362715181294316314936491142899924185593613932542934474476655545844382542734888861317534197531925443486659938723744496795547547962219865747519873121689133776562571556839571447648697588764391447472963819843597465914879298232769955235118467993493769679381556441853353188877196371328156291734618833249926525152283887496457727519722794346852868245875411271821792961485958944757334664581663642747775251143497221475723778142115771195187436137174645823616816272282689421934639173553724293719928976817799242158383655864224115883452131945938866221696918327895931134936529294816755454165754346338639261189559924457744227441963716622629664555889554955688773943514675531765343286471839697999149596957923546654391474343832845774369961393768187135448729812469795671599865574275518379259485254612551536973389641468483211726165129262758177931967794114184571182197362167751846425716123571478577393488163136777247848974921777486625431633219824587485777843672233656518828898257875352835271383538177858638432119534516922941293999665536268468321662154357367555412854469296127273387612437973513677914833444159477137279956216454144436661874811514239125744289684926563449839879193195467885632924669714685662471769114782244434681651918455591557457734848271638683672417856891526398672378332189346575169648781429166394136134947585189153922943858467669372676224722516796981165892666684739351612763331839834324389937391235276252464546428859277969789691118532668992534397394991868728838689744533776914733122197869642399372625973473735946146823776795522772269416678163765346493962424571687636282197254677216492633869828571189387992459969598741826898654752661269483378337181163643496861126943771117829538525778818484576168335235916957619266946774131636458971461945714611294852253215749535559654125565484768964174646488933987398734162448224531784323226494122985392435247588647179279719129398726768272719553259165946747766537183899969925139936529183759391199378275155667649181988353182271997724129674328236335949257254354915326274595327849424348963377767288796945466158971294988226882591469963488893789799197828496556472367515385552522329991739373921947686125559691722712775512784786445955491359321582649198267544168562199115146183237136842475881646635635138536848531115253631683256619112865348281392716959117422862863947472289228488173863585671756841677685616444241327666923988662629377847461774795441942248995146974647373349718243236349128632228573218442312115237851753415526464574317536637949733688928479996342663216858553324672463299189613868177652396536874928327235285361967622741382869161983615113538534285348366452457435685285438279687111837562715448897415948756624314485232281724693234727573943353692294222283542754224862164489657757178286431415827383388726679435132849462413873411639599156989482564499549627966928857753451298245584437387883574359114348357161418741469256493726627941765561511285229925654736486181156692632648159142516878327825829477531684588373422999819599971817659516855672813912772622698588243283858215485674651713863529443549825635154511866946122372294357338682287546623116627644854278891768876529181392842616871187967833619242148176251319897714489162232135249956651671559128567452574677171174529676621532487922168524122128569416968921257748954785296397143864561252266939724192699228912297533657763345227526665676476485237382157371882543198556983621133761855572551793993847445616697874857395551429718983736286746533718547873924884672944643217649829652349421798165348783814568448294426458427323746515894149763683823467399921375835393795672939112357976867784265695854422594494528295771358664123517948187436776586953977843354593296195726383842426724588712142469957429948321453124553222326543437168152873827118464574716349472177872959229831665893362885712828585689592564628198324411962152899357395451892791523764849844922857577111189258381666839713195388845536535458267333814785975412286637371614431253333699287627835397914974326321543712639371954462253549861592636895957983987334538772658516659139624392599321563321576225889782644964113934978219256777255122376661962154451262185641355766883447433447871786884347363738316441272325182169747161886158878412428549148143917613682286153794924768662376665325674691285464756122877813568989437786794239594995172762997785636394863276225615112278368936398927314631241682182318934727346126856118922179277397189559173575249748548535443161769514419666161134787629264469535475725781397489757428334669412947319876794432396926748294133127847614383635754245818717199319984644963225678992482242841771777132427638175865992116179257223925257728526992371579977892513783298969719298326473351149288357676453323332964599825719626552218854985298394644515186857592613488775294922475726224788537687726683991392438899511868621268849488677616748527467444294311183932788447121863598221648958967159237971671656795517569354249844757443599564142483938864376359635368517444736874166953269884746262912755117684999673799767141656746829311968466324693558241296878359379276911523871135748858345269976993573634712894377143866461358857185347627796123825111646661545243566328986587758268212776811224469189867415271976786953624545781688565215612618286761912354732789625134595555352727728843315473234747185539954136897571799237459713329853757158627275244155789651871866931635577394796992569424492376968929467276435135271112431567153744779396829322848738862817411775143972553585658531396385835982586773738976541282192638219797846413674462924922131393913962756286443789869252354373574761935543167445311335451877124489482924231865375398732719521748786877389355772391963233174157816392119835292429596828115498179617797671188139168531439769567526285941859751657519443417363895324818872647782432364484119488921381168222891933157496716645536465461273252244448176736389733477722738954167391217871399372518179342136432161162748778596636533356568191296392466332181643176311846645653273319823929973281719784347712928259121212299416477444668338529333145155363214739463728651482314626922447767929965237191929151511293336892693488992689771585635634845435583821629667525674125578753395753124274131772247449976652871345546943345313425167145619785819352836259679712217912472249731654837442489369471272317421382346719452671697444451469292238353823766824974518942987896998823115379852347698482579358847629829347323446115833888894777438329343964188687161359238585328159972267465224938953864512924727614718555966357242317768859231982352296592126839959625319222311435534184395877762623153974295126578977386764438571875171579882438324933698931888865362329286328949443793585463248664685593224927751119257693896652929567779151835836741491679234235161748733725298751889747658161677741413564172757826788454249296959888134441625296764598813732416294997331471799466625595778798418696428455424349811359725594425284626541172596476392273622163661931475471511148767884145351516598535873913127773461765289228677419995196487155281356764676442172162569298814331246822268792718914951961649851975566672441511391685679543528625271737771829848797354217459219726788465336329188713123758668539297932455976874755965239886748658349475872458724218721518172936641577964198979289852912798881544482187476364372356456515483426765962599234541766399751278411186461511323766822442395313953949676626756823494636655266461663611262735417556898464971516463734739792322175745581887828464726998867988184648297274865791163652427925823277186794189549555718831431813229837485784638472842634666756968751499957329966141293668233819683721596228124627536773594775643814863574366626279846985363716996372537954515122896484919271778386349933473774954592882799756685218991337614988247315483348796216816927567955678388726149818438917598245839496224976479451182871529443725754255652289914911998141973244718124577685585776865668655978348149586145682247734289944421244947985698945169823231124455478663459798583187178372373616153818133112859157863781717167752932733933917823518876855541316388461743934714964742326869889428243216399661956411542128996836741941679535539261214395184676239324371233665571581911329675398211447448695252299279211977596317249883543157167974985972629249863731984378984571968456527422396669557865753111195731471113142687632327782982871453479479782849593625373479547572719546514678627977395631574322481334874231883479288641687118146269546857845172981854893593497913946429214719818882261511659448533165175345326994129259224948891285583126547136336252253556335344782973526138761375489644367671948226477889744662299252577334237939676353226572682597644457878562418933343799948186759995662427558342555734638437992891456587232145191663925646335423458185718892411365655919632273417216675355475312865355227225564264621255672112287613214935369686948952429521737488699881497355848633764616678316165853872617191854939489846667262756844195694668961898781436953216899188647993789758535558132353821838672369437392144587291425696677535651593223416654463593953529362726764985324788224463758998923174649947358736557983257946636934387271996779323912226891453155374999979645466767867456472676284483489333779444921654281457165314541354631564755719937162757377621646998944318678579364449166717862451244454221967794237132612387423435661172157737258852923241871193568555669432946811912224191299435288644577761242331342751659593819753119765788711825888854793882857166832499268331719584962149224819493522447351322269545749659139169211444267288294147511466367352173116411129938332971917533257454554985186868681877867411615349683179587163731796572312362686553741777484656535273393429587132395363199465117534654885733435565871989926316958323681153395739127124995436921841999815133595496916496838339313383173684723363952581163885724943159396668993278227222511861255568387844633939851462612588613147966658912214178124364312161375951416396316614424739159256263667697226747318648911816821337582241852436256819699671242264922136122364968548397364377494875977588613989723552278415153431717565325513474629837567972393374929341792138489362918714733169441374352345172997188858221425459476791823329528226991611743377294763644966816627216276249466175531795282772333944659164118615968127536693825118453359659519916617459129381791525841796746726286839721749617768242221675246755237218262133798591722778183757269869675887946786757924833197712688456924727386861553834934694842685277548367843987159552819284342858692426999387982846916934357442282423913841529792293775219743951982372565416366585662272145331338455681121647385641857941573594337786776741467821895589536674996764232815849521599147881447737393725894377228277161848872544274455825341953868575658326579887321793126121496242796527174952763742943555573286445987683187144426599854219418142539287486199331969854153184887139938765274117193976382589867468352118535825424621337376352897712821753145676848861688213391962933118391757431116265875194288372681321385137147643139538746574632653672974677331643585368795257312569656923656698737252132637267314279769924563336151153295822552767623514859272766672881362316571232582766773839485464599639177289337413169342281737966839746454367117313227344496193675447172418118638931563982579746181878928718569353317586733696394381262932777613822579132381819247343335593252434571463581552475987221758863195451476724768895284995969745945478426178343222641931426399893331162668483694867859772311289591517664582752126799677797815644794559898962954534589258738193572826895571776227455369132841187268746394361872516942944126135741514144559536687369354755457831771283428371838555489743277849826734155883765699946711137791672344648226392742645315316175143256519411849913167587927514117322862793775666972629211851261882968136314779366516436422436324519213733219135666218839872493843853934344246693113986762811174368552875277827237315781961977283127113531212814544812797773591683393534544624957347416174322379698741285547832555286782114341289964972525196351778246446759677664861992492926172886529175942787163152291382978166797694197255852967175193281986645315694318784778475974192289743374722142919276124591919118972399561764944861462621619691497625451436719275222472342382239971516548128926437655788816129126156691481173625471748438121821415964993999262688652484295276326713181379284342986124444851472142249367276598696218642836772966189115712362121739574555132227815615275391511474421675277298978438856376426543784741257866653485368895425969337691625391945173699577929516538277148567551967226164855795247944757513247243854559934483896581855594718332616961743269459997962421772513654238112328253142638768835974339633343554268462524399172568892745977212528265316735632777656729215825177884224786248315169532533915511388699967579311716768792192442568327113751771751315985183226372184793168135191111618116438955252422727529838838797698329124538769831562454236914673585395648514377324467761459726965393765596823445779556471443938458634272654998365219746879173916769176241521345755539116114293869766378421444919451361861281476443861792736116841966943951997521796676848439823998483677655316286842325257938218156223887498915589711114817727412933219949749378238249529271922113324318271298821624675483464574796126834854634696942479626953331833416889142491984222972566787761991469473512498719717853521296385331157397337296166751982911527131945754486995692166154244195888881256585173533639223437736214972196644142494665466618471971377477131435564719345894631528534362163195449819733192464514367784789978421492364564618848374932399196938157272528767542468651871788372165782823698342378233221188915912579651899624751554765772662152288142922973357393668145299384493296398585721449616419928847276475114852413446396845826698315853354547778922442934416965886451676829697377522614144539997532589161129657487557949382272824172888979724563196799617725897384361257939364564133883664153771917112714639166469747894298565564264333785681336281879289934379785127476844766473361268161497355766584967342879294211816844479945584789313589498898778452797671229586426764614473259974143899821769391966315542856643147326317483292287718262436191395927547264384492262878921529648139673289617846962138831782635437384592553127622714686654626257875234368569129281557113563978754265582336148156991719946343996412851962475289779749643256545276349336474981868632594828463979493426153442526379327798644821769119715848188595437115859239116915966459157997438138613526435926512947751441973875645876519191541725399433329697961547187987939182511443674523218263861558251158218243398649959865141285889894693527655419414478882789367245515755519849889127984162987692141525955949727637315722899548752793388773544215836486555499264433751417661971553991546975881223477428985973117216249646124236554385172569661379894856467788324541147374248166155329855622444796889527831726331752636297331511289139811783425389443152764724732544414583723249284387454735188242572829992316224542277648146959987178177187697931158611414187976673489987747439535294234631438985223221875527579888192464586384815125113554181168878813362878268668168313711695582262587654479225129859929879427533681345663583875858749736767411578692157395583957731783358989945783888527864159632681715593496865233983678963925183163523751236649837183989262669865115269282745637334621537683469968375393376838461722865513858645463771118771515576752113477239666843943611649287752852298711756239523772746745329514512372456959811278442895326166516743877463352358182271593218848322688324547662469565625734598328486297541296442497957339778491337847699619154372867688544383215898447498313639715363116434744222955785615857737252353994367678863341881366937542767957383849725858837953545398574269877961733317299795137556213627485271253463172941333178687848576983996233421613526833681463219717896517848788949522789715915875664294887656441482558428818495849359647391825753898738428256741664527245327782172734576391864829369873494173269323769288363544459446675971387218374292917362696531286673781491137446546362321963871437686625627352814338559535722754412973535259228551484437898963294481643947869713642974763558777196259444928879143249595741516315819633134792615817866329268788368232524994153433218639556334159962113412695847257911954585889785985124374768583284267616294162558959476742681797123773372677721516442925263242743129346483153214637739255458632832665294518717161743667193856939294713953823528582836545829312331691884165396154237681152983115154141447865461773439445433733238532665251787663886738262434736578634938196652929591317449613359112594393856948987118742613837726865285371964752441215364445297784392828714179113223548882482168497569328725526738871769888983822566488249782354132216185773944189717532499534937946645911315613574336365217519293865255375725972394829341981799174498926478975294575598596564462819782338124533879219957594838928987119811143419321225855237938826525495418739662663946459142813454983332295151295498133836917252538861979475494823716988579293255121216143562853123512459368582973893596833997218559584519247335523861454744443287145485499122573759883245579798482928457359516861757961517475224295141766715372246843983728239658152227787215429193299452374238133244812621162962189125241563356469749912917183291282696731155591465454534242451467626188184632677111554766892747589196894366423924157434993177726625314639369551855676966263845497717279184948124571267774167586266774672175877213239996291848444121477573859569783662279253997388425961346281268324431345533262884389414923928751172195548854142369299581773557444543196771975181119957114257881135334981176485595489979494172275616995993541188516313342648845216895384438435375796129282956475954472714556963542944951146673167484555888484527711195297755869697942421157518288277786451836686379411426265872699457982164732249289229635113362296785981343466275177139549765875553131155389996594116959825312866169153581471921339814796236492996792149187178991982349863582572249444342949838825859834273229333356689672555337721613119321244569926883148651321381571493516852643231443287219237284234375948193395348557367279887319636939729948462227742459437157911582553347184394868913835549239278323637245554921629883336347354185337951594786746625858372197495827613652129573234518335424153534384447638585798248161593998252569714467324793516393452641345482451697417786135665989153176614648617237896419865443247445895348918622491939825349663396685197897759788781663176142259718127896561338195251368962176147748427863995694219345121237821485337922292651971884486497278317739321538594589577716346853773446376329268416453132755231497631256867764414948252315738767439444929786136429333454836692334168458326829459273516788347551865699522193147854294772515349235794746755947632932217467771794163425991484247439459174752711116348837865178791645532896966966581353938545394356898888574159697633824668196322992889625929889642814369957689887855816387276228398625529268255839319837545956876627168985898272181963625129686158754643122848937933285685634247912366657649533224432799252564355571136799632833375445358515929466468136888971218741175915496342877669358136255818825326745478554211224916522992863384857374128438449639371369446763948765167819633595522656599165468224721419363513964118766652287999362392226567652852737383581271195124135771335521782419547554463964366733755396253383247973327523848511775285711938241738149681864714679288657541354435138186173433698616461125131462765663369483652512147247741676753218324363427667771485148295779978799126467123878727231939595382152963598299467247859842782399495691759668594217882865133152192542525472211521118294786892181224265712812854855663931619716728235514785869244691983943823574387747296672485854732925285533952624433989137592864955573915299262684872773423597882239429948863912298465696844623845676458244524543378737221562834281726649971434652324935981953461432995773815368489772368363598632821398577983722799736651991863944963619498761739711265345221413888148887543525474489892323252539224912766816333672551682816947969469524114636893938996975479255199942332684263556434821466382781774896954469514146428454181259226595199425375677219845233256967517915856372738537511834948634474964448965147889521612995766184479813698181768721771969445143479369428327383244221397131634852766617437956269572689392354638694345976761286232289219333685454878255821838442659569383631165441166547621444497333369523529953967611351275424256362324564358543293227335776979616837172596349559871494859457427999697857461425382331616551272861821595131162589712763316324499572521933938187958224334955294141273164456253948648971356865267375471815429713457254378744269876324394735685821524842616932729441759131688969121484445927197932915817765661451589832334123816895465142596542689562784985366735271764724467435371539837363835442428878215857383326399935227752782659471754571713443425847691678834851735273353586828312851827688164137544668917688417472463222127429163439229877696443578781882522426669579356926551797575553594736481237163753497366113457796168596618314479697334923267847434283742652199858681862277959583991174239437213961946154737786965162474396927293385881253929495892939358859578786363287468398887969795588435293629847573312189776654193834353695577235355553429983483566899259696497733187429217555791289294144564346554276186631189218216619866191745151649311398328939579545154936421475494424235937873827323624355383632153466768544725446716121549811916341726559829353823524578558548952122666556571763914459294947641843998443989155255688487772344427616549737742266515443119234665225767641313427157491611523869482758492421561366995955916382218373913135181217715391799228338266555758156266836355315326159864418863668173655279799222725692141827164771146563432344315865967148744121125669891124434819214998752163254529498599723113924412177272497748777516477577868198395913152814671322858696382271999481694775133264348196634842821868727283786892225824576859931815686493751339332823261755638527185613978191934195311375737488286636823613694993423441912549457929591751821329551793774937963543582566647667513481747949625778925272735581329467431125977554245752724252284119752863361895218783854269366667542527833712223989264479396852586636328478691788784922941534763325836673432599467769854895362573166523865915841515471769285323528269445935328367895869677298459266198572892528216672548257183999598335514766485943186891618897746478828274821314412882941729483929619537898918258346428399228429389331919691515237759688611442268281271149178591366325175998124923939932939778715426733223934425617518782759438861433655857178549299968223166941174348712429364273177879184667665187848189915312518286193358115522286984874315445253752985886237335823319539864488643741327939562954274136113341295467398971826911327638328552451886515312382873914575386131375354894324442638818254573276193617895326669712582486842158568618397728374345483532195399134895615386113437866918117525538897368775385627293784593245686466182858276727446724973276733367866949866428253735111238691916693285159792617878269383941842581698294263223899715733827999948917827133454633593155245925929719481184327769828114536118498268196215536293283993335936666481391811353772879267481873438866995875999266452368195962295171668956444351775899688185314691656441183497464754713621941391355898886125852237587748732751775154922534998211859523394469436849231383671492466318437863795369272198356394439941873568737253169169884423764757634979643357642557435767833298869346211444987233864429113232896821431553851653748261169372451132974928293248422227123141265267355756564768698719511713729246869334879245995764595565837839326248624537926371631176558221142665325577358875847944588381384349762228843621113695844752679993968178952214294453945291357146443249944244553997181691625438162265967372636826524674534977862868364982154734476723175461246322157446551732168539837272375816199844477449555417371996124593193975212845881329947935537886285371781875453474367959513181688115283369694831357942891298267857374691559942967552739738554238866314369243437972134917842264939461886691833629722122896812214141127686578839792893172652763167978726273144913183371434691886482254771974464752979922379248886991267364699174262152278193871459475192551456762766973782959984831449584528174259846114398287571513451882688993966576995794441499534613751559846382971549774712664114379334116645622755632891156457775687896459821976438517612246813362831574454431173713563676156461554499744177274444689846452887923262245642448782131113747735516633755299333191293294457129569122496915727936946345571272138938167547129612394828465382483175962725416375415886613949177383879842372819448827478561468186353236253332256947664419444243767988594735851544199539473887953641581753347379688522467735321575533597621457215166292865486434875124886819531936656741178721997419787368311293858331337197277926784499218137413125247855663243721258969872692814338913458573843757643629778859361951285942225498152392268953868854872465577825629758964858134928315441887558929894699975777168978311387143825894253141517212998628747549731219625728869489568331114648511521572954729657593425335788538689547731193957696827358726468327379832839124663345869632277198715687671572848152637581696395165524361427692395547296145775271632947988736756291918523179585547631428289745464354284392149694357388196169516829238656761728153671479976925497319165731693496663699486977326145942313363592157396245721352855448568794943147777371652776852395131819393597273899764831516535937927937267884153128491431883375976668375853167468297239218435822578395779986621431242253884375422241617595146287181295473791242455495144558155764772299568482526155469793418863248448385122273678113973322998211135863355553728439726836125844947423647283454286156639241515918639893629744163668222124275564227996357231636882693694991446857557272883946523672831321363848693318485779339586779892827211869989737395136184751539611321396184166776188675149983943964973581976543151727311319493788175323319853147227947157896274862382512495699411114799579176562589649778247278287556493391836975848716531337954798348576659237621589132154658128942697343266927865867962435236921179894118511286652256388891482498278579438346891925543312349478295942764587166156599639753789518192167416113697356118182351291999115856455615239639537752762759651244679228732694546299365439495418764675548696949558574126955475251618142891483347174475168516121971784853891224832368775625116113189464633644126142997359758468556482844117598992281916781616451998173482122821938918476436962959756984295366269159896338824919883572799316931726615336918498285433512432925187556968569399126659898931123521165652498227137783672464475726722176314936739397543679925575146253763265727756399657548985588193378685166721451315958847376975212159455936161981475358975463982986922413118996124458234769856944645665965753355688412768652346698165651916339788627684448562931827271272685664415172416262454436943158227672893319551975199422925111821677767188922928336368559951832898563251943124855582425219283371936341234336621278399821738955147661663996468475294265238932525171237427162798227534147838971477489922627796618351754436213341978979931689258974948271891215213998992959763551844661659769271468347332297543516772836792718644568281499143384851132511661524879687616519737922914263228259537584234875748339439746956762724362684152525347289143537293375791868263315739456359512222558816992717937599334958898919154745424483286835768153732633526891231569877451926711984145387866888935812546536297295498927513281973353496859459167617498157356343566795379225112761391194828442587256673684984159169168449274432136684832139523439336961877119212861233345286428331726814524443428422645163693526598168498642972814868463522864492298938791887167444179429515844944737496474169713111942881374757939668295592371671555733759914696662461819936193157529874675145699636615518217422163149597892341393853414224855161364394182116135319631842227633649978366476978498351333445196341237953589176915649762995494138131735164961651123978167517819622684189376331422618414254735676734122958579511661392795168525997398483239279334453413918641148767596728625546871191281145948814654124876329996996824826321281556957334865844423113394934933986461283478852293383612994386575129228455249358586846945364811321223958472396244728491926296227349535261399813284923815424136749681197926817124515695136439914851859552122733263731244886776941125969172234441694716184659244336622528631865824174772136149451913154816982373681957259752686777972463841976334338843727966543331465549446168581364534311865176112665598914752877129541626133734878428228582667479222274775147524246156715861697517635911524155568164634111178729472873814227654569922323321182928295375586352597588619932839821739156694228377115775767748539593516965376193794269626399242181231715242842119326287796698817729791314587578519137886356226987967997335172832733492936557155832439152548729882232315869564947168973127778757968188564519813418395596173947533332288527497647565914421614455778885546275948674164415474799266945577995587334639179595975881474812512158662135932862347725653133184187944156547614748499864166464672366679223973236965842246883349465832844939343848323437924238163555728929944227958182862374978333784576451763546354339456744666834271815881925549762795369725388614695263254697573542167939558218676182296645382645742444388118875463581145663716271224533333218635773875321582288299553775985847214481912969177887731997585858678896886982888666348336175669416295773461557314827651366622553951526762716436727473498959194398341825975517178816935829738167872852348799586476879341224928796779894662521146622546666948726393372647788782343597952646327946163325184752976125811964595288685816494669856368838725963471348737366722696222985756252488413274899551699321419775378426356462842686745666796663189731345889164121685241729375664435569848753154223627797524179312757631495798128371939681986816971643672942833661653522518187785748985988162327272523563362928582269768563584311352597723714653679644381548969884133614875339597342779633518496689948336848877512578431671418177961783466244785831663639679566252329545159437819866128985831454566411814746426481883771253187533163942426856584673748854153715911295445829467724987862266436926836458831866537925691615348829491835727783345927476435848629548522982761184675312743326987831772879145143498718872193692383241437439834162842728928377394618651283256462545616597223842282956963368814158419158678852971164659976756241982776433318494499864751235738726784335655385725699964976449319978219764283655914899386931751747458323722986377666584166242195839659922119636492859366969168551496487587559979163198684581334264792449974971887976743271293529787922818296263851433659758999867557638446852137161335299998875529281814599711417439749638415756673764113873912645528471292567224578779157347599852687696742462799676671295744728786445928954223169616625197458236869351154465661522184492237948525438433768324365454792894587437859692867578894438796875223854639688654492289523382968481676138975841271278239357444382447941736319316333936861694932175868731459371893296672631923139515387222238328436992154955357297514234457368911599785989594224864286521246936174933339379689966374826939521928319543569327323848239623555646476431565497928392114165329774311833878416118826927424845812132224391131731512214745118588681792121132294234334596997755593663764866975377791959639394743918275541237564334237281119364564471824837663185386994994929474791762154791197426125424614549899966171451449181682134384736625612217153186984932143361634395755854658766344647749175237547811295651525149492965852374117688616161912594433428994139339187847444433572914245834237158966639473615853943346728231726512274111361846138263724535597258264654671744246151323575135739454818264238542156277434825388123492317719454558254985367885696735955615549795511818424192651333716166611489831819552851116937388885434472454434377462552954771558882338463795123767893998265321119232966336737993773162878499398122217839393982258454531369289999199673591798824558991927934823822879929188868223111192784165346522413312987798998997266563986547677987176745424312917463642284851558345718259571651396551669944987721282916943898927462417391799461579658242429219846886615674698644599314445355329797367824183847386216539953475245861532849223841541184977293627993855949861244187285472182432121396898674677975683228316459551669147894352848496617538163916853866546959944784433176782861556732375761765132364652238225369922949425582874899344356177512384587428865932221145579166716943371113797271482395742658338722149138316824943161635791512373487289199671964169113671521648985693581348334629531677638783571138367491223575517575246125372264199638741897347974388998425532839882655634367955373162892255337215361734148732159365435558972682117289484245441266697153949197298896733146561586945749933831641329892186642689173546448621764686564763235373189344877647794162518965276693811833111863632837177863271839999982382368511683399165282254253949268374924973211197425631945248245862253649859859699153136648452847953216181965824727931474319483267387976872352623415352772619716543229796731892132566623783654196318277741729831176627894149447167774547419392487849537932856641328662492221248932885676752316337182111223247929296553227237769457557679972574483136447169835759415261158296533635358963955429351776879788341593928714197548564449127986718757138819228952898142143731311185888668578474544357451624754751339995743668923347972934398663685574956113994227814916335981358796999699888299869259782271396255644593571288165979947164973588943382548547353859734438836174857176228963687762734166747444639426948734983659722227791524786628212973461636518519267219587248858955382444983733559369127821616419836961358511755771682364324753746422456297261628686712933317662194337745441413269729812232877987299863397436752623594796873551379256485938682743991359836182118114551143891954253267151748848649894997265351775971684658533375265543268784749237386751583719225569885653926929756211258428331776664127317999764474388228842818465665385164849265594296179259196542979366748554192311927733742486572417962626915146136899174111648788565535126629122792688889944611447899399852753811169848622982926685524588553643738613364452653222652919744997269128255591645956911111974364989871796244217693284283279596893771849353664322631848255294673841823748184425677651465874331524495777576817475139965532754795134411167747473865761394478857241581596159796982558578724588113151198614573169225952633172872176185735282478498874946243221317925498895933761547941644865796487816584187244396179134499978616376734232845164751663992787647155627939113618983948227395148743214897616877765947669387882655865255816592257642317136814968445859449988193757977679168444278663595474283467144712516449757513661298596742446795845488453184359467216771824393777225948256561496116774754162449159443357914943443919374779814718652867556931264464391657627997642837572265272417735799452139794785432548954194757236151254223499823176771278644355851876177425397594161176839364848725332953482131436443126942415286618794932934966599891394325732382261443545842581451479619182219316441694277325449376237134244274618667174684128944657351665981452216793151462255599234381668793793372467592616256177484551319579795942681749455851599943964819789373339213237623661554849239197125347157471222377433716528537238552367993914932665936478321823777792581771263439822357178161327996134191116349219345142736858547159459459173993916418572267891595548474381568759388236431129179523459677633487325938561652659511745793454683414896552697853692755224458717836215861819584652817329654514297717382273211465645366231572881451179385515641195521144171147183299918567921929562665861765574682673428119211256391676742388556713844743663767286342916234979549633196351517335758848441736671432631255316928484266991973629663725739259841568885574551712677837311235298145932377613674749433243264673487869996756124387339554668136363149938594185523346281456358874187979729138579882499444968656153758621522367156376219596451866129972923948743461981839565549142138119313176312399382227671675767567497694324432461572338294651297935593724257382348452271526545127577747253771983727833975428829676249954239218488179457788569425949833144145783589524193848779272154357661128477228627899567484588814568561317928771459395933379269415352372973749874692294421435365789897994167935393413744875391867647436632435743183256433852827581223785716281478693335529791349351537918515653311644185954987823965654495968179233531115413194379744174458265177339239759959386258555889595192824746711696524938883369218618778152612672313615483697617467235938189345376426953213863598312694592426842583978388564813632681931962654793988725561742984142244131285555743594149213291594617119126571834273476386516555815515316954145353581929669214684134564258442965313314269178327629175481234321741161476363194766663191113334397393331956165531987385385627946776188974579112111638266517311976575462718619721773688148769846483928188957938985242945719783332522229914695484796971351229442573785665924552729417443444387443692957458793875815548773111634983177721581766247691468758622919216868916972485244189844515615525211891587625238536321671121572983961998759253195616662664611898993192756772869311876132483352141349514289375296373784912246449464324633548158676743144266789726147588643537385858153367946917511269923275992477361497181771421446338554943278785824533589522554177821114411278669112259182236544115224545452227116231238331874374685829364475186618619543529846394785511958545115765698941734343611251254987588953423296368692952867982271928792943261777545721815593619511369553767745487859731378539588415351526389727412374391143982722256297725776416543852865244325448957728286727369645731244566898694456374746372225677791237616576811427789227347714563565235862341372931951563342687834345711844861954947994217465156479841723219194387176487923437953847818218927355952679272413118481162872763488873929837178378126122298354682368559443239857647259268184342567322354456441185811725524857983614838253896895374345786961658818389985364853371613261866731511338237744128455325522597169111244855529921656267529768464365468753215186241756497263998425841515825213727782322137336257531672163573854422544656367883535573688725199431685938565232465921268941449382341833668179325616623416551478612584731548459819561711345372232379743785529419345314437854966283947226667697422852273958344951345966522261813986994388112416429915555662642739429657368497849729265621885967989753579227811772698159136522291965312222812868937732534274493489719832111277968631783199437755636527527535132984852151182757319841592345746835221435323497127192941264548211632663985333935644837743186997959115413835228671844517825514298299638811311168252413194545854763526496437533336467665198473749999539162694827563128527354527427358353413785321532383917359189724548868246678622748138753562423766542445911752735528493648779946599634113188361813531784651554983844244442266346488567812856244527831364481193632567257333946386958185512421774829534266459977562369791941917279122447861657393528497371461167978192777742469612441267283199875674632395432482535539258456333789242361792831973425348174696854877883852134121343765672931516882571755857157272348894186137615852815389895612835513811493163547628236125585657297477426622875626339832388644353989639272267719342224332195329517568566582353275396619719249181636462829944242669321182895894855481563465868835847954944423797234271426882774348832325557716428846876464541954646868413984624518976622965951414989729917369798596957143538568756527518234193932636238572237982543383915314597659263119222811854273452973333196112222233323298614849936267366956177191412631481755647263989575262979911973911975429144432378685872753758958145477389622838796273448512417119646264135227986584716567797396251866268679366915285831589218823798315162997587896467415325187466287673672329197534264784383927535282447569378929346693932313865463516352278861883343634755941467616249446233191334586951454478949553486998298229677152286523317252489988796417353168276717137652779567236866692887694265867532698545368844482561229535812653711665189873111356267119681645816963451346546561975785644687277762997819463198986554917366983658737418354542431975465981678833594325958392535423857356494276325757151979112643728543173379812375879866876949312155352578369386863759337729741844368415231258634899811583557531747486998913765154933171425957932578167857123527829226157632224369965749451692374276789443653869865348263232458656233157391587463985792823946712313628247296841129588678862442562823636344727828666522497421676757199613984665431962289832887563261212319765217192211183262927143144264131651259469477774864557751167479424448374219767143587242248875717141956465342945292716821697177789665281724818227486167136734481347766737117838566272773445773797473945645337164661647981457626353536899321926273246834857519243376855686777395517198474225137354939497954773223823659161562287679417113479681962127924969277734764473619567552753454731647319675913362228763947271544587318275665981192768152767821278999716272759748824638885566583371241766821785576947716252799936951125696674122614374999168149644635195652953113339737533427389743242696681991224986748971698651865124682769771179743439488133218519777843819917771114842645845785663345525515272273455428712361835969401859356563697138818134917582432415341976225837717591899558681729352339842333993743722666424494418649424556854127388454185324654418449783267678297941338851225654388255572238947639752526546882319925561673466138983244687365485377722778925517315418876692139566137383985535155595472831924978471189487738233671117289372668495414232815616874873692529674414843355435886463849198249996446629844486754399564463276266799451235662346664519846152767336252274631753299659633147213835549656129173493356119393823194558424914811141255865784965175539351641821925941416884381697138154928989189573514982399367961876166865653619849247467383979955551125671721715718344162258142496497944926185446279565689474623252845237734268775622189126577782865378949456233675782594141818984512295231632889358497611681588828837359392471395134794752799561354988817945954456725289358395239516386978373618279687513433844785323811737997714762522764837296537816869557137484535691873683244724491335936775927477564623736297536568852518919745382642724333976611495536336181628662834265562113152694216725775541624839485686881949451923489833884266113661349333257358477459547954453728732654778413351985828523757128881936294133367355736587751462349322931334559265537184759884916747931943487394746455728687867541232225453172435161541388175718721832476783836322364392198668331414551118389722748257466212143164517517335296378184718338422727177717431848466264434356197259856626458341267672925439937643627278713535652229419743635398548155926169613835755727871318952866458863734116471843621549345429944731912412948112363325248679674945945175178868984215727565432614298795111886674984456283624774284852352239896384637246317664182356471593473891352955484141448463911159486575589675212516648485675768797343781657977128672418966432382815174238825536383333228741858949456758631163689812133786762665588163825922169158341529985249588384665956153866779722628923951788134538123318965835986786172949742184896125811384771358854947811119388889369487664778663956747736755533459387953321176371844525189523867675369672689296389522938971145813447395562372981832924711725396538258794839917981262433514933475399158531439127134267497899136564479312254155766272722582394949476287291596972688759897826219246745463413999157722691383993825479725155344339911169187376547184855459883396186191199735369966451875853172671179288141676572296283667854911928825629675222321838985668958949722283939552673755554918793687558655958892158323777167845213757623297887183915371877551961235885185773481561987164798794816384783259587533629225675453733452739945883436587518965499663996158942429753292851547976932131736529761525834818952658241353425876732784155446241385118233454941512669974528122159559362597881731987883223915129954879928697669657325426716318193579462239885648359792362882791947863986753326141119135224483476242429995225629719613234562618311453343743314274145357693762473527839994224532835341919375513663436335746187271694584429951126448961423932637696955396279289734519542734987546239659266184146386341413781444966921746433736365987837196138424115988511774419887678378771612992591341318648537283911777646836965997128872624322621588241833429727429296357779729867582653885666398216741397178155793857225671219939583612228124593787498865876757615966177879228487916782367723573167665442353291881468583265413718464898124242219245982397647816642831623845156979357487149629374567518692287673598335839891827253894652769336575397789578659364543898154986524143722678423349693962767154716111472437279493352547613328787397325357163812127261832244813631362787382562664479351454645897823981618753929246971116471858531737687453644658254345971846798761328153226571384717114188757413444148341997825386886294958688832224958148639146635144438186868971465278921833486898232949626413359866657539867347259342393733957844498142937651265199218481776559897592684347364763673321377723681341497711545711967277295876934158996667511971165673482858551846535271839837923489626792535518961478451443133262112771713364149185839953155369469537597723126825416381585911846888437218319891339847995385468947779589229298129994783211657531118946968877678578946256311853964758354121677533417932652646932297922324382934264857812154755874665776195187492777466562825492756314813311838915651286268717962482861171154955598517133893589537693699785178528458161349687538188446424812662587373216264896714447877358424552269589185564124457134768699953179126925461753187781266925819126926617143127436194298781261161563223826928759258567435441457513613884475259964729462885839578639817255668555936861149531467329219724181836327893897748774496397268676669181869157611477716436951718363269136941681637498931425585329435438922881942682374314752163995538339417391459575895269466665198821752481525362749356282757256138193331372698762686285358974676385698514773538595224638435771318767428885928876497641483749769545276853445122741414441695661524921494737248393233575534971122413342724436256569615267565556687712873214837474344749594949687358345455847574897271129413352176799135618345635332343283418494963975436241713236358565786434831227759364234346861615274626198129774799192435991961477839438249226584484526116192147719653466367915343794384873975656619755482172595764182468755291751626253251399765173127883392366327831235264131437648416645771291773886392784736498239883348366344622241228581129842721844669382643747768516517482653635989828961335991851392149294347735616492534934817937139938262834384834965368657331823826531622149512817323187719682863325376489421599322518278137223344761319251199929971887589211434711832735744626523582248269211661653726278541172438443347167123178348746698596527451675469262567291974624563915759715241146283891898358594785259938433547155335413127876344659551483626321743163465142765929874892153674546853188482546947924294298446799385672329463946737146465299868796142274218412975678124644419277682898218847144592412755985892569649459144846194225489787356312375119924397896327646523138769876386377586275886549182495359137754271829546913567565594829832596922914847437664319758149822169659839123745512831795699589685549513424697158239198658496454997858289548242854853727567192582166963897611896181451197895843958544823564654152196215774368442295566813366662879489856371115133588269484949126153838556446858195812749123933528899735278753662242214116318649329382798473639743963353972735657485554482754526711946224376841468923442496747217399811128791637537751881355174793683684453526269833812936323772939287632863578359649732353619712521272357514339383255388538598739657772532864773988395157985758793371414588856933763256855428378695725973847349515721314845662411873369643276116588519873338579556772636842443189939716929865618276327792835934825786477244613529142811994486676254671395565896719889877316763366724733287667137814791519285411962445553398819481769719727166153275639848618556422493354958653761322296157892543572796181935192134354848537661827986584566176277592875527273354851489735231747487464916633957231379242654727555181472943128841877789844295859358395378689363349897879389763687315743691526739629295214289437167641998949593554373894291144741494582376335461897176486598962992248466887423492198537285861151264911598229458658412118584698595885733555589344174164922362111688962315754776973479769885985844638748323579276393259246625117469234154292118737853755326736451374667977986849534699139692237353698396985568492751653521734358517435924469298264328469532867616449849265184899111857799874534158941857355734645629288165417813515581315777131582499216646426566123144511313351389398853484941542745985195239158177952271564597661168568979985682476583538868424521356153942519545183346212954484429924217357291598832443647876316197418133733783675728962548167666417219473752999469355499115762481999946391399135149579478844972961964574592414918755682465763848934372631761241925573617183366248476438494517418745986793927532468911659199739593981559642483628419374372244183272325279327678498335552765153471481918728465215937482557152378216296967714214595333587171388119627214873183342865192618737536387997364473716883482543315857575264881237417184222465685279727333712824554252663699267664545277348418754168325574499955419815547378154458269627846841371151514322125369276126719473481395445755767383298711279216545574917363847666775634651471124561959686779526193456892847858394289237714755354589169244828647155976647912435764779673855529124519273752884361737674969319222552467632811336398956341271181236262924184127636522955151158161686666175575138769963368353268215672278715326193977314938333143599726587818417694424716448742182953591271921689121482834697896982231147238185987124187556335822835748551357756456855519132514685168814737513946522962864114362878758931771964525611796287594681445227293289531881968566115463416818437744685674659515125652881572213877334782156996497842939865986362875343457946474158231116614129216631855558185589292313953255264727713266954493222442627741257628288513198427548672743316429179898647836558392969133363894792771524215861671766579895974443429462772256294269616585982315556472448653262477438986474593957575628464678725548237863113416143594349696477811724399591739323573896845472952123432381243174439719282628724814257365489596928988796857728198423248576415996884643238899699431743599949439917451673353322254228466369392292727874118439535856582117925145215872283914856221769868551154463931247447611333418284939133468752655388158172312119412313549393458986681597626717657776921841176864422469121682246812593566463958389325317454577147295432977252988729349875222916625257344959146728741627248328889394917493286867631682485116884712112832159535286345473873462732932114297151478193428796132194386486685479426224366224736845163689258685526937353765136719224373386934575277882967579131952487615297645161839835671674678795555875648945116899366412768538164651114917397887612243418251967312312682311989659763183818893623733881919997862737835115894154327595685585259432114514993298529278726263588519621961349668411236898414662413454438462327248259848579935164319632467598293916871736618125445396423271981171768732392193546964596713892899975737755855217692951621999978865337992477888457641613682588464775465693471114867837184243967335871341567477844535124536722454841964911556221562974326887923495481769624245292397628295887126454421472886394432183892479979525855783851471713819189325293143427985279216176356354374784997238827334234741375919227675873575457178582746872252272729295453897514341425983197214375385729917657871912511619329646154625415169756747976836757629225676926532596169666349815566478835435186325812876591371726354946588876596976254883729791326729357144584182786165336195226787722315764161148734157666178556217338794189192965268724429173684216874283982267583364686572839159647945243358196331688236318322375868472616494936984796225946253548375435874366844213634228733866793235522937519821173474245422981284744837468459446683996537635643916388924768692258448879632185375914695161829834657444316515842432781186267959315948367918491533682691296991831214141831569612879149158646629539943815851722818891695459119863755936522592672441419934834719174567117256313457486379651932837374885599129454982529474475548265542881882717915256984329864579932111187258948453951372267514396596514238912657952877983633952511142443243497171168855926212351453497719149747842627117727753897135895819772465516226878654722434814383259374725325812667839962332669883719271513983258721626759815773943849889188492274234798678135338512491419148245567836683486817658897926721534868552118456836671469941612564741685795628291758774767627764146195463825734718585841592267579178524895267547284658696813469365116485991644361626375956282117518146435489714755283777385385934728261698467833359517135552855317122182836599733774376731815335846945126766548895233784874387761354855322965744156335611139795731196636612265479191459553421972871332982998444444478323565551628651848947681113541373617952124878752635292212455471622317318785459693912222366793854874514372697666757968994553837214564989159795369855753118381182437625629589816781355455283281313975437475265744658294792828949346778415821383657565725917899624281929491428673327799281859719127128948978836967737644638599482293986674556152724478739678516625812478723327498836598455295856347474345567296968427153671156678315638184783379111726972166633554916724182418328389776973535869259821128259971798676253314791614585577491387356212727858326266613261788726541151222816636253713928176857491595416586247742822112899475123163692259753527697817187915426621879984868199769448246736357728785773257967833777581162677357926482687384966223771776833556258785934661946568735793375529234991574838822467239798826268271569597879652787589448229746553599448125979146785619531394949387121812418392971421252381684592392362492221496338354563539877996122352463483126831276328194884384517644972172655662284993471619959612998916271626744133369328194154144934559412174385511432341636949332576516513831381323546498982824961611251424452583726355154234539579694735179217378894497719952919868231647556284163393953957147924636689233849346565741826638311664222944338352896351333784614669971165497122281615648816266532428524953654662732286156662294235967352596761934241745391599822497132272757749154927536476356485187393468131925325158695129657166785129732723145651499891755451929421382443757221141939985439521462579524888599614595584826768814141992279128968217765146613492786784892893678499265668229457626183572752818757764218829765416124272435426389155465247222552953479413944472476911425935171264499438523869916596637128525441779613455731621369822514455898955815959422484499371521865344138619914946173312149182166581883742541924521731844642747395374547599682922985968232385923441774433481482669965676795286529587829148185232127484153562122971652546354766968615991357358545599653278543248888477583226159599464671424537316153891112627556581747778232763366556647697342889854521423598635269814472196274258598631979832256237465653271684443316383266281893638193419368682911439745352342594382632648316587539483818132271419561724454182733562741544641681537417851259223468542585848816848588264277288424278326711689274123937244852684199722482449466656837641926174482363581615559914587349432839266391639691134924463986928119925545597355357638965253645444335878227843366939725221584828359626548322457148111531568941664626379981136728539572627492457619125114115667429465526265381941852352562127759695147752179274157372437437213962565129237143447165386938648934179571384997332136455147819693999836955354176178794296876835124116592916313718687997575267769958616797227487345934671196651556496965685324138521878877441596134521177598819641638416148188679931937686366329472212715523471264256913548179116236396857974999215796949756555157686359956334355724418372735331997522315848363734153771843475464215335818644896192478452689124434956436278558256283927275187439814336953797593211413131537269149463957315165365395587549256159185379919595921449997631555169167585474324715848727571435931736574912343624198879517459842815451742865226515381231766658738163246222742383691713889344116822125647719927187257535348648228329773443335942656399713577378999967291523817162799571817544333229748889161667825672753495728139913779685559122688743872353244134391158693613761634812946241643952966726975242293663757471423697793464851474593859134759781949629945321468716971773147125119169864486422282778745949641251147933361892919185858353316322234826242232322129594438659372393774388599511622571813767584612878216945786757893873148796157234144637196671358636839718494126411762462927952714397266986286727792738931515685994629297816577146228199941418997258277858485188699498383333112836534127856354194933762184284357891112886319699892177265473817596616674214264153358955483562321861537848264657771665183339451436588163978224899845453765591544172886273974254147672736376329736725431618134337974156674315268839251222114337924429976386812574388411699933624954841469938985413353212293354649932158931727258563674773117462364467251123746582849226416143268494217119382839913924554148364193413112938222122393658152876375415616799699792921285989966683123574143981961142159547434981383538733821915999214156898386494546418581571171881295874692222565195843891787765763249698719855254638826874559826241188859734348612492979324315838736621483797558786774694924486268718756135879647214563854382996667531143511463274629893222399865518611852896214455244555675551912652745724424758272526963528518764737317639814721861457798558214577196859739111186231881634444781491164937837845447436388722281328224515388971415147675436544566276536155831979474949463917452858591115578465482785632822556632572571917754282459822994248712947184174748256282262361664434427225422895699217223448393736167778229387746656267499239482987655455283856512128666677616614357793111495935237893561211771995764174913516118788934944919918574871361529111978769963343243989356473323323319965861284497795539276317638858844331348678437781696235877662335757689446278746896417884638762226884727424397966496184446322424192473213433129768357691222363672718818152463227943583695621887946726532656867651817967429496999661312377853597568364995835334289219436121368915731128582813231141173674689489852952881871194216293459718756631724883861868278887123993657211372659845822738515397495669471387542425896878617137765231277295849961449926776488255666673372755651684675252789594859516723897362219566979137976361111673852577787634229123891426526573857995772425637637816858499956321921376527979633323997736511233224132783479332452641493954966376689747974896931293223428714339887861547836419438731171732164142726761452983824797684657753156127783726914195463222476152346757424675265565119421558153275739361728234689189929164869965548463435237595493384389765551994749171574233661989317263628717971977924236381468398894255824612697278681218255163752166656916155772639541355751925131674374968445587341466739822325373798185828467199136698571692128287985566293992913452318367369186784329948238218554673488224912589921814726537272437776586886135925995466198715757424963541243535134569969739294945339573587831322768654426435728251198455147978244999441874445248258973475172975473297384627131845742878385462798127745186798773246323149566536447111419977755867488691647391824514654531215581338287251868851191454787797255277976689666441441485753432146653341898755497422359724967169625948828683211843976848334831882375166834134117294887799272151276773255556856666954732539734641318434878563228624975137191354473225592247458219597119797632958379628833567377337837797459535442312175321847669352129654416939951266577562227252342397637219214119766412524237361571234854764265921661812135849887811175459856247193173265558537216213647521135744149456819652262772936687779153456371841895922188281737494298533169144214694693511484113523364569563773132592733769179321447893838115317546628875772613747426598418827572144821388448611343783532214951254434463296956179448589711994118452886994698285228976937836236961939538987795226913586267689375278121819568889568827334971898325116287133821877647468656635457867575178369346899634487141675262898415232145635487825618556172141881493597149586257617563158252329257515299946652312157241865977893543952855599639824547623118788941336429869722693936688888756541562983868738887171647425281834771968255827615313376918526498865842666138797317533134885534219684748341118639473785163494814772145868868731757925411659131496581966741513587278519564466494142128682633869685435271526155468569227371566414956464414919445279291838774495688314554944877295113175851171548369614197464173473689164172124841691989625912349497394791891375244233194595618557286555524631154457656994364128626271721174188513168658974364136553514611818648955718595712214668818368358113917377226696697963853668493393483219819368938624798153893112459658539554446197577373562772817672525369714313951767824979159717858284154474668535315593497468943751156582848691921561691346139394419957142899882837886721222252483468951139917271858529541745882117813815714512486237179134511612381562931371419922628522952922149286278394334225476327313493517415922641162483921532153382632262654717613841231263377595648754828278848222135249467115668444835643436348551853899499866699972546677391935919278217182751648781247856858348265975673737782558562247733655461857314677345389245459132385712886416863486825727243944162632719341826253635295829914419553623646637132494714284284514568829173635328567938356664924269931836188621465258863529719235928919517368384898673825686697188778628354182461217598957495294161812646944178279828613253752957838181675182989861721945299394986785742249327193165158567487674342616819641441746241986614371613853444397349394727895356674643818251461194123393963596154426696411555555855184489628234464924563418954338845283134857283575829151956288962579772165773921492416491818694749617712289579419549278357117482352922139875826879775411291839953145357234715392159588597689584888212824284793797655494163999387118189497866135881329724913842531348287864476854875757137411563586394179316891387851554284239477997494424893921595659857369216995543864343525575838724449369749292478781943481773535878783757665893661654871857219675454638484873927982469454163131566838656823124811847872277478524196859432643813996563779326267576941974136226415162229251666412916893385816546942153967933563643232451829464957153458141386549852985967812216922246959177521595584169759961652765358255896835373678543539574559974787266859366534376618556899886255871545462994239891735214283897383446872962375353336847255434962285861166294528839413928341746864251357865225198928311144118674997122697127616417237131431287486287336947697238849552684692349857581264823535329263321789993887435441723966487393535682571758582834985371828548789138375349287279577985956898567579396711628245172868254743677334243813855577185161975258516237541721196544232647625238979582235216315848162324886418196144156566275759555677164684493986289846363827772239835283623711339314738121787919882391652722855675957858827516484613567649813371665449211751389649885548428745791234144128256119987531362145594617812322136736633366383595944494975216318771342657285434837256654153674351463528246679951775221535882126152394117663468424946888366477972191499965291941334812537174869958887773283276298668721436692586364141468575184849511532291339865278393159457831789633751864751366986381135798766718883968344358946474466945619261958245968393277823269642292118114927424242458929334198217428227519151364518319222621442173884534449474614433354514648654832275518434794147263512966722294311751484853246862112396868967287353291564888364463572268944662477596643929746971238433226583629478922113176663684427739486647484366466673138397749312239883629945572929332259723553665543685678125316238243115368623157325672573994616528739254915391923489537825176627598414893332324452293885383844693434694825147362481768385579827259519891394929968933862218181895745624643934831634899128827895369829283475857818297188879558975856764191675355164853638573369644329629566981496771943781116971382352198787737295287565565252281214422271942561879634181694793723143361244399376238636584954124217532546874612224966525819211421264396884243354641282671671522538957534848163426434699757798841635377751556697249588453122915856374947983541354292146347327812437722419663578897981594236816948619841796944632428478792371765635518577161323464281159376452794244989675717932451465382816985398686653113796931967485565153581349883283453146132859295691847871747166491694295369289648723418463268697756955472491354225355282497256729315852981925227752259287891362392676865846367932137845524549778745429893328111293876227662438291631519741641659826447183234854996947829974837819544242444838117712483379662342284686721183893573691828774897925373834843123468627619476755557874156539732966827577423888433119414957931936697345975353295495235531323324873596893328637156578131953263551789367598351955592394387694847726642481315299748866295844228898441488498927771667266649961649564412341132898954669124929173128458582484563457613515915823113848586734181314965225695287478752511183481311796217767265882657797794932962941551126732211355934594987173256391392874984119591951257854169698727794183573432517431295491359229788296444776816558468818833744712522155422993537473252844217567628823355434586234348531841487148828233676924537869511674611315286999255736189764624672932162579158963536144919461737829925151956842174587877813785465356751745429516755542313489816441915989521451936489599648639252353641582526519146985947719524638893851892552455954448217158512389554443598723327551361965815833867212569222542187192197567951136746882713846944544743489274166641227387561164418782919925422875886514351265695363463264785863449989495329779395631857224791835822752274141979423596126585567948213331634721643782393831477151962285156417552729847231266962158376679319864936719512437114318934682593478769349381432133363155593641868534557485317519734948478632617451696334853514575868615467527252321853128468695272941376928643764838931766535932125142743587752234137994546938149633715144628741233922256748551594673277448212324515629193857986353569312122254684955964249848453717636838953391695172495467113272925617482521661267215641441567749298826177143149751214347383956875667355967351224245567285381857423146522146157561816524151145776179611614218844824476771784361856697757977859232567134912326391961635331815827854666955177697782634956135516282557142647297764927322814464973127739873593267658479469795292394965932279486151877713683181119414786993832546412183439537538468747426719843383589633675437263945677347222449687651916439145348795528139363131896785418313646415856769576778857334865675948578862527464942716338613261654481165327943325485917677984947466372792386517945426283971373999536615833473176518136314331531583142624851157697418939343394332545696961175645375267181319642785244741737381616122821831694862376648511238299811971944113479696159891823731511518612912358297792672553725766817567667781591269326571642227787443999667726732763319363474242986375141612375349559575712136224731133294321744697534895997697861963383613576835567847346995681766983233481952517382914414771736425637964969118626797237413476117571265542441212872474124452862697514167181191277314626941136285836331838947954684946638632248632253236919614161464916769873635848251742612997133423189865238511416569628727411652859735347997137664535496237283376239553342955611953482195713928542586729894254248586685256347191338888868283416253711325748457479367934732171585856878352187724649432794799858423198832949611974816966346339972161953155196293583179784325213228393517116625753968836147657778598757458918474569341955691377227891634424351696431514173199611389242683817966498349755845814833757895285869498333187671151532716485893368298121339976982824194732111436246147158856534626824387486439943635331226668119582818547178972125657758213912851141875471368479933597327527712795772118244981863112734574234493779881793182176386459796118447614693552849857564199968477221871329474548532277677454199811897928866319963178826551858739728529395825629826697242216178949771519972442423982595615212194162123919144276454593864374383778979268262478113442537955283558355252166294993237489164672726649154159768958269797793149222765669164939814631698367571572656192997489361632571496142189144743833451487449495434127325228581753898926649488931332943564391366555336981838611633837162581616261674262244914976147754892841555513818123412798393176354338473823293115244413243339853385222413633923436767189393187416927957319511734399816826934664245849569418372692581153655921325798643574491459587692757247369638482739958993942599764388194966684866741549724762747255854258827292766899761946199825291525495924289768634637347317727767296687996862634186728338991656375923612188339737297121928884411892952269972845664465346234574553657763659723277413937649996341684369523485693343535298187629678184935363722945287696593254121919392628899972491158688893393383213465243931268273121819939357677993396588515312513683586511276755174633572992153411658298294778266638765964158398353162871238954616373857253981716992177181785234761845651747817396393182968572748831276349929658386575671418683364482996897752679226774815563788226315884658815725372642997364185516194458228671117262361887385835333767578326435142267255872345868134779692134637743447833166532234591459552814577622314518151273522566411582848599528858754671912157698646628467418294158425415511278122683439169889174816346786612514752185989957754244657336886946312518886871546859325946525118738888766354397973793286736237911877644358687374443751323846545613466681539145578653665858311762986544686491937682957332252227324958326965847516691332437647278664384869343992541562795359156822139525348438682637796321225696798631164996765826595116117676245198113593167547176576976644257656356594699432129666264826231885499958327259441217822292715782322317137653477496178187357735846956659413641281786485229881365869524363616624582239641418433828761285445196445557411441273564331338763252886239769612629954486319275389568972848797868763181721638156193888872642338194313364435229729897684747969767197234466967829798456738415371169771125691372241876447388614711576578136164367445877596366636672329933637954687955715339892358579563625419777572943365244268995942113643419156339544967373163556666819259153566319795422627772347827731635871411371792953521743334996948335464481369454795679992281875696933462487332692267145363349788481526654376535549254669992851687748214631373816731987966952918673593755772953624722498993984841188354831825186547786565863147154979342333731374941587963266871357162283556572866814518835411424231259594241426896256137457499892826775188919588194685321158938919576973764622421878319414296996744431616967918976896636945623296539589175764651239792285646966698657554829374276234353725411861724358749556863475791962581576558873646571957294763759787844578365617155251869335599467151518323774578993877789248175879828641827255944221889813699186968822893617191413471251491297782564653813612632879883823743512667923292451514771668839113353427118328363423789835628629744975776588324555733715276127981286754212833287651732347848537556111431513821575547651335177821422464394676532965731753169731873997327664125312774738134917973262983548849369536899682971578885862125999835877456215391357235511612212974561295716235369862412463573679126934593916421416536662819175166567997287738659292757848755241796585294865721549615487252665645373791176658791669987792857319747916113656426471468138212833895475965331962497424325135217586123519132916155795216629139867468719691792397675276836647513259811769838947513939592165715129918864836629361653513617178579369254537188124278419678464222147952314913723149961726553865978663783173345647534596241436713568836133456719562811425467947384165657883452397487527853556274578134692836956784335119354772228919379442946595827437442728839529445389574123414145779742514565398826863155395699265148189424853745329535844413228521438269545897329161544964176836869675638918739535688964372854439376739539391344712587813986329245728661489513773821591788491214775531569419776957996164894813371712767697564259848434723993219271356915651155838661942339541457472162425511894651653675628654481576627268246591565832382236464412963668372932976558585698234665759116834126113758595954776132596486968451862236865369635237376914518434429522198433385798424925364297547489477211428997649949455875528255992712754443296989934591952655155325488723931629422761745819414735163935227278219274348627648911426719131647557464787558212991142693514567211846225859679778762931161416127291811385253118985167264213795414584512126226114511227436716256594834936557257498519152623236764137538274898647478262432534299413165963351994731446588631939871166552777776138173719571464449446982258735337234385232277512555143257929452154573875992742885388693375129325551738238281479897745963463385738791614422458437999585722149422291351583627469158186558743583782726864126761674572236991147326386853165521587834946634538348866442646198146728112663116839615248292791494965766932332714553966875944983388754347368539773179756149437756522945671513381587442955998762324397654594811759493587977742853271836285655721659717494266342557539257592864829789438734458583245249888174455323354127461319423836714511944476691993648658589663333683576993451551793557296162385533789378513556526761571176294647814632472726367823868966576839419871817878513285472266893376216973963641481798236241811137657145441514532511413825896899553266789749182232261433922599355669237191998112227249531679694959952661649449551175127164933226112256229144199196597283576696396312823837235135683392548916526256338511233726174484437227778383825565576838446865287898576394465821366959782367775455391819256536553147925152729354673754658211756159741245316131597661926736812315368373793395234999981553133153668595754983495774662616918323589327792971218675922172762574622533392497398254745743918146416559778916746451825398688482832476453143796331312741587325497544168362531154184256215835364927324149293397515839439822348738451664673782442823856727949712556512868137379462745216891761726465541454961916968489169126296632286311697697183921835747356829947667626375873275257621446827711476227744232447852614647228999936446219522656339581844556345228661372312567981938912457971482257274295431138921712945633661864582811343345147117291754818875322492325639232743562527716694915243465827739914249491971639828343568159612692915844841983774698854648497557648122514483668127791254893647391112241588754445125238527771491491614652525969461873724492449479431784835311246213465894836873715683165585518128455745128695965432627966515226142525926685171593654351891413816167548116593443697131119139229724468358898142291884983885796667112836695417527615984261731397896968538867628377866172244153831427368955625542227725747252325346962856317741853624996799931465951235756539415665965434426453856959424856796252737179412147221894635921599194277863814897418587851443391291596272542731472211975919348356296813947228355464362862776591119789873585318745279445513951961828796944563345752775225429415486355859286419873931542983824352976551369889776969912291471795892436561349296793582791637616194227762894714373411689543293892294879948318634775832786195364484651545365127594876143643268595851894239631479756369524629467942922334396322387812854115951644835967377818935695761161566528892487215784476935512498444885774913522979426917547676421798376655795993734324168736457437263728288787158589885656292735441622549217722659427973581763296157199911671835677454512566864478177968935997464198348494161417394999782271917295128766263293723112988195285784296962677986266367455265662149558944192789395931665171537531575368678747665147993498442284232647514377923426215354196295617661321647338569171695993512152618639793435381298146535785889141813773995523532335978446824718687964153593856867455287857218876662976225589976711117782493379945121642189876455346924263481364765718816884337841442747965981356626596175397971994266853351365836466162681277277583267482426989535141389395923669775513554243985598516335827972859489644966155694343966547144327156911296891351684879423136448253733851341466424791633934568272445629753788329688632824269866991452326684315262135216422498998933964612933557669179721749538321525785968193868764635619553374315883479288455229673133977293534112338256981392358551757366519819933756334263388143117732483353255328842357586389589251488513717238923258995423471296334174345958859964743285422549162568782286962757121338771834838964742859544518221243111193365242525699543894625639849838163577528177911389641193176859745982633539339357211321516191955453516768671696326447378887972416657232989148559273811698275395761363561364228126417355262682257274528555865777497933438586791317649484869436254857189847496326179927493335849224722694434965572462291323786797177246669865211346455485663223729443189964475398933469835237499342549435852281982228191593233966199942527525513724522572674878578472512364714976227463431717655481541756127414835551883764528856899964666295488932999375526491989875321739377169258275627256243139651633559354169876438143666869714865111934449226859553718494365641142124456377942887267996312774777869114739424682397986627684969746555827858117346935575334538593947539294915648141498922364212496248957458893615644445451771991514298934812962426758284261241291519492663767998573381796719737867797864138727575683762332294961739324727589335694868182311696569591952699532881276164185144699538523673515793719396714116355217958315466825285194664864589999684414948429737236573867316195853383666418371982649726536935429647894533251259392373825418749613382624939843863889169589363223451612995888155333238287194316659619788275169493715523313643288137916722218256327768898142351953743214225939551127896619724629973293513896859851631189952423319517758137521585548535431561781641495298858887339963516542511663693222895674396393552296356393562763841497737346592791325845989145338368129753493452474856344248561385187951389535772956569862618647245749868821276361825791952625428892878548666283273733837898329287464118964572798952233812743551386786472828986681892183246599527185622793571247216324536176926714266335672686496938271887387947453985442699127629436414931625451658283231233985826445748719235198996128242429881424987657579978768371173223982923311966612598364181987398587678997974544673599898996615463129898696838285434324914574911311191848322239673193484739139141159123955167114222559713725618612524718293894215459321592952713853334933322732156178137222383567889273493566661267951671888934623539768914569476271137215918459511576366592548945148658147973733869484943175869364228822618879256984477774369285496288348135939627965532846864393911734435827779554817872556874154126458839516351731528563949454855481264915639612643489783627983521526826379131394532389549247388339822548341468792839774786515338229353186112872954821298738351172885193783969155437555337152247236635993288184636272694497511314776355463372534241319649378389666171526833885399229172898637673289241713191611522329518369927134947918217368211342282817899591883584394119729752969149628657536884223514475341536429382236889467777137454987839469497491988924682383917395186923852682588479638755946665173754148295254181152816311767273448732442966365268439159134641984847989276782117849733536989977341948855422432114977329717695329392177418651751146868728577898627814555319263276861633569248898679924434249557142183238142822779671993227152744753164867149216162942262766821284389765578488974168284349831839267234571418296612339643535517433136584423233783815669811352983285622964376544814379259274352561832128445188378694699525839975968279813392938786236977451357844541421641632499113698333357139483424467439558548697538754456284424849572426161919551325749366597881827969564455391421874719359936128894749274613535612972996898519378652659918152512698698366117833787831722626766836684419199683959633714866433914572913812869955817277554186386634814194279164455262817294732484655954361356691116285895268395651154489594154163672251756475949845363213617992368472447984477459876185345935961887922619936669546245569152546524325475257823866571926731865516826353777459635362354826912442124538896539571996231613192235336688467918766846467517616828351718553234198673218868529191915185749961461137348914755663764153526512547549263964239784959354515155218853768963286145539454695298629483558345652255687423872281142979235167413637285826194221224312124539371532131612211422523942154515321363575536646686738813127357878815151694257715366247348163649531845994318977313926659455619651534132343949678961424368719564627118232436382277129544395251521212934256684882592445675189241152253557125484533766232639534648662916618146389556178231283447293383942745363218615417434767376594786841366677446877418874599149416181127665297875425392641645484983174638247925366785838983329726914276178851385862355133354224814122738613521916239633757169549941913653815915516579643458392186265331622911552997952186915112528159291291335434229237717228369163973182915547859762432243978964361558648283866723765879166853368212976884969632717383289864989699897465761723883521738795983952939665931912281421484253642835828874366366573424553867122294685351677213749989325511212221578813961661834712734173183314351141435491463834897394512722246359373821846238528137476558762386313483567178828622357813678796326564891597388249354935291161592147527466194897722125444531578683424968667946618819353695542419632826672366825596521779234363225217865981453912553519423748951569345732777967111351282555358395228681757443942866985929554363784532516349423619396798633959227579629143975345164732485789581247288292488993418661899366224337846764813682822677566482913425119566945194375333988527716938538474977477884416613554114796549376664419188428978223513883436354919251248889766576827195447962353266261147913659232841364959273387813816686852765847873167874193883262711474559824489796363671857963123249685576714673388455429225436631688135695151279194645656988651527421778274391111565929518362224955822739148257283574424139341645126287982797515752184595419472863371179248898364562791331377453679777692471396553623555662216463439288325334989151295751861416657565386799187981911485462492156791228888786374464591946976271739851638486923468798881487893966741793532123448228987835614899564533786887122832711493753132176429687265866958128147322534521263131736212797597391922163415531733896416685223952934139379622793863493169472666859252178939998384524718755911596319416398297925477757522193243773613233942733269734475575878945295517799753168939377723181884312842521586782475492962271268588762893841598645164261376482239985164357396959555861897425647435832355974578323899877419952694176292789935857146813652447596914623671573157861342597732382972322589536841516631779543571667678736679242293755732665722767425286753657876951423578158224855263847193668263394441335147422838292891167873191534657152682875684762867544652695149744713999346723888532885144548492772879714365544396464867311941117394263598142361986372892986896534849188971116195622891178568119482381277278777248326324179979817145942758526238859471877764634347731895756258132978956621964396868748312727429616411862857265851724445697348298748824898624298361614163786515378259449399618424383688847496924738562489431372598856739368959322177115148154213987559566269281277987492196515793448384899717823622349448987557799527896776448688723656435179747689477944677336217362894311275843679463619443842667757166174558715641891735918175849445142587268621681763153859333175678826421271239395499774696713259939662578691511158916365835951853798955715855759549165537133916176869439715269922827371163254851346269138445437529346332656822854569463116639379114637881563657193929238692519529872458515851559842644514664495373426277651695568632173337566984216822476535981734931142797485795266413945433595887881959787156672213496848178556235329187892458658788371178833446857765434558424373199216888232617372824269999427526427115727977514674199989821562293883265852592868257246126972181469775259299374199813314891918944821425445362772552662951942835126267691126374327484578672745256762429521148469217465321484798365416457461297116752273311679596946561296225725499516625663512195651651261732269119761227368467821976882964971979945947673418289386864859356254236721387527436354729293127631853524442193735359539448659313287448772971254777539464327337445278855943156413165199321934677284968462666286582982912915262889275919265683331428598688294282298599416863186226965723623932231989839315613134719381642845948945927748398511961988941124418292683455185824721818591693133742819135642934315375933172374548627421865966376793295482628153794545532916544113321769911614884227679761314614735891871741228649295261289539812381268343255998827332349382362489596329634122783425648466592739778399153353531862325152611863639558563687838924234649898875948883528876458359551914883659243931272858483217162252549794618819816891738957643657781559829791671259323917762925684639521579546552473763328429977331272239172726853128449371277999917118826987652863517423449128917518489977633718958591833725515355993981643714698446328699941566864243116376635469999759652787273576786313865491289254917176882148616236312732859754154862449433383895426688762637832327459382619888329877643895588699334162212289822789453732289148951267276485365444378541658552336342969687912555872635789434556279365213814158536588147878234841776286466751582131834511324596653159795369326428491741862129775981858365285725665638614815772269254189487868425887547828485691526724652448269637282872519968919671835167774627446422563468367215297792467738463883948374198819228777813674519688881697196866877545235373713661448417116682258813224752822177211831539287393274384769759756456439482389128425654119873847582124953171961812356755543816544744137344331321545919552742386641952676198128962462417571698343236492989782577612742589558373595934213271327887151299244869119691912219239718512532434721739589588698491462223454497868821868616464314459561696135719592577447882323657583552254625564611334922242395953297312654198469483674877816391629458514723648576643118789329371314954325588336889989858878616525929432889612289187961748488941532465632592619516293355194997949175437676836776495511121519293199532298762338966527538469378577428527483515392843675421347984634476224454983166324655688366638975576721198495936372648465127713249611719549832459523358759418632583653597479513454678442273935272427665312162396743576783985492534289619726854418655314592931173382253213796136881492649732729147161272539142629758713784856741356374427321481245116374658223257774214735674796397814268989394871281544191479987767173871791167174137547564462127825192171176774186739475611823584984291198655153626553914185342721139938793298459994295513935296288181859168893782111451643151668467542546325584684728772966922866419444165614961242118195696773412455751212497521621521979655775899465475514156217268246991467856782129659964565279984673598383951162927812158565463729979886161165256726831785222582488266772768272743326383714943961776442518335418631258537711917973517748569989752776518288378865214977623612586754394111837523943431182343589253473663745487679811818932279175311566739267815785774666873879219155627633323771257524199376286282653396536794799541749766383982946365797366735578542497935214317724393918572828672711513113333114433624552543399471419529843153485736171235454381332182165369596969566667192321343459554971829414361826515637761886839327298928454325864336992979552463972774697938415737436523566693899876226827757221853394549298477363875356121733717937471289126751937552153236486188625534536999981536741942571178838382623113181143615599746743514443494713892895955414377841181524753123391461865395622315423465729929149275251671132262793928481382285113527474476582659852689597696295346973419957193976133983642151684271411394184271773161225439486714743762161386454659772214142612975341346274818374242351544714882315338955345163476591544814383412745521144449676215158548767888151513596749717327723556431128724864192676555365836282715615585862261428862388861477648999556932147267944271957895657447381873985681385782775463828562189166465924951419486912384139237144679151344474311712839223135838284188912448859828111932224696323712512645429291991983215554985355485549872781889888187442831254793347234211279256855697769785144467961279397192776134799657161486282289117726774476744699395444951168969731397644218567486939314419216167197849159995534236156486396893591264178157511813417945673143392317615419169149371864411625844953613144158942968854375335719184344647941725891685112534193892234588371443722779379313612981993441277291471657575595655843842166172781637782437877342616988174681649712479412278793952449247614768638864714911889174227132681157719584854254233129539332499584164822396611122224155978216145341631859429321541736333142646169122187928859892865498681854359241359942726695872229977152386219234237298857225236133828146556478771398263984316918391184648275142161877165485974894892165872374461557243671177556726831317534871825628886983527298782621454839821262141638779499357428563745626642836998776725641362117371741314586186852423775812992629693723162669243375452921219362231482688744656974327318329246457386554218473151372912833756371918543853589884712792884258665765618884242129489559646949795272621499793813742687549923883499541689459638892969592584772129864822756698487472439568835937813284358818546283324369943525115323648329163679891325228461769381544466261328297228739564449457411836343464284815767612946871519582114349757147593363456933883731831254138831471685729323699762734749151733879838491432571445628883787861146929868889936871422299367143936638514381274751883892727522714366116435542827885274345996167594194646289361959456871369874613813266784718783538295122917356636843429788547898697119198724486961192979824493252962761632951556555752523952166342427478654598154527668853948572693241185435338689346129414251328633549172495353276687517812842785837834964488696163794584556715187859245584443857137465728379787473387735158444945661131868737563782463868681985452453439292856225252437296384729753986996979679185236845463834687986565952829827238813348519878557193588569441152942255996872626325562328252256439554934511673213659771694798342286678928865175449317265624547655311982877374717627242694137791212298375992352123636795187666766775692281325416777346745499976554912211142572148862435865752396686897791948141837968534998126775353833815619782387229419212868282464644115163281782732642617524769124434848146125297341411953429411753937832433942556485581732653637939511654836172521157139285457939889843235832962967571588912615473367689162257334189137827977314641398294218942259242823511241693612532842625749763834273187955315357439482856721993311619213523157689637822483472792643562722927684547127354581749894149119381958482993628155128898292192131114843941392987478368987186298288572775783871618334233732349958795862339517568491792164187172852436558319165795764869367965248371816746642119575761776472895613793367821921867443319847926567736952632623799432652635326973635338381543712544718961592199252663582525795858328114153351176231579631999484295895211535642154291943942879288577997939493587996991283361178925613396245474962641568874881671131351873391696851785673952897899935911241388753731277452541321212712735742517778885531674685615675757329451138816458425774235781265775711813683218959426628186182568948918366577361282753552159196888788594141665774848272276275753521369663628294578375491817463614639486658566813631969149876936388327882537217368354258225628245166754896597233157471273733457953627995545257442988915277422116357946499814648725516833663753287972411391654326866459694969286872113122176417183626486862779366456758865315993264811487544569114679354884483698978125779126926374218586813173869561136948528255555393974269454481583185837641186514791927861219247545927671668218578579156175987722222868824635472318223629917778889865747199446657557629611377155931514292145699344995945862666959188397591959772271665151395891688528257243121236282786715294352183797512613525233311762389615714173713873923536756832841891369657828195395548293775868948863838599318637272881267643536223595354264126833822837581833444583917324724387578751418571794252541173444862628483422269238533686683825292342279411616438272448996287696731847666737269976919888387156618691357829535422122989827422873731746526479811912999862592788851925567283174154152138188355149232686285581885189393199724317329576184532519927946145125456177913521854114995689292694237625314656639931329776685754255797236672234136157835583966461949552218322633327999357553178152116217948989312981825569766561761361954653663752743287143699754771865329585649712938733992866233318721567921992184956245421942152913859551549637931545976968173354637483435387961114491995792116379198239757544535875753332433148148761725568711377643865196311215989952497276283856932542172182578463592117736899493636642749787533762872533123962214768932891542717884937338423533888671769613764442834446276428697554529389656999162415122653513247689526471968775915316561711924673424961946722393633278249221576727912896578587849156869681638398888177624462145949525383445153942748499736739324275692825321614867696578142964379748931452422688348894798894229983764698829877792581849638939938294654445322982129114965757749558894236657856948758144518272126995228864657232915717157854966645156842296818889458143738123677173656864445233157852123734172877943518843354459144235417825982775925818924458251674124695193261653132923257963919329778277493557658749955749831752718525363497163925929372364438598359876125729922513339465798646472447849311292431664699978732468581364184213235381639536398445382298517916239747719753383225533753594194716671341215542644275549888197467924948968592665872425393283838429813518457493889921549847929761631781514154432223356239821785748816767171494525641243125183656426991696735176549553765263427959547596259756398243417833164659593341866721341954384966262637475699784455468453671156672724361831797221656481647752418461795787756467423951924689718655624292856472223397399746527472733142226744855174713677338955138331442915389786157313826711213935158249767745339969331792722113528332298851274278182162233333574396415279397613412526638759996325854362391941271321863646525156542878996979996928993246788383846913611298197778466779248966259839191219827675499967971677281164174974854521951945632697315322617994379629695587939188719331499288414365325672465463233165195912743278699955291526848155654944216424273177677629292117451753953695912218965627546736379333628987377497283645387849376398549438155793511754283857783312156188883351691665164448926336442949717842992966563786586219742826787469568653299468926535318589957584539394613548231774213951855513846775135468281257567753736376561137439965774798534298379897433535178954531899642951777666318642148843295274137222288955574437532314423839232844162855313635378487839112934117313587116268786524296196278588329557247663531163482991516355275919624379632628856844894438834334286513355527383866245577369682191641976426134311835372897865964937924455158478452877967643138531322657152888733799585348451383313568173252123392159573317235555791597712813123236173384916451929978558638831143749968358893784761425377159152335222846626993259381796412396418921194655333558475345975194734525434899212547384797384783945487938217237372998378986264468987579399912738817643422147472261717746645797578231561655392596476249692262817629665629137177624227286382362923867338222938788119727245371562657479182284942742613336762797752588496594788852911233787867642881528258536311391313572266829996948753495115145265412437199887571244483884386792233364154932678681917295523282313449734936183831732559991218338661434735333695578612412412344981122384726964521362511652775164165284565951492428668623788285581997243637666817653414672489846824647719575255818249586525597179524294142655145948897447887584536956259215798383161795473232584168683513872591816875323535673978725164341591579246667819366563345741275324261265721491337872296669785295611626988937959645754321187596157198696487172826489791717456142641419937643835353323283927622685614587251532957268487678339487747296911843136743581137969888562289869854965638866878564453217325291275461822797365121456555277786693128199268985485429975481158717819718524413741372268517622472263923774124387214329179739876972274532843251861393199172958656872225387412488497717693888643119321658388426365936574853615916838882619452977568916481549139693479639565752396287724757759719856618655128248756437793456317282752526827731615147815941672488554694285858817421981475542561414664971556236967955992436581511865252397829495191579723269211285799939611651158196966282112921599583443386381281687394494695544582625854472571548267517855419747818372528665629435174669298273843661722568139972368634544459533788758995697574619552816231973251926715263911271226395918995219311771296487414424144524313723743719829457187438722264484666928398369115712444216412641115597326232232512644154684758758198739342455595668164422786551459132965191548914799931198642777679765274237128477379377131397953929446758559286713739432451146437369935778587257329252386381723448422897745359971785812539499733565644497832827885375427356227564937267849932691126667283614459733458132124174975631348598942915149842142448736287321169843122525599692735617116836842824925277726576749318919592274245647254725461945855556584619114567272443878962436889338687578835531665841747868437468217964746278345629782357289825735429784311134595462597226297569192169389392641267325126525271279376294123286293823324976493419426835337545954236457735464594435128541184578991524397633983426926651758915784736154817114446827582446347815277682152763196667315459962642159726821186295751471814791855158829491599118573519589958944457339268297217854194143927821145867772482192776185578679341445721487625725982499936782625659911958799261559687579147398753654747417324378146884787425281344617347969386198676944665173996456179875794283149532978484574218625592961488671433529348695195856415512438185227578492261569945675225257955577114843158194997455855369955481992384588388777421886312316744743869318146913644733254373846119385216928597762134358676849541468988479339994197421277751694641428266278966466196913577537971912726323129756255846294846424414576297518474897371981363895146573192832668947673761675954567915213376531324871156114698944634244362894825392316716255958311614149138418838947628123517337488683594435316918661462612343962739977311632212977913164286573646533243115225323113318626363526158362572993424624944796322572167992158247489749133493134171277867161873621474387536727224242817513481741768296747318121433513253592464439258732453253285445649987933366371234367473781223676575367583129232457284363365622268674431533545579388723858391416274416558692159167738923831862477797243192215912773464656632768438152342452842118455718462526369153387322496596321781626767483387516336465824546524574149867985734347784365618259695898874462835359826153513327276656432867141564345958298421936692144319913849272667476317211868161482362656463629357887697572478515632786332673598275835562618448881159671738977784266612762595473488345318996673989548614754171418142652352817215968828294592532345599634715515191782691149182226654526986336725893862855653864428869448879541929394478843128459235258845778769688125897198834745259934591466324125494283975348743746995922643845473782987491275448947437581774212478556396213646449273829997216342187716326579223139311389819433641319931488399592432459439272535555447475293143375329342268311756288825334637844265189395115179686377899252836353751678188675434161739754837352526473171827469765747692175799741477785666492368732491617166949976643198647754627666636332925813466665427283544291853375456936263718249957391729685922457949554825538434154214272653776479335796248181495715932186253889812371885692631181582681114492472598577935187186234483393641768916764455954762374612721983968869436761245511536885167956342226158624637967829517992696129231835686847534226165744993414436498767441183414929483772912334863747371279529811648815115248515678496513554435478269658161992368218658893325753568423228317534443117996227682837569779511353687886575186744826663439489314652329875373946226862195834754118121996533726347823112684858257959948582853475165366414898513397182949124352756372823282931249958142143467542958139348339444438133226453185381293126749773195997228854153671579872454411619119729694888245283168113544594494365224512215724829638963212551977388628749211472344231341496372999851624423561684186129248765965838889222577545944454468224719182961872138772355599934646196894989966168835159498381654353832239225632513897746575539754127249142513643833586243585459751464367427661843291794942487262297522353918993192971464493117236877991272161251356383632732444911519637623747663279432514747137277249791963728936879939393916713425395391672554142844773962533765283623678713217381557853985251678829185855165774728483572995952744542926522197469398555544138292655756318416143972615169472292345791339959653748899495332559573142154859714178867696129254219313518893753169835594215121321251589278543757621179389671692626554471224478229226943819858918544781881237938841443633517497342529697519382176111362522341864115864524433539138154295328414794379729142395297992412843673853369139934153563162292375622816123824827223468664683719352441933114585296431276534813738862954265513922454561224594766542626132572753888344345584959514775468514678967671994552747796153578329677562229217652725494998245166823569679589144216745933757353844279146974887317872264448253346753656243522252928935377182415889244757119224314197434142372769673947647558878387829323449615561765428963849567349369593544999164485381564519244151999333532326764183138579482787776588741873437835147884722889455994878754887661153731912279924513979753141716611974973171972332529385587657217294689887874996136164423277886495754631498787289885326423991649215476516363872768371822111254264511159576864949867847957963368717612658334626592275951655772532392366288549198225691664232274393538147881789692161116418436865917712589557516612692143985551159739867712442191251365552996991963758528553561665689934223723798173714558614659127121431612871678748173943297198689622681868925698496678786586344396354441232681429976655393727236762114126184125992556185356858425525916424725214468155589164895346837378658979395111647534813447818636399285115524577229591834425367796614195545882593442414755272949599899343721969294334798215397147136959131126135466726536956758362945747758359784456819583958873856339994628687122692539624481675397176447395997155288159498454873581224753332936444248176921397545555839152244778183898589599353697289184217674473563499349255413121128428175513748186119125456756858689486836119817517498943518173831768242741631461191983233139292367982156127244253241453644564671377572173777181315338583939397234969176244742861294132425343965341247751134191228522654166462775887453554853874615879176791877345189234618874245612518967944668155977336913426876916713495851556942764354695262752223461845991483658963322737792923258233721658993799911973642833147851911965754912892898252335538312293288762163242432336568911631841169835949353484417952842894977874756258163311742346429518886674948553359579643867498248126674967792936883856922761474275742238796899486651252317344662245446125794521286191321945291324757258727269276784715798128148414238999795512179449818619422263574373232683779723683453385499656963276333591451619743161499363849255778826851822695981939854248153629312886867825314385161473277528348525111792222431846983199831665316817965277311294872181964129559149725332842861247345331633567561333744938114227751364436572328349523916726127891826349796827659592882462963542523247916598253292389425591843985218898447262471599431778753141659438373888125263995863747941996938744132734238537914378962941533216699761174825526942637832784194653438526897358843916678755154519741693262887761952519273777228983141346425199184224131397118796998922664162969471674793493272761552696912198925972342571687762716876556755445943257395354938118784439994337821125844269453262939462341673454365838135971286388324447495628854325228625634262973216935486261592993765227523619938522959655694793958578231491273124228263622981286923835863879182493118469558656157439815183191229439254219854468181971579787799632557976751186995981137984764627762457932141638126127716272533297333915217168859551232848979298811111522227912847848932719628419411551652342424198999251213952882736881924956355244158258343431594173263567182595899715529761711227333577275334723684135192972972794942758271542819222611617794973367431248282362263333483162548874495497115242358471698813147723152582283795929666626416691272476624743822493358811441989916153524877957186322292224313114798948326812519241259261682992369144965445586499415321388477483396671925563992932344362188736854492593837236329433757856527192541589772484915757111786336936169117885114413887478545167669255156733234464742388142538384198683266578894277396298452279578236552998778195824334168375122835578667435233514837242959461543889645477779129412115319146289467221757524425355455976878386212833717449771295639226693529131213573226173192654565133375387388635745343541685932433741277986748212735988945547679844869648111832995373176629376261555498299381479897194756674298244572482218355235834398756165977334463582496829382611485981477288524762819581319469496794731448389645726764784628548117479524241195656223581742685596233175488497852564712774842381883299636474258314673741234352349559412948454274531894916331344388328413247654817886275787721159779619734589858537954412174279956896879126192745538779967284168657235146535718151826713421736572284686239689594565145466347974182341953811669195518844576264652785769831896785145919355961316483947921989568161552476862883329613484472327123267393868956288237466693734535641368645449966769595144226658123148912445341816755359771326137432122255777657232757513535147769971194551326148393853295598174962969324445839657843141579386782867788122694469242455392321798973642453512848752885314536514282455689739823688656187539969487533979843723179735343975872719551658632793999962595782268338284237889959358244383742857679487891588574497111538892876534572259397944364974126795873535872986915598924311613381768911487675255714416736886123289869817564978439768341819529737513494138326258934747828769732482721923855478261544226982855982153154339765571524735323597885179373796572918948321753992679176994264619799583415579668826623212627877647594825363238119662881132798563122593928141941815883985154989189239411324318397775963467755654665496428748466244739955729384531179692475219733184979452368622617577514924985284572515531482443189648831317725273212665783726924877768689461877187242699872463751427375111287785517667545772945986514124123692931786548916999587248538729988182959694383983831634375157945843847897136413686638854468253636829587299648997559244688582645215154773626426152875332181333644249525866518114189513799723977381242618258958256216465336524242265326131826549151686217768173388619213284647631588199755662879739549768121664722621586842828782735711492568739981938513694463525985924169732629612553711256487885376661544715665719971984423299626172225585949421398396547846697214426864257288218836489153613333754339644362162954582595746977232555417833149223562629284669483536966749932844191351258524543684389944726991418524548381724883219293475974913854298925987365575484631927217491811592189615953582733824544283363222329279674821983364618926341552573589456646725149599291624758916254287759322725664673744928818324742416448511966333587888668591754984526355352874122799565394367755997522146223434594549877293967556197292713945493837613423718443843652732935473646315646796531814179231224651915434898557219189486389419764745178566312122921857476216272535142887417517699674411821547691194262892642499257577669613361359665654796936949587243193227243199553823515988837551749951664853697978218797581135118993158434793389199958796699299898293945314521439334183752662559369553972224267289587752717942877713919122447155883556636311487257347248482985464618271891849545279983721917443794421489472326744532793683416675926155881112775927185343584142542247524524671172779393542955198391841383659747814734187171571398283311464438128492781497445464372492438772572411579698242767984123256933979211367226949296884285311993289191126727419428996395835823132931931513242264952582964445657731733772895112386534539863326989952229497897935568811795927615599699639318999445236295695354793652614534213256778387756171549794954385616922687395169776629598873312763453491231637583244992889198264398637749792449643943229128945365137781759783647832153154847364775343318266439213226412776512778382521337868878989628786336493222363394981857644595473985623934959379666651225663199487758131435342298853763238436365931823855379498273449661494938422413677214944859983948167359282432688388782956954337933767686717865773549645329542335599368838514971214277688542655114128891541837757264723565721112423282235217882597868124675676797125137557225374969761127674344844247882693139415389392958363646959648787999931458486471297459145917886575477593221866975529423823681237674323534411197548478649996819666997239679588232878732622292257746459316254156142814965174299863397227741136538719295612921886224835498491953723633183284272773155685414498579832239347753829124571912341997861982916579851752198298321319195183373728794668677587297338136644759132881246913641261973686359524526514517286541557534792416367719368619337961916659937257773543367228149725725361162767434777813625418379842367353438161437217478817534527533268591397339941676355188548282417356375887881747371869613521651475983471258223848824774924979116595731745657731412778269556456914476441995657697774689445988579915558547913662349687631928875665119853552718831797459441226782292276322582264134858792713472589696327366571784168837818235374143765499936114419273862775283497663912995695135943228475884133789988287636128522733651138449618596423176667429581745648472442282713929575396134217661497531748819119866475888398953183735898678678564191588317192389562932787645489688736556254372227319477131567535397933456774985615542345371123641234459936324684247359787789143155579362884251564199167835727832378395573787823232937698161642879697145312994215397857753717983743436857945355774449113374852224456921615239595948749165441551886576637139989472355251684637716263825527596343457852829272833448619162891324658443525431614836687682661792957771122554414786345993268227311987979114454723456745951751482478156957392764897462865831957983898494922287476212387869855453731551752969696326444119984338581646511796555186518818816248987149591559115512153733614326114717757613613163257439688919529879544214455559774496264955895873736945471836692121636131591977149643279242719711874475415392915868174997168938115342772392382767565954659342242675741851987164728393657581695742225391298994375194458196254738749378287976492899234933558911785611428114644822735238463163231579521422786967239631467573785833783714972477188942167814172544612882379415913815892572978223573662878698199368857915193914251415572442241167842631139321524464911144257244837989183193944289679673987592773462458557742269116963141899875221246981654769559235348218194694617295251526361363797618316665935644258299735752129761482947439892297825776241341217245239861749959541198612635646349742537692676539527378531984516471523372329862723539372371521247288415637523684837854979831834552392755416654936611998889863217336512941596898448537215181391934683767716494138971791298228212568735396824237934883891722622777539168549852544822992162134299753647482366519781989976178486361424243379821699686584181828544585998226187955824461768749584832321232631424895231296961917391412424486418797219238825715433464585833464233953765645296648974223795841254437614177677249936456516188993345195492159663554187638236926248647176179935171577349942543956719427924816423469173166211415975915617987538763661867577417814395855554286952328394951671361699175528836322443262455413538588485826699221253569594145377225963444993814829265924427754466863196395675947853344675359786461561299555849524748115539598134271289134517469623433875724526844851653983628581823918571822315689744932293951923223159121251628573866174378469679774676781752598674271596333171947414972936175733149188721928913543838111617271584593353343234378551352412929967395421653956482236262281473268988429373678296318924941188494182823751917826346148532648367776857111111772315919751713639315888578588556686276932112464293671528365111667274766867993312677619344844999517983559248468525375298482862822418764577312263589198836923184234989337958173422319293783882293581414999795926947945214482511858889277146437931625135473523487275172765418119261663199341579395793869498218923178377292157976445622561361162459276986191787432884839955951286194781289358181268451345839736345693621545344359184127588362985445796749263487385676313148335768238791697845562929541745567133845514663357713914856921356959233684941264735834217798724418221588862777241622842621482722444582467534257218392553582653886244279922236845664718166221499822238911233796252633337949967758951851763833457599722415381955749725781972116755616846364458712764132928238882253737463686556713116217929798823986611878423193494994686555225523974961793911349529977422943484782277246436559411298948932371747853667391845775794587489616679363618337212787266694341291757573734555375343158517831849895652834289796221525265747829719263356753522133265579954534494319634298441553859316282543873313266564397342527447956198375415729265594218459983686286914443714629157468293192251867457682951212217854674962176163896554549659861446792187285781959593956811786721399487285663658417782472539211138167776232386225894931264174185982648249377889359751767164473961124738755532567332497194431626627991664126362194233832275245787586453754379488781973189493962619133397635572331236535564661711613843685131354266828354718679639823161574587994574399659427471351567513851549877395151192628654698348623666653272776765836781949874625982545642818575967536521496868346489853933861357199651581266978596481672958183672536574489986836464431626413669892359786674256792134184524889859983861527732399493781142428394182457397979198148216111342161468694233918918812532142155261187857168368148928151254358853852536232856669451366361595368544786287373928854878385344751513862381127398164451288512877727194222322851757982999849936697396628749724888576665448331889518269833814271838574127831828778574467646953145782172755836584441876431935328687894969541189333399932924445213872278912929842169952144477887265372163263146252237349676355969586682997192715927541597112516454123292911972452195143744775429821931219217341451853217584925885988888718422456429731378668156535323192834967599461488234948582913292473679328264292915398156346456583849761566886976314199622256614887853998565952572971833937697186769858595199246333314597257854419384143542355877918447153737167185488732857324124857652725431238666438592224424798444624166977833465214426668136871132537934796141552973648341827821962764134547681778922744825517513668851294753829612685157597347593387496752944884941546286819558865593268342539823966574165918784223538453594586771328723214971383545379418756313443114324611739982418348223734977368599951924812942874585868254961729615696976169146584961884371332282659247743645284579557874887916169173645899316664618485673364858855919587328973234951427753937892492248869756968363314168269838856879765629226932261557362234929616572933854446552516232344746685242335529852487647159273646294616829371255494147752668721331699372297293631834597653434557425341461279422415754429752186637152287194136256631162936125686482598297489995556553654246514242281199838627162796961475924338456455337998693773367394785217943577199798548715131769137647432578277245989768262247149892535572398991498364279393996875126474592292231956363382571967559296445654666669295423459554199998542996352818827348583427836735568567181262142766514755438999546482189216318474815388721421463992299119639566857364135265212492411311263298782317629136636666895736741941718739589482135791261742215398369242989926128577583557666285911823999782483239888233898316896777166135163386364177255175554231826419925243768265779277622935925656548951236132518425186378661224857553654257396138545153928839395958214618346849682187378961981374184344167741618717435231217234622955361124175944676998918621972157673574971464722419288949135241988144442467847978797681583996974788121267831628486945982281788245856972655716445128516624692416881477532982634936777328777827485431173272234626282814772452181523539736858218735716273327416458619583267877639211727947578214863711816694466377348932678588853124215773198625448321487234919221431897296867491222159752153964916176786272811822825871984271569166635252332392382869857264111916668173285295333518473188488478834732848348772911748146775692484756839763549639613496962411559833416362525467337566152283336217547163214659372927522731862572325921231585521712454626513641751253265223663633767118758812886982297617874236491292966757834432542192878181618638714488951383535525791599459312162498384322664116675614457466563613531752816217663124467194731191343327597298764975319918482481424544284883669955475476314442573726234413777662199636256589726997511941227972971924448985857346196981991577774856188876451185684371361427184468866753387385743971986927625851736391618346891286185677438813875594455387866875572948661541628157493821696274611794569593454269818199158665915975321259485792682481385952541938469464313862939157285678622715539476716873964869576934895965418354813581686162928611888275795438729158115712893543621447897349191915615276444698851884563186996886356874497856531518854153751339964531878543186136711216379493378621617441748341811932458487515377436169133855936927153891541167618214117482865466252431384479939849259876153587193335362698581564478265869917727848254413261316643458835835495168984324539559924258942313852357145467819853844258942171346561274711391175459764557654787334249611628735259125461125484116331271132894429311747748366667388315317596827657721484219755484213633362953618388326636592948349511737822273899621273823815729679732413529688641657828119572437399321661538482346128818865887515547583544362485985776542929679122771824359588876443196188945947114296529467145678877474367751452769312236849296973629145719844919839952636654242493316876759241123927271634147277416983547459362653269221524232851557782427343497623434576998973927785816641779439573928417294484152543296154987844125855564913497542859455843536838323768958287831915951434777358979235939747439429894846393827713625117971693534423715335515275536126813872125456726257617134676167658724935479931445216997354851515377669295987132631121845129169687253152549341484584557968974822446759894726855113568265142524667231129481156566713617912154418112112951945691269321922126355266366549544982997839829821345861385749774162352934814785818393321894761167382484753122593321651739195112629656112313462574538699598188249915615635951118359118956755568457817371856755571471275849285929799526481965493431446721638229988839467443882123146727789481389261197832128221424185653682628434533116216917958357891958119852294494914595288113772777588452469719988348766566734991758474529589488322187633215415568496647594432253341993292642997826371928351465688677787951249811447427242388745583351955158938962693317434297645871866261963858896227769168823499486993987252942553228234915244272761848663647792113725916429836992986731184663763934535266949638726297386652837229562877572424285794432976268779615792348479797357688786392178938487522357327933592469997194875624365389129893952997787585863424639168878848234322199647222443716612498382994435424487988132393853981619817139561898587499528793989959829532487466114842684453541545417359497122733115354687842875325941879571644953478637419687128511687535598773919762312261861611658492741617897764895129996955921849923973652328797197177562963147938215469691459158766412517799492212647596532436392731871541479498542392844986596678745798726664428647721118767314178546328774216969642642416127524367878655965551423477617129861185863628125469491737476187863869355516497733662644372879655832755215743416662735942238174566622132515745392554958169967413864967116581929155459265251971165452252891871685229134538415521964178247224282683675928769392387783416127434692859441225145263732972573226585761594515128525787874912233771235275536126767334921492413689592119662253739442743862992251919111975179341275457533623826726727613111934141475217478559221792443753745139175496232986898866911165438832627957569757236112792717139812962757314167789399558619422392487552263477256284228188829148166811937274988496818696476379275766658354643471951711257774792256611435899936121172196773131246797749328211721728727384585619279852773583544615387915364824631415672828263523151752266558819958316486313554758822848482262156986524234488743524617445552756354884297424288439798532976152675954363815233955834776853466524118424694926222694161546672323623453893294714874368311877998259385664873253539855675752441356384749126239573456714379423437956319319732769983664991821964758278998969136835281578561545929626514399393876384232986931421372722241269446865277265757688615776899895749424732557922689449817485465837768232276868926941839567193476141944251735525119182937726963466569774756387797686788541126362918776249757527385753695597122211188592477228736311459899512622719458574185867577513582542682763686444743237875625774926975249388921385597384645193394981384222913932471289442852169457575896186389426534367442557483141619217835666218643376411248352393213784251761523849479474217446656725238195156429256284514237781352855664168619525132472785453477652997413253114497634711245473136226857252452781343513625152354965638244378436469619862466589785338152488122656516592528166135467251388189254715343584299883238943971879784253577726245224445228425592461774122793316728952553394744989956457526746317992146465749136921555395758388988982628182985576521849495222928817967765753399831823643955246125611375759869733713977372776277647763227113175245442158226743496161373972279682216421132695835439556743859726927458461529992334267731816766458983718759648861167838928584919717167732585351357949721567958837423286243668793476347274969741472681114471138365878596783556683851859286298114591339918163622895871798396997335367347153394474851829638237759285919613842378553634587391976884365225317534388642979799786364799192532364691444542411378815264264216432781825278298335214521926346878146127523233156555916817432918712312153476661126596176717888668678873119656567115612282969725582359559414969668229337423484821946891631935981792623354572853947526588581979948119433879955348989537376462355966887165141564353294831466582176555369664619924134416452188286731246112561442855285639738645118122623667691875373835717461961771922178747834451634194749735791783899763445679732132514377736894982948373749692715854289963542739923731193843122497814799933195996279267452553782462831733833323939746471635893949112273465795978842489433822195914112356715293986214257328437717217432983412618229633455186766386119297447587418361686983559186786595248886516331379767112819577127531217858379497473164254292983625646311937977693898313623799942415924917694354543463724883767796297686356771124349611878155625233781415971872395145223836377799967918495472591914526717325983869558387635774774225685416793178123841514979346748216536115321112475524721644397126669269591699737179549613923633388284143182944659413463655816235134446635839174114349594874576879213776247155455778627985432928829196519213737293954742275256138937477396669368663936144658151853581229875782447648332696591575724844711279223886618767316353835117478486496673233199628354436936672529948495716115856771123695162293176826386985461937938177573792988561188675192184776473231398486333331187696784161617919847684316438536285753248118888762429849473235832317512321198865896779717838312531172193292977457923984676496648635744953949785376665822559113765339634927985412956337472463648262133434222641735367995231485392394536848983954479278689638146165528291878964419227164126729435966674652548777788484785446378764329674737594263991367792428184515472744483899977114684724523863398562818187985675133314755941279116296983672937431669845448544445853531787879523579562195849173566798777555596752597787269176322881757412742316455224739647257336292931213333867468632584299831551644543875141866638786196987922175429695218185657425135622314511942712223821384926527877198448422681893973911412842538338963795862932239429458443675497293463757941152984718651918457266483656441345523894658648572277715961593526877267512376213329991577436668354968619736247578567514245712536822672655378815751311615175327898166329746626982911962478899477273793767228815895991927786624341511777397167557935126784346658689666284981635327729387619265124879487865837358921758517523824211158735217832724798548271562883887749161742824283836644698876263837724697867276458122482268774146817166742458994795833958625138598314877923712171653737698181841659946636896913156339198796771735618171758358554277166944511573934741616531385791397881231277469832892434461831859647549566212174362395732714798641395341751968274412965945494168287611766751578817914396726232949618665341487157837265847359543383158662588293875589953687521758963819867686864311316564225189885154831687264584614151451959836341723772587835275688534528411934995262319982498747699942771863253678798687725699348142298374588745514462943591425128237854292964524841943282313824636321631635177552444763974255526237281253759394337713999215555268976889245163486266445465819425112699613998347853487822393244644893753153866541879551671883256626881184469823981845881779183644233131466458736619188254153416729923968692465925733447742162633625721579615186468512285471544886247184944433969728946373416783397996499733929891774319541128437237657529721599477897751853685497162614564514551139894967136554269319654994338441329516217763177998753242675598528568979745942732596818975424176911817771264336376747634165471962931716722245862346998393631735738897468672947261659478642614175854589436639245291236989159456931288221664587917919518592436128236946912351149639488337471172874367968172185837876698435431698924799417595188865324167598556357717656316794471892388837572295866532141721157135254936683692278739844895719422846228777935153824896276547477559272948631135426695392955582347353356118112533191531525864197623846545445588687739871367666437511154688126884657534569335757497412768551247583235571493867597137312167161798921468496672411924735739534594386421168725955946319772624953481812828799273776396263324618756836118777684951689295426786559132722588247431489298631197542554625664567119237147889998543788148513759458361164653541495753466216481325151147511654683148373883522543947941571535993295823119341485677262318261651759331431465593959665784599654628541684539167342217575933887239174132483379113213869341628431337539768895795915289113275997128771737516975376794614831229711686759589967594164324795616686643317145142682186428777337894447777472874143241871547261848273948676763176279356219915988895198946412717234148668548147816314198648617419824679424336896537835688457288159417459671259791483841765483387227853718724693631914879317535247922282143393664645832862515938629737922351416761353338579872633515286312342827832164912988941382799429434525288493783861765883852873726266575323581767724292475553733439987397544629382581628163345567455974637188116264226122335771415892264962762277698198221688738117222617773798547346167135887586218359125284137752366868346894593338128537931696621396129518858279972724425464925944546585371986974935376721113515948587914892589873498971971239624551251549787664794689577588451696719853721576935383239877612771241126398444937455667445215361375386814537828643188732241657683191571923594457655427531575233443589571831175738279812868461614852799763768231957837913758719284463248415328312994684848629547764977727249869947315678541383158546117829795688318676529657752686296787646114924881333387962211629387852551942319333551155266228135821864858178912257252766488181652648913719599624338315842559525777567737787647851682165329279536182865523266942119125436333285794879329536229231122563296413971367188931533544556612821541738853651343495759113663754888861645989924244618518764148427213276654554858218959735139959661787331675151861655527928814759737459427812897853314995775241123748788379557333553842318823723187755672426248384657788459739827692148279793521876533278149931679773589458699776328545338229277154392237196963484336769571587282522734333728166478955991839657898851274455351887782161244917676451478713237216863968882272838474419279483292678955732948922757186914942161326191554647539513212812195391222729755228852692922182382711721892876387152321412519728889761749826444148269299448311179944928789333637433251184914912795276955876238761885983364664733241645122724589476955381546898123965577648977923618926168558359546182635532122472274768613447391887951494415642757924875128647615499338668122286967235636488148578499256957154649453824452256912741646339835289224495629845434596561174967575387616178961383743388385679227645396894688727982298836483394167586175423274962972864582712117855462793921416494588836997118783318487768697237584357956666435655492158817531277592386852574838367463244886894554662256383765581227449728396641897121558725162274716767497149939631676556862168347714544147131193259794379465199868212425227216321289697433932727538678279781312429277819293264816672589466587618435216215421712368527452999649482991411942913138979513693466394483432515795898675524874918547876927168626996753294571852714472972677428127582792148924184432527784315216854913117819397538581247668978542933234824733475324346882678432614827218562798319534122378112262643462198267178929222447247363426741851665253944966999623448579243227263688872268746618942688512723538787574688453113786845794765917866413761594884162756115571979656396462311789285349959386483448966592532599518932726654282526393841993253283875957512928269779864952266575751356995986892869745939254611265389778266746812676158964333339747714529173763821425211523755639398631547813184225525666832393222185138718926327877224797835247344647417297729396117477159663287649279898559478877614328164382135952821675512398858279185513615199272238679698583319216547797396312424271941777997897451121859361492728712778567246879962945852892963744821656378754741824499687674947227273698573945927257115761254765572731478761243857656132136492858911158814827192667269362992175976979759231831195721656734731317794677581553651222166737111121791157715658914914121573373385355449128583463654964911238566889323225962287443737127141885374295596981198833195797499477893123472969169842941419947964644845982176173846949979873658112485783999596771373261156212113231618898747394322537541152251463413391165774215248881996911846277495511878278692479468958932458178527614421271317243937729864661413163413511531345427288154419559756976326368481733441256687431495983414131768831274388845487426814143546522494511838512149671261574828479518848722661854712738774256892743525396442426677759526821419572723341874995553337178659781646717921196586942364871635614557236837837564168184569523982247959532394841336144479321518632415266486769692285432244393156287513241796655773214328547842461921234293758235435757611385521511524943297919442827577495846887938212422221155336963712394882564484436557552974571731759237374612955598254341586669634546163423516955768183131686547971487727867552127925127185648435463134819563665356768476939752397599871826172596172827499374494143929191597736333424153971418712993892941513246466761957987757957236421471673219885879567243836548279215263583461837783496687322148848455612847821588736395117199883628178352923871733352751351238591397121213489452777741866878627646248357586539687369436823664327941665414955913647661241317647429485825229629863629534663237859888379791742737988731986397173852588557622673361134132659457631788523274331546548841916941613661423629941984548433533126976342273445237326679421564854451864981224646357815645799165498575863984236759431894362367796553929317539194136115341576246799182912554352755356771627329899787776922256421845412463184963722598181195737729259395594989362491297217669331335253792181915145164884459362385699969168168552857335768784812372367263967713897529875733113239355961156716184735622174374586412887891472979442813811337675315384972128115938217497418165686915312493392794415143873688237737257486516775125538795953855427232869419975577828686171356787411586436333869441398895839597246285726357543487497276758598311938381825667914634351916755476567486467733522985319289754191746364891563714991411239293413575192471427587976116138937277424913148179738425925527419226946337531337399131422973612532116738461483122125166242313545655227964193313414819413542886242643348537766997376227571647351415648492167757384895432595228259613441536291829398641789191915874127269888969877632798698788265676292169856723576544493161976324942148922594732284513828815537729824715753226333684956736378949831382667989592869244826433326219327484181931115838299833154754666314511683583964684656769135572992451519747833392657122125562652686726789373692656367568914179137718266284453517143789569865778439255874298458242428264149616539355731141884788728524937987529454726829797155935787169757499343615286155761243719416372111924284693297773686847887314514586813362571336595978655375525863354679726748477874638155517983317564426898736493855569118797937573814493255794979434324293775432512941256524891642954263549972132215229761241294498625868855857178588564567577816767353127613318157892238986576243866978739859655343456234782395472178841826771193347951328457883999772753319328641225247961657935793967178998752774377873837529188384981671545621838525887548546264561628662923996646135778522237582644499581779234737284934147784957386233399212683291483787455739457868187198146264393579214666511286184774587112422677677844583591298566713413654621468151499648548484955385549891836631669513466294489827351249222664739679826425763545259263173338611557448179545897222137234456326361914891745123733936648983514238238517671982254536191978139543355995652638753296795772685438653142595658433743313781947479235437576132775148378446339176188432268861148542358192625432921763878655768491526325476817919976253928384123174685132712592398994295923315522881283453582621499718319539961148166299438588528499119952857861656375217956897525525411585269225831341945513265797247384791612185218212552867237841468826887975496395451526348822867657326124552161514556179861946619432832166273223677174958943693535517724331542798494698493742883433114436379458278646485647735958248571198943759413941484156641464212291984258187471419824477413832942939254152788728581927658839113196929314472243182183847519591719391221557661969966248889739798627538573349236122735513385244195757515828741253414745973486785258988461243257477851247375842356245971884298835419522259643767472758746146739279111326168344161235998593275991891912428342737651239989395793782863814637891555567456375744911276456729588433978514241613913911645215164886173934346295585875729241746124621894236745384679242155927528871961272745354511524618119851737613631894338678629881689554536387649638949797558436394348692229873635539498144876415728676798565738271119813279729291957615351724541551429537498316391951576548892835867729458378997983939572252334819471315142921729812858973196476312233645737798788753551849376795917271743523379145388363289668158875838289395399837653861736532417781597437966838583779832484514172222865551133871157939967316624826111546448625529311217737398779278323756517868778878651278945852673946586271147835589497271755823216755362456138575414932116687888453888924426163593996995653332157335126547153312681189534856951674184628233543581697459724318366663915737961229277812783113948594885367964975882663741951233973351786372778246492565448462758984853578545458878923467214378255548786538963841533868678894619153919452357629663758695374734648729754988531586751529837219564335211587331387953983876586542755274222955873667846133771323488795217392778924617219466587835695115834891682942662697235917466866337717775968924183795276822497921681357643424831181697178227898867881455686958966815513423112877546589946532326897357579778855699147941683613382917754519395644647229267437766956621851879332685396213955729294754749725657796224835928479399764237918552222642115516344273138532131875977949241691235541753585687763251855778737848282256314762537743717183855528436541962447578242512128484846679323418442989713852153982265722652872616795775859143241456828982268429998365641545757882464251376298987893366319675363598714731458157836153672539964293973236171984657252329462457767153366873869225939952787932697393528115382293685579657349498217458167585594752219964687625436161765513952427437322689331753358334874168289822553619531696821633818315123895939289132281762714994814294373776685487615671751148428738166423971329168525489483224185891433531652558399738666877276755788941185139967829686153769325892676685287172853711225491332799967425833531616876897436467546533364756188148635215848474926678894168665568321832315932234899678984649295127199219692724194959757121139531248958917179578763638448432473385289979766693468732564417435663161967943592738511656196828274489485168317471221286784365163311247634563189192219688194599729733495631839848949896696845716678817368352135818787356939399966746462385497978647471963893888452988126655242196642738816284928117818354877977439692372979361161741666943639373331467555461577541697191453379482427261697654487346955989216944175772821484813447131528427922338814876824295438141293834625747427894485794247149157231581165796475713372585288283895854958338864334642799217915194678864785569893346395214895414751645813459347551181592981421786748329545467123111269257278255729539584819411712627631358163634477425794745615866529543459692148789258512972446997842185854958725739689776721319173172565961732293151918578417314511667152124123428418245886516957914627627129351199894472932616397548298911835823812139231371899553373262243615995197919845925769995299314575953452133926596863861379391546931365477668317884169985994857541467894669378157453242741115858895574829756652275599572573947736273555529173291641586733826698315569892898216269218771162622433887867957656372282948934285337426283876531947154347931448861511129296748733447661363396262212313323786568793448574712318538658869138683442686423783913754528394397164387356787965255421771599939524933767235831346877854813885645128374997579593179644923392655246964352888737124887378687752266652977164836538825552499154369824912526999642324777996812227298488439127971192478268647759458287939731428436564368932796521339922884925657394521313572923946846925396751571922852188289584967657176741797778853951778716113776473947916574458543529481981157785178768326641485635564452456125622387218762789142687932276677127156855622789693851553659226828533118669636595779824178989661424613379142782358139436334188229571717721877992714647259567388235315975863653712174789525354165686962557712963269636588193318856343586266362567429967667886661194343968483539271256921518265264588764512855671675267326222747975752281275632688214845547699497872979996558626437719254814643339427316751512244825739111464685526236712752875246628628554812453966546611787191653413157448673869413963139729885125439162829294145339432414382683125931293923415828861899317466666258278568698171846735655481957563378114872678743314779227292856174875261337282322779689299283889257562583292222388236156173341355892148368479517429934529854868347441266813863495487839823198822556673163448676124797577876668813461676819567268427174851496286522478158914519352959333353861412558344133483417492324648824854997822124362682321352714485869268939142467435647573542879456362155158285837372138272358283819914418226698335326133158976246136366177636347768461764451964566193699351865641477332666753199717856789866228346968234798987768443191886597429896698966765541373573651199829799358245712354271527872881762631655469839944362494181268223385339866757541966986383288999227649625279832817415823242831742416366773665745575967272454427557974541796279737323139164485121817152222748619332534448776388368964176249191114156388166674519395693215994985389728623281629548997296695184412373133341482345924644283789139247459773722834436789997265266171716663834116548216115611226833993568742152685595194555567149238474247451519958446781226721643579793427567441165742854435488625593735479914921474648989428261728182418497788635989777627434394292242971749493991858518242571979183279343372561536376181136123922248172318454516933531533244436559255386229469162324366661993447363889492337232353688334213556271358287319932166314945356591918143952572564768489682217846947631825873928484223979299883466128299686787515816114923899146557456323772422913512893182186641375885263215385535624922129673598167573792329653123495515563622518265534645511891241591136397457263715169528588693641644254898514864369219958716969923337526366742167967952632217118331982517179285861456618738339951158199795613289235775536469264358157826486683695962515259965389175666384752111596647942836464251616244419618657321913996621946987519949889644365465754225318817466459347292637952426848358247773417339958191796846518334946724854577462261221614354177472133417754579595617667973479115117347112359318767423119356346756481171295235881532823757361836574471499812289332413778494476122358387378395318458625454782284418336153772212945717241519627957779374532652636295818968829515272298551595768277657444225965471489324373748465119853254659986134146463636561172155361614512214616142314959156249675635986296446159179565469974931483871378812496213258684471852889166183864193613727675912997174979677853262513784441832929636933979655879929277591583675536127314259646537443193141387749342961486348872525723925943616539525652276954184565656241499143893357564968267613167671618612781116762157963632737485345215263363849844629772954772115514131356628493654621714962272631923157698547692153923418526677779163623465234329521762622279845731182227639161913978139235118581479681354268258555357261762619547496411626531375799425489539483912552513155172542383621662598889933174278765819136288244392271163469686443833725333957376573488714672215377548872266793339677447794893431164851157525758616349129319641646122916768323183796618437281344844945419231328688248971699623896389729631763421234811879729918545416467423764765156132894875528967584236482658253745833291642337176488926982796861343562526648445873564242211795618854915668382868923337347216765551941496125281882215838558915568653681283592689799272825616153817166164313461331146227687382562266762193339341355866525252388413979177491234358725477781919649846842572583817679195664654598381755992141321177876433787926844828428412443439125657725417181362282933166318191554334665363388496698885414314268681146572799538197965315635851618623259328371179756276537923173733158971797894658165628419696878172858927596851666227157917484381476257896471546257843532279598534158837464327922686848955994655959723458789569628211995474737323284328296933985894984429783514712943851454742112588729787937297482676711164375313284943736454283331819916323733941444516149557771761649262434627651919513557234218253178111573227126157383195524329537337464575275871599618248579422154779136543129169829733579419593871863426727633615476614653513889875116668339589926686841291569455844591223971962421994123268992486725837133119351249642857647784446838521822645669613797442928443934766847819465325684427429253455811394974821341798139761585819289228696986919978771746883364273283953431129926883857435661177285479522523425182367998455451168685546788128426642331276512526375738496197838472594611341382919571311819581328567836951988289926156137975815742434118995713694218811488877442473864553924373683573612387122357624867169487645882142269971996756933749776339718822938824814387969242129532512384486257537864641665755618658876124627371965419454839388944721323674311416836761153862764136267325655684177643736123197591916637982548855418771383571229229772369413397746494432678791712668784634853425155597663533592557326678153293718247893146375329141698493621871785464677293624528577316566544613948395814265616454184628372533726545935341781426734986892144215769241664743875346634124317737192126163546712136788188519162871171677821489593961778619514582588545227244294488456216156595643485817521829357192622226755228446825566558464172133343818228952433978533369666768882262974758891198942367213789667773968334193112995111722988745522617539839239337727798777651192252894776679511373932818573571686855232888748755957127864121277753165343216981374176762163979744959473773361487785351446543416711647714139168836359384948379848892572865861633267295579416289977124319685748853652119939447434245565432885678934133126869683996442764852318111493714379338427141326591721539569738266979821525435984145187943915819417387339661168353851544733224244862684448534368444577759161374641798122965481324562236232268512581393388726737172385797812653791619947718279876194563143296455525319169786763462798912231764296726632498975211379161282157565147689738625134961977874988635148886668519813218384872359193515383838689569779596973197197247664847695549326266852152659464921494153597427923418692666682982922236465195797147796952619718989111647945514316975579521591378277321824374694282737679628745442264246572831259321988948792146352576122294328139226821789883518664266275516428221811877766996662166584944564286266243999499154251717112457865371894183933737142113722867533959929427729883596685867942584778779692363241388846313196244511377337453566594477117316721261288811535781349767467286767863871751614271294161796393968544731886846143252568427956343176457534118622836172924617221338864616916767759466556897619631416666266723498334888467918861892457972544873695962616497172252397883146424662158227846554768887465778318674679489173638983771417864695541817746643815593779718475834278357921564745284469348286568975698381435719128554376174739426775693526195916641167775137978644194446844444918994761164741594994328712245535324681685969918397628498592954465822881376266895556475215318545916283119726315768385895224958458956266127647912839298729215848633258751513292275285955866339192316179129228445863357743256165275782782614448923148811136631158526693843276957361942144597592344892276382887593687671939578713172288726994652999567459496265463582343842297386232876815421957295328592691328832927517149133743163922171192985176736529332695712192399319587985657288129278657766875794653441785413214132986642238698153286254694825316314857979838533731346615976497126412188961712985999568956484186515614499369567946881775313711361831161987742436925182513873818871975954537769359667727985165851837422774449265221891678185468551273359783598919987945832277122238344221369159958741123249839942766186912917812576577789763646713219891891662827374952917262732842822819956938755248239935297381452641526228873476298191599327262325466177854191711511559472987128554151736144214244299136234836581985957462761185594495916489847925421245321228667896486133917699139143564675441139658269549197999794148396749741696512346354134113497236888762831561694227521829148751239114277224273474235216119975888787294716922369683193694689968736335715296422468676845282288951583943462993949787479887115988846239365555847826453341949528392813739273666337872984187939668747919837182625391489878669436299999972679731259297174731763382171967124185191929627989155273489475976385884875837535441757175912418946414792274726259234832322452345775245252523136948329451575699966589884834147631352376313762668296175367761422456573193369524433929456121143276733832267118341643576977161278859142157847572525772478964172756658753535272334791836623929283747522854361583863744396597315678338494821859935318637277897255976826287263166585446943722426724495923639935472894498668881462781272443336773842272846725749818825969392857141248332992466256937534452527229333166345471985588241574625346269464987314412849553591852375982738125856285369314563548665143225826391998424345681934689194495876515584235668226218566575714281831378682157867468314851221639512638487682367913723186117151911264912759775475636844444258248253553517584929573166399714527222575726464765712997536497747359416967694878348537389828583218157643383579492255862842789891694248565822741855339414572551419724479941195189513533871115254915441435435743682835212113526816449563896368437629938239471961594439728244186637439342278264213546426231537271813746863778198343773495447154145218884142849663741179513298512921899293376332596513353662321413482391526148388747963238359489627746688383121883679882625554415168736545655634981868928573893319171725179642939925616563833153969921537481573563933578752956242233276814861196488635419594128231447928314313941793342282594316339132751261365324547755994333746747812928154475739494983295579143714895699926487336513732378171252541998781329941581863971777792944823691622525463538826783462545827176148278624866648326451694175782374192852237891612156215623989217526791823592543656267618816827578237218556699755461132812583231953753497157122458451542789912996251499284885139765818876766855459599418786278253643329995578924964894561188884146377276513413899267524532418613339945496646915732573824854724937829358812493754892972467737211781616586625889369366482264874843914552113581516432969186462846136371471538679292298195641814316833961823768578686385748828238721197187364212169687261942755516516324149458455413128212476726476987382226961491613523649121757335954164651688648889133944917531134439784742515483286579769522414746625988138566874432396247468732493881684439917349468981617481628886953376266899735432493131982879364681297676558181221332321497323671681358812791712634865894525782731764545693663726112472812279442317749218454726325563534741675795468368213564185639762136183442877613523668176438413515194247335995346593391843572822421735458947469119338321468658789851396179615616538351396941819683713299269629362287115698689447727847753615531638338778626469121794467627169231943619572117917987322973588481574745672772452159771857295933979433799866982196962946655148325257536322899918494698152655477892633254434324163512226379726494556771193434739979181617578117552128127368631527435385142943676667559175927979692139532615851427152968461257915197849119575516212397243246736335929928865215726845559763435958449321196616278753216172395888523444553114621485515211431718659883227527779817367777719779644522734475252933647414174151995245317744148241414134531935924447877531835648677871224316797131717448421775532328249461939643612345276253695716528564556418669683199613862322863628953584448316416465659671857227813151494323954489834891876576356462591832226453345615682148764399549412533157481841399392277496348279431525354336365285392921554261182144668982516134553644688913112225571378419121466521777677867978435451292184229759637484961757579914112221521376338156552426153953344464595432954859494525131324547872222664758233161413915936288955276332696417614744934426944829436958118557297561853294887268181676476111739575559878256861569616242753735673118985899464529471984158421976287875354181532458445751682679386963486794756881625299158325143638866546819387439748644465878122996531119947769543396633218919999642632525281133362935145835835787741982489492727919312894475733496384532361432131962241566138368897239355388499584687543235969748551476894633561839572785271154988825484846183175112378786789968759298562169375766883761228224879897544549566833412676697497785554317551486178319365834563331776195741778375286922594848161237736399277993512913952335141153826455372961211482686728323327598123558634654773831392223343892783146799264632794824834957346415697377193444524895178573385735285893511755296465871527736298716295345329728355632782554163834442865486357172444592646942335668754282716413545885948542764219974382462991345623116969134555432769895884897368578164877321754828797276565372138824211831895176845652297625626597717789878465958413512263634363943611597323718548898915376582765925163684965728587387894442517999495763158428266993662916156745675141356188813482758847452936583987911598278527782566291482829217797756664514172317826864135945715478944374781811693277561864434762554881249239298515342237559824868345459362289941453565218999486219655562689673626863373272199619563919967935185661987283383242187477374856455721718526745968176793539824448719789532195482397867219171423383241283382731948724434432362589813921258431313275616938155293184365478312242558918592396716914348776696629753653392422883583716673342712677923241483471618888446759839176757972919145115883726371253159635322491314813299562188194398151572612632893122167265175494218355416658648849945662158587816631171725588362255711816654334896813863312126232692672236558747326692833935536586643756381164785344527618951619264538946952321754286756549619515856641236457522829384847897758133686718233863955873267937692314562231944239524991315918668797144356341652582881711382256835628942566429558635615734838429872775822453397169539193476226194361752876196712754754881492112437312588198677733117386436525658487536325971744943662293645299837678211617671955229328672981773449359219875951361393149338214437442463258733659788982794524866611646851624988756634614155442982954648691877652214564979493581675947786764428548975361291448496888667233664516313739859874623391165776833264793176951827189318313679352568847243747718527446266433347593377981253824766499915556671329646334459641916546427861437468323845379123124756397864895641452645152164364529158733113576511665168355579822726498798945695559956869217189241788558341799254148524535243167135979694763677982743286691995597985944321577365347664134113553349634155992618142687199599744857829324612863656725534463346522213234583678924586947373586148168371728974775224617344682385991736787575841452813535783811399362839576969814994236794985193929193841526497895128787275574855744937968598277778456163519794378652257997824571314911251229446381315994665922942432355466391828858348595985179293337862582563346169919317813723944639777813136732713542322584777238116885188669621875196144521132932519998653625792281685936948232371279834185564561638121613426443458342741285532594385346677211456379452451813942479913459279224741685711689984911789134842752135182653521498788756659933918129628762922852628483148941331942993659741936187836239933946139137473456448946628231123317899712548773316199761463564884464444588254484184948974221698135458786411757255539326746695487922799329395118551473836594933624783614633924877814186645147298566725177479646326625277672481246728325942895416967485242389384854675267346776363111625642669945311716539196733932183445612685915175627517189263469694253311792218679329927733858817222432592512357278269831926717417641789849964682496268361839579223391264151418447153877859696528737843258288932627714578547188961644958766558719379726569267863826211977522372219971617434218489899985536654764761711353573491389167521185451726776892147375394299851858383354721389484911529938812876714937498326264565516498278366836127856678294649189629436252824325199746555917815766698223293524133986542922783258718528636988479667211492451665445286958645463427148166112978512838424277622844647433143231961952893211762955318941335647524427696896863957477371393746388639378968544739467173993366785646574369213575411997396412981455993438339676126196725456645569158289913859559159521145698254149867757942876771632636185899383268844437693271232394793381119426299542292528522659939247357278797641759711552616698422136753612375341219154314853694796271531657279189184514789938498925858912518526424764232135864645128729959711342617139232697951463233128988912172774685845539565778978766557654821187661113958425112987532385567575321321515446846144687726362917439551511944528122579251676766598443482466727518766661637213753585723859421161836482344153327475936321253158231668793286418144546168163278171946725933563457711395212427215318871363627843613543152284994434311336497172432675778986366618928141679376417455832729356816696399456273814559132283117597157775719336596951843951251919524271651573232726889965989961821338382248551632298184581486466389298321156118226935373319935663472294318718521112637767741215452661971759591511653438983913546612688653511641596727626716951619668423663716665246887468962912878618864135689194672427214394481241926418866856123254954274622635635256942617228533837355616767229734337487198841124747197672483345677415214987199353962738856179545276786174872797193354149546499827474981377346145259553596135925653831956789383887742981583964428612686355172441125292359545876646794429725859851379594447825478957478241634599526454797478926719537341213562493938398944735395247861871126265457367961433842255932918911526969686382324596722315415295247633691218239489151371799219712374533633456494298224274283954271523775119637946758265473767274136493793655448114719246412228521149328473896786966871411522362365286923313861556132973924151276784475685772816499696897292217675913461837916546496974784784551139265247837461911496855233577569475999661487487436912434661316254642597526354986676718164185799152391843567864411172887285753657876969115781121227296823387543329795614172284184813394612455676535996412611829319637988123578932531161212293122885573264411313454459369479662748294421751761195438355381257321131561545612511932857275389811923869912362412494679295614594584869659875125245511529971328567843817784285799158289177188944537617485793262276985881589374625376913472796813491989938955296633124461449119457435337112521173385612654665489222654354495593829371445881328241485729247686867785827396328221269649544212787565836665285897914766719129286832314869377866556832482383291784813299926692246727856874183151321639439188293775449937325538541613555454363538972864586837672721966499725968754829378759417478565193954549224686522376296843698187382736646915465682292874144841578741285775121678787754258531577431558916526484241816232974921753796587128666869951563659951936295843545499976971936282176179788172334763661247231758856563422238259626882895618673467823144255971922418597157815141722925431937828868717392982395476468992873553348118737936155481926615793947362161834625121557648219677869585691663814426461124824781466315754729111542967968359627753483858129138961167752577438283429685386388974178743888532349461439857475262668443621564686633654449266782837779941187545197452894711378352937931138772281825984464471296398981984752869841338764191219728526624988954848861636925945897748299676472764541593285677966629448395833198442591699146742393246965447636479518567472945275487874327171697557394939234631168855175772722466295497491753757422838495567614212541379244499141332952518267576631757661191814836121271986524286241996986967258751666744395622245225892488192866832486725266488989368496216372863892462878416294919859569986151449485562392791292185931838434468396832961231241248741833655999838491596518521545398381446845717547585135786829448366399782253896544147524216939855474242356535188471922432824889326639765217715452553674756234155697563983654288332589964576871349175373547844666815792247725748745262414197463143612615486849613128258557383597846917434828778981795549368516171761484864742538596949866615312377316673155187946429495855465692422879173471264715645139666124246223219457563834397819764256669281492435172345674244119524179897836968565598856361571422739617381886722261945571517559721572399377947143137473534268929175195922625318511258589886687685184576646167817831678557124763271518272777447939986731432818924965762837472163969532654724425811376469296212496457513864215585513248157667796332171256566924564777582248816439535539175676122388126239818542384836833291781928719322212145173465938346314495265176386391898133425249769199514912531268237839272686552451299681633748452234151218643677786644616878713716111129884141818452622298168329839831717112171896166275961792574556426226323383788495882869917242883394824243411231628784673396465694985397627641691468725943679139317745497151919134715398564456386858487182281984453863527952579164992699717795139416666351497413692741721489883823388814853572631895876814882254382252546773945925591981378574811926168646731322762769786533713794299153624556612777745287558626945838181534194262925444277849432814722755153468551984391975727998368423927253917996325412883562286937218823113712333762949185214796417288588768881957241148559827367175724588367352875878723695339127687836651376562857618967389392849622187124659744595372119138113964263774238191449867976868778864289467778568512597184669536313631665231177828966764129971682853818231336918794379662568616681962763796476255572527673324872976143312849453919142887128316482185325397333422425484984714342451861289912143273791998368673726692791681795812281271896754925583752711779251367464453927319757913173148954979615941322941816596694897792988949443354448528967536715475573456389424758599376938417934389524132864338976884365115898126957359546758455124351861449141636462414979723315649625757551614249279657437658912963427171232445462316958613583688811516519652178217892662899157847786436281488119877933213127689266899427564475352954254455113828597339984421745839254578877158817631528951823395218555233947737489532316296515925761372566237875718738357887468934852196619385845527442938665467743853413339714256989181947473156432661794774189677474568285488121267247513811768495849567915796813525164445319259523468158637227468774297638432373528334177797423389618451194122363284582159881119968883882393328646884198976986873741938157379122611899687374969123115828535437686566434951345356556936779312869416958343267671325816584314488438823636942599521891538868196938719871455514456445478254154646496383327767182635162886281544173681811677385437832929537571877125995142669193665856797444421912491995241148215679257881322212352349653667476834748536647658783715771926762344728451914679447626183284649774135971871246171721429536981958361648524547144995146988676671486449281634347626139627475141178612529572894556259111747249246986937884163517221931194617621299792489786136638631739198851778748886764355918772734743527584357136611945425392374637879527742554124996547956183545323154738874274573115711318652273478741527834171472842861636743969643784366763798872968121584671544712137694864641836737765232276545647496773235228679446747955498852589266368878645569944727256842989894431217151616491662477161248128569589185145773649786481494216951988796319686949817445474784378366146756524217188612148417744458161626277576274835838769432667563625232779476767359924946913658899323489227793516317782472646426446674586264394934692838883424157693942566896278547629596637932572765911689116859511459112714951926527565364958898833744813297199739385712186875558821292419229181118478677164518389398429441238329166924529869697526458392423145942632874759728369914732853166641693889155916642532894168374927886154957458822165244541366657235838134858648754167392237872595877778154898562857686718485534921577472652416592251821658191582539266321451199324395351169117251976597632641562881315311212826912462125277223391331851862952443679671187798917949115189275327675432439118899693583882898339986528552562341299447735894626524165919265278297131793272634276581972976383213995964282344752288275353881211389875283315661778685119288297225192529731386263922412339157869359511463481917397438551455221146985921259359878511455488891894491873977811788538553981779759287364542222388931776964949815622447682893811614761256648539981114871951239289455571924875763774151235247255199546547824489655169172585189689633275857284959455353489898856618815381999383228753982861646215976415384112434298586562536146633253682993134554282737889473844249517595618143569633319247439844783332891615749791822846578453721944133183557415597771228963325228611827162713262829831626947367217188885944259431323385778413124731619113527459472789167887197479539338571216152311316895494239173915752863477587517187536938945135619684819568218926578952855357797666947882713593149845928444223968553139391448642625917859262347182385314346191341741425421454162289698921621534518648171915319537386267337271622375272162592533162667389115157384791816945298493559287987583219678558232751481625532238877186943797511674792663115227993692385554294262531686885397986355473927437733786843421859648162519799522195472856177262115821161938861979415689187792812392398281166253983531438998288396535353259764951394337126734554215629834719114232544246729174484845728189998311554867539346664957528337125845889365117929585789421253863347734649939611559126858872157461932485277137172964559245448975967196612325122218654467891696183781451562963273926353832881598677691646732948139754936215254911669723385578389244636247641141996868196544361275637341815998987564463896232249592315385664463118434624235348288328736293637738661832244768577397179688849623368341454839686315992869633583718533577859816435925192953212472224379964835567948547532841978988415319782237722575317492577276196527585697378534945784731547946688226686322264558126488432935674395853464579924726254976178535854347674811812264678166673326891133878269248344611497963284663775852767679514963913698826282548933197665414711991349121648783575764521851339228252254297975222587938814936858563766976663174232915784177742596863559125322534614173489164224788933934445596857355493498719978771163386735429934473612472378955951189652183985312562598636411994112867964252572628868721361269659846431845993153939791617632687561992185573678961839991553711456446543189356252225113167237352895549638662276288689884515231219753515361477185843639971583594468628144179778253495492438688824675477785762576816244377225896353789467832968548152577279668283351386968154817692748455312111344452957642931681754588928228142476561324327475449778578379183139775797227854287254892728626838894364875658967772152113974556225652938482277944957168346699312766858676783577762576491869879155639487956313988136665659547543995822527137324226673147981724913495547248961262828122828991482719264877664679761563645543581742666944718976841987351694942925172674934831414412126185479579966133435817737168269658294141937638861359923628434399917319312964731755646818641959859589419594967933496176838734699546577426722414553148622584953897454176646677132345297256641819554851315972675797296821364345289564594991157526245815832255564421668158152693216686259364829259126919693862162638244261532446457948787163279232145451494647271965733439745656751285235588215381663985768324989998421959778287252441916837225114755831616415129362353836446847211794643274675589624896331924634683946264629158119488922912364622815331681685476414215396312564744277135183631161479989519665829346848257599415451438289145537541134847587427752885692686948682673957794336111188537685379946193377947469969977721388715698288425229845831727478315275634443284794578951922659379886338772889257594388379434361248772448527422172598336258574688455587448979276226948653491748472831563361366988581245464438265447383628644323961174519842667291829271934445631637977852927636727625727141493455142827919671143895265858888132546727417364477556862446225828172633374981227961556689292683488542857245266752896455464422651413488193618272441985411743897728166876125742966953483456635417113689182555741235563616358789498757765819373395731999535383232996752132959267641621672291513611266468563379133194151269219469575991747974876175479385394229165555628225591198525453971373277733175995454542294638825942258821127527941375584856627911215986998738332459717171732432431939438382124359228825887918152234176894915338149722188789684786193671951463376246345123979358846912186133448952576978175998773362471173416281437925722221187313541547676285227918479571578297542476942659161749576424461279924959442697582556414945481497478773716865514558278472899848675432692277617962878626796678435968927234894671757518277635466842644356644182256816613365781465538953416714829498958273652787241134355936396134839637791868672573918499929512994847426411358415796534525366555838561199135965334875316733377769694694595982424799329883918673533873222729859129131828198865216574696866631642534515315191519257516981544597748189511819868874514212255594267966916896772658998319423863379955555934691755534454395681896682135527876849483737256693583241343895571164983265779438785999924392748745233448825746515193995224378252674817687951692291488899327933189568117811971179116985816518716651461132137134925493973432293856881984976687179528796948257332919996384852567418277861675397487276695979135765472257214634361977546934946492849954654926243229873565958597661555821211833944822977553391957993473483455657139226971299285874911258484747549362848756764242533456384567391136218984558862114248776213832844464342586473572896762373455628163387536263419587153379524966751987641146375224928235275462936924777681227628919733249684776377644312322984775637741698156683337666787975333785468538224881114668335932544613147989691978188345157659794154367145915192889723127862631145462165555953222192283969133226553758193587799997216582494795359613313551339228828467596865389239561624746657529464114789217121967927381955597432832298117819794486115181539172345355155825784223722221264169374818213694162564634855861166183363273332637773136411886982599734132353516283386926815414552423725849281798936617298537871112383767675644345886515366843843951326973435659237777193785969263284662894468271847546713398124332788878294811994647227436346669738514223614583756557291614369233883214554892176711429579715728996126569739945416547484354824613215759633626165698236551832271591866737988584943865319392518547634116794632836192532459591345187486955417479988131265214147545173767187835632534549951263996413578376959412544987872997176627963688363293346634322511218778454622438647772434865915915682335676718563248281555145536974916573144989183919965468911597897444647134843223118543333362942675948631124335435288411726919167459223314636269676516587178975519529751912617464915563351956496348212191342878379714929914453166776985999187813663155845279475943631138936596762166449856783277439321223763349334967842419736359381491666879712996771811872597335454419996957956623693679829551176316214898492954323579551395492923443712652847167314259288516697831111365448154874277185935594377387224657362637954653145584892521342596312474268523726263653894727875596533948681862477732911472158598251454313287334916196133338178793837247466188577176688912818687858573198616444141718519578337812758967726351654624554399232723886672453977842293537856769829217764888176758867121785459342252927315293677553254133568482516687327726183638943345582229379837559231839982764987545556573464218922193881856255988342879124425316495574569274662475663563884414144591936843197245681846134355658816899573673386845828419835381971669496762891463854683556174172126966522619545829178323829336438823555524567137944775956877499381636987332135738195589965794733774273914997569368615511181444619937217516252178848489587521762754474124639846629567316146923198434736288162624568398782484783525888396182343698427295433681832419238746861219942651173342334463276149635735629773771894926252568173135496958725182161442966113818191549225897395491435521221311221274275665284622555116918949951966274728245496652141732525418484911462175614277371434585814743243269476836143869893249529994216413248821424511489692454342762393526487428777715655789123378498659287928785554118577387615445199927697576821321168795546178577478138775456377473242685272928765467334668394832235294512683548983615962789261373782942299344242393888956763879147241241174476615793677252539333956179987324884453619425668482785272279791277513773715251988947565671659566317474743267255159714171226262782429683998623118977474584189157298957245197317183829168456462179864587186616314686591236861967744191898468989337875998473558233443511246144966643122858113915258498413125411964265341151341755584334534163168475998993926192539862194591786623122811292681743628728257236788988167176345318568341155868335124721527241661416241244611333843215266879825845467462732655848148564931822496841677749814286189745138218247621776431211538937919412113936787653385495337239738758769961528184321841373186868723599474426324645638655853438219447285626246591952726281434143967784245659398383454963984387583151565828748566791186284512359554599971844689258257864114338273521418482749665489955365676483644664592676522959854278635364526883233388821915998214967583834412624852543534913733238866248588649115168319791863284951554311164163458288157233459735671991916212547355269873197169526625596225469193599485785381232892352853388287527364733151973242375341668476117743295319317611746261216944545227527957977538681217217891145556298882579232179189791479583137547325562383479378347275223424168699235253471418232848359581986754657162399449142235851897885449795491531354258361746725593136115534576692115731895376715918517951497856945528597123794394934638657341735376925627986395686149893516678194685256734462739423212442198797255669232567639651871914192971776242154399152817884784184372458962166595491571358636145453586372478827346493438281784228366983919891434954376983951273197585875643686179496984379486685333791264533939868555972899457979249266698791676431826916941637641545195874741363344934427478132186686152334351584866298745647745392897119435472757477149683456785854645587814189725429476692268744198546227624585126852492527482781523134775123425999149281928986838231498981332621633541522328891614652431453425576619651771669629974196142473819379234212356116193493196233314242154464577188786935225737158461574729166864532124645127722558595956861337679782945446127363111596162184741619813347848674874823528526991159939254846514989269491243731725617522896555742667696611873844394156235779243497256715783966385789392768682821535116674768397865784859617889832432878355173758126591461138911143331144451735536175112213994818139134468441874589981181469751563464781633611847735732758633679814273235474457131494668532787556973285523947741789955896864518194392852145819877672159725165875215488583163949615618661177654165592349546739588159916112765162599734677249187882772362438844183956312925823511588795837521828113633824215546693363745486467177339511932475935359523951676384916866947184576891832137184712112687282989336895887179677938937286914192924594981687634437231837428826917357635693355797398282933794484117861321454813542359442619138349125137162442785819853822825658558952656799868359124215475841684478423183968782573892349813761197848247333199257437559531797696489213846134158781445487447117635555727231625493436863596296858382753476427866198585835454937656821156688353843799163596788542924937575399574733648788456289381672329748696968322198823422259315526499258754565665545767883712264794618573828384727384972233447826187824195833283812217429564334832523822393512782893434478691973124295423673832912144481239327528948361636999189184331443365915799635587266964863285129345736316157515221716182391892824287896391942452522131258137118537116725729754895196911893613455164626187952331639228218557782187448946631753725737446271848147771474127192273735468175168962529565956555771843269966462247388144529264639614829715341464183895246152414364656526141186474663975579719235599159654652289535831387357251618514568823941893365383926631692451695577671658875494585236275319378725473437323751998311938459276947474527238592571311393127944537374524247985123143172373976419936377791488989284381528725346238766445573259167596647498831443219842378593598248791431213246565448565314553357136168178293758283137547982226819415212932295912115858636756437267677778888377577962715389912528385852739465213897968486377528236721884738249428224952577229942493481743657587398583641441334474691774138777486345417342464799169136538385923537977511736915891712355972464727493953916416875845969457584954674867258798285669264198746939477663467237944519314723486178115652888699384623553914141748547992181749667929264454768821655344533516462253969493668349494827361511146261556475731463393773598548553168192739183128457525864617451656466637435747473134499759494459986438271634471672812775714247135567474446773729819885455659452818545868445796687565998554388458192578321771447973563316634468268415146214246934379411963318125865367978281874282131917337149434851547355332749742833566159181466428944476539414576831336233358799683939573412769342363884199969827129965396463386323589988974846557353862417626156395283989354888524781829671275894323691535914655123914861877467788948981471735236326792688313972774463498461873414964131852249316652879626683823329621795719739284462323871162383144113684546565892913289195324526936283547183551552751669171432914523865564618753838884782623814155321776137812185862131281469775196262865445642927229138264139548154239663926216838821537849773667879835936537228981144626582737524487888432943831835175634796447866543475478741723239773941584379724149587351422634582775834251221525563187128369617775357551662614248446158873724591814669625775188922525392574912993348399876274165116545791972279494233118625911422965433531537576888997848438469555998349393939617315989712647582981614632825775495993774837575763723185257625164643729192758325597794218971376631812712976887236894215191227768659728715383195674994493494161926886757185485843231561819226217785449157594966288335395316726485829724463758465287796126798336797678894178814322182693162973453298987394173495582641755843186386174892198427766929184577774493991479578329996587576833699949348365213834723379927518768762575481991173544662663313178843989428417414657914178388585377665596336956311112417246995421276736357843563572612325823254371832456131486523783915386511837919144657774326584864292842834523436791458879418885114377469712944512656323364133542769414465558718953685811213447523353798243924798957437357672312546726538839198984616339996917261832385257966854114637526126722795922426122586897259992493954223595636237375955569457486671982342793315942526872795443991998122271411894936423583926396284985193233212584235472663283791298797818128277578814171387456565324894716613249131537555299834356745214755978871924558168841365847357612199986966322118892827291925675874752257768978648729437428786263528632498285949811643474342757917679898517911881744972385561151726686537228285269546675111115175743396198827332386743243243639294532122893525733416529833185194335436525767239569121883181571792334875351963818798786184229198322798233328598366245643154963774853655876625441144418613998265648793281741264368598358547353716575892865781296955779523247417864343529996914598965816121841537851111888478836622112712786838513523592438211663862842129592353593742875685641727891111149374523886953411864836526535529556897175769991986468919461893746325922477466354991771616796878589981128754489868834875455931779677688564891776468845379662648695363917276334878652269135189938454644369983379123329222729623447712138126342344666477547498632392493194737851116643286925777997936336798473473136354935412282884416966793949243766169591697776915692261454467533238287147814394862866811236888211918621391639916171661773259171152822842894884382447414619616511672755944422658782422772633282249324617938193961292378442659763774144746646832842957892856831988382655218781864868636729292289917172593461346621564135144252143859998234166628764166569884998262252863368839695181646514913637833928345937776375227868269421114495218699467983494171986817817246656415342838168575562142723436981512945127824761115219479613299341333835516772873393239298318242164446887464531751863662583395411854432168419574551816965284624789221427157914458339924432783151971992697387721553344775944149136125374992654788822388871275177688115594658927618726593611117765565914368159718579128378368945481862287992752688599337153846373359467266341488347368863156574818645459973821644369235339987257122556544725788914826458447952653797341693251951342886619314468637351429525519523792361281427279894834775135177447453462593129198371748251747479995341389599488216278984956683682115234972999819437324529267435535138335424394235856297213845487889511953272685169688218473811588438522739988385233943781961917749591764641459762145223118198762629685957183858152564773573348499367863561855649786953399524353288964211184538496181319251575793677988875227166654684589536814161847525946742387644183926415711784545938591629373681873312783651993586335486313561547667846111198447969497927364497153836335245977664583284899137722994626129426272521727116828689788139741672289329291882462311188991864829938849768847972183999788764144146821876659235434622689465769172753739375297631882131966433339594766784293845833926122655977816172749958233715917597762248718425579474386567847687342455226157595443752396989637252496928513253786951978465428143272753593727985569456382723626743918157337935461314823995347811191815537339765785166454777458457448881613567126421955433167993635424483639331873867481696386549179417569482478653392351877521327257813741877533862996962714825439218573559212587676162332513156966793157977115772277391559855349918314189789266373192956929353343164462339345872171275766781994219445667571967165171545193282592435889537434229635678188386525657146978721133985442359986638983676273954856135468573479923719177774969344846382939367367438444192487311584111394229745577411791849568527826956368332688419578462317158841544159873931861697543663378142185581476669645794447783119813111549476132895354797466666556755898725318497823382928475931594172844475213885113385232624573879153389799986586714226468724191915334293199748317628364935334324856275374246867628434826458871254761277591286757579952585352356632648488486169727792849363488149214141889374245814988815152856866269237165478858347127422596282786699384631415338948771728336494953872234265797581357329131761964332443759329957882513325481486728742127138923692743964492431991774876589379539794981328452441497884432368321171558489333456496174526632452468414242953398838435776439554699539743847266948771257778634873725689872688271948153629571758139697574632449433237499345321123962797261394236448177981521532727887693522734466262851892843924793442783865181796971959144335613856925291697677264259252575845229719328388146642956871817381713673595423316879874451431158237485544175296673559983926822733462815312721377522521792374347673754263334452214254313438652318573789112546647861282423287418254432222275828694612643969798424845957173454393664737824783533817392989234544799152743111353633453531442786154859933233267521755998822179675169142254468219284673464562528824716832267987996452587933974755935618713511219833972655852216718368939278398261568523998128788594287994823729765516895615464212521229582753628168657198534844184995843818271876731539381555852341734124831726388321247382676799763163435316933755768387533192967273496835437693258876528727914629749333864633838615156726516857732643829371443194697278728382154128399316359468727524385924219521259279783738599349768259661412437343311673423336292916962913145779999955285418927118694884187655543338745375276876626994292867391533396724231727478968387572282233452933346316934738556293311523657759172611294566311918249271446229117268286632262252966874927527538135853415521725921517898539272184568798259222593653222964871988233992815637776931252338715793424624784355923514427651412871191563739155635766117762792777777823985999452828428195254332198779168557482663395293598939139795791545273328646954214996897777245289695826671175586875455232834453212784331347785362816229392726945193326449117534794414234396888387517142951613962393715134512348989684778737934253323825266278166833291963664979291571976594389873271267422818727653751388626512629735366536317852236245996546696467883436145731842456944488937473262594998559543678261597489137332461769414457725431489128919733778734775119771212349249941714979753229621477496629534517587874648958819747386936888339866643816692472445173666243955841594774334479514991356761966449588855387624574963887543447872729594912663129415592246479255227265565512714744183296733647168664219669749193491711373426222988498255227127455535442683285383112835346948573124448695824341541523135639466566911761241464597558741293138685375341364398648373147257459317735259264594456284487293837768421845742191425933371179452127858831494592634925243359284396889673613152213515129244153473951917267462582821322235539876952142657483531693613726268245631834888626867826176348863676148111388249626396894427113469963764782585556965654985696931817173442581824511975363821423494191434471462713781216487528757166187325459629997818447288953558146867213255134714658365149394197684483617191461724549944963463139358617316243224668551857173375219969681294515871536611317534944839887716157534576135155797181464343913417259516997413962669795118397547342183672322697652512912731584217416663794853416667668831879299831386556831172736492264242259923941485967974136675782295399292485433838615918564133141651571618951233173563318791814968826966669782888224445194284561451837493461557359683193599744868859588824767572341548678453838513562343698456569513471215487247583616866699146985223143671294942292676125138527138242389418782892857459952793385298335155824992166812786855274682315819292489686256335829326584794275184133981596128499421977447754343645843872483233155242874548972236618886923336539944921475251463813681282494957849341366681736917265273313696289112138796757457164571792852569371473242727552257594563646783629656961932676781339775839597758613299282347826848715287926791541859668692472966746243845413466531577246473579142656839379514256193817344581484438911836677181681861693941877211991973639248396272239413499128198195458372191617729651988798618427851677876736596462349218968719484451237699238774897898684455383637539288292977366945693147565726579398118194721294664876522984539458148757228247494772323511742776581355966789437894816965938286733858344812743412883477779687359534357647899149218436113979684647952625384296217941559636594947632683191419838512555498958442195262362493385225379899694437526932258387625926543523381624465157372991752144697838156127354869585774748932391873768379114479226783166859167155322147857384186764159544439223545538323941249724128962394195458812723995929789181986195415849639789979461339247335834464856719577564499423336958332667932613559286524456778263185259943293437335787221687413511924917325548262648351417937387277667398842656619534453256764489246875658693363215449763239467482958422282417627162826249175813997638856986647342434146842322491264847535988512743945629731879975268891498248313496957829797784319999128732652782486957937595825814716578632719836422194743334714174521474453435166266541862232638989117351583178694247123246488286176619647855714227929342761578175535588273643144636649715753558191449256529713265619689154498297231145776556852323271175415324935149696151625757153959489811293696555159212775389564413483492651195618518566994931279497637782799241981847435618534564325884952964843826458929663118328816191276651832476366322412244114613639374357493929639761864364625886794239757158111966953378639117777188964777467453147364136936794392198454181725929646948541199519627452759622213277761424522463224957112974284411166916348484685188789886385625722321845672931438296183791263623634727273366317936544814821171444725433648267868412882262179214574115269965741581658774882781947437842647291247293169547515518331915177786899518814757497857569651166744324364144417136719466312227879319535838168772442276897927695515557949846722746863441132771231676379363723986463696698866878735452276548745372631291966533416841967592364791943952947591731215389848164442535731914653625745264158844277321882862237488952367751434742472549626838566351475949972445481625576148774319336739636769318358796319187416339891854439359174844364361811433213387529544341734151476447579789928668513846818214249773429398389935786158638458752638851889596389867353125869633876561638477115971616816382144421876928766466844893463981285535612293168694277557883182298551991128325163489134623921938763762853674989327211472663665531716981237435446145283348593145115683685337761365863187746148538177245667443467734132715318251958562927641876548851921532336429164256929996541325426468491922837342834822465495826352189182254877961332457787377993192198214591295226342121746445635733444783711232856957921564926489724182352364349734425569861598369657782998332115545892867926742697374553385485829317584174658726353698725353623553292599854615238577258774845299598657542892414251975742125533573337979967188512499972163526863985672578387936265952257498975164521758476168684178283922817213664629356952619916724816176796852314148623783564134425912572166276579331587743156496886122227744371293242926319748436827138692128227441532153126858329932892992794436489593794368191983262249419632371228487893712798914937967829956967715484643612513895589162166652322759114475614884242258353818928194883129571869272386111389972869257469416382288316826734732727622466295834942662343925378349991137746237411576711181597331131233786318959116675662512235326348497136822621377732882194426149878581162233141892989179521124892748644856168137225233974976265428282567973774585917294681116538336572178345673162872128128761493849946869316422688691493269297481475959871412668427456573581228355659536656712643378835163175881354296852412565773665162369847762281765895941517764358385268835843818387889839516722649155836211481229897761629282245159522232271282152727888896821334365468585593796778446215886828234761517856125691535945524194816273213997599967119493944243523249569649487283983822115438681894739694422231428699799122979967431388631734775434393315492287928946887751138561888117537655245928597373364121997798541194417999847565681183962732575574823522485231698695882965112568841981229632671449928114415559333331432394452485386176416952883115148266692649167553993678756967461276826888774339637975641235861867549126894225977664237158634611344235824135622286688392254594537931492713264472931759963392644347376346662989982957842172226648366888434523421615288475596169975562485746987937444372722327224569798261658451184411662784495741619324489224223553518686915479439351787698119254395262752389232946114774564489717134298327238333833298645963734545954675387199372599452958122474958314732532469418444637438575759569932175211151985347971827291247139246767761868383971942661675377392966522687414612696752728255874958511768399759819375445341736122861826755521591426869484446856933113578129978919586523747331824124361252147838875326589211292593838833937711587118566477495544726598892562519211946573221674945584473528668578562119221377651919345586333188835925845962617617641288711817791272665151192763325423183174852769815499419574716236425732115379361799648485864366918481581928844814767515181427118835784875657137393142559582271954431718163755474678833769887872214364968244672138719176854549658175361274641643423419994247113918525643986959289329398621432521363717185679487419338989122363388567266613551381113912822937256992717357412529529619781873587177246852482633564424382368517214827582531683938361698724664284665394456415697414372243589816361789123653292733168273422312727885686951269433639536668687758437885371396338579422978736411244822448477998636577764637267381562696432121874531296557263981936175627719896247156691426613695293554324194696411961982542789399554885384554273268256399468397233529948382699815631259176895527769652489648428871884782362713478243372224966743722289225385523346572684978543814822634161613835472531826669939212374578648821458491472937911831157415277959173722757841532524529241656359247428483266219351692515469984997638365671282116265396731629119761596944962161676295767738738594643337633738886415871543425264527748491663432862437382613928368833762827159245367195244345251944229391996819435143557789385379682621619199922425751437355783741792741548441572146969793262435313476321264321424121888285218647875596522943974265252151571334121461922216383718233238275398718745746846475535337559377697457329793476993455968622549297833455423559158472768521763673265591822276989727983844719157372812783889487468156339699514231391368547476211915537487337648567694357185595585137765498942897546871488847385787354873577546391968915799417865698966213767386373153632461147416282792967695222426678714817537155224321978481512178848218951665166596483331372468242163857812418847586718834961784879154734954748587167849236293571564847221584333938611524132488325797328457789962613753966184814374194929686573633898183782961497696188947574747916724982167296855553346984356847418615812529195539863342677261882752232362369723687922178793872847958975292263321112229988355447132838338434666665876774498832624795638561826382868435774556616986449284266775851683259494954543276974488156421488692532825379485982439224766783542785877483232638761662947415758927314932244397262228412142516487127319523853568689419593653282983623555841976743673523777985184444689153151524871932288887485617175981285226494485513391928389176664571182532859299428499337234771137125377452372212852774596864876567995739856866952228566243528165864336311886589599445168218915481712332311858617641136856646184255477597562332984987662235743257674424169382379677334546899113771211417334452428159482972883258159299721255376979917115282596312219989995422918899699117256775786774753284374263122822636193669346612911337743944935178586753766235326248992286678975724387563175696129998226673471941269815221671271161962438754646752733254399226322318459214477142315428748769481511345245682385516857621495222362385698256365715389841761382417545994718345815323296272291242984474754677957468777385594417585922295542246772538356785135764165264716829496458373842353729934441792383212756663846961222123567537654875948595778464475587722574138595998747213148475932694741143972379143653946673154214587589767894897161355812227537884432498278557153287678778422198541779687332947355811677418528361337285716991624114162892643357461977458147998397792772834168894882526219918738497675767963841238269781779543372939394989164176982869837871196279998397392699197273146723721438328146765925833549754425586627449143618291673916881213669211944747917826873154642653717727711285884566132337581655825586256274641186589712469524984333848464827925574344488431718241325161443124661994343265135848961466599691966945378574987369155181539479464958575222698334248736787624551854782114364985318272748591944927386596713111542358422271253545363813583773726851683618614957373663812967239794761821771956673838217213925885169241216281758932742562653231646549569277342934297343497699753296152959673775174797146786651771374458315582889258851429874851877223143581668583367399376661747348552789645483618346264728772416259328283621872695319582349588183124922182258217638675798545444654936134358169822588957791335681182695128814785923627376498856854923513384662244514231771455139521769988354467797111177112525566432439254598368968164765816352884925931288994799595851342757834236729737527987845319344418182494164937688366949461473723521651947449987823416341378559791856841573472954284717735668546521194132368452768138711166899451459863888623789692462366946872716671868529888747872897581258237785861623581444112291958964685454839881247172563573667353729244527414417124369417763397558473824554894515822762437656391147328654933472864939152617346348979824117344529891786956579113989851261874225194263757315314592467483359761261566731461981239355983226283397244817843839842776274485114223946326981163156223738267777178373794382388483194376282748545362431758986634923259857131875389432497285746138353137729796225167396914478971795997779547148643262852288174154543219162765529835919127825329664784681757398261559562343764721187535499228825871725949225586473236775577357734795388299646284496952519144816375794613566274513198248141432948518867993619859248863775827911751425225465359254949296777457312444854371714629813822487112742866259577556897788979917617871956552518142732499276176745422416151281995956185113519183613743357366344638247747998895146321535269683145969732421198693223276671648753348291443453392514739377432396539348462695714855237265787817458373298267738223635341719599234162261986659459612245226155978464479567122857828131543148544369696553354438119812955168812237287731855287188968153658448659357121295623421317921275918763687387397857189119799716216972231858586261859669528489999596727682431945129986937775675534985753985878381378862428985337726181378755563599364316184626276784722585932271196536934385713472853999382599497949442861441776852141977117846639673758792668343347234944627279235491259315138452164366627444346775781611113847844278731453877444723772773146728135917942229943324491666869432244624327538413634174929614537559822352995735987484776535968623515628717189577315672223718561711162932649586296652774834779741757839183921549195351744121184158741648839774782115169479568873637691463441617717323269196972235883728142912673493618527194215573754548648886914265916625925562736279933721392628119669961426598295187358367428127974869891448247645361976618429116372361394918762387375935666655283318337737593622438832376832341561383955694965998871897571613659677863432717396173952698558713661457578649358956251398244924378313859613538333746866671962289111395255497229592168625611828828847352791413451557228588679452234968136267492546168926763797719195817513242386882673248497968967457917321537126262375214811596331931641684485881927437717756477469424582819397389922691466893538461618779697426317476492971223158118886745577917744374461572776587364837475975738155492537615252778151886473745541188122862275443257235763146489487388454571115328932497691238176784528955956378161299858961766345677463847563268188172858814537994539723458665472278353924466165417378513359796893727829255751381917756972841421782474388763681671345932925157925141368135393459373855956441141535561464882916844128613347249383739764932223716117776181794731983758241353523224781488457619797172776811152452631668582253122717884363368493655611349554755726494729956784948499432277632193643994898465758697438655317417769859247874358117751615135875441425238926351241815874466733266396719699323227298684111684819339919858779181719577968927216238927983759658628574351143752264155844198164825662986189244469764347647453723378376885799135812334878522794912738416875678257269657418576857931752348795419225169799646221823988111779229131646615569981972259959126137949983644188967163287172973575267146419617594299497195382437943657286146895114954763171123796952679283752263558824119111381876932849114329664344545536653649142216116438473797259693257411494524134676493762386246551281211662863229758924142766211228249294281582456258651727327348152951377426652256811871612236139225352983647853433421461682185196422529773446678819744793991498141272157381848617471859148987889897882529582453971164968855524592271322379493691616192875427666773795723753122162671758279824491751133397497694759824521493731886898927656325689661913932214273751642397828376232222415524742916969278861686118321451882254354849747523461179981825893918442726579331475473461342731921854124571484329856972914287277243453789827139124621711229725539674832723436236677657767639262228492662714336984647323174989191849986265487175348969266554453436434939577265688484389834378512153445383117466394523596822553756981518618444153415744225479635233273943776982322676197433486898296489656254375443832674822411321858613327554977269327798848869845615826571968574495265947724696166537285271837377773166737186692355163479453278735139693491159165561886832938711214253492486493857726318592261381596824963592775546175914931158996688974223399734341832223227827565261573711673196168181492283729235373442517716313222241357429432768992942712442553666671322245229119213363496551715362283397628617527643872527496922239458129871511274451693232832934978779656696614957927149223316793569525165626811682394315546114351211617958648616636156699199515424583188932782454848597497347689928235928196221594443172796453455257648547167917341647726361595999563417113783425478131655694183938379968247478814716671231537821637534347963854224789892843514666318642337512813172159234473748469222344984273489585587734918843645878267564711748287859259922286652467223582556464938953834952416553364412656281473377559844975638845284348746783119754736224576351768172855423623597869571727452317113287738981239815752723447677287596267954966847391471615262879618134727292775494331482817975836547898528775214525553742429893346925866533932374829982223192335816382744136253525412533733854325843926328833184425667939214525998291812585882233688379289431819737798856434546794519428359331313973766389632119449372196928948335491129872171915932121522425247676678555651651243335376517821566234878333397429632259889569425937315138357177941245923859691273993415138736529534825199967975264594886768319252533833728515821369648224945858191373544374766781645445649124823838283591866424487911574375656849657896872514851532678996559134988676253393577629776576121123412267763982248811878424926927247363129326331219286827319791415139332152784694613384914884714116939934212571931248638915376686378271572527619523365155562138556353499451191942267763218311254678797642641634659315525444358714684348492454817748299624958728277611349383654427245187582343251899834751926348961578126249555435417672763386173238938653587929459225281419116327111864113714548351878728738259951946447597841765632413264188983965588336819975447577784182879275624536127995338975643951147854315657348137459247611986198773194557381173718722373472869736135371187184454225353588674547158576674282616837452599456791394251797925276757583732766425454767727527934618367539784325759126888549332682517169927348813724393946758826167672564287957227536739295176682347383691385996748311229737274398936385314793366286298169667186887515936394529237746641696295783523125544895797471933172691179321512155433893639531728978174815854958481669823754835522319688163557385452332597879329449497114357176511534663248179914844643876673213364611734631522915278555192322646997169422474665171724314446599287973815952317794775295538187996673853358487956423732284983772338513727555349872143351749825836676947782316273285511674455848414998777886594613253299635228849348295783422783987217169561355277986444675843132731437383316723411934492974266249362899239789121114453539735458274353364132123924358581364797514848154456557858373912937316957431335661225899715916199729324956878445355744694283682643463758445277593965335632891944279555378885524729242594773775292147663341783954867926393469968272737151228423718491128354351167241845856788947886776592826722536521914672366943521169241823175516516853179674925821744816112553112796994951231722785176666811919288866161184145313719365745745643328924922325745115931494766211441333623745218618182111485916941963224487818667465465494993486471683922792457282738257435673129277569537673291452267899457667584229172849958182297777713457296527414687572271388155726851669291842388946143979884445839875885767985768463651647961443439898374961437274429372157192334313939315457164496222337136157467661682125821251673794496911647493451452924928175254583164126656889835925327124528975261462126694576967487188531216633658859419755332969777511522183358142162835468545512252194192437129226319854697138243442751873574596926892259853677891956142299638328898923897254732827321538482114984664852557829999612753582782979236629765456244115268526673879683344211545958358765516163458317521831873467192757217694827748489473369585394477277846227992739657773632152377175768381978141915682944147165773248965963766766323316611416773996692277453938549868528469927226674892525827559335267112994615172551593173618642168867957316823968997313564427523288983513274468268878134464116424291459657892718485288523823454664698653343594241659491573816263431285528757969125844891971677821848379144649641134424521667348331157152325279282623863828542264378162283711627768844126959175492288315466426173856367842748277375194639171668843468151214831557956399315461145372975985378423117746665181184611797295732562662334879477485846815624186242217429716644372856346798287691829551522275512777319878677446317252393491831197626693569293623437665914986886447116341259421643419889278845489999424537368323642529546311859738679822656378542793736466431394151942196733476645897433165184498383382854181745235976262671998826154238547692913499995262152933537859693352442671571186391384636211169394427585632539159177421941157986327166428662675473214117213819431226667513569116227537347628449451126767113114634476119859594449541226727927379616216272139574437437998589217176697395417464685227817755675383942661191725274595365931398835119265274345843291627299238819411227644957432651692321223194934846699884626671641751872162444737487274635393345221287483526889627244697925338759766594635323274888337837351125989537881211428815538211844846235177855965916786248959843326849345129595895563276962944275868682183923492856264768843251735583571772812185691975749164936463611676766855314391764671852487657625391876496725792157133272837698117184523185544748442658731488288877238426878233966121893841548425137768346268455157935318362193595261995519244649243662487687845352452891825278182357586255827443686654725132948163712325697332588143515928192818267399858581538422772253153242858677452399352193269375479772866614358478314493717644171948124675919746566816176838336329921387776659215786382865777298199127784237258635143337785593392293971384198751355486264693823143338356655429545873487755147349463286752293135513641316728531476585268378579929273394864617654212627544271161987316683943687917168711127124212842499794952642456126128839231324563532726889915526228991823854199341413199989349951641622787296929169259146979964127179247756357243257951646631122737631316839553667362325777868949793823386341496222233719396189158331569172121632845114834541345268123829932983167557931275318715525796798786192736528635945826257637296164673645287938533894528171799386643816324817759939381287155163726896426787452445363369874381642221652321965198624749627944996217262384271779531894755449748457163381618665517686961415368193898126186853393952548677193792972873481164394598652418197376563659887883312559394434233769315659437215435579519842244321251696548258781227967841155585491469813637595517213986981428957893774946685936745833421542337995262455913515969431773726948527134278677817392135213464857798581898654334943156665781176744583652317639924227673131147511958394434176966288954257351811814733965362858476271585299271261523818334519236853899217225239271451182522445919188198729232238274272423555946854644314337439246542674728392976321752264796719262418689428615246292318577136842173941872632144753873529122716992295262224427782968221131311789898394425747426692423326335393371111441915556196237558972391638638652743286786397143738868821672547691818476915799871757548515657297277825495864741816549389843653261951491876359338873791674929245139277254778699576646792174988391317932397157993666235433729559679352481186784141753285467322268293322338897291265473898538645343665686565284298635814755519943388657313721129982472746386179498264973244245123259322839546476291496799922414628458632576114623661221111352613447299346857118474475486429468693312235721421256584922553498267498511981112126675967292431346974724721711813569965673716729326687949111189446232687958529441918692591419433955912797437362351111169288132316796964597223447437433352143272642237676397531163816939934241414536283792444459639222114437568811428787722156128939139471216995935783564579179862764691721299693259496843651646712972932141991115154637883836396583675788867777371633411583222769927395271857474526756794125271263892298273819152636296586193119388397114385289343751399899299917836546964471495568698576485386969522118435564819768415943571166826126759395676532363767124119699382865675131674899975775176944953128686987145325221678175577963264812419213634944192898455131346736866786948341759738552955988541126584276999964936672877364297199656963543548822389465981391199864459713155727854689287216216192336396599972647916813534244743775484833729973674155496719174349777259421328665879218879885198974678519642387865785563449938735182943995933718166622855748511128292391782152857428583957816817737866844937113754592797367948611485868261951325574743479164833862357262157289636999335231513888922528733441394892725236386564355595268591521899151474992547862319825574525594499335724867543663534971422852282124585869524769823298229414513514752138188445325445347276626856232444152984416758272889351935548671975173594179886165989962426173271676836332191615183979211628825772454875175135543831741781573949175452968451814276248227363457354688774618697915529331946281796265942293151841382215288816975582965284489463481691928898385832838356675521859818791578386769842775442992967836696653571947931997439617893576235781927921613692343294982238741329311892952221245554843955739849658737822933156591874167549332297961642834138676653859682424633327271453755412157341288431772993629655819449635267275117984173434398777622564969676186774179423741418168224511467164641948879133173888699948974671934127894697814181949832529965957258926386875373366239389286761485177785371798924637556473938867463132459528329582336764146832568851895747458415437193396879925889879432977717249948277755656135111944121781495387285958314826226298599567596925733127848221631259999835575276539721515315378382371243691196758729779291627434541555823733497269135944994547972136497779918724526121419762549541271957846617958559588464598342459443116766351216254998337952196839139685321432936234956742751433244292624645648351645218483424737146297552124938982413259481743446965729821394182222546474457792388758639758157179313758174842969734496462256863783957865138224286636251276852139414978482293611263768885359551482778516625876891257834358314332498258791377765761343768678911139743513541115671694779537327221284435677687134284561412133754762194561227829127463393595861225225551562253154789118357723734345791747851156533324148721973497865949624618251571784565652781477869821171885722889244598667694388261166154526695598857613363681496482996347815355148797924371219848937562141565967747538845866749523278272228714476119893468141183399125336987434934813959753841159861472961683875256459314486582477415599658846352795616955594749479739785667283441912596956329265138916462288333313453156668474977777394312244473718912568395792368187427541876146826162892261397985727569546258739436616722759558919655588193866898458829193847737582131739126695338129128411963719893775766226748449441271365525495772248768322166999925931573922488492267989185665555948176268495235452239146592946441347853692215548652556995188632655341589698153917142531148792955478426376179471164227221981175512343961478414311722343332338788823219156886326288412734865524495615418997618325166128384845274633973862422232627228947321738189476642783895157768552373355153179544622891485961716833267652859813174263292686657149355999184864161485694652327839764254242537834962421786996589565978283424197482623681179737673961877129439167327575473445293498476277928825536273729954463693338846536327759366537522856216338112655375841776438179254764386297351767251237769666571957375984618764388492266123668744471867127884223142167768924898125911713489791995199864556834626125185333293282591466812383745347845376675894843878559677852465958474132611984371125973656673166814316456455762773259415962268848168694238515671985925311527391196855268927474472953374425144243737243144671917183429661255468741455747194293892933887893339292236599299518777869157846168967971629538467244731635318814689487447291936631113175515375633662295913995658648746295722175449469959347792456331849211418751796572396165299722696625556312489126255661179942111652215736763765471925932724925879979452137292729611183264655123929853955664845695693928372774865851145592874343713983719986372746859298385697877165336224759833497216933383169766388891165946285896587726122187615484389874381871317178681778438865394261598564585383139996738414933348387943472889982861433273676899627329646635622798742968315794665475349812353422375561282751125543976855979221447783891966977511798372768681514282461557943674743569625473424742887822515773246382233779112475562144284761965582614771772898344546864239325663823289356435268592178481392867147356281724348187293931961146749575183264587375994376372275848795293419756464953371886914488256666996771417792919886577915629375855431561138229917664444814732316658684686517497152485765138258723472839478117723941516928723594741813749559339514554246917256538599774527559499755258647442884743599742586425489794457272269623862745884425953832267875991842128282771921495677884569848832934742918899939596274418383165257422613392275123538869796182596348488727833235577363222729869583331192665986424158469431427455587675841248761174711743684318767434898811687674143197265585452973362153119666969368175423857945379473674529125941747278463157664511757298189583556274111325972422495994793641996693193934419542579158537782789448538729961994159955797566643576318271165165468453833568922368898795692297533357639875676782579338787796558773436412868446484416275845598364597127394136764995612195445269518321941233818218669757392616567487461484654474239184714853318136862819165592813792263448777561936216121569539818114246913658652263764798652531332755345599444558624184848982925179592151975329289578852749841248187281377898616654437692574597296824841529379934267926952412121591985926852755251752336576668527615996582655161934157683359189749148786741246248642211435333387281947622535158892122154585894512416157291694374474579837317756787382999949366713159932762336993521629594339989184185241463862213264213444433221537931967242353468878912334555587171175888193248914895938372821428334812692815615185477185356397939499568549989486923631255675366396242994783731213575489946473191694693169332353581937831567656625174289211335583476258284939599986314114136584829324142424363141761159463929382324626657973287353257294585413524765431227445151365173412841183459881983626131156663994977976311187276537939145681968365853473481197641343245693579494979216333332186919223681937866353262785917216796627875767543177283441849561229679446823465763489624587543544411345817953519856796155798942472414884688849713283886355149267396585843737587815192516119125645283776947585276564725335227779197355847686184648991432844591419235528376965237117941234464593496846573268561372965977323551881464921225972198194581291355334459641753358548346693693737268583457432646589394763123375999748172614767315324699991138516489177346712442774233123124865493311943614847913325526727183633854757197479161382743314913264538814413249245263336565855971413383533746549965277723296793633951283446991886392964184742915288296431928997426612111374463772581123125913645294415322657933181183384774127537976388553236543631768244436288864593337549183335311224567174851398612265263496827828264779154184745961376695386968774141155443726292137797124691466669654187469978972741432881826472336735459245932195148217298725957619935958442641144855473354648388382765519663666942388693955774492567117863128611748486772248577623323989189848913751427531387159479768567459341516437171298812739695431176198148782499498177351218552558158861728747675483117127862115811595666449996524623424999191672521176518597148311632922831887938825475324817747699882863849532414851362753416175144129413355486779716961212718292514434659187664643329339499128269592956854519973284196936846653511685279529496614914686269724865924339379329879279538234196572863285923934812737779582881337413721122314585556323261338269891252262272539985425721744568547552657765817796247619673827662315561326616476171621588769535554119121689337823885832687539974474266314245816185576625476364681996527849311817365926353987345444886669681572386778393592225658146792549595634391929359471835648217462312864273263188925917462272816145129426632831623112847954135638138169623895866976159754157519323118179359724329825788283843764864771684455767658126824217473669135983227793457158631131877933735313434193427132884887854457738258471789921623799178753187768463391368259291471477242449115841168184988898945972675628628993918725294984766264312662523311491272671978335859271246487518647653711896529113931943571211964628989968519419792775921941926478266152792732691667159153144772487172159322462437133927231597634221335256482524226417129978621942965478917167478929611697558542637974855551297987858927552385446143427763772479154835579797141744976741918145859343689549253225512165156951445368536461384595955142655249262697449975813242745158213726533781424312781994178572482743394563694923291271676324552625844381449742959156923644889942425844877741845741341594973776828392579343327689693642129296867586632556677345394557658667243781344578144778197431195842444713746183877354942684683256399779842449626431725773249445975831614847718441492879982836312774844237897549579756544735366433817229898542598463916479815457727438317151299945235853743286857589419195214197599184347565148796626526926324874772185739233191653293785226613979977359362551415735884315965242138763678813854316894124628132224189345926291532911323763565777174898489919951941972147384741348727566546339434411524342615739591357899423355785746169211783632656335355589947411126937894257321943458995889621621114793116637739864644232173924135494694167729715258471576878361799158554234994498335282867684653557393515994343156563639387641885515864354676872326689597152249699166591946534666323153857851728735363257891255776989255841822684211425294128575163177442422579889721239539377774979614645883761642654596534191386346619188463317562811443752789214864762587727453432466629886716172457596266891143378841628387885939678284762865172865726544333814772578744919416682262816248419875922786187817576682753465196873454522229891546194268484993569715956167946889588714642831177947432938632219247927361454459953575777439549453244851884228914261637468323257469835714224115331383929759954699663143343744256184465249225684539633857229535143369882793151493454739341393896922899958263211445828833852131622711696413523667247819185387348418467197348594216887895323946876522231844584813482172692896464926227112541931269466515694239611232842986978993929461938341392313586674271869241187188912831942398746153238143142748638712796814787292514317521694545316476956224933164584134183426957573168589961277416718226557141688985732628734474945656281894953741212354126453736292711788183356276492793328591119279148846962578217276597246255153156948535672582218756461975489694277128486534644318955943471338645347175727171412385689816848682116823375872922139598478951719921592718285386379339166859929819858828637255882714519994975756731522474198566627977875253737391351478786622284771457871144763787825693255463739764451454728996668127332767939796131165437215761662385441133112613628149651236283419844836136386546349295328837166949423925543186719729241934528223143345788196666628543534875686891224683582147699553694172549138248486644738597441591917141953665594156539368992942131735739995444848381316195198382354736724267531369379978487396421783455769492427344132858677119288413877716847561973167825526533274341911694351347533313764297514737628777282226869179344763493765536293992112697494238694843118549169349358598237559398782882646542466299149852516346294373536289336955848733963496925343685194935528893665851181572114353753155496374431814913968169574748842471897349239629714629457731524649629442354125185446472944995358219153267679176629246331729244954958274921727367281823885798993378194485466293811982269648437764564812447955335314421383226881326516639424846457788616926484496155627558942566145885475913453858419154937173776154582982216591232236538125493998346423543281393415957758397586218741994122241461955631559287717572662972186122216568612521282849984282388781891546296446555537536833851739717741461814548992734227592664444117243233685384447757416663996397922234472918343928758413692231822844271351285485141781131142233325632766774192695572575589691822474548115415564112267695564645762195995435981272297967492755221329719153631658777363992176587618679574737882558274464571138888645583965634788515932388392269923561756328675424817925853969851116172792459881369952545731616615322471626493438324467948989451872928169598739652887571468393381371166915877722819566582312638555661261637399471326873194156811366372333152198121517897291782717424456752851751792571289356336167412967152125185232149955687284913119613715213626638624982699989389151429831182544495784853749768672613584492556885443738892757514675714253486974418769448514355611171494643221551316259199414864872891354564519531144943974449725815838185535377471764959274146515988785236564381246631547941481978646258814231154696551333372358122737517819814363818721148264965237778458438744923895998613898412178823555329622999579349539459466337583923875974911834775611555167815195373768149222488838983387158556173348143853982774552778584238835948843936234381645623551863635139913295817235278648884869123535524733294716223176953249151293743295414774285482967371284213366665215461878426512238246556782337647173169981431544457992468572335832137126157192436124259916138512714414918727859452867756358298368618999769443477443916641459275935724688522847582783346371388771241598339424252328452978986662676525358398693615559545334881937488824652491662196959472859843572454627746792891575323596569797833283756326414442873932666536219427782323854397475667724366986717476596862299826472943378756437164513179377168786889196972513218558765672487255733632229269579324999457575391863135347253199912399345892421396598921635825825845857347478418957748819482763356642455193834527292972829185319962117616998241859947127826346243433183662485469353954646361783126234581737253187373736353321533154493464269467193366881112944257576722227954653778356356459664312872874578823191835441975829159236314661343642633167153435439342962317441685746953646888422356432662386344617382455144965199632787915438798427552955341759693669451983752583237333647622661737752748113252364186359911166237713866676971997415938829825427296573238825825454956727618151769496519481863397681363813726783513253199264384942167348518266426531739635964457554277927833354916178931436759594711592173418788485176118683632993942148477256874481892758991189373576313127514832919974863871897944665866515887978865231526585288645921561959646432844875424841714215351345297639712289612996966376791824234996767974945224719346895975388686362858342853224156746234743511125219944118421735498121485634626137939331173145585376224576938521123136142246784211722178761513514817411524182492463569345375435715445386784723858985828335678148672919577848223911482324771574332313169843544744873994361417839959166848283455832121456486168944859342149385758959985523117892276991294232696482379721822511617216215527676214331382274324374884495846594913335344461881117495824297746946358773218176275724286595379862486263473279687258566125531417635251477694542266992593956195648253281858293327817157352859314238336229139251931636361435466667481111192827818861586428943419147147237318988775723364158388282895696327115972443669163781698687135657367764888243948317266925627283818673951665968779594196458165455292577644128896735134768474817326464127328216877379645363753464991491933643218836889325579625115934126379591483951882339291781283574192159976262349573481459468715115318216822945972121255191761372782512982275663864779287253279337486575682147423789586311527359987634182295836994842462523247145797195214676375559696736941643111711239587194548496869552416616767888735434777517293147387856423999662294661421939234852525267446311421776817799711285337843576997138915574254923932454127365854456245683186378671615926742227451974532621257914875465949151675772114276281871156683275968836393584799317385299848144541424953291561591317736611314756878174382348286217869429459725482298517639457967653584428378717826556228144748493631972898668339884494398562499653648727573395273621949785824688932613359588995146239297588956738889123861659153665575324127679558359644598593759315827127785621444298656596761671253854521973816335181739395353457522874861151683281263181515849582668945949997316222538589952811966758143132643263395142937126113676589771845951378883966767367534162838913417434391597254789422827919799939662982139734112953124714683575421529531414815998299561827165596647489539919318127963944649998643479333213132824528713176175829947978288381563814774881576957842437356984139319566943991585268391125523814724679163341488795524525965255526863778913131999342683189584945611987867961149973931238186479739837593399294289473485192629593474134363372578425544942114954281584828135173994356641751255453511783675181461686351326439765995172339737753821445356788753253561773745411671714239617472686941818272512569529833784329488972962769818955916878246468495283277453233137426114816543282781818543656859581281461195322589469212476951818816853853283331266177324898987768333628725156262868488778666332165315976472987154982768614335432752248786873577765941799923555628732519986234899383353244488839612742639152431258473686134897757821173988111935862129522892577159156343134935412513544734979685488912214517957996341723111967495185296646231838463434624529358756376839452435261492754115938793339813746878384223388678171839152132285872698919347994719673688781818375444335258747197154323271251187621933447211811615146253368366116119442152132183576982217933424133956161363551697395315997249442726331356592559288618218721664836458474922277184944754435491763496333634731449723287529967934163785147411534316613255149833149417811549583822463777272154367287767712669851987244851855289898664334589463461975359334853831687819347274418415838752236498455245159856186826499274486826669163557432941632262978316887442357592234438379584671499887522745394417859575524761799777528672111542136983535791669646378135235369473171212679646488115827439856783979898156919558359729453337894992871766456391924986821143612111297364898427428796277262432523542267447278818768385112234375638733476193783659477878991218669532769358637981828686385395151983158983845443524463991328814893297896279613854289578419389778878667164124219537465214932988775521236528948889525946438427384725647388173861823316838669387649113841648823894123694551478133943227271953232432581925952755947358965949241374421513997161564298983477391426657798987574639948836274783814478246923671933826698215572653181794475733725996555364712975263241568131392681335661121218633846893685524671694168161271833226895953494662711126922948111332891384524888859951442536246368458466717195879864897941563188823649129827394261548242276474354517429399929335389182397844169519231958841773291998118781296236948944827885193983884562689283886689951728127415674831187196265732636687487128575968866655361644716464992794551135721275792755235652951238474466947954524689292756732653589825328914454613521685358313669532962752186547699746372192347399485669867511179144669758883592429985852482497381656522398547689576951988927756811351389234772639213211912776246272318211578731541751749926439146266976924776631685659531273177772268869236797855311263269576244359135947516271692627844781383627529993734341311562145413432683344224495719749785988418752999232544882453327284782523287366288431727852273772259481697234743585546331446724937765715537912259713335377848321986456818689793654876392976797795221811668447782168588675144712334414469213871866714561874244377617943952139125685931917222658298992286488289556948138849894624413521148857612315117881879232552712715589349369869447523425561631711258262197982926666998545487566571297387884175539139962311846583591229798195447459335355438976225337296995348172895339852539252664263753276963252684557611514661976241457944168225559329369725792325349934249169514535451322882192536518832636576928354475452542793334116259715486212548873137295528827433313831552595383575394745416258488652795744362528837319751355282847996569886837629341214338646729418955833416167199919321185765695489862192687396286118226571131558444533682319837427238785877822555817256286167719423279656327462852556264771431361587442964799884938645912944971927661756126993386249639623119991755629221719948553414266467356321782793864857692732237873417949917176452736574557669347576368258766391463911464921833571195911765484421591536926898146145624591128559519552133622424918459818791656585439623784825315941921791854313844896165445866468451539414833117575272515182528453485335517826563169219718848683812334775465929216226286969717997229587813313223835442837898486197135726846167439863144714542141833394877482125991294665818912985314581229421799828174654344533943381311143122983799144477819193232342355555653822726153733623844158283637971362532936298451734938736988675791833935645389443735517195863433516797362798622884334933429662812481116285956133445738161925194232332859343835177659456457847361483567589763269823868492176892739985634599714686871611816485657545997246116565142112183529964728297822422967551659656897894264174745776862516561435915673198484768235721961516538938485684423888512173168118752554382741172461219216412222986131447621517653553563113224312814848588549383548684984295625695178717559478723589977387737296683453118946826964969787359968626851151945425112496364989974736311425419759351589114511398761281312742526549487298547666532559569633674218146855518374716941786639895316129695145851221715774437325746347295597983195265641873484958571199559347646952495472721215862862825758492986125662743644139324395868598696398655717172484315644121969737456119581288326647299511517479214624651768581144754794734462361731996162921824277435898244369423522127298179586239628532757788828921649456395897768591665432124916869794323792466125182514725115681541972142277788385436896396764818795818925682321853432952536896676945635294325319543636778267813317771279691121964226773598378598264381249142137548925374191839556963966879982636427845333326271665952538437678321984417537144199684736569136956845165627422822768132678681165749255626357539585388455292398762676137661493341778412921149816962554119249463438278459352342727872373287134367174799725847118895132341943468964343215589291169551774668994681114324872779675529586942731198188429796963821462319893165164862693672267447473693572776373658727984199733479628865132758813674362669632867629515818163853119545511453539389131511316581782735275219462371373223243892869931448858793821847168383661747638773457327598581177894269124777643888519258995913683997898365838115855769548947395494172898371979555911855648366795192279195982947437412866581251561677576175367891639615143268213169726323748537471449844258969265145667931774422464248653548345748393986143484518832786929744217946234738965415297455947922242725447629415845453288583264387468893554474766292599357574991637595649177453162111936582971922662135933656843953145593679672827929412666351455549987254221292884724879494538982779495896824991253649478822598675523192572971195248275155295952413692748935823346164567177461591759823616188423138374161617756731612962569312593338635786352823974168215236275597449818433424711916837359866315139929752894254244727441326856449341295384698913373816838422155969978515865554672961644385479965863693179524882986931358795582166325622574952939632656325873879591152118583676528683314681977717693812759815467215434783878558318588653534968589912481667321242971845177464311292439586226339427489896531952862194142553274115743621263347433443736881186497861123248462195338591977975614389381513338437959788686474944452381331542474168937784422624148267288232369765557135456527812726344256372237673374728361951113646849467678336453725659645744997582537174916531612176949493892548672388667311262468961891179123979997854564589525312491487399596595179426654615145374312131879418924855421671184599829922118959731214545691598857829721921815777677932471439224886868759838296853645673715636114679354237945529772248499852451718633145738279147359188974197178831133586492395821728614814611383285444863183663535286666925933242685861277324666174649229623847915491497128474971334236297482171518548249975352474796314952148988822525391726843212732215298896777818238319894114375476896684341922745565443753161697275633156247211666199373578526243686992516226262761786943785497766345594995622686664358416855622245683973424483147452292786347351817215446785988733743911525149129838363931428271554734875288981852777969991818943226682199886872159745634614588719367466345922926879333694143813738463997477678256288457741831183928317854692526933867532513622813623397757787389565217367528598769188653322948894414141781641316294968381384173514817764828947567853781798215445725491882576222896174243953487868398477524145125721925329558133962788438742133594596917952655841918742514717957415995681835318399163123483277716396763746256186971282431637316936591774378886463471624566287879438495723689126463513758377855777516987136947572712167894678146886464166668315475672361727531918534739485225663228354315157157799173112523968289913433828532191198398448635442243565847588796896625358111644866193466125874554915529239274558248474976463897196538449457692515343739274444152695537463132283796878785239534794136762165282352838697228161528732397593911234296165676571513475414153342454774361737363424551891315538763139556438145476721719728371136448474825638154726686558464567999827218569474736494858674129618681219956983466885379137437398147156152539865453979962594323226822526678544888274951119541642323454819644932748234244186959172496776631933296999313511216113132798451343662242152393312922234384118243498512616736867148259567878782921771831483178762576423218966157124196943341917164695814691385995384786119191716966546814823212749117627627686273726295676897969751512263729437698127664243837893843968141163732533189513775464638823626723984136334184352786149829282653841243766274518686289961979133315429695213543319917713819613843475334753997237118788167928112338752925315926637495299982781813677779299681353882399388446437785352271138153331468486211643312646754757562774729546257112332485159425969236517451165775997145641581987881439165159536825529972829916775616623927969541982778969868525886537638314356455422317193934523165737668974517949969778961392597179724512752535431317983122261868639179144296628639337538645722483389184492943896638371234696734941959388382662225942964323895289364183821985287672767188367865771189261367776432587195929696963161986892577119258856358317792997975664721421435111735444114213911356737768781191163617917337517532194769528536643882581113753496595979821564227395443542726955414891872928239868382546697282623992977269972856775827367174226415512227214289846327154651162693143255865373157778374637733872274589974381696353189452113391397736522941999524632666767185914776217491489232694749214892382658268817834755894168987466585749455244827292771177764599138581436839321938195292767116118757888462383375184683868568159824592437555763171528784539435326665688432817114155914356178519155624356446236541939245752692597948262715318952843856332571629293929198628313486672394432483312594312154874122778997349377598746166262548858125814437365114877472986131715696176418134533911547645347316766353882694946226361933456167742356535684176698325216541137699824466824122771593912555557117988225796217484433622766221921699421891321948381533719329321479321391331424242284454376117144975194925946451568892329829624929418798282826753432653544595886725685413673247479645798147625196644174231554182134413115767265739236447582789772212522187694266178512258426293423555753512718415155179812431662917461621782522126523593635681872418558426566767318657919477455484129862428973614457148965798146547323454241399635438234684587129852186489329373726548995343845818115643665591863425114627719291981543819267343473873235814823811755135942654882278481771242412486888461425894991739895717838166653389431929219262151419293999553882715795615432525466475674529896867436897338569815442998339299785528996538364344886175998817785226116668493726994699278858525136636281919281878248144829771373846454445462439242946438395322685131465899933747939473282612661263219679661845427453562612877893113969715788239864129271357136336522382861673558869787712414127568796873739175851728499538929575443919282177552523452294986933466656563661415556782891387881915571125372391745423412439196297643644161291175696837968878577139483788786793152735419286943545572841517276581653973982574637175357217924552616793181127571387612431922376526995284395143961621753744861592191627836239424475541713189128228278851463314741384254553454266873656693823286214628854297514981246714185293813264959267997395499868366776956252646463251789218194928485971684848574679756667366747685182151424271627583148774347895493497438755717456569436659348767916649424984518964896451475251851414355533874671858584531835819948363815173338223152493486866759686866363486317593642878565139987563188337956696858945771273271826125847532981555249726743948129621994635723758373144616811691541441792373538364558828487457491534494529762697933714542386915957396637413661354524777815485889517151792957162394779458887365314119178373878118474328286822342653659476564463189429238811135289344371835259468499322281283682526843725331265994935944161429561934215727634234516999394335261263573943795216556245964486893818155258437847481995481829497678473887639313951939567538467124851139681622895897734486322814397391268319488867649876497688917736751572419385948825564222911664237274424343736518954355345411713531851264435986779194637967147378354369693289657556899696298825731156915224277722412261678568131946536947344126256371337973876868411993727119634251263859237712552541812613474877893278281752896849819969297574262578376341328912993887897445769897634247278169348436216839394273735158775672696347947429348656929323289646695227812444467222812743942915574975765898135856836199484473929297673142854228711318247573853863439623718129989999813469634911243194475185172151932267229619533732267575162276368375185936788951176833328435941777275767325129126697838662255233849314936447439989661536642154427258551283925823679631284397629334188116488879227978997335976919316116535311222819699321727318227727371711623813763584566395997667485455416676842199445964453128756371621278753841875361696817682318359376141215382617767237895814738655257168487647392915695175447292795511357911631821389676129738897337452142183165182949651513291924657742741146554648692633751842186859834927572835584747811994291776667849695767315678259248547614361955713388998544368282936696113996467685373127543459553911692799435173411721554789734934973152883381639511556923875167455659627956998848893373651166881244196891389254943269525529187111511188126132424629572812711411451359159651682934969959229249383317212166213315592396318123949269979174675915444673393994297112998896154643177434643842241741939818313566863594758131245228212182812167643772257959963584294392373589232419614317194442751279397644456686546966665998263279198863297755398984549149845162961746945629949737171164947442538512295657541513229325519344587247256691355395516438878892231744558227252661212743421218322295449242856112122275417427248266719622797397498516946678281996655417686294933773266723441538184515272682164349645217459492391651156224321643696116742679788842847458779633982581144391178852124669426378566513627936834628719174916534369829279752445795555462762314648531336211345713258785861971334276197728742112325293677575688995415265948148271688835581149838369785268962777735518966969942767635141736893575925712317281367119413374964211612272213821946546576614188519468676786977962525152721919859785651129616311542856926127992861314225286615759824425126715781792114521971444326657158718275344444695693646166522335185892426751129678832437188291697177298864865732614755543362221827647423799172242596959265375357111741911817929169664668195621329283374354146952996353152514545453779915317792882596792852284628886876396975153293763846955317295772391877382591766948533954673948167155762811887461213518864158955558824995172718629869655959734178869268655725677453318813775172857772636197644389519389556853938696757456119527467385231614916865339964574415141879371241542116539425762112596572399313366367919851326325565193322243478114685468581122566976386391646536884239167968124791238857711343931243149845545815926781462485666679983857211791181759784833388946834219829887895969737128456139622943824691471866738449364777747832913263399384856689616972545327417634853682966634473969113643284946312669765316554749751895222515245391266676339694667647958119523942157515137176431285871681532725729568961677221227685542584665146882778725425436195449687843446923188951392824423866724516749231348222141322654949419741493315337148352364439612551535464773295999724941272133288241675943252741712984911114322145912486791774734822312492723936426664124289562843863192264556286743153451396479756965161415923586689915933679545131526556947285742733126473436837878424127744318562654381412984669412713385715541616834875953319349411539198543593175451856276281231283981734973289635618226734746653849823391627678938831314667121415485615566312194987916353865994433973428959158456136761936425847133365249244987599164157788263765199523327616354359754412237383883633954625249564429641862481767929225576989825256111986224191872893348936717222723721423732719877991883462174255335367438588465955933259456761183629362111846432934238163538647998733944836458541753559782556335197389661316149124467346481913412138894924527329754478126115245348236627958781545982674264677291822562257925958455612927285984865112316816382126576657475863239648759338866958415169896361584356221134928613453758727244281525125138329169393567339833251292694286917813742187711693897826975283783464636845614563742423921338596732184767116462625867148171829382489846456191243637442137119937265149673272276347171273874876482886743949156789486593689956584762335438334882729367425319967324445888729198161175727248143755199577348247153949511134836112511457181884487672513525797417557682388367695452582723292842596144272997656181248311529793833336743832587185298929879839112244817981248756355136813885685898278976871644368661242439797366173859446499825572685718786312998274127657627174332712469999289195497251793519822982138127836725354868938278149247439131823484718185877784487391134136927345615522998666994633626828429144593845134898577849281662593515755148442731577359167124274413978561314467313937833635942282568395435751482674466628212228365195536982939986322973783895622129562159343139761948115483845856893997929122997171771217582975564753444345444149196127765953498663996321754157956557224798937793182613687882676331942222824583771931288875923545538649731287465357465242734877339194166965791234869373436723446454759446725737223148372844188522986821482855465668575658967627816486425699135599247693488948727355996355258697529378417211971796285729234993644551491992998167565936858146499755784884872667324816481274824787255423719865586866484492872149855386465342888474193443429633698927452985163899398632773635974664319417792181819752838281578835355285865163953928299918966758273682177564767159768759544128825184289836292996863537471872544142359341859948514766493479623926141974958942792158697833784986589566851734813198857539898285732788372235624923797438417126589647463576947327696228158759416261795143636358916538323198937643612225466182772323155454147899951162598196263484798234637217212218357956562799168961214934544644477153698767772457577861223577813528777533289335972757768196676927794446745766154227984773339832591833497753457678466724947838176958287753187743688259544136723497224899196661818723666967639868479868757412492354529224977753599475258788828143495296683347596434837615577281429948595729558191364933571287239122761341276974999283448356168959935958165651949968182726421216998593288644737712591672214213712452679533794564714762962372642787853686865291661936922139273451924383868378424416997299127351343769945772413742441151942666781856841417458632765868952118676561145175811663748114818998655311324639211256438239529498264774614166986881523336386225142499668154642239272494933533137255122835389393228358649882295891392364882712832767521599717186114231628779862937678627578276776199249917883974631492148866423932734734312598852882994869311583666937467516382579578944874932287679425164693749686371667949157724644151518762619336281975778449794297246912252975683778155888767276789379475572839187971468244841518434372728811718396331155537578211647719579539369782896348175795858638475337354232329843641129594356183516241553663557719711551974471712335278435769349319364251597667789285937484427247162486435191667576177715137749455693236624581338734595997662596944256717255267949488977623862456871441265672365213918651836961547479585942968479658424596992945572529993288925881622969458542998148937245147424465551585448437331134747241982237762729254986628621984617685716473545559848318158247597264625262415858733463267172721336787214243618471615822627799812481289493744471441833984653634762779598753191134225393758921486442391166365277678117483173199644753658374681348147764872171123498653479737862555222618714716945699826697463528139199869229823372253613349691393393277199972297392662886744664992299918985994624778857329776975284164862341612978753473449935453759235269229416281428642644269444347762684423131151825977374317531196354595797793774361997317861961585844493972248574554274869956994486716113117963498625191985584822483183493988317168567556893374422629758146876563319164543769292353326131696153474279633888797722944536585191437744696875644416498742399798731415864441814134674447576556318358734168947251697841697231651476349644437242191784842545519647251923355159258226499644183937543533866261166977526479676869523765939656662148789426383868719976368314868973742673291486247223657588763659733881198147641342616353128363245423323235788713863486777593897338669872349229494632318957336959814781825636666938147943665259131498579942587189883676722337238277923926965662551796377481994811512783378745788857475113213573612679917761248823649959378515766834723489493274447443358199565147319556475793936758973763618112731585223782974458344511762462545582194362459684397758714849883441649865989848277941712985974197141935524418224827977966453752456357888238831312998784338494528943621533315335524292623551883686857899129451883212362697786843538116917841938348364524272665997696296869951774611952368423813472181667542529968853978719181337535589224365251935322292199223765292113539843846477577675676841351459693576861486143691157731755789749887562591194452367929994452325393849997916341457148937263394723187987686298334937711437656127336114672381114495265117762363885475742869869297513123788893171528982167943852592893969748146286974189864147287366562445248756344651627921748465929143666431954217279962835672162956222744737258975862844419515691311574846551437823816236175635565512985538562353532254752315649989177421367482644658913133476365373993939668721175775977214731266446648594354452728214823296111745397956372716877588969277787751269854581641137875552479147711826712159214225893438575577148129789895615125514656493738433244113982352743384557287359282595895183117272489843451185993142521928229936975858282289688872923924736727314788496515572258441632994564284643482943478493325378478624922385513795132861192628445195487525975255647823722982726334762414891314758439712899161582848978357376652584354433238376559347973791355493838261472299734757544713738177448153181219983356991362434241874668966976874998687613756169146493287775462651499169435939934463661447772936166962893285277412678512388461965541639847354185241991127854858493444327952341754743744528813632865286872995861245418851721983158666243332817831271156137125229165678892172755872866367978481386843723729984359436963768696535117469531418744776363538388831249964817847611967593745554336259136515288848925674846381514137121572189963755212585194254565267324322298563873921539745181616326658767413681872834797216266687331116746194182263533343858326149959624233531647999214487229812717768971232375863874113834714984649447358585962248558841192598843886412358844967713585695734517884435568432726497645293565916575917363186348986651159394885432923648856469358822826745223565756919893349355935115679281436891492469593527829329876784727496446563411653343264251729191631353798839984117433737899697758684852644532842573845514473938886261334666859896161611946339117532544919474462178127122734634376539829857182398919791974226654286266941648768667536523835388697193696651435381933584766284943652811456398826899257522149444697767792331292772675326421353612477957178177244291723454388558675369166773586815877191438383249676562148376856333933975793916953418592228793425618894374564159378128141829141511381716163367184975788678572622749719395539237425983659596767839799628969973624193367226872454423374279955326626753463941266516724931936457918583728912128578149532523157757594775675767614316259491685369119386843319868288793622671216196934697827613431299452528438938529978651312643652587638471272924819764784848184242884632647738128985453735634847935476531213994891236417959333934462194124414793815344149963265689799211541819191524827713937486456456499571478319782562765592236751389137263994862918273521643298326338834222517687394636698927749451144456695353982445994784458373476721279695893936425784228945273644752611179372892379681464971244697757855772852987946972368381549315889356431427212687714521574584973897539451261228999241297645142221852797723735623437556219793824889958539892343676229739699979358234985964187335756718677665588391599985383915389959816662999727866754282462898793674328328189866532858985964832298519422138125657631519815388486346368371272626488528398716454977583228225376815656475246772177715926747264844218845369937133794386759475859379143678469172341668234971544461365523358255378433236532486812847488523337754585898331468948132861513845518756325147173867779944995277528492923436144329986879268675326156246479182413391888714661282886391947745875115284953327325583221115877345754352546767488837148158524258532957191666394177879674326731483666366422941456924971312874892167683224216241742128948234514519367578888581555556451353593943768524292931175539963977236429696436854947933376261568281622671112786178762198615651458429576576734342218316256611656487234881444767887617312863826554266534567834512171882876158692917559895677828835994189784444634377257795586478868266934466628935759429866493278884586722473276639562437966273951318879916232695649783478985281229986786389557811878215984412423492979698553232318118597937168398595355298319531431278861567386145569978799742674581466412131643288175844798755113248789883955264151643912777177489257936239645951993282458155783697489891765258137245478274642791428317463777569283531437881969991721556733469387538561248234133294259721967884536373386199592612125987972769292728946645584645746344932216116277961624963426881394797817516124629761256486965995354934674275547412527955659248574866223641194634775459824828665841461715713264541976867339185568415585855151594582176798696142973329795219258596793262122525712833892212236975535751842993352544633843954542984458432529655888241414719152249564396438393771684635195818922868287829648715873236524994895871687358213983559762323613981577434249969257482358478649946873515918794718446661497261244731169451329699324978928633747928814858761738661947837691855445236599376248193197768527592835447887713336136325889732479542175753323655347878346328344287384758979234658344158678393611328693489393767581985742671821852711949877934781779243319482375545539315118476533447777595632975527347847774327551327966428615156889464232554298231816556317712489435747872281992983426957637855676259926135135312544248799474842555347931442752815219988735227353885578521686766376265947357172359896548595261787393786429126341219863512927986715983523514237248223464555253723211352513925638438665919324685895821869161512244199599531788357748735639669784283132964941766438299552427485693995972375341773692547677326774954352467891878227361918748395789114141828915616232333997726274174487369248799323444743313821338576311124984715959322552844857593223224512882367188324496771431632844275352587185997246713834987169477892949746136741229582879575422291384157759423333262449386737837945459134864287413636564136728423947848135544273336972374946676761534446788196338925941325982567591934412311823623917148526671421492632752833993383895746293334363535691773971389577941669882227469828885182299947642696575696331213999598697691463423961328851952259298858417432763958989873858863872656486139295389277163348134311565183685594932849544757569899734233481838221494246512358136999312559432344373585235259962551472526558762198245748262257392448588133899198812375991215944177724637916815685712292212685992663825514185543992111122269768714195545943376555755766883748528726379753989534998475953126868641166121218151439376751962537381395897817612755683246232275813832499189741916463677389497986267397295268259695862588438926632351161476382141527675416297659774879716344448581147676386941828294175788132771773439947431523232638196898964831274957791741962115814482278662667963622585589789169497525379436121262411759727623653493728751352377518683454115369498769544658785424372515725231179746689945812253679729391713899773341234515728975846755735994862184197557818715389865336625119217527252843592139894327878377387938743726976268957477165782519213966337824539234762567925174984289712484727628183238731237624932892148498961859162844856497889979972712697582487551835474943949846916156794931685668984488661543143647217499458893592929686729132385986635668358517689557119911228717269726549381948893594484415375882853496435338117456684833348837912242763295995631289572795688378481467766266618626563643291827655689356962532284839182391372936484328914156263546555764792784222653453857363626259526875954375429654837553713328379867452677119964257992162483311396829976776562976565672719149159541537194648736382748719612617552483183456318846991871732891636674972216736629219286357346498865242452924574484393817641171956479514596942379798979623739713249199547131257126813764146896211118862654678379861136538918628629595659196932897811353254995765615168168559738419444748148514973379165719682422464738532362667884889251128261385658311536583279547543553368286741561593259367229854118334242724761719124149661546746568873943319278171574429563946683479552873699417444775622825463698444619878718442719261332678927662923998769593563588512678451125216395262191256494334389225135546165689689694343655984885387832448886853723136481868246775457571259734994216744721534281624352376249548858532882844242293527754367191885746715898312322663347653353341714385863683724861283848164287367685961219471756765948744162786544939148975941516919674979157791183986873356316886753159954623529717374598128796272475359619861731457797599358875812447297273345389958698524311881924723449653171965835565896873864236468424621626288645234611877299645566737788397262673134112629573828481258187794869252563524561752581515494272458363418669915989137187516822156772913867758246148746396978962549749815571383786659278865551714577458995823281745662538983953319944633214333397763916684978317392664865287515171461929216146754999275694433849875966877471844324242711934217194689256883876298512672655965774122947615791499159226471777234545639371658788583513131197719153615433477245984233525434994998259691838642139343674126425895718668651493695538885286736215665421275114363725583191562172528968165465781952599688744841983677574918477571611479343626614861616897644471422468371542192377337916578896837873691743843869592382837626318894253227481677636644727578918786291592131297749413774411291978587526738737311231497737847834682334795658288291339992666348696728996542369188299179235758598169858491527424223239942416366151935775726457778871864914538234226773254779446323299688832754164721934492335856165823786769164426428857179455151541699274179411942836524467863715764681977827992173625962637817373649627417987284455841194674392554415145634443777151159417836879219613175518765371374325997584494355662111866393329651139776115549995995171799921875878744455898687185683641531627195769294663431247795858892952741126936482633546294688557642795716399827879223743291945798868338967749436447611839724282167881776449381725575567439656753541598142851931467812545499974227267859144936972652896335322623348923826219796969158671191243465257438148917593416254252275392816458252943581821436641757376466992716791957129152526589227743332492962856667653713252262835167296483577133787847162278359755474113259942119884598616421496843233447231442318558417949969642855988611634644598338122118851125413363336699938751662761536447978394526975967733788854886439226945386972468131498272559292913596935412657359388195251159349697389631785319337137551555478237945996964594427121874829356278862259856384625327493864688295861985959477748369888154412231596694179116788594483288519731779348545445913752299316257928185898742175665849957877483274962559324322778251946624462768965199122443521225328781125272976486486521762784295972974581668216734365441518726114319547694414965392725755436136346399158488674193274649181773317946849667435734951323229397427192684541282645949969281299831631797132158322715591518537411463432134249161239678729561291136478472885682694561322167167169686533612269228454485582397993862414773879789525962429437127493543918385143995371522454256885139318235639828446496522935514115835747299281915434175267717917589153661568558191318725485185822627972938783582611483721338691851548631498647787825196128877762716567596459128799398899677433513159798334235913833522588222462666435267571952224476514335351426959465211385496643284515931961665681991929449913221571963969936473573564416396527564549835827364611857187616246991334317778415854828426277691289212622389238593974725333972988819961278989739926487728116294984889887685658549177649549149537915883559194758644417361164117787275429419783557987692717117666382824654522765553112363962528156327581832917542741857243394288719457549649483555641345463762542477129984821165627631966342385523124111383497848581587991237669861161299427291949987586688354121136154995694687485143781515917811315715363612459862139179551331462831255516741525718614669593538611625165638778249991366315457226278674145893716696631341786496913761164643814462834857924564253439425777968284377662354798993334165633328147563239353533231444751314635437174486211542663797273183555887684922431575649928635844178565213694636774237228881463671425836175447924327828615752118938511918543223645337998562652354214214947259513835515461426549869278662377227498959375426861845752617735435975859886317883866432472243586182567435165743928552689683841438574127412975267922169828193245873183633819416196213284183296662771932212143632242469657855312587579689783955258283248724254292959817666861366283487258473782865745512186913411749355271458435998347435136366329353661684537916649482984528941966221188531211775613712942846831343451292222287648817912195678692825835847954727598288397854513694177651255626365174992676927275672347352714349757137294884512958271896167489354157675854393388285273778317332536273657975313912428795625247398815171768177478511368721134753533139195813549389216977979345697891819389634552462967664588947627697525577722868944619167851612361913359122296981451246939889115195339132341838852876568456357857479472485468344431166892536211736764893348152484489158192611684249538762566695933828727877835259192867913662154346917685367873671767467613727131621378613479536612238887168761612638487635566225448127823688758712649391656268791693374532296166129948193728587556674836146552153945844116845699256537232675679863446845429778683235947985552447671254775752419522115813347372137942319764893754864343557284376961299156336611985398654362798385384389822362368788643869137955473712573698823692445731633228655925962231992251384765718939784375671883873987916261721623571798255243518797386892873923151231846368518368896476552743148159143568318134924451815168363967961326146848239665554141866162758768462946768714158453348834998675419684169729135859282965355222562519815877778264273467883285339479359736494319726842539757271117132994532862823497659533349358151241684768941279825676991734528631578854747755626184662534885737785569922686947646882944332794463817799957541394762866388347783863642526271299666742359984651737981232848857612375399287542624321224416272741967385393956196426438868376448435162682876476126668534361795536942289476914495151812327386639332441367856396691681791529972894936963648267736773652784589669152646899616378856119368526581376539128188615489998915757394322765665473234662541432995515926992468894216562625558746296678268393171481936187542395823361276815112149143641484513983328225795396499493666584744132253164534943672512756395678961174471623927264414579188544331447764635926532862398116859282225771243534186362571272756764874342355597714339477494578134429834958597277699546175421233655647932672378937879576928941386658332497525317984732423216335789612659391821599872123333845324265228247327466343543766141661986317112743478992336612125962169678489452699497511152252657753611448373532369929124239385969219254961213329321222634553958869873269278511333344596942236922788194812742674817356841943533612311779844919481215777762914164384261145444472382658415494899126432535968385493666387736216927658781276993443689227789489879434292229718152499211989827685527847158919713833843831612469822594198978748132316688657774655783192778553456575933787565828386585663517752398781958614984813451817167731749697683543741211536526112773856716564717989991944484195262546916552922618688682839327734877477922113263112868851862645823549241349455746723617674836416551454377321885466616373565195749774191822999434985493647156529395694776864786284623877572123951511977554822539899266724825118259246982374416395291862144645459453951176397825334419523966311246439426145637251581432638248252793635239792396354386447152867936387681568688213531264979155747355124979837647899814382195668284686982764428996966384383748656914492577899697374812239313257747186233912761487757969898114877465187267343371945631529311697434731447169386271643684615664295566599295223831883151511865285631371399791973851165196183699962179198858845139235634332472476564563258932443356718121368384839276481174216441992793718546828735354361561114293362643377858731156471427526735951114431925777682328259792455849849372373849697818533511646121114932168342281861614863936438438719825548656632683957341882624384365627562924181476189167227546861332967269576593191996717452836959145869796355564554224857941525439815874419754299491675468421952833291629493812742719245885861143353315253533696766571157643646862973387639888554112917759913588765893554423267556757412493649326785139461676322896525655719739317791636783295383835489869732663432394953173611873321286169315448576962178428395626634349251684441126232964684145697911725684926118521727175478836427489956248849682752457885656398136821535217176242275944497136728411353763578271297681921723394225259325572479587145237298327738143175522657585398812419342924727114555619368777547677512582863564818368273941694342991138223469759574381685654877965868771116879716945983447824419986863753339299893391543214554433917272584314372492444753197449639347486896234453495769969693654677224794415641861336222271335672482761291744729742463469482849967243252225596469495731668742637242445656195531478831795569712435478924623966992784853318269292649422673967467534898228944853116848915191836689179881774958348832622131124772568346413717431213464457567834979713344514245265481836572153441319633973276781239212748753186126978265472831953763927791999691288993529613687862154624723672689378619669838595699162333589647574334289262911471366597645698345568986991192137163693366724548194872461468571176445651122465273551687623559567999455446572988233389841185121711644987525713535754637645146217161467119571713277521284687288894839641576536753484412869578357549492449983557795135291246862514553787565829578181411525119251695953519881837626655697197922971456696584556217763223912513788733482949374984659879151111369232559643569858213188983193128931166921266141851958747146247949936537542146111115979663276869652215858942643652138985192777632842316119153416619488896953625788918499314544284122712386557924614544364717126528688717351833292635962432133774533393827899128382877919223489723932223812813632618498419547518612722993262415475214144887627387458646843973329721213592254871516479843231461342343573697974135651545748774796821178336823225679723187953333994811623295417874735944539851149429461771122788261654916881884725651627637796592657947525613974438499262931588734427979539626958797713785743695946622665526911888559727291451943514769112693681525396915151934283659668627864816345825428312629874728589266545258541962892953849211958864326821663669648733926826811686917588445781655527727319889847438167819388353795456175953826568354835853686755389786271443988713296572839494822789495448647417617263345175456534453886658488948555879386721263597765439156851716382119579585634411833748324384812913859798361699773135857275555745129899626775741944428136581943444324284652915198339132679554897329537892182472313116363118476197841528625763874284798918646344938969631296572871159939694217519396257366713981894776745156816635249975535623692168531136695167562367899362631626478472821436163297867782844896532358449482878187764442524993445661494322418296963296246626868214233564694423199398821473957667189235684134334254925152236993599523972364785198381774987475625665752977235634562438726453814451834922634186422654425959249665638939182488131184515999824778232834732769563579821499471647451542894171935262253282129273827861951347349756961178389187477143237262874758334331157965692316637343319784516839834539189219661484624682932515387748537457313231492849122362691453216839558672721794785712961895114587422387448427775256342311611957787816549479946551173294164168736517951787781335432742157452224863558535294236657821925559751146472124632854318189179523588582118129363457777575372333561499699411335669346984421543899938777617549196119717147181479251137787542459851732435133259974176744487512586558589992297194481864292841188644382271491199438413832826814757175293132131963613874165655919717216428521596766853348813393153763495145185652245479259477772957377671178633746283197833699884599257163936188615894587746624163977663854353222612151824374679856523787223434593797769996453328979147759981349518364264797139915719584471484334259565834436326887734971917341645689163516947526278565555287351618614844347987494249785114727788548723146734464788746246518266929781185567993362935548178885485454352718497623715259957745273618834194834495665269965538145394276486758297643158955416299638945673258956791995899239749611494951354958528598967889654523643946952347287937733411375625969263747962689372844274299751237252425191258175369686995869882586627136142948454311899285273321962664267359184525595423929159245381717341349681128569751555468997967681795652654319364328754543237895963428573813738158713156369158444775522793964768548843469454197454915175261536278952397232521256545932348391827712831542683718252635869598579249322365533883697851346285142855676712254522671455378887389464822483597838996921447325843787268396555127916597441162546714439258793294885525268264317968319234193323691243648454783489119122429731889914157893261498318299341293281271486164379398138848661671898814842547863883785478234382361951333476252439687134846263389373215552156288946748122648865782882337431838633217918152747395484615347221173383962776849678917267771492498637723879464419318825482421459392873251196326247127555787731659747941941563286787532991552527589174267213429987629728753914642548854575795683355325181379633687462818277736151572169186148417152223949721315363468356869789384516699569591126252977552511347777246983941943556653397548572339943639724817952626856699445668452514565856441692286745678234868917364738272331448991457261545336962434141263395975129835779292786828232247356843245216684493662343954277892476698999657996152266462778557684243142997586289495931198832689993386475133541461962972754713792921646148382437314599564944213394358952789812632972726119529758173858935815957145115625666431237512294774368952462833478911123763982258574369414586724514515881168284931256186434114365516183298996288214722355654171521938237927425336597622175562413496317198641263712463468814155483824513477383552698834614918447637177293921176324196456847771342939658931136657946581264821853145919782684258943481597778863166655534693996789137176653527634278721179368847838525178329172388259257972754336178575386382411114938615789212828564993411631542943793271191263918497647699653646995212229336426265729478332685174684796627259675246983715963361637186557253219533129371756182944642396921222173274291176565758122131631742848155464451116571361473435498673377892246256793728754187527473599189384717477637492791542268418325334594349983722891953259881711233583816794966145139334323283396543722392786281692635956165383837198328476994863115599215533815514345163653137348786795357537978211717962265788566145659382178888958544659137764476832869966744629373637529396623195381266649182917378929849591711228224787785786513393377125174296817285863431871189417118516914594113697939916914944544484965394613872554444934337671918494824284451616958332663421511249521837363223717531785127957961822894519731919652629122716413484663814777776732884895875515744199389667334996175455832372846246964839563741447872345472555159656937873146279856971397542857711214981284681665251281824199669678977975243388793821892382257115891488891139898279258376489181558596376478257174988716243242285945652289193791297957571894892495759877667946955649376345724843327214871574158522438963424718129639125162466226359145367647437391192698734355878872398842475293293362134449935692821694732251479615717152834493574533916929167926486989162491557891282683677267796384289429463253351318465271849468776527553877982122757354348263931482126492991291265981214831213251463982281288294783693985916231265353361368188546616994484186992526752777575329888376624112512653318385123554432158729119369433643361762116338443313114939762116341316417939773993293686662753275386827529486674894152696671788396888529457914384697647314472199787428452142561718473293539539496138863966212182939138289233962664441537258256347141867779965122545598292916539133119786672283326864584674216219411378835953274749287543864563414339123517634986914667944278518741732182743942632986779986837619783871944247399497164943535285252329423736355284978373514132436668589852377895183818159441683248197961198767165344949973831254943638637483188412816784977981474627488127216156236715281778726178715696327822445124422589459856626275617378522923353491435411972579938666417687723161293634631777571436876525296391421663135991756779265727246675796663864264338886792273875432982547723237559247797723991542631685356469294227876556746789842918324868677988565119774343225315237493361968713213181413624134556275492486156466774714955448792318737975479925581851345669447567441136554545992176199565497254777888534878367464964718348142329996838325139765161331254947178968541362754739235257262555261157791837892264265671397342857852531594272397513961979513797472633773989217757153231982351997158326514414288993296294329398913834474614113892111621152872662843279549831119218261364452517591797749623624444359376611651398378942893145488714621381245165982765844148686556817825838344731896371584452885465236628451714793329377692789134537198733894272413339188256968312191873163379519743631445949769869746141377227181333267759626592375879895516314336652316377716743329118658268591155275781452935246146899616456451977346471563977581969919555181976799336372568195191972936424421981813539665565174161253685927125915246213648145441456724325816315739348592396739673244554945575937761599629281957362616199556939615665526434438254325814858542392757218732173898319689974717846912621484582769679448325695377877928166414581437471292552188774456262892239373898818163269836361887966189195285965771977969596684379777676184481957944631689137553531177776124198793265213125769112118875485784553757268468845744845622148426759924749466349613196557652483967868221256779639839473128256342927749754329272254181383997521712475249561487591989917195856827943567313441999178978577963543137473913236325223898646431673986623813135755266345118641617985546727921385812436836791759437981552343372841983475934898732419464577714877855181674863634775511857526793487875843328481757217273824494631318892113841825434231313652913144933133397377629123143317418711993395524242912893197337857627626844496729719989179782477138789364612274133831727696644336194929479586878161933782354677166467493241717623515784717264861496135348319969211777957764158278689213934739749626411276471278945955247519484254784781428446139514937678516821298567599422825776167834674246354911659472653129535217663877483882845783748931882392847134773851934582655448426534628422788973955393567911642285656487556342537956282772845953316854698132273968577744826312533126566267384669426979362972124325861576284541581177992189291522817954663916964851659858758799889575839911696881844728684442331277559549598976959421288413635642397141981776362294221942214658777471468336962972382366485731597334269182776873991136563136174796122821177654844846492614212579171262358924397671219379679626623648754644864621641556513374934287963215692843997152592838211619314514163256545131388479289251161522827933585188997734643666673724785477625123822684958215762932399736587888279337631531896998128981539227124947598632622219111898949861552845494356418438439317292276221294743167786538351189789895417525888285743494229226194874413944532441715853354165763249479674116248299583718123479783528585875488397156426117454333574422898337256951481992647868295527695328132617554543785371279622261792484544198552719346443215329279428762171824994827451779192128949625823794193574218375274384278938599779178315635442869187583285944821717537899333428316855263657947998542311233463384778275549132821674794717953362638445888791872939398669363678732575153812889161991756671837619845349529698415583567925197767641253194163713251496197597263836731131525695999138647396912274756758781359747641584223793929385858637643416278336747916298116482343116237755676248838538238776781999693377634247918851574349828917756174745158749515661884875664339836298693576316762641127473896678287946273714368533524261439996694497114364691543785111244132782139739256515558726126248441599692574488938573253865367292349289336765456294427783228837861879892567892522942711932714499586475521299449434695586657986844561811929744787145483947646239565555547512879563911395958669515859412262258185385414898644585969819926231849377717986739278565444435838823759319917589486233566898482262437257247785623325562149887914245761464142512834379474353132345711746949298462687625149233356735798392319236284956449352577959418247367379788282716649877562493226833468337144115667645391421531214359272885295651415833764727827242159226544198137599776256737442545357811319111851737332814547681125615624524598662494474838475576945397748188945164311772529966558187741658342637968936267163517415188133866138725416913628858689187889175767537867458718584442239917824379921716452311169593625596378615416576111131236165436875493153583239638631644241662248686781149351113965937241297391168637639554654839331144254864878731382237581764785788182468746497435637375441698175874129973422164436153585545441827228196237433766371528972514586396196627351526143984782832279719398868674525119317765758965735765439387538139869526199885467822365373935727513455964832466148363781863325175421815197223827543899885117525855836334946327879148826427168543925547931453939833725456151795195449122246348231492726321389798232132236851662691862483422471183294417983848917973211552678787896337924217996693894847915763443975556876666334613887686152386472827413969582832129767462679226488138424362433444391145293123752554284519541874193197596717172225523874726793113411151721326437969245517176486626629682613245831735285983529171622671631844326389716294445342384549493466797326186794127651789922961217775496913573984638795587683683269798288536623985755284752191315284192745397485958457731831741368657831259897383127781763736742597279284173899192869735917671821647455761949948125987487154235278823288372365156554283897199617488796524658254798296485194144782541193457262531341977476879347471489724439572516413159627541288236297429475626155469321975982715313955882343857373295291688858377563931164337954264682659434159795997993325921447695849772176956445234456947979648112979175669314715159633329282973268165622541792396259471497485691516157181269388793639668496866895499118224142819163127866432912442352163365446343643329951142285219495529153786849261956149256766695157162221813729713326249896465969554776756937898928542421145542486854418991779461394444538982129793923822788614743976419216316275477647826677839137657577197625141615485942635536182738527388772742281674825367975157899526274457655512793318815498167818525759495946924245924553348939771345285569169373875219434226982916414859664681966366398518196386826112977425411146665325225853425134231852392386932462984367589982313287316534917153339554293982192329149682883576798643152449558671574421518756425179484527362228165316456321752358176327143254961489933544528643431962665971265293985328669423556541517984911428716237983814168523663351751682562975763944249191355581545594648845491575897717722269313743916898337374753432284218138393583173894531895237345655457376535722911354432835567922466274625297386321653726162853989586857356974594558829335599787636291835321661195766798248126878478461891856855322971784584162898524582676261681777745183578656498757894418466534317714162826556329899239175617837618994286621232121934749281974743533931592494615688861889977249582775624763123572367445332945984151523878178226342165587681269573534791587418843938477135232988339698645476148341167769172251873732596922626348435191996212188352599982243776519928997517724559697696691876416297177737488743682441991876427135733495134796165188177155796499962291783962657965762577956585362489448634888574941288762419845873816668846772975973648778752237417963756213318786859636491593233918172682812769355296745784997298985153343318233642215773173792591994116346168332542918316575523512813536142964997197927555196345424767469555844552344898398813254629355199684938242431259931144496321839886178872814828799693132664636414119877966347197156359514766496796674378893612297722662947666246793129998158257838173276832446824115995798614296994291863117577987486865616125724933119319847445263858328829379772962892766418825199721592428385472569636256947536417545677495942986948564167891439174531261644742436372787466319216558673637999143758816552272181736493645323336481262725832139183631894226538166183254647839747889858269812618225531985557529298283998879129741372361716557476283373259152934942177948683229738165371375366761858551319621583387715632257712797443563424451578348799815575744587723954379336159929899346729166738922349262676657546369849746317118332237394949683228192165596295927139768263921332131227666274675477244168359472574575232649995422245541375312457715218362161593616251177597733493723548654614864478486146898938219444218658934361198692261164864817127872664989988747953958334594395982146444232115699984616165485863965699922111471458729325753139315874654755892827697519983285116572836312789852511151947355654392474994161955185999183797262671797196483486883383289458174221291999528756344662879794591912921118959725348693771649999988161961645626139788155118917785671676739181683662557957746425871848491498465711845431194745122295934863698168242675585958459478851246495291914261619184818756632655394614714228288187467342795858368538718111827725352885154438355197877687567329744832337769474873661217864584558941163627555843287218884343687469464626361755163773561975132877713254779753159426662668972257828933491375579491967123919924785688816833371219395896276177456724584265482393211791218715531911248554182211432491491171523613627461769879992931869977928277438964139916896178164161752559281987498389769377964468433667476575294122997713598744586733578226534825924594834687134697754656298571162421782951753993676141559396382432381584559758116618652571219332569497843626426976739877996828954893667738378875447324923594388667814486213989414245645885112857547876486774625828371848257333976653281648198579396371184716193667865739537365385822819281779134711272125851378658739656624516976883185568476241113876437778364843159496343757757934567333959333538567989354829611956678964876138874562485876636722378163441953849285234691263834942648983187351368779149965247522785574681416432298292197699351428866124254687715625733483417438223814228587156627289417546379999371672439144694311232885492491316364395388658877989267616735764381729237172767456361922584858376346258746912646262343391675412935549424994957663787196153583686238168548833598756455951288456868774626399558423968453462396883649981619563395589423568687264427216367113432789722876734441772592917628851939882978641975942172272933718799778775527624117214421513773542419375637488789419731761938272212138681428286925887954146753874976734766574165643337622395572868441716353668112344995914451635469348964328928242531121466318834667563875675588541542568197871246992269626264918961216815683596294211272677967663772352899959558978875942748493569784863856711588375668722459685554839194673711427882643787645281472372638998941638882151814333378595758536339482269374345666783632186738451388485311633979657991998571315433161581543841794484462218338751965913966239299536863183895679566166352874873636312419689156913518143239517769389429378273863923726937877643461393321138314595776368855618845863275276116546913539325764547833241567266891471623544991344937241286813572419561713182115498121139719955995931891218399749549542412216794287266267187961814857198218777185891327125621591875674484342949429451152593552649196443867942883727721961224368267611986571667838591486597823638388386834898561411458997578731658475158436273313237925662534588335739662178297429922576629968781263118115834555555692343249117213413323896251695154388691491211451662941454414818235884934944977934126151581862674162544837225917328823862846993397452834454845555336612695285494238392645139574996567716234574886616761363298598143714316752949591276292312251954334655218413362368887997112117438773193934259375162852562762393161368651966882498572627772811126142896983461699445597274354355858947526663622555195691115449915797459915267421829288388733613172727617123754736643351223383589759419912276638182417429747995769798688795367165295946891589955734581351875571991584153111186459796732797345334361676976164699468139119822244679737323829379115818717698712168131642933949749211981749419615417472663846629631638791632682122768824988659522575243395454654831611819665415643966195649885366227396352792246441951494482797428157762821945467563591739918549343118281283629365514577466211144344153159311236677133668279183496811195925948695288543451367617287286688172939458112446362132738347815512684528327542178279333156836286344695425179366982815929683291725174515122137525795195154372334741192592695456915324728954277642641781959483964484755559976639683651635563758997472926813455323577539975341141776757436662983249883779213396263738559116294417375542462681216477112122721161777231457424533151861961133137195717842583834239295381384596216665259497589992722249268597117564187827675554625748643483183749137728475729271644498646845127919672417888796859287951534844634481531328196661589373226699942389442463161737765681892452345364297423539582268525694748752388617348582431556397856239195223963686534776621349824535434755131298751117567482363715237612115124887788533272397576989749839222699466118424454999687451333354393139739562895294243977919223652854727753742351764851541453616791262836919124181365318344595163289352852753161986427259698995313238313378584572113737676575996119839256913259351522289836315825717512112416241383311372813384754495584625247266595412672819273591149492815521158698756836743192195924194645551491265747321519617119418863316346352726546596447257177953283826341512956594137742358144361433165915281649942626742645151293398788396359153324897969454363692461288793618838296881726142391546455314674365165743714327446588934454711146652125385616259898789925385488833933561912536415173163591928711994338428551189587793932134894883314946781888737495688789168346556959437515378926475243248973528913945686213894541955368155286986279737248537871866282176595184591564377928795762388485925532781736943735593979197935427859826988672944384689597271622387278766514598927375224932992128725691332781472299711994182283165523546614651769621628926234439871124674938194155917787491733799611168451269554143621341312572331437173197142335687621642688812855552759454677225786739897678852396362386753355722395374932716835469688253468849168484877947539964823726153736633371767341183878258421125388939167132765763139855687688216989885587563948231215663331141639617955791993715725272514518569311915475473734216723962312156187976593949313522184378498584281876426619638779877294943882298276717477329186973673975254363979659286817716493759846451766963817725215975524678563296263758938691121518159326272381987262955814825865659481997134113828923493874259615552551152552734435665832256116551614617843116348894387492912557526766559841473252571219399445176652216288124339586497426459757312423841633956893542174617673383315587649835314648855214859178397646318371692165849249624621349194623551519615288192963324346246588732662532141849935265488112649312578631735718692117545345497328465226298668427527161585124755581912531376127858564612914379727797848866476152897148347764635395979865492186275979693468721349736512951259776253112347128132194655759754621135436559269962262515978753194116558183998894119159646521721121775584763642942847699331393314381728195258442416174997127347656726536841664814311799491223878341972664621819239299149151337961957193565535557566468362374979964764929563897543978894921417393759159985264718996875266386925379174163588858657233658167668175172477625499254866219925671388775822583932947232733624272319977458516717882494676947354475362896656215993133489862696923439518172683272374612488537128451391996144441577836173926537362271279873217244736324615257863989916893113717188719169574251438329818118378976746743789194147958848637464251735399567466659244927661496711772192946672327241631397236796763862956612734358311339941519176451546216469784514445348488395831885485921989331664287125945516594933434511433399717418992343982373525855878217177727597731828945285669247967665445285847738613931596491186743175584958639471664612342339893191547733684522577847951164842241184866124466514386972968343456464839431875435752348544258392838112144922563938262994319138311922915317352644469448868761582572663193738882217151827693641697853153324193313917999558712761445749971379581782461314174141184458335462391358483414711125223556479824133167896127487497899144671552845149818429158687465369526579744157137868762531266682533988943358949615582633648315457655548763545496844996259978593266619474618148732922536433273488948885345149912113156788995232125813335739729719124571379692883363584957818788581837854713989215354758329297944826692972258268784157889787471862421427432347215519287155783667888839572696317756675379847912771653698757488954521946829518775731981655473356517591272122878451437392738854594252368369446271213922193878127332557474317824833115114481282925268895225897281471982339357448855734245723431477456678493126811473796167399436169627455657247263432936766698185146681255768474726718364823631135693696172899261839665147219311669928535714529583448932652462437318161529871819152845999125268899694545533513327599998899416175944388841172313962869639569176559888651658769855939983747655299187743897664658942841914768268275748938694848733716715172887584158959797281144323873389467126422116975682786997375692527228848847445812179578215654795416199774517886184941759395554975473451791488985477353361716293649974843871568195839965135545797674167244299998582386878322691458744467685675422559136848916131794139788245676711622396186788757159118831387858818146534192966661672354372955726529272581675232297312749734395846644782747161378999253135354827481748713528445335149333766148775849611852695127531554639332989362323298467867629664927848137963175394139716567423825497299875272511814875421152333662481377784834824291532537658825953189646928399718862815669451846144997599337388164243699533626229418257989717513837286139389892732546334193843125733435253132294247861169343643926348653855954377153959883146347952615989465792486781568852484969139516533892139787744519737233935975518797719767532882655367669146587356926892535613767284848642391915597175338787864673856619837828278865387156842297372742725386193879297992575674492574735253762939857556693251589526989495661754539373932246193145633562827882234961344457966269632867958636738134148472168783645821525376849642946774789658812373324749313266461837295159839956278531461777393385994497379174681424568525353572961399927933491332566318722179164184984686814835881412373471385674161428897279757798726153971546733863642368323993773367664597169345599625547646822148783132847651299151695257748842729913185759869675724139713586756747945419375241513815685843418972555985813336376556125598738615669157538641277822523861544393759654316969186667798985137457722566886472379835514392714548299245822459577459899338599842551475856172938663552484223186149276569167169916162389699798412319855862666557152371131199838958834418455919624732743743525419193533368668529882965338579991811152378144885773978491246136296111347149338795971729733334834424556141162831427598459682964396641353359432364112747694889319963896221144171479554224591521397575186281598435478889138181299857455964913654171868862768678553287784163237535529485451227963289747944356918459388813833428626699384627217142978659832273125583492663464167254919992117399847166232468764477878667866595468265777913788116892667233872328234611391577478856912624912223946395325362188873563634123145428856467983192788124386587891432116743431739897598826465243275385848181953822571451986499526144528325321591547672651281141743985616237176229876932949843716194654276773395272864847721991419865163739868474448833594573623697114467352988432294453799952211821257762959782891235484478589561665331426473462474813249186942197521553979225352632746654247346187133329241665827982545868582189882913916872453141284769416613581571862357472675793158998559787734819834652728276471269114881554834616152122839466572471658783165436922133296132678624788647853395976187286789747698175929594723329816624382265825621292951333543424986394519981441451645667991333529148389277211355418854544565816619537355965198438214557793372832774498884372224934388957374445512941638946257649867762477622163247318983597241136783818671775188797596755468362939111967843441219858423848774777678665258572482466297472248694262126431277325459969615638578893995537534265689586446897745424713264817223671538162651324755134341629332598641447592422787299513574496555318442181122281988749177327861381224322323549427391388828595533644856976111952771898579429772925419897597582668747685527494586925895554293368132889349168426817486731249465278356178165896576224796711746253976474389668216727175746619323419957365232942512219773234155395389995417511559769636958254672999989429151114979933516329667766654594599499896878928548595261735164513543422198771434374688651167427751983181958881317565421336967642631838933711731477818831426278332314916266237364855536577174996126415932544261635987635332621222653245388715668256818231482483557761398269534338728542568686741517535439272694475228373922695634377618626876212623449731888242668228189666286347571544412335479292899856363887645678128241677686876741376554318675367261127785452925841595915751286882894572116287569528818464372841129466665273819851649465792875876723278674955948882838487464841412617475759243931213932677951999259886352355557567661617312391295273797723257893558429158277187684752434648337572324217923721389554786151872627749958659912929874343856744884647433386375467445769934517884248981219636262896361354514372686474474346852941576681949366535962399624218292248786781617258654773635945754877645213363867722187359732296573246656982368929936642524533271484159646663354246881832283599637932876532765189757739857196158841937571646253928691565274778552434171134638839688634149496251483781784146828776637831869584511879757161642428862654631568818986852556618749525779132977758555131274624588439796798795551314816812274612435314883661995135315875191352475795173327327819339726225348466745342563284864787558268682518172495541849225583238944792932639778221294115444766559728891953731542451849384649284155834929382234269243279524421736218599418521936741156186328481991749779531413187982681212949148922978821851269857894814917811511698579554659525315676966746786856582435781733253519195658225898347471958922225474374838551129953699584374485733259521375377252419367685924595719652778294819959965632124362842796863563954747634195397533616775341696881165727916535177337883317266845859329921563969782361682297871356177169215419467584531551246352868674474815751588831876899525591347685165449487251348827758297321979375817845551574365838758479466293773456891958264656412239175784862196676759576839571784581958434533199654592183139998436431363615723578917915317316939572587747218464245845354973466312461934743478793276581977214734869862235463241446995182793966351337438765188923622119277464897919642528916817168159166712981772635876676246941746533193291277331718364887461544187397696512344314121418145188586215764314537857359299992499247767233464826591215934832962976641454599969418439922395591687242267425312253984875915354422124241773293316584861451875116217521687816937576862896873483894655693473165622297276753181369534983219426876184791375664689541838149971557945324331897246198272974962816599921454433146556353449825915564445471713996651275428399781235559996966266721728258188955978423322818423984955661568363859581722982633921315772828653827665746834986277298675746592763438892373672378987754227876832175854979346454243917238815488684969355378813227417129819346994499224749421732361952932755444774585957899851987982265348763148386772459334423129236558425517445922156979311593424968899241964554658345165215345641519422417752226949556956379743682524655339442944889374899763932183437851793887364182461447639747879655533811536944161184756619297153415785648231536525889549469154494862325136177639218952896791139495535928525377277872951528522449782373124542249835121161811945813949231674688669162167247221611894717764932688684788482193153232592267461638385653482681885188238444189132759314552619687195817641947741815824269438476174655317391164955347753685421927462883611697992425999347679769416594644794493534922846683459489948393662991253644637276511448431259416516519763125742283225957872892341782757949423532743227994973216374347942973115267578368566765372616318484684911747563427883321461989727176476441197427995336352349211917544177185617396837343567388478122329136586226798532877595232123255157695326886649726375897989215699368779357912763498877566575945869737552342428647525171728211586558294327558313954361322942189643452773328248333758671874982844289346577371113467234312589674171995441168178315938348596453659737161277985815398931771315569432148245833213633325492411857689783586179389642773322352427185964222738656419576796821953751256558739584114942511182186351365811673519811294334343541165181662638878759768172514757752351316468245129984782732196861985926642466867755112385483959148538283228893468867985423628612364172293161316983771392564325441746855151271878145165311632155138723228234311915419821872987489251463185595595935997984162899794849137587936528997685181169139513515253855495285943341346258188328744927456864448561595119818739593784538114548485443843824586436694946756198937369543824162594163456931441323958792874269328615849432464386579348424749661431814746863391748661483856712744824397874183267932961235715979351778356664869551656679249646471437362736122867922578383246782815531693293488169227946169637728251328428745642552345731794475181991833516159194216789658984491371363412916995325884747636874992127267367857378756129762357656648453988762498263763539755419163798986753881697862224188528415583471935123173757969267198849496523595996313467253978677461298839989579118345959256914649657431428366156889474488978242297939171887493981826355942764963666553641479577458173566541837183747899927874518415651193185883956546527294544375739638946414797351892421865273655617491831281914984135119627781231869842851841228521829862548552636619785767778539521597639484545295173548295958898947699647872481897149859354134827575428216334323915981824227598245777486919341431929991312861664121769449263315386275216381347658724657464783111628137755779444215569315563764824636391767791991557466912277549893322397155255298844435641385254485523227632151934376729757262591142354916211214539182855661829713937238738758199888173528591469753456138993681679465617456482346672173862228275922462216634868525523798899617217342443915481121572642332382892535668858387378436689621848118259625489217835767215176159841555495834754446792412818524487341861354628951631762953783121654639654915799752728713882274237499353744213177348128415513715444369633933249863664594143213647973824117322297553893286497651357529839641769415684991631296319852835798754785243533575584113198262549415772286428665113323612527579599966174716562963293464515251191975683963498684894238478883981888437632862628997299147825113181923675741892682311313884384692584841225383541561572769298657895279199417751886834919838583362778576427981169643924816655879935672313812917959352531186572455922242531521216121263272718853355357499541651253368585656432655181829773837842168815359983147545436393575358453233667656751485836565623236872284449295769797279815376478165172515324799668374345772319114421652183451416133557924134935466421527752782384538229433715232772623388546674917838859129543599651887732388679251936728762911776755527635582496588151836916983667118661298347985781763354742997697462472395974441516731215395854699836955543787737319419828313652634238662839413932961743563738971383248421359552637711956328115134347178193947199678763374985587811417317599288955821157544882652692311859868663134148682179235383424499274149253556324421223651972322148532346581911442363627614734848679793451442465492763423785267814884128952277526682723181516386765155759756517164246444483912577162535411851556969413841121277873825445329373959888162163171756927461893728993872676762969943525251348499299376543119295188341846868698617444977267986594326391776635475127495121719447778387454996544934664175155879655373117497941232688985389876631957357987682584743631168935576672397176733881255417493284642398427224687774888228857965429659489192441117375196872578119964892719843833569969645682592387657627691884238225968436576713557329989957368179666399956435771312299185611527363993888521978117226124574515342649727668656456168669916367771845726462226751456112982527295278648275396879815414593744553979733641969547437867226489735122994357344277819585296643615117196521344651332279678231492983693254277532554561337131268457616922337979124461482185111946696387311987888234262461761754313731541547226938353477444427748919964997718392925252986227981772676865525344335841938549247295261846297719143616598343256865381354873543546686346169484969487413788932275744467874791186925655724616713286621317566574265529991341711939589619365913328759658661642633582542476956277842895552615768116159276751367949129673723188879483391765782485377133485693579318536512971118535247576825272182844384582582224647374855261469534962318455677931557932457484436612642577923715769451686323655216379416117368834678726257412821447377888515287544315728457548573281967798126769989451185838785883789548349815793637645237185573841684517487856928772383182437712779129758433934811928325457138285186952784977356248978593315123522125283471295618395253474864915115523869768239158464789975365766227593468389275919378274691166788337563371388779697414863779437169715932161827776426883168191697566969264245723363942136835995551246152365836162345348921518853976571616179774897221923853748924561629237984363984166359524314751611513211437634139555596726181149281481433185487432871433941943852989832239577219385428612596871968851953919628546168827176564659433438627468222827599297852196139362122858579659319328892912694539631715653427446368247338587739683662227468992637539263891663531696717532332473126931211266418567147789812948349832843959589325939697576569482364457732678591993852589134953288532295342281288453591494889186738957471479487232471599877675358143769796645356593433329976491393568438981426954287418494934942297129818839433752372121513796915615686369382555683784724883563933571915824978445613974362518799947948429616448998295519669438422115747717341231959491455397228329792363986998983832856275976787667883171569457639794329717386141728815961895557427658619347841892683178146682422175836769432421678875578236366463846412244386332218665378784419683233347775297318263798566797656877192867386916722979726385149516325392928518179376347775368328849368459298916822455132548379143978794613412984128621764581484689458619858145556398364711649997941711785498933652377738792691285254323761663727955618477536644169491676732913687158885547192588427474946226385189767229928966787435727329756154921632613418977629171892677381672734895124912572578548615332489452839341622777825758528949277922194127178245926382122816712512611111628431822449442631112252412493554285276419244297396519641889124343869488412721359981854832724157223151991162986975968341493796417723792687885463858771791979511281458417285621895562642638579497431371178431591156219462218157779616713545595589119945155859527487946281739268168953457842783421124632694611417292336929187318318661829279391819933524422952872636627634653533525767118213389343993755919353594161761561888622819264664688737233298244322974963979435783555378578392613891185482334792146563319939279368367795827285489935255256954889615383775383821613127532126584345863238556738778888521732371695171373127689356134975948264234639656948597431133421914729232483356939879422435675766136948176211813879892944399866368952859479469635615798927813438234498245269133583953744434766578817631147949287472545987254891681343346831748485548926741129167181314896869597141842495496392981822291786634338312442871499688669788756319731552695763712669425293867588341485543919189145966576762598232259714984782694289747213352164389248436815963362334954269366683497349829315531654948454371838177781571491843997392136353425233892747886769958777869394636148317381158634538396862791253766576213298951383212698767782156693293422216234455514271857942691811952262785228658976969754893874977183151672427214719673953338625413628674716427786643846169921351613379748279747491685371263287257474247144827656713239245453167794116711992656216428433867174743954623511765285726669936742115399659819966484866521423875975594359339216854138661591778374714248161971455756513652738455826239925813956321962137288933425936818388573295381493991784134516196815762172598437727795196437935516873179118951613271679311983443929227118912953369325145224557758769361161254369392714226561225981926912935362371449761316327725816496588114239263148167699361759378837627831756168875634559433441323875557533137814365619552886896183538371473263589141984153532249573399436642989883761165328432388517441983171967134239651583619469193982389464175587443481642586585773911747953582315443497555193671851924528865986439768523923278252243595379667211276917397415229433671998964773781371999739142874141141835212569487475437332419713816798398444272818331164395275456925745678884165898994323639174665947484172467856536957119916273666494791946721472957657647264429958237221792637812576131845377252974696655726497644256139556261347616351632359114427821764379394954579531556556777567434841768154491243398743319865597971856752171195413186316283642338323877985984525623253861125238958236923321762224437624715327923836327559514725168828189511212574995648599851356236935875885932331683432316341843525992479862984942374494927191243632758744823316443862263852874136192955346567999266471666743145634729243888577483121166639742285566579657494132434439972855974529966829568951183424312597883124929511456242249471892949527839221169194697621657626729771443364358267526377332893554421355671896611362979692779935356482839817368493589448416498832569632512338966394346176725497643596645758443953376974645274837176639214847233569256418815288895558468752463619514154844452231666391166212462323628891234437493933128538665885146835847371819282383235982469873545828655725633661963462497474618191954425878134229556694321781589474715292995327262721142119148985446855944565271252156356251947569144547873479494518123636539265278522298426454713495658391116612453572394839298548993722622382427663882165985728517778731858189755833138525886537283166952849694176378138517269878264768832782198626338288984861686142835994192954686493292578525229382782989265523152461416268669688756844761212316442462186853711575159314225345877924112686856893386227638962449129529687262731858569123817941753784652456528594349241311995978247491535175925337241352342648441981134431922455267283396459284382374627618843258966195738647955182443113886191997416878732326725858959246746735555132894926697162966778442924478871951353711426592178813985231117282227397227777874653842254254963264783394171746912384399625919215573612998963652769198149449451897947235931186342251955998922999694216699717331536431929611781748149718677319343775865626784767561542318137951237693164643898555698729512296328968364627896651118978729739349135851222891345345132892774697511185995173197521923983268528268166554152359919191398514345251955599995929819798727666999414488938827398278158821676266195534316196616423237928875572989433753241811343655345131678766697863175156189335758262327274743427625229737659124848979787952183844356217863665158845713487595688193614489645149823382531269637536786925879463344562624649593235793394781616731177348692651753213443719758432438252819954938349583753537461613316596582873687544719961797656877435962149497142411317266829497238534737656361491519125616455157899272836452389338231689333737516323495939157971893751773955796437666958953641528794861155624246891495279434475244529534985399877816324256683197438271568986853543264477136234956674739427193336542789471993378935496227935248772849686775912794133745437849696781648215795754265528969634573241214924473858263615499442699894824114542626432682221144393273564964397469191159369374614822276463782527316421357364633915112657825956686228333958311691191265747232789411223317137186175271744356524364466697298816512929983328759285512261781579129311299529285214664769737773684513623554473982257522484151418658919254491688893444683187117863764669918166845179437625335112377633424329713311153715336736852514745177937266262441853435911151424921514238845879854286776679621912161364247624418837384851712792796822226888237191638912183242429881193681492282154855142265385374474531668867972345739854362797124476433298894927571355672839531867589798586877615639185268211186844614551148898251159664374382855216552655424238244181416733918528163217649853765163994566866626423633387271346832121377863423155217445952175758859887562894188698333737844498273159716974382931854125698827734848818495614816881282732524386568458287647928596513776827145682526333887677336877144615327776927448737374116683386547168635226861632358649217435988675447958623585699564473115513368791386247485855791138338877994863899393142515985977799576365532621649843984471768448385891444494458321619846822755572951973322756577537422813967414698585817872518251982171366897255184674251391116184289216795419918254578696696295523532991341221946282941599118459792872815826799417599548459294252348418888468388838872716535849962792571315134826693764396779765934272112615986545711131617573166574673743231773244255116753168695843116328385699893393878173822415515136954413282411787593675795254757232661778928977626873353656121733898865656443294671895159651633992788343887185543532837883844234391125382999544776769557621133442553871959993459136879532533767711187973971215217794646888154734822419696696226885158726531982362413361821532119524386837725941271317477421611562889362944527625754382133974129287123316657319765182274571762689382612166786641158266522588646675724829497852946752293441214861232613542226211776986229348615527677911132751726315835758598951517298199273144765237692441334274793593418722187599158373295613971231569221318957961878987347535556582413543337822889688312954419158188423654336515472193287527522239152225648278614714813664315428223343786593353623113269688119731153332871196467657973721612584478791877886411166852123164312659418396973514419183285491721974815644221561711698817356327494783346657694663623493926557377645868523272437788827228762578322717548755987555446957722869682742485169558292736329981166924177226622575385447978866862454861562133178586131626593178223588534636742591192143781887697846688941514763661765933912661433881774724289445521913313368391678645916425368719719139364173231995386928444214184976891398619689127628452662168466836855614573464135769825921856549914464721157468834716217281724515842213218843615186695393374714296316536311672178636256484754164784336955921927879484131315691968291786286377944783275214664661489458865483176443561161326681527553238766863497642648579137278812134899365594168213968869477267368758674214529341536293249856483356122433775617749368582557195338821962348618463278126262869482364259383252888295916533518536642957976289477187577128359292756941638147974771317127942752816491453256853129141751435618689328253467942243147912154514372282916232924137421922215555872981179682864265897998198644221318215262348554132721429374585515235742864618911272213139567927439882866226916123233445371962694563548269869562763996433528587922276992866712877177791941798479686275251832118715574477546283232737252235234995443778412139343415229323645134567644475677611841342274537939376938476733483566689715157731656249966549877123662532125898753466453915773573739872173552326552186375833979342238225469591935143668242449364466278714652645258515428552477624231891366421934775296141278828242222346877769135645248354926838951174651327238773296819212885688685941161684452679251171348695562146142289424581594511424274638833426435366614662912943461722693835476783254619618713157918177459775444668829878559753443249873841385641522399245119353566453746764226358487391792626763498661236547262999728787848424753498422965671769631489172813168417258344791866627665462631947678382225583459111676211374458126854855492637537584915131466367752137665728461118598812847463136248895365212112941721795531744247136553963174267338318751813137739475671876293825755428498691353299647624333514878311148998123332385846268599986715728617318521648122647577465846417368987739782594657494939523153778567239198236591129521462767143878599488291748751691645812514791448477286251125974947428558827751687396811812387671312156827592651378869748866624754859431181245263948722597159513877619717721226519371438133964241891771442453894712834636833246226283325349637917971334825128748255466881733523219133423825677492937515578729921824965356614443525175512372364346641155625957299615166193218533995181553837657417813412632565664252295478133863553683745871446642759387199375619877241627651315479388987825375252865827682612948867765447863378454846583644747523288722487795539813451615978529736516644394655636859811317158832571134554727369845726746451242289381735917733716278743376289417336398888551621338992318837767489917785521481413211422294979527397965417454485694635854239171799595945679117466738212525522481439823369269815477287438879828841722958864643289897531417388163244338214578875764416436164869173415214551337782132665179545442671982436458127228375681645967124112344878671383929488431726528838143438375384485432264236777569454575493822269782897219776421245592131213427385564173949571585833135145277915441647931777825398591915532212645698381367948467217197548659613262889816688424234743586341311516584574132864276541897421441472939476778965372836894635668694786633281176514686266527973732299752169167616954579111717979189164159165615311566457527314223118422317667288133778421141562751482612378176788146987871826881829978286884461365743539592979962767665344569585958281131237123198754377614561956764866778479678553879631976161536892568396264918385147234629662151397125642932758263864236271286314826479553537433618131538656276667194149281833194885847693299754553857776758956334727466675559894279845429114736296843499844633139824344254526936618747721172285156579885236738388152732729846352989966479952869675736997871515693478115919186942414113781831288526326817614297237538895767785526147627377676498142829385943494998658475133652565535542936274562226153555719754296649733339674895499644114978378842813146993363882855245532369952133435924358537611115457574478689713294538461139131575323658396266485837564556568414826169889415953426263517153883264769648569163494911251845122348614667414319648148943126428641591856587917861664456548288843982166514315972947371925643536814919561889477562188271733984565946982878815551668376258536982475964141921375421348762515293339825138219146677691456615125237219621422434981549574234724247857698731863251214151473834247812571444321535544959985258661342488412843786239624511125771894832673745113525576726718385364647813976467727364935516324849294873169716377193475924555928838115311271797497745137461862634444875782751599263654291375438762238516682731746892329436878644847597154136181669781624291953337976571882489445423475773768182678215383532465896232699866664729531968391436825447597463938319253257966989661294852588872682595619395883749848233372148197236786615993376251152277372281793362811411637241246264981287256482462593454268271796184983798335462591745151868846545844193825359419463868944737379743942223548577423798482753579544747948392938679839677752988832195779599583448432277842938721829387325173326147255838822773853781322819941544369632523689775144174355248282526478621869736339536861374972134661511586358882634218246533735982832879415383345756658199363749923991949556771345889599524697679879862726383316775624575834591477254424942372848219547928367394928359644761834654597298915634924739793158131486745554343616817381258444256295768293536877368185919743258776242862113771416294594467773549253339348615645255514851527771675888821581944559199473435181157545217255358613592348671968173626237852366127466499345332138479992676793494931568482824917754643799369598891846775855355829363432458297986968535899324894719953187816594989732211132411671555763433171478341452565595652517162394512547461396452711255314899929468522257387822992115435724726653514628445137226316848229689144384645477989611232616526364277685959377164125127277719444651419893821426826328945715538993134822293334815446348718351149441623742964345888412362997991824986259245578956786813991699672959564587934828587176265323279464329567269541489975591922249175496442167921957845383474587385734378563264258842269597945764147473218434739523648686279736149776977818272132286143659622226272668349246358576979323275386894859773687212848434345653181559944711158779853585898464651615688968953828784842432266531589148824618989858133254261822769763554894783667469674981852137994357536984249885732221216318917222874462876753214326236756546258334671747212413834345811554968781247211721851123446836861167825848558539414415639222788883565948782635554884456467535213469853621872237616959675327747173957218186398959544412923685483567277175595499344583665833459696323911469898821278434716941991521791735624485492234694287276126186158519947475596856264881482988584344127765114779485763799898736969362937546824652228387366139625541543276867222433241876468319762714932516227359574659185916771841233473885619456711619989556539552778966415351821879778713354298375269681225296273248919144553389786654665274791195885798153471348813278676855945333893617845768548755613287662994374423187562315189648857613712228469778413544952815679449619712547524355598983162539462312371435176491949737834176921241368399786434428381163479951164189797776418741577584821715791117877644264937985642912873442432128773279462159693682879192235437313411256451219468545444656288798938153578587523366619964562341143937284942674811479256691725737929637929177456382217667739292883746427334959587797463145944132394836557943789458194486979372411882446129377222921259846763894872814425442942233158922587866233324665297291414727419668244856188445754573514874515569284559256191464829169336787233149495291799745126121954623324528547966935898381881986336568819764358851428257135213846581371146462245276999512133396744861854489594912599559652971544928994332282572522565431526469749539851969115166312744675321185137813988889495914177534165962564154353131869259566319695191347742165478344369324835785373296851966582316732652934392729937613618255486859113285624785587347597292739324214532884241589393942651734654965397485698756765858113175439735355993353127693977877174597471985473698899548745322127467113991437796575418273693784428139337361149677127944112261513416337154147914595278588694744973616399614393653169917766139436776296255573837132923688281233789318724269542235336474393294373383164379323425957584914123451678974312333574158797177588823789566986118255669428135764545793658247838553998849631297531919154877649394694476348457191979975263917846395532155988688684572997278761379723826315162821266365962647664635716446842124939655242314971233614346821922414369674794181293453776467357588894869239546546872138663398136815181193135688165267923342133523122139233771686912693936928379571683614872929418667759252178925883233519699539496252176273874452665815774627655261268776962397462753318761325821847594171299836919129976816378462211618637619198111197588215949251221973623622433422278899483388399486647899131273389277116333262188653231124241478476286629925123977291392715752589197668449952358967886947412658558293947931955841529212852917751561764356351834884685878968644781656179613695873232618413367535689197947315782914164794939672231938623342719899285554955822925927878182363342241696881461663164749448673886991951538573538734197141797965654657691447799561769453421127483847596539198933999934176268815988638271188871169953458975746243995813719585582575711697161574873344514462918955526575271237514838278424595399842498715838577951667497747266159187857439186861826556329936521439214846754338499135566547288332131425189321159143498942651562575617215937941945374177242378536996615198782775293618322548372861431928697763283342264327244421452444293768976319525745469889714847246411217837678243777565536819523154174846513426574239761242183387694878439759317629485599597725574861793567587238266595454125563848897953781492218758293594949213983786864884913868576625928937136384769247446613459911412195817524891814447197333224264373752493773842285984616827134569735874251425543932272863575721684161474416858231357323569131187494531861454367381122366278276825166243176593219211237844541222627239536975275185198771925946298711753348766264673349431834433294267482258864231363395377621839246874188764267292411937688579574959368134541149279263922767795181916718152156974898189255925423513173877173558847645559151491631826113899145827662127911959112984693871775266823823614617596694943129286692272364524775433182476686595155261477637195537835952411158543958975747446898561955285299144338125579323792546531949557441763564121831199253795898643376242487778662769675753322175391824953729685641617981293399738819394464412866826513623842623493322657187153644184446529689928149294882597759267592942819891795513882931616621369464643432589839228329371831857782136377426389311931957939924682785412132661471473567341342699766196298353491447693417331489356755464299528553211542264291916681926444376221342474589899899448448872318821854982439418297132754632652533627914146977775477441894169292363843346932599946681778164963988272496978227112668635439825114829157545355945111952395365866247132884319793313397526951437942554642151839159268819494536111255527623686571497377295548148154695455613261219826435978683498857273643857868749373861638977642358592787552235262438391176739964794972617729244467285292874669139425476148951396914434591866857879326821516645126567716781275943964646696149642186766224249734929363811424478477142664976948239165346477814652245419696371293199532159838284297637575213222411263467349147466218765275485526641976689694338949614121667129672769438376519494253555611312268425256874524553768924564583698431845431762227573374529967127961843476452663319436777663474269153479814169278121798455692117912248238434242144123947496616395318111843367461771965714255774295195179395941918995354778235554844351261654734523858335148682966399315469733184369182585453548177917434416614138936185511755552242885234783195988687147193547561749141518827495254856555799454526321472352981496772326785629851483329434532661247268736377152289421343596752755479241868472581511544894357523859874949785934874816385519352546423797664246423893432971896948579758413727358538879967145548385259199361986749525422115658486991881626714288131671762226954544623584153561273328385496992245696743957383319521348778367481839494787415635676619467193731793633891621183539298135734996966228317368366519527329892282877489318944769311243874853962948676597371746766689877241535629486925753726273742727341393854682274649799426681652475394578937155497377218765839956486743635239569386996672144949667131283796642469959596611193958651679938492538523372843832136772848722559711443678842925126784877639684544687844718819221789165728685938385968328988899876672244892383911586397286975843419623992929228356876585171655885647926127847752449977484548816461142643435191233231868392182737632894136435458669645465463535298267659382737583456872328569968783457466639277511198228863769538772527169187637736546323698641318469165963635397849462631484515341156552894333896842114942482715729374454765855449539834952232682519943229795227171953358469428678563773643154861866181826768426361648992197383459967138694446972925794894531765551253113446933124683163315371825849151384976177436722952479451835849876263771412974268395231223797574171346376473889618221142491157454377894432728678479474513517241567245578649396233269411751364319923571325254766882822876892233214451573887254741821998678899119445472569274557447537384164854886324379397642284946664959335513234551581234252545219594436777999445582485719864274223565232739763211459711795222524778271253228428552533492913154321127142353195848171329399614934145849964263646434455385245538842415311726878522855383896348932162581543139971956484753277169174321455666643637275541866563379691726281734996793156122757984842823322484772342555156232819194274595634991115258653355435333551819452639739144897123655987332322246219163965335947393781422643757366162257781384893161112265439255752877454472762967157163615529985963717144229295989695955497485881159743154964462322816345973451454428623929344475655178665791834256817117932378723238174544516839421121812939799912698142383775716817887979738618778672719186456136793589462223991657726615258741319658574795975938691269575448469424352529117598368383239673418348664716716345261888191166396139885255725348745733533548968669638953524147711373526758554318362166398791471487638193948368183377897665682539372181375191898125895441999951978176213512672483852396385289266963673732979117282321837245251647983164262252879191173896291365843148463577664563561639258264647841576734589945371244168984347912169632169964571585781577891681675547644638865993472318186134182545388749526915232362179662969123541314355745368485471437534435678798923586913849386319952394851629421669358433351971865995369321252316132974198295162651976897922933535632132839336599597176766859113564756838852319249845411185884941425987663792715688128227696989929498165333413852762574232731612541446969199484441697919171132286329995814731175233724721823941462351641914111424785156137211247362424424824754222526129839853579611142423687197348949723697944794797837185685418283263412996465734415213762292829935366465991453684293568668759643167594982127286595749686569413518358555747364813286255699521871695459813438718136531999841728777292171324185876438527391463238858855876374652283934653689713687362857464828837129565723783849565649386756539241196568736929966539367732475288387844517288985527453125252779598361621329116467212313627885743468531552353898597617879556921366218152266345193844432376978984584298495938437612953171666345782192831223155615799986151685153353325247442892369268763721315529742366988977194119985256275727682616195982791191978493911472139291818397456455543371652688791629688417153687121348493552321471229151754921523656476632742778881785751942183357985636611867656524988172271414192555114181744496793589697636135179579877859278756195854617219616653541224242996595981249859721366529431843133672159973957927144585437491692858953951245945738986527257217382286471494877349146787592212841948576515873516429977725836128192848588966115745643394877378187269918794214767229449816543251966956725944411122155926479783678353814318648649745227763632887622882312274938911412977349327978156287494787586516613336267854558277796275713253813235741425779686356862333456746948523454931977592177291444997479322466747735374571281223592149161295779442878225333333573686582512168992177897311433789946585745841631648427138171258142681254527571634464967664788581658652193859712237424189456295258923223487467479221528453161475275476624441188898849774869896422869422855943633426482778657287463394487862124366783959615322957286514288481715373667528849934642282519348318726171723495477741759988822631413919971218546319383262943116245335332232986515533847822222736268679782989448871143734946118524379258337269146131313786385147464479211817721324343512131543288525334415186116339679773726133974496847334845568425392563174451771353186468815646165222437852839855253688568922628139261835917882285353218919261962888851351929937562673462377263449225248339123768924251388814237148562484385462253668685475788482248366784221344489257784262899112848415726639168983751156145146228849429862778465739624337731341224945831918644195967479152966177462844933686985471197192387885521594986344732368377186214872323372769272555671418295715292214449416423578835975684244652763197147668815687174542956211477786399865746195892244438948976645264159512111491514946739627281686981832942171121314876738345484982954157254246275553214948576764859253866371796359459854681256632555732458437841786769127243696749393336268742729385286981258612631764479243324241668356371131284258585488611834998724449443459865522151992884282954487431565532883196176154462566895537572125213492998513839986555197654855264494583332514491956545191575881339567799959389483827336263652663529278162181817189721347691656896814621818888687458472232286865446817788556314949886988996573116676253998538921799487186633832479993282934715885612429983265392281588581841429789919998193533649677434428459326216185895136299256778229954875476974464756475389866686672947584972416672219637412978635729356654783341342214843941893354188743111334358368641934894238536391589612937653316498888181932551419359543297438977755663555799738664517727469257932486632291163939289941676591183221874183989362189973939579477788776164462278376274365312259828685381626733561177413843156937684113263636972878619782187679338738844296783979829797995551574347131459928214975944623178225548232365257876274757119316927461374499995581117561162981562218236554444793792447553541697827638164487766936178813266235815467362711476968465356452963444878695754781386223536162266419796545819278295796958554651289157791181117926485969723268177982642659658249777253133438235723875931895718675281493635438799986579568928865383322574996776674212256946613131452597887454919339345728478681716764533177467389213685432389341925358455181818727186427545579451875729127917889687128873319345332784686486164112724699821745256424782219725125286445426599814445814924886387795439871418389623282473852478157681566517425287496543827955759317453892624932671134315989454374998287339623888871219688522859239947771543729597516565216371293187744797868817567212623359258566239589375955692411662785511456868827735139698638674732381425991772444747696468224597625556146113257621371826638976738382885485799461578559222919672388476814484319455211123293958277995574912333167667778887172988778126516648834691366144851148895696247799582842866479654757546815529278926299375812865221864453893719592122949428595126993327516776725837129852691991589712452938599972663557696695644515649732469367523666426975539879233195242267717954685272714582413713226222981686144561721178119478689112291257752196157154945782539539547552226325829624117575637569423167288719381252553391752498339535253133942156211429385424346188612894197383892834753293426925775864263981159332617826156758325699125494417331591162577241972341342871192834862968126739626759882868958941327513415977848494381566352154275835155442124854271217742846263645239662764148355466149124639992395261425719544971574475746525745161982553596793739266539282645249147393432119373279722639893217129839171279187494266438397617228291197913912641955498227877688397395995385348234762483169727546275764271614426683831126997641367722139189411977249152641314339991293191131927732636799621942832759958959951733876454415398562546431225119271458983332759696649271292693619645534655739778342268377546795669192356838795529635452186654219118243715684135997542649294514415127498846258647389433342672912423952845349113731653976133224445641713247146328384561273495728282253366971512348585583721183999114431128979192959498669578857667199292189988963991747593368934743751858736531719774433657449713968152824476536313645899533514791595576913555185348728561811179128575966211618922884648619626527363867477437339417759621472923658834661313124854538579526627872654919949232516868796647298875941431325236277752622165774661154185116418134717869965442687792999499139732192887763217355935223152854737836114879299724316627833917478162672949947828338881672763419316473556451231854733688855184914549795349342326788847622129419644623936859182649523174175914878228421195193146987284582982268979721729327522929737275263488176147119831662763645342768185991494284976933198362785961769248376675972555664489567962937841667215791846392631576172254848993524973157776739776483518881669829227422178751527255395173239122132773878642783497836333446356449525793555624952634256589124657498967212763157329634273175439278964674741935646618916322665561465733285188653292193524778135152633732349184213492643819712216369541665563882121274464334444161823978425593794719155477722117198384116564734985998535296287896524924479832139539371788397965526817244116229262987955774571921681314513124939127812488725626765784935346648539221357129571146413896328771524435459259997991441729242927168411846749649328362334347338944874857422384216132253577399184469845567694114616721977687685929993458917497757328314172639122111255144774438151779267339331422445748214546331217234846768891824498297631164274885269735614685124833576582898276672545914362763135372829918714372425724249325517944135925786113254634938858319993385786344844158419793578397286515982416779174814873921749467998395526983899268436727781536315134565154333247171643211363883374631235547661467522742766933251623534178734771512565642234548599742247919475425572135157491249113226816844475832934437166289981392882466783265346689396813812822989225773987312961889369548639627638986284914299277193857618469122819437727225132721915654581492483425986698199362351616155174311552939698398324438499194591722865168916726557879629527866948914518399962525192163914689363963493223128259568663843399225321659872963876723577752971982413467443549726487534218495473523768493745616244887216945563794968898162532145523134636172341646516222354467898291564169284257898428543887577376422627536851531362915384939646378329973567511525626234535489116738725971611653124636978526416987748245315361572734312152772369934847367772827981421425582617591774499167258947877919368528367235574461184877564344279911636448786133931417162475782682654287156658851772376514973939284511315769643599637277664766765125946521465624676283738114779161663114231581857566638448714529665975298246221866428252912463328896314927639624256959151286427286626118761522935421325424954663223833588641632263393725111466678849198942814939147429929955612496395189259542455295186971532669288786691545578897485973126171188956695648186874613199491817815619368723629216666775713783464834749621763772438995474743978351634575651828161741386649846562523879345416112185993556539175126394226657256354854198642548959669982536151785169458322376969916893846442429924859661886473372842235869999791166132119747863146158634413371377789779753438632246988228445563229197162294956151748569493748969879665773267763736581419684489365232598794479643271212278496333834184754181954251271288137659843339594892896111117234836682464676536826994584595217689236273631264754233672929441187891526768784948461527618552659249289856623926753794455219454377185969511612366545979499325542349635566525752394781621532985998951317868433462839981843931421226346822755999162159944236277297712293376765661756758151566375946155282847313478843647683219793317726899539767541794453673542762543923864849573542887144387463596796982365212546624226644269529198686823243377838259793229161969727497611847529334313514411596477996767859582424753193433373898598274757696738112391533859138868675848697269179198259435236113859243192728714623437461872472657661761931611163395931917244317954939812971966285688677372692485788567654741457815663399459598156711476749764545991229154992686257373855722165554665569757915519237413973988532787334197887338231871157345187255867176853476288265158872269874461177652987596312616584611698934931684772521139291748298256859342219676726729739713532436122845955712483165138897149273874947433814941346738418212128394678311581884996569319119221149497237266254533289919929842834763375181694947354245135917171445672971149423148343855345133165522728712634846671845267661766327487357411783349313829574541172718533362329644574755693946942123854979112166313686235439123223488775784789311567281623523734961738296563584441248199349592987961779325564817911719632572769455422342898287867838671827994838369483663489156838585677356648463391556783688261918565389832568787833491668574475229647529765533325555511357785116169611576829149584934968736146632572528119812761253547399813464611753453443618523756586455591851925259494654485669297743272266257663691965393769778441558764378845284279698864731554518364781663172578337213565599858675952197394542373182347787662539933133852295322411643311176129911223397426937178921252347858748849978719391997799814938613475359146816745734513483765524661275988578142524864212377628164171569316119251537936963623429837873883383217351934529772123195682859288417241223664542652941398584492143756876123476531614643572911114388755466693244294467614884784212976412951273573827578855223533629359444462698889636329721163314238163597657436378798669755986388194242996547155823688544932459268583672235938311668412895831746684851963355275132962149523585144517593727335737723826766814427857596877599952523794379959391876625292849725877146363348367344795214388259636239865988714427786297625421383795761169939261938458219532558728384489362187261815714566511382199437443651366346717144784622821753496641667291861564723185276241461123288797783738199398615228355356565334912363962991751272897322867299588614889978133241329849925633572342619615418623534527428871218331382232762633885227759645755477515628793956233734518362735263813464133427948192532367329845125241553775367277319534356239541154998266682417937969485897741835224149617637328994832221894976487782632384815715177289277564182859923941421871387996813557866132933226257335352952532677452954147358763585921214347494148233637352938376767677191731134945298823916722398955564537539824433113494865193887433785437318642742161456855133756933465285148112118232716218584976312731323124233846126626474751372553465766188462963615251535652686932498986711917257672533977145637866653324313928675626913526187773237559979261917479859191698364577321117923913649524424573297654466366157348691642974221441295531167652385144197285696639648289295859978472771497856419473271288674661397565513387827754852869726962981746175313974749134119971577755728226745942315217617514561235697427972474594114755415752773232864551686945345799239695762983168413461953486855858827373471676516742736164657133814531766733463836898595858551831164149613837129719448823676748854257217381982951895577734397172587297914813196174631284513319567165766146346852393222562783627334888493116589699921976143395937326154244782742534521124253736556969384652725977218219433795231726734198269755356966817177598661243542357221646232712518157923926269384995958579659789694295476993831319795542516574323731178768849861839384424869281443549215189974847864396572589523856776274961444131569126253115379846464769894196152952467666184976613887755165668853879544142447188265849345891774852795118232929745218143522578862922421244336118529423564611396588729833156656496338674935964422273145359814453975733224691941157342776756182377741941491374388912188644342378942135165183419299497351574691494586982389539448367972938386424653352389321253989566659487917473697635455551747783458286876694853514848484367136369977645294578628912838155667272278822231678339129182987452969275846169225848749657746471576482866463363857521485258785732369545161296572223261676544816132875372381847858164231665855558744151279253737642945991485829682187213927399842945444472963721929528829537412516949376462633724574455397937286879616342314576832357677471997674634258387634116321988624513369612926743495714336324185435651512693256486865298829118641995954123338967543162732742485585869379612397149335416579627164531368318337949852393839881485837862683415998873192374242189562347594725223911229347551759614737377748159449451373937982833214932595499233267194385974256375757796336248444254571967372897363142664277911325762767484564389473538844534566131286813369586523676459892247649756327643481132488923892916679543164737865966194885164354712755851323918484983361876291662726119231329258546752738357314465976887928832675241414237767193581168741524789194134346922622969955838761138137321653354425511395876653755546368224548879339358725471654997524446689366287112774322265555316638286112629321597838943598928581389889142173122714587745637365493282284382483652981653296832361578586914942296484449758232347485223722215434962385248961185722224494615146431558963868865236458688937332863918714878654176791458252874159351211597353758327353166253548573572621355529341165261774938774921163296646569566962948431217588695714357913958444437369369927867336662342526369692327354244829532287311453878737968673986466218426945971367149635591788325745676169666581284156594662383866212827764422539734473728957133643724599821964945263444328929272454793774869153568712143734741885253329786581637518593775148125449771738476449289139296619392745712774511244152955865424343526896963312325729914489721145486965661881912574464792763776194791257234334462617975142297717286291823235661631328822832512328838818121577638759431513663784656446258284856612653594859136492935549468743493447796172975614796259285957276421189786873323682216124528336867865733319531689899492743675251836288418361338298146311477882753372123847969778572292247815989217327491286163811929133823391321842581598995374375377557777798761818957847274511927662448917783873567332958397388945169861547714169783786595333116623518451221527485662212633834485634468469522259615725876258596148573419451465316776253868626231968299224268689155761146898421417236138353111926483386966796747448852676876957585723417987559274967214781376934585636413167874269979347365846285647287474169486372295929314922486184821127155671889382212593739336618718413869848866986146298222871531362638613598176778298199166118244497157297193551478267164564377796491119627963919725512756283843472473443128317389739814423687834161383695426244116875316465157353472629161674973551971617112746163125921978364698595655245328824216517684329668527971485916786197756315746693543139277657326935689229793352595897713467288672131942821135173552232458276923135918199183599844866112917519791292182899139913398897988738597616895873886666885674362135784434924391678244722278694815283526926256393926386594354634131383873487996297725464778129423451627964653273844378646457378524575261525732914232185529347288436842872354434855953594427925858331318542775159533872213814479192133876953457319586796986222122224499994139768616366863374575686926915317272833558123459797256847337757464646799692926975599163785369195458937976167655193997266691689925816693298753252341156726763665145694813778183226212873348694197546835113799911621797821779178713485995173163124183774841747417746235521826118426694177939671344855396377878611378575176133956331758475153813821667163655959672656573966257538594289555849897951587774399142781188944527397981939796125917176184877217846534635494995485282689966677351894246685984423839997884549165244558915413844916915683936841345689481821213594174542734327442799637629528777165428581811534694556217158835521953799789833382636246849622173168238295178296358752335376482676598318714634147713844352789947576496176527832592675119276161717347844384166215372862678384344167642961466975393577545473686192855941876454983129873498567266439723719454751162847277133747361333514448712696789597298462197221469694563533281239848675773485429488634976394317172937494633164192954351869279886878618971266555748164239956934511361157172517871777179974566717832737423574361347945822357737519673315561887819513984118871521577798144232713662859269136176223883687888169324418324326723434712968557453374714545856337579949935779414731199334619341988872764349271643631664833657735411687811827772934979362625297638786356437915197484429572989742498134555256654493734771768632771663917532996325687964939782768824113855943564113898181959226897217472865221622881698693615184794431516937989167126975234632111443384976673569261857379643842874113411166422248113731694777855355595581922234845228176453247753291649631754137538245889293867967132974148451293926593413677364966953367192121312851289456173459144368978179299375283217813257951377164972879787215435115321195132837224391368979321811442431933116727157173861681761793845827227788493188363232217377551943754422351458375687716524167251325655781635441819679212527233255511177138573663528539671483617167154666514769822765522551711515211576126582473548999944924954464419911559686839617612813397533953853996755347118859948266718194278467143566276141834548229917435279873128634138111464374175718215182483145458158184411716286196494532725269164863192162778277717168331755541925133339396213974579491365728711313525453973279537356372753634744986421618824766591128293454727115637687378754383484293347718498951599236991438656965188757687461411413993834678264762445294739878899189361638454719943452734691489387194267991371255499552921848876576871479486591949795875868744282669615643283265244511197851368434283646954279683143132726743464782946631837886179382454926263421625266258935523451675876571722763378783585126361317793341312587695573729322847867536869881928687944215236229996548234991983741544855457978966429322621619863925499835432217757678749799675866385367699829485253115984841427956462122993941464655153536567252687698787971916371776927664378437985763559639256333724561886618217783937881895417687144911662581348531218287618276968259325452576328338955796522116832663197334756478272642273273855912319923388834742895113229414994924996234926389568858179919218519899413783321257832648529439379257187256577583175237189831748663461276723461577981688471544299535642213438584262231966919438371734854175823349442447837759585648922229781113857981563148185548329531499491774461316529317751582435464313269695534276196861829951487717923862324742351837817892839511291377518872896977568237419259368286835612792478224836557571497215696266444462363655211758877588857563196532668924433496274833616353651114369159372622239511761495549649966861888939242992968188642585471156134827722829125823667614252256758149792782683264521181486591165857737894963278519526555193919474246725211427278228764263453391694275786727443244121435569888857264732294836231531553918896571286659767159763615741932699356274828694398363523997978948853478751419748564816294791674368695569599473337518127495443679437863723658861619312159584751583369529774661621642646584847896211163131475435588642398682471872877179927569916761888756872859947634536171961637525479966241934686139645731874525953757351354611214166638715147623787512536876895392853613126777956685648226715324398659869337121568132842393623142797672613225261962146365426621899457697817333328512137578139118953693274995326156259896698698472632858247768364878857326274912174258973637454741526256753243258564459523358621663377751154269125349399524375441658233227643444868798759166591646457569333566943712575471939873427273985349734995941468461258579185474817878268662698523546384192548928595411256324156289828226379159819458453874288797668479195991871794528816314183658475374662759728171951561968123859476742896767564447493488271365392865144699345589228545463498717983385745668126936781215443213992221685231831433199111554764164265233646639562771762716173577793316568129166232197277664711489799355156152555654469236596543413337732435479844271173622165495737499522968843348356597513942514133165259143266989539289472613925222637529746334376293931281472893954596578911328936328236264342526976512412444126637559265488539126567796731131594248154572333224779337811892851365178426447748226148837717992918324155688362263665437196895976697112469285311565998618387674243834179988317353742693519277589872278956786511784843284199738624621426984524582875283482355196557688176438777855273599634132577324922664429195421561513714962572964928351249781737877957444489576867782715663746413187829157994579337397764936565664446349138575498227893195642217639163165813343154633932584514256161467847161365637929167517723427444126633669121713518258939151785187649814715866916831613518575174647617186562152734885225872478642493989644758922398791277213166194383235518489428276184613918417835948588336266974682851241181753257986617233711268252265263337542229689392672577392516922243886997855773739876595644236341628117783369532429158412835558511411189314156297182833925479218149247168463172681863155581312225128823659847914971375724843964466247512385975472399761244429755368918136623259388354267598573898799592963366294919424973818297165895891116734123845241422239925594974874446747121434565576577916393579913576277219655993648328857195984222739448383782935767431249526947119943862138222687231333185678389273448449351429241153462728646453686429344474387282526788541185343774697935353972233881535523946213572254788186188366318859154565811836284981589315845629614969339412839228366286669121161357389219392323948556211113118143662562481512795549159151251154328455593542511945849744767763183937466611769854327282557334432624349811786759181799844666898159474354331796694763647993572366393527849918466832185784839156575726498388934617716163455349886357886615516955625222455888867492179631171675136548674153829558654517625661173736573977168913768119869225212574139317112892277178854665185232435465165255362168732187585917249575962476912116788987635125648684181128618699376164727228672439737838577447364869331841797839892474332964589955777662721413372428731826363258715479531561797938791772387692363799642687666348117174212852978347111268824448248855264449536259959965737261875669274617551165159934517114192666473732476582886788128828238283729982238767845412314196998615986874996852546886117316895666154722129695847425925655235781385747858717289912414868381757776239713583211282331617425481166569449777997916128278819338334789713679469158649457236258962348218465411315968813424138824948767694134154541339561853744147813551964367612523578553727129788944128444214245491245515216274966468292512725264376736346753149775584644615231457129643217491367716968329732665476239448188214964468289153118645256181898617984339146142352114428927997666355777671374398388621412192757382758496523842779539571779844571745584926319365228264242915362335882274893629231957369461786828496624992354267252777592671262982543821945352856913663819825113155337321845939521777157948348444966698772264915182687361184937313871647743143542798434432613334512575248542796855687929171493834971393236495179538228925863246543472785424821753464366652956698834993433794768915431994288747521919142391676566988986394257917987772891867413911798426832421299976955142672863841672244485495391896489555721814751974212641968147676429981951335323633786782685352893771765787317569748296464887165233298777497143116826351739535956366132762364563134569642484889595187353378734126473336474841689288893139892284831153689962931848728832819937319324572367569544495287367251871712258385131174413721536341237217322248551557877159192625637458179273127162748434243393856681486493695481464397521758143592449168337766812222873847731979124929733418188299376469122128129319373524322129947673485586488228245487718829814562898347865687491939699472452697776681376734374356215142187246813462488949476691212615822536116353399194921689619779351514194738958966358316276143967127316777662357862583198793998689319876532756432579788557646593424381833196638885643497251699929248332431183861324552366224116129843985993178999344459872372884857146634839638553988875193189465178622993955791178765364463499916767856142629527393628164294173648333826878829537899694914221575386578165756699477236627848875313941645219678595217879543331759933996596562312723498353574548442539189724935195235159296541463525532484876275787282192655581732274423789316775482582636184157374615984894451799846919517822548818385675899968753443283975927887526162551547312545753139531298958565619754474537191314255265959895355329657998598527841346731799234655691289938771353486159129931385744652644412446774479269153172545819963393445993349155151467411882687817141631863767362317147116274854667621715971797926629329846131487258118695654446987829783495533146956614179413911672459788222335829469766616896853998966777899372216283743432926316112677465482493111484626817447947994638277416617645996576211883483746652282842596895552161959396561926234327557146572587581499955956558889634426954992648778673167612579342763458648792669325521261317332497622475254319231772797727559588248386791139152118287849574432235164633636531631548331278621734248591853314477421244351992965377126191321757488492715715891326927516637692339177248728197128619459913662784681414265973674334168159226383752782188584731263579475386724188355453281564568815741268739138853386595641986777241256929922796834573136125681385499991893952644982284775334362892692769965118596614971594738897155122997397146696984133395275879461551271974633231623833358635662616633619962284334527741693168217679921725934366517269229434235891783765357573123738549572885364442697123768969122975923991516759818599765551453558139338378843723563338873818962765688514387558795937794975859135584233642286965457926323788691138441695714499824525146314963166819868447777648991494925421727296172715562226124153455786846565162242697899311795139517182637233256425184123183585546243396997323853261562869927561974393783514679985931197998744839158316557924892383383982755128922853598289469497726813188588371455794412447276956447644582318353712952175793277819672919131855125319427976293783639839733718319728669347857924287269231499221982857772446147555279972912923911184751894387933338226316497577676852831358141373185715344181748334425449244261568849453651624536877411424749685469294557518862448178111473331877695938678554587384195941353341919393259894343162479773788122192131336314648833159126295995294396228749192784188981599887496726337111919978386273323112839592124624694592239857168379362311492864224663885761467384119249268454774931298774719437737741666492657149268935395237811565529248213827732624934556326362623636347528281232634988599135386447161712529543594882741543961694319371412355514893856919295254665591531666196574769359269673139478412566174621187992818675977824654681296647745335425172568249514862881434197639169566622445385762848881291842637584245388715371344121239293466223437844614931164376488397544145376959319713618144663482244547864468388347598491856985298532228553372294944673557246655488518253579598973339584397752281931655882841637869817236811928991855443526579265145847437428117182526766413238632216838569261879121675216538381581964728744731522588999531467416593774547898941188977721756585135392655334227225812573548976578997151574885587977124367154691498294251538977664365581186546485385598639426172496954963695233551119752794381431924429568171335325299358686618619931876574616127536452118779638522598154394915548174274941893634674477717287742548745248228471838166847555118363937449351187269976448184585429592145169168764661293991359771539733228224889254254553567434486357669371659664179314659392639154891736892757144975339258391215685667246319114511923937757777226771494914824264365548324981792468486787268584818452373571441575414872677425615449556813747794223511657378737161926585758528838177143659523228229867332273846643446711642864674558272487662235468138182167525769586623379492746539326432164548386847174923186548561193219543362846544834132685421529738673898182636928329487928959822778868666829311133969751545326573469134716636637734698731263719936837397751413276544396322581483966785559489796239558189237264569227653691468971925733635351715617463522567464445816279594564134659812956682925515212152496699954943128776768127628823843511396688989847413325985766949198227686475359989391689265647546457115742176964873942756219854479288553658244511794968578553991798652817621962941436263927297166821192754749843774381572389986567666732995978246674631647646272938691689275988445796651424942224963922738326261629385336738731226517581412927978897339882665676227865884186662551263141297654365952331727284438444748757423847323445326934366199553238969142864198528129456954899113998812188488131832866341739621919781988726628699765398369232213272269939581349296625441463673891916787645658578229664699857136126584347792557269124464258852453892325885139655555981316189225493525992395158513999129627537977218698727223963252253114667443164823684395581796892212566291596876135454812972552761826445474961654189469566612677758383729114269557483338889856511439591311717562298421299163623656494434495149259199218995256511959482731124139937837737253893896724896886298182765447141221498969348727436334491733436547577373296967619333652634766421256883992698357289434477753384288876265314948746678126689918236123528948441214762563921911723324464168992912477512613593664786122537326425541282343682847326827969681123665773897156249851342937985996252728998693296272114286974473987248947795915512611939626953241854546226716256317399251745969933387998468973483122126181675468786565391187226436537145193648326852371378181614266879489542373858975991899941255733769623848132829218386279185668724685868669831651388985884458221588963727711765793681279493214351946317187163522688785624944269363973772476528785454816389615541638995122672339874264773743276348937438575717695929287441668272964596454815663944861685649456542792435616951345639678133977511681712272766789242199982177738785755862937596519627416514375944427894185824365226946595813317647435633295631152635275755875548271633842394317461877343731274189942215445765481468281453461767659871394858287232941165411376931816835399118631824821251376758648231649559423494876889817562336158113956987136593182951697829314924298896497937234328378158869361581358897681292533459254941956994838716364374436761674977963652834614238655987653629926612766858218531485884549781672242317882712554572168493471437442671359428563721825755881813655693727558394564536991378357592961222876615951493883898524253358361447986472419677856798914238954187775322452428113762552875669967625246472513313578633799255951721134751811132368139498313898758761126195298224936765585863638584596114624346737393851336698437676286638851433152336448998739497995567242274479511245934796725415759464579817757761263522293523987913269149715471496648757998385176371184954581529174848547366763371477872211262268452216831496524552238438354471214424896925676921933766582937847388667158526196188454992184767485251855695295792536835923389136531515975484863115586188326228761712399638924214652251971683448527647519399698964278275333567298853592431391186493329732177685571711843851968417638491597254699661644838915755597347295891358325368641432995535158766256261181417361413583935439116729336334374911939378561993914465397829237636539545392281571797226896729371834768276395341219812482843879951226823452874794773892985261145155637862949427775965143458553957511186379111877362766911755149779788395215281827973563547941918865585915524584381446779373463149698988539778186138785623969253112999742518316718677139334249359538491552361842697391122535469292939174189274323953154296622541633639948855366551655154526759612964847632147572646942383848718794287849843591744346574768538217515289163322385619246522254974715333238459676136949581615912483895927753599292784643713293339598989564723522681154223432655593472336687848197181312544618157385417165749548146266311679464192442137611444257853483549466774827931689734147723951213139517987789637518792573768877171921618365338887667813189955753644714531943721486956363168623886245587571843871465991296157235749376924996272218686716311923495322813212728928887457867868188518698919979872659484161855644394243133829817171999394278633961374566748628315413223539483577685131694556386615927279117265923415475821348918591118118734226466993375318198847856657439739276854282611598273856521142925931415823973823731915566568559942973555742133395386731266121914212557821922241658131247649731141284766757861836637741494366361377743398983965537391331655272198851961858945587296329374881889654759724627176775416223691677533817779231946414934655714861523793579382364914396641121486438616943861997276516168151297831599284461448166695211926924697746754198922736486896897578846511265463355438966545934671455995911547762285971525927373417896395338994113591552944651881569188521319711861814817252241286184835855725791671151775888897495776262733282248254211699578128485119362571685598919178925716554863878126175434315211991462897283469361858391622932921956135843979914989817858841132126639213499289678448114897989181643452681618564398918497975873837162139289935353944872458936318915127935817332626992947831441231531323794427488968161742676678631652922343981776472444591167721875876991278255782725275271852839315894812626184356763379365446366745125276774299674982817342867432832449926325182569641464549272264488379891418454418343677584798147853743863617947661928665935837413775952213886542533398772243883959555764932476529747615629917293157512795933585557118679469278373923193695842276986744779685513794912271644761369942319166617877268474348695631525635541191877583311733593955197569994912988636966929368653162617687877175937432923859594789959717394191584225327692549828723674313692658161592252295277947214524783857743881996124621215825267535818672841839339782892382818559849696879743775653732858938663556424181965332686958234926772936677975961484651346148449916119656353749777121245648582472971836561723699281385659586533629793447399567466494858897349619589712432276893441726594227188925875917123513846818367779586278655145746196379859785442491916762265638227854838785339558458123239792414297569348769715449151454322552869426431215165419314448669715882732454374861319341674439399778749975391676696639576718637693376353772748497858885465127786914638895969797482269786196765465617587983842578795653262838374744473179344491369634948122748192449635569888894666941842925824958721376244924488172166256638914784711224526863671775389931722179559452892378624592128812974171925859949266917366457247435632723198191916587223858662384746798998716786334945228965183447917717476954576869279166564797488148686379516193129125569848586379247754615223414394659644481927821586846367597827282244582573264213897423162644363476624861175595775415692864291427988364372819377616266232652582281916433493429189695318563521637736268497729627586996633873835598123962624675222711474559743282184278339587198168295449422749837144767714314119829363393466337932317978498699671416535861483275295882721479327367919484322528937425576513434268848777297449232862318848181496379247866599492578697472279329846851535184823959728555672694486862814491782976857682148398535222211531598686361939234953794216325367416175791683595789958379899335956562921988337795779516485327812467558546367847414365894334995139674528145827547872352673963466334765568949784461684731926252774149585378346672639182184797875278126643466923175962171339125632433186322823239526712645556918141358979151363293774937383873677691477382417637894286894271547286234851981644322639329636679377889164153226456619531383948765443449754965418168111138213988521755629915445251141143853141782866327116641155249143416611678754365975648642146959289749797572818396768513726321239192162818987727382233394825837745942922811572291313532813385957532632713859978988241221438834676638899174969758562572515487644295975872377242988234384722475784282668885698896518837387524983411566344793573923814433275563792647261539876167347779986433692754479421398894526284182524773748275116235814156654962113578753559959563133537183477588724689844828773976238827154712573832714985843149651322137498445726786174557751514546737565218568246743987743793946628254764521324987375159228512963777144584525814542935756686783859563712153623965957422171737813768839943294381785536633685366632424218527845823355916265792354485816546329711935325921591524852431974596565557878471429371755797785244779234891638669586552921798212578491779832697545289271341159297135182165223866474492415318337928427513133328865384424844665357288849932353148566896369535159767541533548752597186692655968935677621965749889586246382787569926787774137825762476184262718699367933226817373518117422482241166757179669286426226857196218215879576431358889511286884494214681537161184863812921498726136493436141248535615886834596118736179584687449888277749188697461167115363995864781445444192848834534959348825282325749958221913256549474245663784358143855844258613648963418676199893177462866636889775915663372151447173258611288165545112227332365162376136154959394784996738854351477889483867696974364826512936854431478655314791215587937218893136163927436715726263865576245548954335868447999514789245857482185498884537315246415337622449447987664915635239771183754897732428174364826339285294469747419551347673144556465974399264914858973538832387824319739646936421217469232359931369323176779291111735758863764689591617274184184967431197363721661632447736124429142152777148193155188751353683596791778462171465874557573632871549416243348375863117863126294247177699924741326416181483992295812471452736756396895933111331611847873945519138617199299312362446123326856758599197126837153387898129694358217916617381985214883684543778577367927545543154431689933319166782564117562755288246148469365842977377933998596311715641466749936653355553393813884338373946838473617151389669946359985278751588848444471226219724692128883831795437774896395277537737515787757191866246756272825576226684459157133746212828998446957626151855656819438511391124619461864848382763695545564576827663758922749825165619254681273848192884857747344895618167974257155233518381915384734538335659345757917724714232414856678132155419199761142544684957525227421851759626729754212487238548271254239289851735135263875529446452773691666537938445622164997532618877923575167991452567857591651547228466871561695641424164128162883618285241281654575981282987165335144557565429767244262359155577171425161613578183599623538975672713219269426224563334667463839189399126956577823144511136428326235246641277868163492494945756378882445552237933162291583958584352485929232724929939187372139553691183985167457451247865976722161268456962595339243929416976183198743338478881714195836524122321994326153839811198682233534546644964568641612621589592745298642947473336396457495244417726581774411634253788326821251832469446767729124381121783698679726648295766568896986954393951911553463838474162741245654858848874229482229624878892356639413281591438659492889658783335366484433565329258336181958181696134475722332146978577553269318922268749752956433379924348369141266938914187731967768172987891816598387686348343997895983662652291928677292124224994472738874982174941651742163452688851648936143526579543648863932717879563165316753787859736828988565499695125698857542414985873627167926527866752585525812388551156747387963538665127597626459464947664361623579971619361815852245891236297543439481317397863976556579198742974811832551336423958695493266243523615759771323526276615921634886146511377398539155625216169447941581417135978883344755369293896934973686163841164438764773961654941297794187184336112568665728913922781289976319728855721172871172259267254764635429881878965873186912515871243674642629416882189671621297211567831983922411619665535544355312983182364514563318762395739259348555762112357577443552835748663327873973196753586722814376232463249446555228466937227444156282385218763274929412212855148657775396252469749689689764367132798226732856711768526592817419578489152246816862623252322162128856851964544239371595636723823697363358692913931979431193273542358473243333624611643633859293417154477589852221365528893712942646183632615717732374953222396559156328377848419636822132352796691121848521361223813915139299757768742583518529698989482491266931615753113844794682539657764255315781889253523772723677344669179537524439761847819265889234141984535977833826696412979792185173436823596886436965953822139527868449699177611196682873974926592346315212863972539516713185634757377797883161114154624822374649466935613918918323674955172435362864424614495215472766264396832916348788927538965241756175566756479238929672558962936534188753379292984859985871973616814767985814981364363659747197687944631212499436852127181679336931383483423365848148746794637228246474625839223926789368611222936573823386297598157972833844937573655974484132936634795989482238493879217419592254434932758861698975785426365569891283368144213889466997423869748866171884294472327796546733696372888977285523634213756428577295383269886447689918373815661471798914882425173964882252527654514315773914422616984199241894345664132313644694383782595583916562964185348617135294343791981536612911534384987496739988986128688778721139427156529517315896643429381374225818461419131419964214222249459831676695698638424743154267112175942591951813544717912327137125617756752721965335925246848559891565249312417839321734397241121176589419648222142114533256148254682532485296311411854267772585934176224533253183178374941188571867577831145334649466759858594581227999892325577513987852692938959638418649986727914688757841635577427171168639429778643335387734475172177739661647582624242815341747844427374336975135449521833997661112748962557159584434416696353353425312465259197339669329845969391832866372271813768689572877887869845462578558724573339425284769643978125869721177399349748913956253954439491397126849713593788393586929858877578151921269438157315997861648384178279275218913633121717851578885682519118799152264333817955633292341242811716922245435229673881915127318478859173516926774962962463172818684591831422998374379415612782641188162193282198335365735893166955851159267466298624176555759355739735641366874735131576842876338291664681176439832978662647361179135583489123914982747811536534436884122914193492565245187739953649941132531769825338846598393656459452584559441762634174814258893627775911853729972378768973741193668169143423219346292998173163318125937258579492112199986292423324616321257186386384383893934145496937142639357875312671873276625117791863877555984132218315876476145929397933429722922752237765467758777579711583765839942727154838615443292359525898683854557739588123242466317886644739173856714615727864483261825297994368738188651435674981952561258665437245889722378666661616729575918611299171298954511471832889378939158844953648187925817184991684687462756119717518888585875843381927992583463193871727295687995976665823959358545416225683362768425886281995659189611158375441371669267356811628578683411844762826732466937188846684824897262344716833524123896465745115721945314987138431729354628227689673114582295148198924465176834892191449648151749641977474866335344467431125299153149766142764296533264366775689883658242317626378583819486944722966689719562187836195143636897974642412458556237747231583172768122252497242754328149288394461363487515329384725419427256683628755596927845215746577282839981664214795478787241798415587466532941319636414137295825363118641724844797437638447829345555498461744122645497241822745299628555429721985424137117279798659585927898886217529219827895641699172669437957617428491178633581488443476151821651489476338576514347684289179234252199721568228433191419325226532641512657367291498349369661324376427561295795845668473339469686327863972542924379117339174122644321526751842278169683588981254576527282155262967935184872786143674381486812917681187465533135382519647227316165962617149352771822774596215812217467961995261242318657267637857573179268573685826671386159733469675671337586166624642236998244991557589338733484738942531444733778426448221358721414566589863139872415215249891832366815881183869999319832812984911681268155332231162833113281582548554358772984988171372591548582446759526625992798826974928775818473425976465644516192594359841676818395731383624233361586559515186714386494666977394353998748336816324854229716535869148821653233755231552422974559353134188491665188922954241575411613121859816393194298692648268238328394273612991329978132947759571499615875954975862664767432278327177554959445731877254885913724531275678412964151865144644816267174541371467752837441794175571387631767813578561294362669216235997973643881645655971246957669159745199377341895383316899556451224633641373352861189668693237259512756782116273179145884116721761746494514121227221619919681546629258489789791522562462418462924837775553423453619744875611892175752296526762921785262522611898372589142697787866362424573653379417411568247912547678825169297126757693516297349196977483392894568338578187711629196733152241497329966765535575484956351464593323119675126553181476999945385596815763173728936953443345864313783358555727698284417641225446693737672143692499731483494927477659315518668896769717945327955529449879745435191979653284788229263941824456856742797195472284189284365699274757826515942259668676892342267521213742246451395253632855961612722175298724753357529694189159331427936787162386826875373277118149842411115223713371697914625428391431431852112329388987449779499532575558649761689477291967916759916459223988147974583579169745725351261468363941388635542514176691516653567762771533987926424872823576722587654697884585127513684842413651215674252599111751918482432787717274489638547512412339472459119815254927761411551673511745554535131432987137173939278233587948431463562254841144959773932624457584848953337441625692983944488136491385518242293653732925363165794612153875974238492593928224573843948214792115855983274985333515718628987188462851157455867118578321228915642826721455941649496228238828472453125169543596435956869651577622913418363592235628115968916667768999734963174436335622512167844633594981187529152624765861645817956434442174988149315792845336839452785983379174914573666277659584663149377274664111365873536475739933959675942332457844186723195187273239622755879662979631849337954256117272668525611554536559144548959665822652911956299844747972776631212256347441961843315913278632741856571115119193312712918772835829557467867766987266346113285667513247824599187693226826134599239354926374363932243715317657568584874311737838942313742596152999277697659242144264437676371479386945611424536932374922548575493997456487748422637929163891249538163691464394547337133313335267964233268587832545257486618224821322448276958193417154514325716727951677262952282876237568148699385342856152269357969516418167185527593297393137812763294999798148886996715928597763972271231844711411961453212877164281292175545576463496697784388696615722256793348578247715943882443923148618832778472152554733877158353213896852789873937389565269994295473967925992274892748254242651187472974552778158321936459515613338435771846741453546179929379692544991884557582636233124951811943442529764511674286487772852856978211185435582799327984269233829631538961419677599287593314586449482277226164893722451572929653481596316913283553587434636481629568288778986231468112564181152998616573371973918719754153167356916664871868158819785189495219719475752737532313381699538949811747311473125255463422463166946829549577878383838269295411985676538485252981262968876426415862415242657734749835512233773267497711854437791763223446623738576346232664243319531753214587334967579635958168829975285544267552188149534331111997416959265819927711753176966965795389195686476146292498895491969477387834371874594634423762747775493965482369699161393567531397736932459685555441568614367387159632767725279794649599925653346318385146463433796544536881114724652945681924182635177555655116451554912193311463959714168659285229511619838874168928434377296617548518481366673564316633441891555394142157723869289742975155998538931136787173981854931525825767448441928625813897288131512977612445536386767146644555595682352485827445911714377632172649764892373915516577894655762825881261387588938675244619164255733758766414296963577827824248711975742482712416643334816228989966331468538677222444833334222117741686539376198142413646957157721788339257856551589844347132713761593418183728665649862575745111958389197368124687564629183573577495395921822271926377375533779528957448419626616244851213589332135867598551119613888818156978179555394149948999277957751357155919428732615494321815671695391789621493553193424493859918437415356386641848179419694574417146562191644627534465334772112815442559514866618944566733733913447481431726366961496967241439663291233394821416446932745677533751763183564594148621773331883957122438684834337998956378356551263395253645858556342868684248254473887149525279793969737141855282471174125531419685667361346754881787187529569438974791724388767736334975821752549817878195951624246433994977221911677486972932246777967253965144992639326318522998774399584887387449362881643741698927866154872426342429473646694586262765243274696737664827587936442417921237596168724116744526961911792614353768621129694146621621679739155331182974933236788839887759754186273379662974541324291866721138645762717815248269589654126228862346517287691516554319711322297222762489949981635954724755854566733869764752614998471845319665238393379544794983839713123979482211538372641939292962363561498418541377421422432537554888727558392328961991223254819286967792432643447436437553933841536215448592735566199744146321363872416255328674362246549261297483623237649415732945588495413949391513366117568762291149479663582642857567124888198981837884142295378925536914793592584252555554972773335815174424561775928474862948359731137568794772263119485577383255257884654121127437364612439653167755299591513234861321354228424297617446576797163185111322163561321964592169875163573594519756877963313318284781936375735599187763873214822391393929472821837493681981362482419591437629692349687685691738869717751492359373331998457421296166731761875713836934668488418993575641618178351843217936776555792364325121946818228811467822382426747248132722433392338819148169743447259321552771893783675582454698323143187245234482658297332789511714111724236564538347969137987147446418721266529453148842638233866597358375836669863756818722996545251977359825891165646516686349644642366257636732295744492815678131156671333895823376616886253956161617639719299527277645358543937988742512431372987641165999292999753714937953952715611299999178942213694289583644113122921828612832972481347682883184275166827998185224246885164272679985666265963564887565862377425223669374768115473128613639461772847763139938466668517771695672756332635617443118749515565922286728881239874164936886433824932594372295282587861548279352644882118337744782478412128143196475685417161539675416627421739456814343949983848379831562434469939354647546728546528563715142134958323176547482933778147641634929759956598236328485388953115397272166614535956895324117316736432547197441935614135345965636179223822555657198492924419863469471652797251951889871391376512448493562287271259146975192642675494641868575581485972469534789339694679326864892398425477645667527874796382652889612238792357198775145672737924865977756869568336828275458938415892565241286818581417831633563842198592619291947968549693847222321161121141133728562421614325557543554546549611456587648979513157391645288248174623376163913217836889317119916358585171371581263651561271161685433831967195922376432448443491833916912591192228741764597736718199679737836847691677926678258956914776549122782748328976781475164441985786964237868746324251657971177446132444129884315628783471377121724857258226456817774912937649711184698511145636483773865529478476736575588949477634819451287124687135573376212875355191218811368161518734355442956465475365291896936619124567643388726143552541134793695941795923884587633786798166326829788379456794567635193818531912889696542111445198597877629729797656298398343842581268839781569224633562486558697593374243288189452617835488237887914416734433268328119437359937727968621153368199881834558441112717568574699498377241585328228389136863122961876599547968879617598185386482368817862556324284844641268797923794579524246544827272287155737916244185317852233851867663226815428627257832955238224879171541973844547229314736547733739774769953286898828392834616888744121194413192783511684935512285595695936225383533681174525634173532134546954396464551892343649893984337833242887332411433687666854387959174351873194136394949434841436343558644944246764248281574526248493157441753428843651697947551289584237291533216461439113856865822134634776186732663573747424884996369636143695761917371112389679294957559818373374999891918964873268923883619936235214215891377693374553713715227736136525443182429764835984515278771412945253375249512911361876553584677182497722752842967945688935283899929789754947234936374156574752644512487871584865482787233688742183321997946422849117738977759868189178872393586486147835599575283179965185233779363155585522849156832439842128944347785137391114687839794894688912679282812812379852721199458258325343424594622596577567593326148661892241592641187743383514117863853956915158257931258598819575768954644158964655561318178826382286431744521775321251166957476574117189522497829833848523269716117814756895576459743574789569179641115584132677541787146992797752752319793759592461265644623498463683552726665891816369632869515853996178723293273798651836776351541146817226433792567639216721765769349951683741987541459922197563486272228493581134968951958795932558569488536538924728714573965119954883735287979349211557743253147535698216892835745881555761964616174874363446919477431997872243748125431774264991733621388592766576919176472779733993132971137683273179716774757847148236339996213511361937391985688511133822531761796788417494862692695885828895863431251898274333582959541229695837742729637859296372225336286668342413364947866484595117635282916137253656322869317618461988978571296341972157877537363359147894893436313417184736451775778356626867587627334616252228685518271656484146768129734844612952858923459854418221183467626822996788922816136948846262733414593161843923524197881497569799147344428519759159747876432491294937368917782787651347989118927399924614482659414447135924724443234585933288928442944436697131443892384582373117399633282884936215433682817128637599817996279899322581559351914762642421947816737874729753744118352483477257729596868732195395221358695299771629215867176495917821661179957918827394991649129791757754647347918738227281182951125689943665366238841557555658549198981256672284977122777221174872669773331458644446412223119495551416739764537869491511891648284224786762914689528578648511417728197752742199952798452311252923722487551669544624469579584675856174638684648919344281149397881578839688142832665964167986563519382241944116162667952641186435463566559749456511115269267719234471825899735364364789695365268694786164136452878257116632147716265771173717884698397759753533149416513672451719538293978321534374815162396356298997295927978395675181129645243133843235812731298516616579984285558771252225334984544279157375721687591723145432774981976593174123672744957389456843939479776277335599883421355828111147924522253783569891735297117111781233346615859729892221921539518621744495879852621742824875724575559889356229282165347524985432977855678281299414827568966519787362638546545465747593288848696322484326871397771421638512271882939351837857434455417256363341433357338924566891331855571795746162684585839428439415952921484879947385767697441481766866885263266884361929753671756232819326432911325326289447411134114125667756778289717732472464673165531195661579449223348474741947578468734879714624747684948142778625397674544916379137431234391952579236589961597499131143362366413425964841788427229323549665295436911285163994625546789645165688178286693882242685263127523161777576245423536694299519251356334171694935267635944774688624356553691993498961564932399251484139287277416113247539657563519992719526256865969711665411551449611562175659155815961481436579429475473837842322716845888434366392839112774795965649927759186794876776744222718251252826824383671247821232392126131312983311667672352254382474985925913333387944158273591748937517918139357951355162311374165696386188914788723228348365671939566164954222173394917733289272937643127347545754955728936834935598781324166531835386178652954594362292687149222651246112295534759867126728731784618398516859234119811483246125584214955639452862743861184695942353747181935191374541547797289423687385377786813146199868577318666494822489158263872747684325181719181239925831217371938361757727525636538911922548522446322974634187739518599653495428149236488896568398248292431863765677216985529358253962294161346883593282533456262466566872795473522839862296622846493969148565626898775873444617356432335171433121877254597847662294426823855965933647985659425524955527692186588742439994835376661193762869427171314192585912557667732898738546656866113592557293865144726669214899391639883592787371652297118487316369137476444261215225916743463988899527161476576197588151386575353385891946573273829525642279613832312394842958229179533651611892922141424518231137981244395373474567598848741743541564873399535871529313177951395239627835667244286226414118137459311973448153561962512893695339269246389284438415565744993426332245773689922742397762959282713827384451332416625371475493563745464797639779331867894342487762187455128985826882461775822677686221721519881558684751132289946457428468446381259424426644427962794539464982986837179722154759927269285483571144859612826291982697616143389493676637618317315464924527745674849593362983712138429771445812184134349446616719541427442722839332645479138699454584228389462385437975777627651818319137163381624419875537283272992814511749791139827469177394484564925177856848739375272911448695185483266741613539956146178936335663988553593746639244751533155522798643882155618632886838143685765528796811452213382874767126481832792281326426755832288889427499669687718451825486495273124744619567137852843261811327528973232277981665838945136157797675798925613667131835336839599356725416965221924996327819858664235675362673764942464254238995317674289456512895142445758547957623842765325493997931595358944696989955487836225717756272165424992896434916527987661278374715985275717197647336181197924384782298658267931653151251832259527646499215816852265271164268299753392393783477474981996322121995215334592738465863862482483571982323763844671157333462699856944175441634981184816152112875478885328379677685955548648636173859372198965613216651314267663737755854749219418964993498153336191485859669689585774923717149649686262126974812388668849543596463188189675956183949734777835462669467424828426618581847529165139965597978719261128192734628131916565252922936927725898259952143689214294386877549128833737831189998317635213965866748811693692589319963573668144617588547896845754651886142855215954796465957513877745449523934539788334829558646418743684987438296928499245198538492661157789498189928833343184823989184642689487468252474572864152158422479416133847964422596811995736762792394577374714753333322784369538657915632992366678819978394246191781343432457114883779599923531498422754888488866933972764995134875949228966733224512677877369637129132726498621951198884499352963956138666426412411188537363558733435192733462483492234868113886129528691725964293216592492669369112861832217626836485523678595515689652772423995544975232981531877733919131339874251674762713791564753546577555861827273353532577742196552396872752569775936174857947491531216271327384686392666459999142952679691218576195251785674577562627577587434933347416853219856916653392924326549378744154828428973392494735378294167562844675472791831282628327623458443889226385467376526357918233176245166684229755396819599312518232537295596471899579528448589311564173522169158985847661518339474772923238132821393969899733779146136348241313342637526498655468961694517537751913544183837373168127556198873853196414687424529321965565342536746375734454716727712357771814486923575821389752311545192283431921268658666539661793213321652744761524369822867736146477442696961811337297373946559177719868355335357977694987443449921986712345769456115494247371372369841963439365766215528145263387272277598415882491842645152371987295754684163292276339744961959768134572887186212735617892986852763991187676395568828517695279345435532299728354945884433849863416848957839644147424767942836166641435117962366117472176149745397329739426653143779985679452861483455396859163331227685528694743967496971876198119776227976448534263751737237938714415112636488894258221833525395525135188625494818629592843362613215613464813273934883957373443653294339629827119597781418642815115537487469169997576615469549158591338964769758496856491345148887911796172947866452981914417386975135632834591135224313552361766359622794143146557778122337213838888967251564118784485598228411278964689634845623159599212141157844292154437877172111921135229893292395637315911221293215616585784813466186576687697816466894373653888486934582149629354833259423691428992348452313137419724555814945845968883814215855716162552845328713582762973456927634678762283953291366563717299852218974192376596522167327136822142829227344893444548261954545638618521254433766111825821254616376218323565822522594974188449975685397552143174223521929753659197637382475683995356337211565474136754971548737261684294238675978553841883656262329638842697294947122989354868981743636686314687388487311686473446598266685143771518139187624957597312859454629751663461112496145764748763134999944389281328822377652428621128812331248279951268924165837828518731745551454469252546928791551323397732776192125169762532576597726488545145345752617859916554225853616911434897168644533288599974233733766144849613965262912718121483657252545485689196286355155274338153286624162961588113627125457241469921327523469261422223557362397298229861197913134145389115335944765731738428522825353253675958333786758589331522846252418814635993467216139189373978927797151549875695298995922399991779474437395744252141633742641697635966785259474668629884947915668154522927853318961958343933488283644645321542438412236428656365618971492545677317519141894331781577516669116746487372351783649696347893793466194622746693867826459138387634322684646296572244787678417168481547811421167272449996827523451394164115112718842641222853177116412712211271154128949214412912642711822848833334126937367467511671642725516748131733358983733789753825365938732794937725988356131412737219182151342123622336847968941661558753887978339462955631425489434398666363195931114577618945877397143569768251352717358142639347942388164888993963678472534357141268974261941335593231483618412437324538632654192425453623444576296549392456765996421672826264672225145279746224766824995511777888483998962474849421711241226994733922717944327259338243154643915217367161483217929843147412692112737534571671473256459299358358521263599556683798433343256981733747986831478657489713937516478543339912949713342322594245771634767646731699934154283597874927382946527577559753161411986467186379821577222186382422329855654261243289891998517747869754227533636854723711562124891765175627961544915176222334713678174646223376666173785896167324121583115223768474643912617338631778967488665482854945294837789747533261937465549833342725382256898195296733365148462533859965554343752334541944661622896893346669935156489364731682771348562937919414943868131188254178925116896725118385197195711217917317897459959787386975456366956676465189975753571958583118694351885384272746982886634723682996974493819883361548191373532629217556827714931974764781133194115768331189583568944223225423823287929928975222195427637978249447138939726327426858511297129854557358239742483967816836427491646362273146173378959621262891954579576689387414218161176255349687435993911652172877974598922961692191281246343329996355246322382571599613126347247751373815923961919869961584297862889258631936926882676735143728996819673665256735792454767939728398255511125587956191466269931758672132123561256655791317291165822124324451575131598628337233624726247582528931978731654276538999513259382983971743887214866555515719638726113986265865251795245615667539128327923418823882395765231864665596287317288467596963574559726365772512221956715391548893864481767898129924674193146824199538493272873873229539733314623666314511787864275127981212562828357797656342649259848958115286911679345869934747632526215633324371394771563747599531151523834161271646582755314247152193476782798742389553183396111211446914183857985739127356956966919591997272868331233957653247748786676393578491413617352465248996663292448266296555371426839727374673715521941685192134625597323589741282286244644847199647269416361388495818363555245918613543159987717396123367871371931364679576247756467784472487589416763618321896543292537675313253718968789779412722763429841255425291168145875946193434327331763282287181467862459583724546512719828516642437463319681924563734714465129241876996964955391654823367868672758358843138666612883218875642716631425737472932119419286659729372412764512583693634442996867793824191439487756918242332997666948237161919664364177118388944627439145126972397594294922715167799612294692721468788179231736394363463712883728685472395368787292437798776157815343572897674383425284961554335759996175642969211628113168571946845333886972891852551857694677241774851558528693658732391667372448633766628367622384423578215348191376928753495523954291812335145161752426755296472781771813216621585736399799436485552431651212261734253223155784229251326436642614928249444712123947168592255325717521454734835118713552777297667318342624196597367623679488944654478638937576293843111938721986424176968715324597797779541639171576163832454692462928862935831877563645879148363365142343725792338682169963789925438553713373415163368254323114646381552878919425641355786886249877823998889629163197574152665632312499377238134334979283449892913152188791583825293129463241331435632391449629139221156369283235777995929881872794788494323444712591983761647895274194425669948177165431394973481889222686479285981423443739178956868926663482969911344416493187673464129347443422355685214423179326626541283415639287697948346256727362389529873771431133846362923659766697684862895786179695887941816576225599778157654523181774754491912361236131785145343399675994994119932633691194527747693193381672574637885894336898558746164122268522219688921598444116713114129872172941731771514824584785196173271264237184144436774142631237535541953561965396862276427349182636521776753282767975597231138381833798463671756543872495497225297376212569433975353492831532941577277333166363887126298341324471178799995421788489998631653989986755644185254982872633787885673357722129534812998141318985453777537538481761958653673469814179713356184169154918266482372668638853362667572771686225342497259925351416143128286887311451954956461491994396123691421445349634269218297527928286237251584447753663482233715433144749796249724971228321581923136591369973845342343263121193315855881877151573697813114213443927495462166113462932242651794984723258355855281264387442411718179384127692919126444177318368175893214853143854477784594221927496616981285478616383723134135765325814822458218745916219591966487868249384195867358877827813442227831859248623358135716486719721413588392253487378657285745627757995633738165683446265538199854453816287884342576182544352227553843451248672729228362686897553736971174829999812636884354918261767754136934924185654187378185959625918511992398854151887585879731331161958277943237314951448311323339324221824936647942174794726147968371251543297882877256626229816633647781819677664488831532522164327976967735489727699652793998429217793474712674333277456546477387846173543699922228964517144761445151284543333455141481184459574877995349562886399336344677615893583115951138767579213569229798146246631734588335255481311279963586959111359263676125944152947385888788713728976577972376361187565423283355243898684611346244988419618942466545493862885418795436386189325878317473651199858391828426347714534362517526491229312143666446888214355995544656575679845378846657982371825289636274156584257723499436498815766484688326642312442383832692168696154886448468692638819979276935539917439264914266946942858441884663315221522838422914188922989346565976137298849949447238336251786282774384267161994615447962929536694832237833822282626311513445994385317199271379549171219334733151571369286313166153963886268562518434343863268754959237653498538371714989295161355267822162813531619997827413437842624828888242193181872493635318559731698423612719876925287617443325275125365445313715222972615845263663178511122393624712852346851916214954155364434894978193687677198483787214456835212112258815525353411122466948458569674554915428568661715388133887645979378791655412461799582768523828845715669299236394243318259341225675241949861471884924638642663921434427393341318591862726972263295535255578598247333484961176395647252598338151764981487475883456151219132746812191238966444678374374376449929239232928552817543861388921813714737828663634287563589362341522874455211563889536784711735866943378698744832874432892763259733959828672953138562631717131884288168825911213958212272874952259956836426336632452568744938154148711343866529563618462754467771531654841382246495232295631397359395777695728356858877439468283922488138618342916894435461378578516429279993284862114631657384243775681679797963163526469198412678137185953758965115531548378535427135421774579969323365282924456258689657193989721936444536871485253117716114874867312754331369674884654244531896636691924159817285559854295275747387489683674383726791919527881618346194461687759418389339917978682391636693376296935757748434193212265623848457949524287919328628743195377122726757175765686448211419836637818474179445814448168297179742413148335368759283888696394256487689413839694512789438158373911667598761621161138171966694884941688464426522524339316975263646594349781332464785716393618862412745613624759137598127377154294466727988364366995716433237445861543129845261861339862175727284347548523938824745722818279998321964895188869232613774592581312317676174858662821298557795715835481997263138229238983642192674913911737831642555452695714952342542524296369314748817387662786839171499915746299889597363431923919948829392811888648354586477777661443372452421384918456884661326458565698831758958873561827847472217775548522316183338419183628739497841681822429642472369521393322815964944165938255281123252473563149433849321136543544748875139434366448369362816969433211623655971425349266445931863173234589965997331346779352338644747284971569291125691515648491775474771826725836284325788517683121587468931313821332699559217428456182983912183116275121931672326835912212311619227628611667788479761879911962863524374339198735791777776852837179496728728581961927793367449246175557428367363364923358992815591956686512237452753868766745285378836376579214479765421994322748512247885796942997438318649813663766545195597777318239993873137394837337875433163866755831133851244866543975389565931514525791714181734921448283786726967536516815866158282999377739335166615295662377184264189753684181649259615832439845244229477765628633484966198982416727644329771523852147737425655227871211178139394498161712265777354464552253182421137196222679314739175289487429532139741917847218125524452183835937992873655265166627842159342734413699744259656317982185118269419657522846811429128226615422352316157131521541552353724344479488974676637582526751822245571418295552194642783357348352718738647192281554722936659475644427271878996141312594257284548869475462259754784823137846379955893438544428795167479164571475855186921362941446264169417444938346928944138171777283113646938851542336738445512229419573175869813135687431871972813751967443323625174716772869149214291934254316813172659735628638947829235655244442596567838672575166178434846379438964556424451866453285578295126813267898333327853162428237639329535224946257932238378181754675537948342946639643469378443799142835658743385258585311144313216489844517745258996326429658969587462613276791579111633498383131857927145693641531684833651854948629323872135277236529763758131892724991193511323963738993795765846324234574595781942841119676958571992348587155958232242188683339327441198794288991913212851183915749747616925614794123398296586958722573154524894184413322768343214351566828286695945257323247458873818588317856359855585889423291589338147823556531878445387697545566371953297639725558177736488834551454553326196631537119647429754797153364863416458258112743518887681817383523967762671735986863421591228461656333488451857433663523533468423946274919984726962223576892632835432731629989576697934593555737271342413291247716488748984557264287427545658317946729516852567875596258713443227798648333378855385899661894226785548351576351779258214284595263515421477182157873773181538943193635562261265951128236268953252514161266172556567479995881115255559465962126662398287665664178523558845946613633541296651967718943837421971243485495849825685389672312319223469897371253792239196117337259394272999924293315313994636342161577767559777918537837278793918955611346223913656437945815194887347372883173337759552832331618432259327534747422366458572641573797528259534165281725672635773941582397349645163934572634181375432541374227532835262315614741173217243645286477883914464727734844558792229766544733169532283576921699691576228581786638747974565534484441942689767229173661916558886128113271135756644899889434112612422638631294767137915858258219441612364273648342933416221941874823948365618432524754365368354625918644284827978333659275899351631593711182877511865771261184957987266275452282177545541548942739445962386595611253617751444615648144372711169284444228153314857651977937143951385695491531815551546239933227356695235286266611565187979291814573986393919569616913699517597934332761151995855445694543393176397464578467841375743187426524142887124758542568932321852592796964565941784839722734828967136622977351318791652734115891693154249965985753717889199678638933245231528984354931949896658341554976827625931233326295759483438724416966559572713322786635967748168654399357426648716478865527333187517531163736597133817359971189839573678732379873253877765773655591747529646623748914681957112652625376239882144845283287896142193529932919914487816124713416416758651732633161651152522642382856511584646742796711943116234429969917372745914574658768372613588578295378768225561336163232471226136652438238664687283314542453165529742464331689496617169285481731715841263329158719314213741724773357363584479241169481554635893127843171418332338266212663253353936223254986117723344519714848121742957345735516739171931313124187272885367617379376268289481887583772187857575491916824651638486643741525263511692273547591337972254296712961919126369198131818823232792886876787312322923983774986166233719277898129121419687984671183352369948839741871738325773771884129813676659627789411987243222523513771334386855885773486688841181357378716381768235462931714612636253923651726437963155124584646252453627678222796191412859213826862222988788768368318583414584261372478236192838657596746183599426453265764946612442914412642673218424799274844978968398563529839661939847221596292922867917789745737611322361989261257737515478741411432558645452566148789216989939962297841385431944711622219111996295779798231223593644764665653352728687491322662815381735199324486344173114269241667639239169496121427627933956813675678473312814944595287472152218764481612792275533941787873993768286357436633975378446923222486395738561923311737569162372419939412357359569533177973999231123953178882738671877564853675667862157845918665632487663928574159265847427283746864438629467772677951793321574159493255281756914618577718764168187212611686375526374954718114912622873741258791437711972871271333419673797476497178165242359371411378447274714421226639854661792828662388649971981453337683762834791817662668557682825573748832399379936182845594665122386279398324217815888436783284322928858569979659137869428646967258924879767521523299141893498112914371236988939248252131461369459776899477169183987199135142986853422258963852159858751264361846176192887263366141816822356421827526593218434847937419633265246888347648471765456197849255768335168723559626149657341156522244749512765626231175797812343455728668824385897894364953176311772447318636115685121395612132298333952894495954454574125137345178263442881376621967459752476983719943121147688683327282438916375168359363112779191619841731347752587493713769777737621673787352599248317574451123774741919734884687427265599581868233322175462829542267626555549452564661116186131245795241694539675832842459852855335848897349197581663796772866387752541264164712767837584569197763815922327787853636265621429195285766887556231473999341372279687153631375886724192835742859817592764782269831239412876169839579735113228191123153139525518554417817129727818223415466826551981752553335115726956483953517495571615826327797293729915255895341299672394952661832723237626949158925133428584656828131781385288989482634471725397999978196424312239491727789298798794593133453575394365933832612479719912246473892127519783943971931711924549628821562549723918911172954398369141286238191281981177273692327121139632449448446453169327539231233196138973716341546377128122145234737623784426451987598489683915277828197438964151711448486676193775674397993398467491238885484751197527126336161799822699137412512243853585992971842911914643783897172311718886769868958293371549246357326295661456341149276321234758479178535569183187194626639893641547479825733932632182545315678631368241713995167255498739286948964876736936431245665437354847634919583275628731287639344737489671627934385267275747662124762628671463791296794376833934399451218134382391871297781873391245356157476596573682358335455577191695332982438686711534979425125274696873915763333375561493893311678255445911233459795835924335392996449931842277156538929452861969594495479686271723615549715791741989516453979941311644514973946934774419597599519564724291584186563783732361322358538847976374828186368495525531383976753271552351876714256789716994578886839955942512925594364953398176559555947188279528944248568365919964357954862713596918754479871756179874248329577157922358334399716782996838675479961194827347217775965447394631526534816549249816382635444616646288668212914885423585919279623341185896887375715953444369232355453942419146596182325641553777112394445348877476597851995163764882325748515342782476565961236524646218959474643689135621633275648258143979434682584135187394758563357554585843981284781411885631946591758322519538896926894366341889863685735676455936426842365443229576949417942434176659785229431388862893596639146681459869792629415585724387279838763657517769698147518946564435311465215871629534274968623955475591911486458411727223963257694933923962517447417128225429277471663958117742463164975326224951926291919763898194482813435829711439429385665554882162394766746778619546192547724939258425188645395248747881563854758699987741261674447136161355639578466148155112545347754867339176813415329629864477142418231137616857378249215441245275987981631315831744655987191517195883746856348413657155864825524183366731354175349944411882332631856338453751174966496474497659635166889254251456185622951615667174552566961915513964268228684471735881477467818194419311179416469846863598288997227157154984529494979228136825437231845232563412788619412173425127291513658988167927758965396797416556721619426197872667176646386831592652584183879935632285794276326579638947124916468585954262894331394277788278815553947364442764784999677485365719893528762928386674642389794164943284959141877335777895765179563771166979846677954724289696542718815393286733438811129177622782663182298762115774785582333491557655765542631117476834956286221875452894857857684267641258771758282361546231888314978183749825532647682214283823299886261131582636495494793973282971686588536788327665135212429516563112854423235891382793744684339628613934357735653823186453764526476679914566931312429844219661288745635979573584624518829874882655118496442689932483164941328473973712345493396524729113135861957338442871118759121912313799895526341337237191992182213572459799414435158667755864163329344213243575961835498874269481423834148385782663182878284122163445739558936181389476284696892144616552344842858795314663243246516251364647623572193357652875424938164427278325424549384461892395181422138759391644563897887916413545547413331485621719588288718151615245467595857836874691462266317631166795281763451719845851562324228888496473697666639124279381612499238864923689232233551469319558479245537784616829163189921854689694946514974555551768659634882842235786283436962936781633921214217676184335812895563526717817237984582814494573938161649321942629178248486824916812776697699852767562318979379761927487956931916763792589517472474212816498499954223271221758895216386825664557959176277252132543969542997241926932549264457589675628717431432915168963497946893354124756788978384279498182761885386651229196833339278186242339747313323222895127934732345566439169381593672173766139263599242146165114361467722324239479282396982392627654215437849766574713382321572226545978641596154424632763799821364851613663357698951126386267283578528883198767553554183688397543295172472257982146533792521265484881917932721733366535576673111488479272233294421973429977177125852657771971412417649636333934517763439437467497269112643946385141274215741489995996159442869463571891454392381679274197284128456334369688717774681989717928743465799648418175434332292983656882341395145943366688817994248736859869373757973532311899393155648625532895583736756844764168432372735814353515189663939235966284366736161312718665957869366874399763377388359214519285111597916782918736541462793521921979661338527399943868148389371476242354995624597884696424332368872196485946386164332953476512389488937421159555887973311751979818681322316262738436646621517387255177297713775617272723773411215611329899277628344426684934834385316294291852585925673855338657186695915971138528976351774539136776376654655496283718785137849597923577742369988158926418191931632869443668546341141662461563514791635789633347251316353488639997961448399514328338862119853743447371198959479283969179153326549376375279916924211126822242786613229626527198518421191215373833154916666475226167966177594776971372947565166661356953512878566592585339736281326891151236173612769381254762884464477391997157334152266542739966393131119724436739856489651556275377477249682245138667523676373791438242118213625472123379896276118723832742193638731957936543142824995278377439392286878421624885174681497249158266743574535994311678628421226931695841283663993959819551653254213687795161369544415368424538948317876373387232453887719951855665252777996618654842512497571927442519398758624887147187823715558689429284135513216814585766291159899816119559768449686251761755543413124968844667535238294269714145346631414779522834753168938322656317358624655647991397988611775386911772126589279387876747714332732789891547454272958622282514676844723766482718994755764914372865236482131199888253638918334319722459442452339244315186818338219234278313446259579186566389199913329151374798645443988617526416638532548817661294483353995544286947182972637746275418797151458143841837999663281522371185929823187269868725132173291217618589887593468349641847257167726565443182328142115288893589259816249458679383472889767916822712326269916733179257123822594664795219199672868874586667817363522943941817983751197653443958211485577658335519518273416791519548885658462822752568797366317251949493338419575531491126656361364193426357284645764766239746862271492126634187553829542414981186236236788176722113945986473481983594162879531641823311857975173222628816658622683824999687184395556435899651718989378227835144489923581445415394339132813317646646775818358778989993162482956598175556371147746735832159354794599945561665347891383387292561719713169214638317335553172317288149354265627457171525721841668563497713264789586437818882846692721581695164813444934792786435516553612197487612113462649272522965325424152722712947181997148234665196512662733837536524228942396795444491654846488941352145164733256595559933562455479573978331546194458441677692138975272995959548982725772341444231558746231165753824382424557851815678389376641933369481744528599955773699354446561599473814664458925284198433968917854924379524495812211943239929593995322272412982992195317318258436857954194282372481911631535267842537846254471527697669612137791954636341577528367133972184853847299722779421246848135333617882581353528469463147849462613481448563725559485688362297348577429165436871628276992299834661392297749316378975574583576741769879532453178766213562797371355221174299416372782137196723647168265684424931198391819562824539346793233535635354443378361713747225328579133456799917842723175696128875776912581371855136233782384961447127265292276678291558676972826517333732858515323358115693873534155328592242773997717366454686999432261375433631391916551918497448444572115266385386931811749383226463562888516933526517571597798445589766497189331971527566336959497373912619532518669295837322352977277437478529375195667287322419236769496238255653118616447687589255983516321675784655288746584418887147768625293546145828466796575388854625223477961443277756294622496757159486982126234997616176195769364292799981413712463968578133968278456435575746883168825627893721454987435999587784465925694965899387929518456923269641199485864782484325269641965729738666242411647169565328314776648494818157911617543864685952595425714497187247781175533836176517878397115729487484936228815465142861461931769497889392173617922187133115182929698637724974665673474774272364332993665142497864189567874989292491756259298974373327893282192341395891728615932253842249349462382861733683176281473587511356484559522769966575411758489424962315157324219856296251989911295214729449651625134649746527536157428262226277779942895456118694335141162768325128397732342192424826832987719221949612826135175457939238998818712772964455762385188889779451339387583717383321819797754598519538275446165395386146711159999852669294798218645249628734614588744653822632375889659512863211974228499462688166821862147357344655584439487383874859963788311666115547475992278564458616435491911545273562788643878638262692791844441586565327694465262439419482726764411742491635242274224952224798228292239281694712112415537885697416528436495765856887348927477127658482929484959447162853591291855693694532927859556641889898973333681943123718664226115995772914252255457617472674374772149248654768382853688745263549643566329674493677745529125368322468188946485533396846748263185229928793339772199573146852159561451321542419519556859434549484338459394534473337993835278126438373312645973394983176683484936763982246533743231447985234517173371574136389583625224735276774911956349866715967478851367845234227842738388784421285311994416638412563282958399218638627947519349485613798526437299951654314327156526785535167775671634953365979521987331835613169122516732239261268991873433627439668232443359255953929342593245181892936341256541831855994318796685877489495959932916495815574242618256285788571571219681147459611435844412149295215154956582542475958378482292611196481939183238613441178397456456984177975286947271387115641385863361957466959666684374747865241557442177661527285492776551864819543649216257954394562995182452395569479984579817253252651886995451387365513483118323587555944478516122572711111742989635128566395816953233123296384155547383822292787199392519137331875514775994272771611751652384352711268557865932991955919146462531556391176568567652133845571524578196113749594257351643171222557357967231169474218252567569624349935646643579899615752598348673665928571728697656121151875641886388935196856591192217275548627334136535229768677897494757518241543185596352128897546812562364317515154688781669212892946162582242646993771737756736929625763887141648816978553125617567934222825788668246989192652297981311473959715419118916162272959888926311271612412292817924219186878598515565616725795596896695382132872427977548117456125684112224391342927671561215616264564675995938129875722721381886232698288679372348728881728786319468376933849964635594564333852897614295579365736175421644838917766176622548829426857821294974559257718853533465948639748925379385155838171427711662535337764783187561367418978134376718474742149775611449246938356936753135328196556589493986811592976278699598943692521728299248334842699647442799842793623435357631699553385455337417668791326978937871198634956785342111232627419187295147332899423423435686437334943436168337268419542191622244627751455277983612565764626838391876891327994255491965336819738714383324112536866843466946918669198328619851436119445849428275164785655429562962985468399216612971445877722827115642369271731928952448119291991444461487458349135267968877876899245173717531443869645433918588493899269893836221975596796644473662477357449851947386945598836172218844577561455282676114886583594487634469494711867467755393542989642877897177253878544972225413366343133638354531375562683124449964266428344696624259327638961957363815628986547763684446232336942222683479124698856291813934517639676823814262946655534726267819767357527833927573135596191782656372932715996753955483882969924642633892392955241678747933824377349528758733346283166758831357871822776458772381586151833857534515673217874193139545526892543773241541136535648681933612655933345288281834396154147397462854977385294376596191514134868833239868477785344943884286562345556443278846361744921448873196442186382975691555857871657957691897325512961125598385341935584563185635721723172989413595143489797149611573789968718957541888646351292358536413282976521697342976985111953484692798449497132228726325311558817886529559252463133655275229989668229254978115317662978478366322142957354254574229315153889412514799424728976386117512878729768226157419315733333983269131896717313942863324547745951953932592223416591712266839324318591749861982549519636318131451219364149138172923975595318243252178471384981182478827346951265462299327625523659422144638654189398129869211564496599862636944953664539559495844484269422924398564816752691274512837759841271926317972131137478569335219126218747434535538265111933443354855628351693145861462445687823297658473532736221346471837528737381137379442962985522495246118637739567499486674126365778378149613557277225782183619166984686655819627338696894154949538787351831882594363842245539483251875957926166471655768312248463449835616122569614181891125849284165516228263133431329419784792917557258874165317338268237596696241955632948567289915727466124547533995188724432422793548141583235434832793935267446578482321632164545614896423946593431562524729163623993624818468691645697958854114314554835761429474833536412612132386778235366294586748468529612649216928444954492974718541491554365866799295434522871735654698124419989889321773849912376524326656644532363429613593618261692257819252386528378617868774733847527421538289115866542318672755485126179986786262615835782756294695293281658364434895364437946385814922976712144424849261964673144435533192295626819626711158352784136345464815485346826822656715927641186466894427997579733284585248255782361682371137989218556971795362497356584476275274829516675911239854592739355652143884441749752627966138853326521799942195879132636229914235767836639829316218279872672985551234786668488997723681847934389381659215943732492751834517845863828737121483521796678128712277458131742769912161537338298315941652624781671767729442252981465438689957914979542465579667614246984888579966829856493358928421899377134119699574213448238851841768461662631588888211823798881856583658711758436147238497175259798953723887721223835754451875735539792979731652844218643629193534593699552417589811763925823966315564418538386176232423894981511956385148756464966997365664624618236539495141327725442918259519322874894397218771314593317258988165544853573341371629831645433348682167393537564524517461813226985189619953717158598234223524222519578473643347176897199441741892738575838152758347155889953931194849422227272995698175961252351534555665373462721628224137243295641997513759921973783275999128661661219474465362439747226226973127948985311736979743465976563765558346765738325297533829475651285918464847668177828191937482499889726919774462133932934762791678649239195542655847949395464531294296915447591974667586922355374573163416255342688335727932457795981339845367525337718491535294692614587823664987656585528937385436774566612919674312743436253586254598159359295626789922636884498847652566486847415397449137366141795841478962592921654556272784753226263159218399355718216383747968575879699518443892713349494198946423371122865133394427356655438979286287362765184425149694137833741358974141547967451229623395568583471784746432157178139347893642978845218731935742444477157311496279789462554927152477173712731357215151395676371517124384457471282696615262798849552979314149258317877283362246279375296489494225882519746858466373782321269571948179142636463999267389384249134931735977514612528346265478481863845332172342594327823369197974267679776911259489162387376873287835712493497245141268785362589353822951279783396392179596753687768943951838157677774633288356922715991872777434191453762485177146535512669392699625881927435138581131297136275136514596338732578572692293819323864312745517555493642661942862958468532982636975239386479546641466118397369956368395822865329356857676212186622341823988519434128775295493953187157345986928229976594934218516111734312793615511159542853593213274595673834364467311585644743149498845137553788419446899372576414378781425684524357836644899339757625657215455779552215483425389141496196441927852962499741268162119699243334919195135987114898817877781924493282693192782162842638397497727945195483652756731984723552213716315643998963646734194238349529139594883679933495784197921862765614182357231468836246737712888459757771483528391914476146323247912677726967786776213726348543232289951446224781391551274926139247132264775243271326343624326239742858325638955176599851272784758842664137821317966841847925489264328621311332936519583285622538859612733855856585444642113355131981253327713351884247347562974952966287867172168462186732827113298797482989984811918571653353662421257444332612792548693837993134948762284355424578437611399592885552669974416762494153172921199454411417748294443757954245334278518548292822255429124436759255915748547638743275166398963888377841584346219526833552337415131814852375886737419554566217611799965282661242962827153773443492298616862785961232747124257577696356833119486519673463787424173617291489438878745961248871267427237276198975758244247834851583296912422219673486889572856894913513634854711948437364557926327567831215575668419136469162783548221232689234974866491416575827638741818712197484833972629989742415585356455184456653794582556695143667292789234788156315551919512768586655467735539258613513343529467912457221563468327667792152878679713425569716437273852956143988758199535515947754948123635813687577431879373937321222374855223859482467394586327338465838339424352487216564985796532814727658974122833578876336978168438294972383475621597931527323955864262271416777717518568279464841255263293779559181835742677952966483692768713722694157214917194632891976737997955251872261969323311496869558242757644749736657878816592446269324986351234787575255814937542474652377398667323748118411154279644762481346967331141779774192944419558662257871763849796116398729674439534322297569439148557429476698551963171726658552417948866435279375562533188943262766642184592428865917226999116382745943392433218588299789788216378762971113323261979947795524142916194114335441437321981442845825524824345778712333431354436917358631954411372414536561893483127979864295222351693248227456666352237647158374342556377112667182394158754671985149775375431139358643417653742145912538972983896651891556729923513644532538797353432376756757987241683625494239452578953617395918956318756167193231934385924315299629485999718912894313613133532484433723772673752163332434766884316586754911264371582635999688919558133422528854792954443491181135847978111885263367682819827729382988889768375599257238219881719997865842658917813535345233313291887351495296875128553955285494572116145654231732575761278716153153567132344317553928946796491686942534568988623715518278616765258311766543495764225931781347762582566119447714224516684698374422567168991762973424171531356588734439238385381522729761775333195437348266584636717672649162362715438334983335714562735621757826367171468681151597558111975766381988124871875824568368366731357445347614681162428245169643666319733473731736876689185148294825786934295268755413312815633194572264473988753293433494855155491695132321285494635865241655983943445556564983345829324277575858191446181479593983915313168543441374873999748946335746943787121257634734698481113586271458159164826287546385375524131164868865246654498126543184487393789565967533962673326524842672838784278932217273494935328465557325633424535242371763285929464295648788231635662628846237274673146824636779235487269782499846149721172658661918614571621413117868975949784874535972133974373969647249918486738225318695922216179683672428992812332192573583299168325446245315437637874223532437357782395725268931517918152394917675784366672564424194818827297854333748215442682971351242842527849123833367325512536549613754448248411646367618751484354429743666496551175746619547862392276532162615623186545488175284411143248298759947489928834243573686891719473476114995787111358525284144882228628118475975199741247642121122983773419916315368272935236237415672913893433849657758261773514962252531663947792465272348488874888931196389958174682615552228516398317835728525964933467588338957888569831773168461786434266951729465447594711545424945361955126862314953423467818293738712214788718193434769349268439191291558328127351626541356187986915959772574298258792726324923513997963119329133893164785186326525112412443245525721988486118669178118241454816367356294785549346156951985465981625234593846869573168167593982943555994177664591797692241538632766255652317655635283317349291267782237457123665984313946845861538752386196343849261553136521664448467965588662677512825476432854689376724588635386577894445619967983555712565194639218542992898586821291347745187117842932219947429538661334742342125317327311152895641773136261352772513234327396751727928533458525675877199838493455945887122964429996795567315549834312193189421329878325945587469788878187928949837658132489115983861678269153934689583619529917272248954848141599347587438328836158833327121169983541264185878482265475176172161323439637214932147684172788775896938881591973187835233299167546137816864852169833245463368121523314879355469332555971197899851279556471897739974459569238923128863599579242128453398321122214199438386311412237466278378489698522459168998121666373199837786538672468257858814439738699477921667793528293983225287956973764721489731558747968576279766142493442315259124718466973949442672995135541442692546133416259417586988531465524666378598223153712498131276637984629468269565744762575692254842293938844781243419566114238623721923796164268498354755267937299299469176472111836291617398816725751657175285367876837556336997462437234551176754346989512182827169673926923687999498337446527314161352754911781739542275726436831856131331418569414631181634115271763795745581522873772824124639696865337785736893179241553715764341763541913582898713766846312745612855844983271832197681211364733827282689896879178735656663935215934982861547335997461127211521123499685628342731565567368221231559418869692654691256872583515451481156914269528433999157487831868874463778519353541356994677763549775932773796931966544811466699565157234393975161614974919578424928631869165562521818198955796177839816722367399489188874242759532422173198827755553439643826758798986285977632286327382552127896673382778431548969787822923591158376443285328224182754845184188825459576118718216371664953461142676533923792513141295589725827874525716875125337245674454826514945415982573995618166411883542736265664711999551365715783926198615261429528464388857325517196866272193154979217972793143743328834844147425445133292495669881562945348971524917225255719587644737351158298588199624985943797969674687387235943894392774953548585753571184578857176244637881529993241358695479277699143711763662975191761396294862866936192357445834818738348624799392899915648122393274198851228147216216679561599826214988881793494913561496455325845234923881121311655785228641214726197275386327371738358292211572162878296826442425249948158295499577396767391532945847643462781738456922552694787151814149297369285676831989257963943346365982899356838827832536729944569158237152634526198241812795141944756451513954553475445514118912386821971265529756298649139829156538615631162936445317211183977639371832737931563994714612798451378351433125161459718979157872819524666867263217167954768546715567913498114334939625999752213768459687397629112864264227348594337286814575464651865375999748961778347685129473469875464237933999732481882727163849485798481771553789667839544737655234962139174242117889634995661163468651557762971548519898254259485241385862958193852821645951998412329815998618973154918594473213445325614573451554953792139348473794354619835771165334546351297476781149913489486818262777895522999183184222141631435613271623722729917438532594436886184256327488388922764892244723331635156885513494469739853214436498813471832261595458242552885424194431422436575891623757835376675917948181627115167232815431998478962869821421926647737259348975872157937969951524285891724521196291873679555616813483464626615333311676512162542879996466827341671537277473437594584938611335371334851678719458797198957971317421715763422467145733527315344975145511653778481854284915338625129669624792538613821311833694295151913381434284475416479647956451541678791129445876413366862595539595365466299777318534228268611569996531148925646498719525285231229652656457812449299942558971172837982535115348266169294181978261758881492815529134143541538333317186225286737649934276328142352969671998552214187314836738864859797685539549948668152534498773742311752796679436332373712488742861835194662584126243494441214399473872126175575989318653663981917294295712357745665529675873864563882362375948494946883379655911288213339633572955533769524924922832155926263348681847798188479552757147652976734718386184822776832534199386848219837435816973565697916834417318291843313889144583383765214835644626846125128367685862272565927379964564166883551926243388689417393549945524777768362589457388817251144485752327253411336154833548532979544576271521642146428662414499344789317457491594134899929469493652581135854894216595596522359615754765341638939579927569684545119476899752634582373128877331639566244119172529657948735357321265779169965117161744427941762667223939835335932896336829984149852145916447931928532124922425489583874417199999842844244264693531717947646535417582894211561812873566339763392951128539585565742988599476686889881734672127589667416353921598475547794895543388139554745783411944723192634863654699862349679674945353316682846395172214161928421734153521695224722842258351971943438589648259522685718543431433756514466261123179541484736677842481726423534649683631993458231378349862123375233495484627439556369256346564976314741193845779316229733388676196379489653121949559413631488988525563426627512445476639577365116552683343993937554116953677177722889993382584239438914262868539697596824962373214195311486237287836418714839141549869817438237929549319582585538425395847751441384295154392745575994577252275293622226435598955445782496593122362464915554347871248376836136242388578123456232255183764265889916863565718321545143298524992882457613973894957349568498798875921671867156432954819638518385775732727411944938418371122848316778848679772964715522533617437195878735582777147588631781433142428279638794418146899978911293445252215974413117786573362382625939258636955365824471697825876479283144639144626853821582969596324537888783234728919957233182614956633511714176865658472689739134586836886374759225153219173974432894582199463475871999997284525795143152187335712711611218551919414628727449821181149159914994934376157889661668572477366656958375879557413569325553288734427143631464115359281635843624946641993839339664682644936398682345234417441396645899191719577691223564286224878357157238164734744188316727294128834435242615877275995667385677359682215455733459848485113551284143252677149374366184574838746249453511223151365964312683456961895245256541476972392349584271268672286731677263382416464782797553652223279895223343889256314868124235442421731145423237758244144457881922984187428632416138422846514515693882632595526137868932673813462551623852314816581374431612837982844138258548186193435485468147331633458291988698829467813727449592636544643482263988678948562492564128571718814113979653599738875376122182862262447312551423191627128326491516659389434565874736436258787738383211143388764135768473131714522742635853628831485112425484636798851345597388426737968396668237813936485913835417193821376288767159686276458889587669796394171775633241775654491257926545852728361574451895234348849484867948765792946926438653445473858652417776979651184958192539714558789365852796795188877129998343199925499557226524391983771593793784124968679329648637815854223481881186953764727589379654965112181997671847219757774638824324522411266241841825582934725155496546542165158938577661122526155597241357652353281856856988683943757862526541869854437125863255339195246791776659992693178384826715228796663338216375563399681142563332997218929546183222278273228451549259941984483693718615837673626431324312659728988849422167338861883214368239937611542548269146123234558362353913845998724617118422776591615895179668439788498331497856817385783648481348188811838513183611288342279283181761653593781941858771887695983168922371448432496263241819498583485511444285325931254234153811139579523931462744858251556736849777737811935118482296352925597575136827791392148258872963412148659232911829823737515611841944798721719782663845685145127112571341311278445528186578879681637641772889612164851397175133184757833992751956231249856358566832594783857842453477453986722494443822197789825162886983655674127398388855837333412999243619892529448113595228458547351611699651673474623134868612346296255129176413764977353913927646252653568288355741366555857411125289444243176449465119584235236544577881177621666156195516919462798486474245199694313653333168337164712914324372692955178474196813262253673899158343841577886456662885133322326949313259846571136214617838951654474689562118291821271854658694939478324533343323449424778536728755477621944275498328695437118874411172165471819541499832532418748755851386366329359231484514377142526543168789624435563813249853814448644413363596953234547422711144817247363623217429773494554558838642366637858581546775121455247881916678453191945592113958552249349996721939923363462665421434357336817899871917354499939963386119689477345446159499372277415115163898633265661699526634373773269459311426982941882544761136443377197239627821788842217219843959669362223794762545655365248434388124235414779823388694226948277978381722287159377246447931747444262243251956883586139711785427634847161266745183585456514845517881496592164462719243773156516285233773879125385198365561219728239496673585912412237683683564276215663929318548652319557794121621287368297931885916851629822874881697416119286676251212283379667616437846654322836956964389245815437191766177368743248566571959492291266773488352575331967861799818824481718533679292288764832612583831892544711618726482663833972354233386646517368816862254541655967294848588225994581684937981467186569328129518955924316994931738375295916856542133453842244396934543832416959152386479693823514856139269764668786333272362422896598314269635484916314441581659218938455316744144664987935891811613347767331643998387169559539489713488112165353262977822754592563791691796239556533213378627764143192162774618261471617468945348647854819351167114264889784216961654834859955565979348215426912966348624518955431345955596186372895656895789223246631289787314483857435814715928582699557377515789322812272663422571434142693159181261387453784831763266334449438434562286464736812928549982724567813111657939599791444432593957638839974565425473327658798883645337225469911437768323272969224755466713792734581311528624535799335914174345784614645416758227149538825249617957322842315237729662454967827612233497538939691667791185877526748978621412362316875973569112785672443473598627115693838849926473616744982734543913285968741387637291587761115494512917872819451171129884884323664864551629465572574442731242518884238289235672728952234137387955377175988445416392314526234929455153642374725444554715337619444947291327699232566846368928862155764785555456413186612414288382758236679915644842492532748666741443119991354737766818982738492446645624558811587177865147866999462814268948186682477761446935851141457249957416643418442943428422556261255895458588412515846777722438442921445394934273556213885927751741875385687994257768145426182165242669128697122686589932549544957113113873564533262254296949444945244421756117423437756449373776289421586996628851634157184251857799637236778663516829627143927686659361838683834426377171362939583418592359642974491117134236174425253377231426656656468781387627133351162193757313847616633485286421427626891521794554927355664395436988556516586822223847393622943642487837574155277351979231224576795386833247655379366177199456915433916229984311337744543477966498788319397637649212554781486136884724633394957777922381339831419781144362756423114333354247267945147473537279378691935339945649943679822528355115286719514158842198979122935446844415454748522621496417481924598747262535276436375916654745985657373426733456883473938392778144869191773198675822194822989782166976932231888368477758845724919616189212279995742416291761252992619529636626189229738614718718867718561112719522494354624484269939785786856887836251493841156948816374758337199623643836821424394922386127727577832113795836365746764264926573366467636118524987553868359716122567119619462859594779494374965929639599535619559726655182468869721669612162116886552958984759621687637743833321955949746291163929673336418741725128192511696797754977527371443844642693752322196483934662795879133391465677676214497763822398291339375723578188437114375414314336253624761678411119437867277618223475642517447456389975683332143479834984627343879766224347551787779968419134211276787111755832588574314116527534112712777258386134544755397941459429686311139742985451881584418351318938932896984428497444774518548331122291888129968592868329162894815924992893788527614435331418787278577656824666325668189129887695452215786142574139737738616356691719377872128422394966726441999869887563665596624919581914994988866513878327777258185175575763648389556377954767476884422797141879724241935291947525956134728815766189162572564225618212682453937425311568524835385216264499581332753798539722331749355684543564638996739519633696522189433678931728472233295455996993845192885855783895215649938527891399487772349529139583475236816935864541754795597545763275865367843186161529978622287415772397971289695737614575673413978198785883651124775231588729996715573952226327685196244125814585932336457977645144757147527965367479925612375778142636476162588326326666873349142395722437574396716372958273186295567698345764234862846753849459816664488854177552646111485339229665194768276829964573412834735581989465363744731967316488751299396131647811382378999637492411229723886566584611599352971111132193271726454714753677764765676765983953678158424671247623989555953247495288939276291841147882376589229528419327835819893579697244155816535566248618577724664387673152614159652522468139495813569774724228184335451253192672818774145466364686131136435581672438743188715953665668291649796839693811779165311866586649518982952222188984425592149693533432415517614412753382386245487729859411961491564873111524962633417446332361317785884845231372523255878113144693181474885813155379847537839299498435613293488794678222814812742463834133359139487199178548612757939322547548566275982725676741432363527151896413892962519173916242572277156786965151392198488991948244858315912396415425243932135749213844424444175625939232434817618981323767165425817729841221882589611876672913582264148259337375245222888978126332625438352968373794772657468981143475398584412571856812636434427564993751271328293883836367699346646911827938857124316832582525278768759443226728248729878828436192866791911572386157934715637347323982971138366761452732285897528717795896612276121383491888531491169547297214824832161248891839846689398129399771987992771763737295224925744622791589656621894513924315788249227255119662749289471711278983794519919975938856773843959847125565356242635428985368554436147473998522565915784319165497981737126857193483862282187535223294995579268497674781788431852161451997813652418666744577651856991889569724853618272538283167746733679541826166983135833148792464721574544151637949522624494529981937371675738422363423753113991983618665228959174215579671878956116972594288176596943811886772272869997225912559154333411967984259258868369414498621851846544859763549464294624376361334886262237571496725966394828741127733745582511173578197368132934796969417547544779578395187271448135964627261647684413891527551354631991727769528857937978623757111198169635677452145642593667467466362235682316411774813278725549976277534755386342533849511954841357119475992416569733783677152186785632229241896668736183797785364835936951939585268767926785329592185669751699114889581949361318416762636684475752718683628538378845997554882267436395456198925797187732221336168678212621412872671244264286782559269321361447684698823322881125831762777721478627497639816797271255313184129971611472343822638642273371672568529656871151113967274499446582443297773678788164661999834583615825492768525331686676668896156637976242983415463139675564969512398812999339676967835361656596635515583496362857639255129779231671138368894878631636947914826873875691379766527661265854225892178537564329769525621994325785982744479711686547988977398866255327655535583236834529348125639151815258715918479731764665927932892426186676324287362616118681879812519167687916631681381249226295345341818598141218346359261779114527697346149169974418324271289441188822326332218558379587515558566437568181292945773631371724559972636434544638294365382353797595667219542815614839367583652319755475338518959343378126272211276713235976861694822622228348355835137535111169441591623536352733236988488484326365435568283356568256984722954671113658477681247142531982276423533687423971184787839827935567898966687884982259832723415951621415974643939244937197447822764895391554856651143652484166232512921875349914828183212516138268358346861651141748959199691417132965531595597661465264123252755841384333781436563877288583757232259572649682237314131878243945959997151919922753956143845129625693397377378344648141325726677136344172899632875787619171638341765263332183371738497384457261236642853862287141789517832647559914988354461264231181864928773674861686931146459457534926672937223272774766391345998378846839549857923289828852441268142634577453144363345228362377171242588224437763987388214341938941289189423997374812732145137939138836857155673163235448842533536218684478845141354787661613945555323541324738763231776645949485816161183454229432399962455483863469376612923855974759983411696923748499491764251534323554622193377216954811325257678933373473619319993483395829587379596833983924813231461833781317265738936217587789734897965195619273864574222881653132737226686594788235546725779973144756313953221932476146413391694969489774896988224638268497557842761548937415217669385125869542798751632263773439266767152985164737881116363615421986692879384566335244861219651748397374292657279693878889843896626343752716523562658535429687249762927196648884949883313261874749831521275863356234364579557829713854862457562185511846792464434618984127764962312385964199441682478679456831861999485774616774711678513975951149177545795352732878627814319422328952422857138296958538958889911815947123724533217869654532423483976677748982292978834176396545732378942849968145918225644397759886579653547341832543916325199867414378512245327361561173571556286622452576197833878875922867475925251398917578856633214399846337742762641288173534835154146669332417552671377528992396798354276217962117135676475694253976473894588688482738375724937225842132579337154227145596798511984196233155851362865494863713681999512826481317492821297467626625575646275294843923943669321882337872598818272573865122843831852649778659377513688289364546522784751416342983251959875228761848193243757954258342239642417381199312577261575399511364495123921942998614751179919945464775967142249989365462361255781256643346458347263698723847315319963196631544369538398682392723618917579534851693423379398469639419257198373332553669598344296135931639465687722888838561979472965836852329981268942796773619716288754885762788662731317678547155831127684752527681612377112726399311158424564323373498298279798527513354599921147377286993872633473597846837932658366845232384411761454936617673588273785813253329354646197863122728977457672993827262761546647718615341996285366172157181644324185517496193539126239927982323619969698316559451863844533653713718668388923857833117459693774134999626518783566756481231517811299961511378514178796728669449457253392328968376245797563497232955274496283928523192647877599684291538946148989288341938677426735777662374963871694786453284756232878884379566525884438535991513789567884729361857278932521471638474142514539413221912153189242977382532874823925125329637549637466518676857259659261123767721555195853437252916833934219861725314788931636727318582812677658178546338371843463311481547213919742364282356593722851893513783556782119235774846121188338597742411511523989373873861694442925245295246434259446613671994195518917439952466399951116195593842733375368495134818818417856129383519836775266556237967732233252391384751166719232827591613827856964328335885717989538488769453948461283661121818752591366391494329337583475465339479395824863374296944272626948975815386672889297782288239734621191628185274183769778581563715724765573189377543518367312672944419855953889524764589218365559799664168445287553891711636172949895299934542285565435487184176956465356691728354797235833239833358784444424249418122594717688923781224445847787698747198755547724735978453132789543352117651223574961895197175929244345999991147543523912728219124436724724627361512613763584584727489859212837978137214561898269898764683766543245866311381216185952219574118332727338367376874469588435636458529342176793481727564496869593255178276854173254799238713542866363271654152366535546296451545261467332736852394736446971834439476198261844973356879466459883718327144117494627285139664542712533246436265535334736782246216448662114621163685857516629239664519528879875923517358819723677128878755632124364188958821187878555419862864299597382264261957792233198284594544172387684777445558757574924367574682359516348883567114515829675934158918423291445156495887754346731531452571514119658227891324887839864911951452216938717728196768544834938953273764534185884459293585977662877144576983462615525673269725911614151639956125557925329192482551945998883374828518921931168113196686473798981739622613698419619268614864752624575635984824865671331726971232478941328719276634666527124235372155286956854596752414915318845949457141536866431569761392164557483175237893336372347266362716544641163843165681894521155115759114228382688946925367361761236146457376535228729345961936959553177785237648418332717799384347545313635478229942113872711134787197458886796681799867137131497197732519178636595581284985934634396446444295754282211498981352671214736945519828938967745669826736118692132813714498263629592164664323425596766285991252211216552983123673238847337352453472927115316673875658471985131256458148478924112566483481773797421125852654963119648765842111743753238473667968832697271371344518831677834621312462168186219669433488161423443588684482992757789828724845178326184422491676333214885259656577175496545692133434721146991547353783236785797129592595184137752919232891379172129268566858622613536794732628719625469155895156397867338491261133478463842345775552274112927919255982166189667122228527618398314892997515561161373924764594324583671431867873989281647995316664832954929517785693657246666222614887279238796356591224678291351738546347226831481491647567592563496831542135162191155811459594733315358461866165171551586435787928543388374979576611768299768559394521347644679241296824879624643874918562819722721312789649993371661315585466528557626479468785749679217542284839691137973731293269161824131514462364951234243558464435737888214349635757152395131463836694414737699274868888481426618367698972641547823711549571131866616493555618391461514461454438988538672223942977937362497639428362138331424512293729857529451386378192133473473745628371315232868666768896243417858775695916182847414383816145611567836326824188837146326839489436927648238626498293734315333265765417239982639449612931443669124554367255216248198282226571572737252767277792592418539986133295818974682451591542375273765984464352729945984936154569736225661186157131428721414669632143599586191794735515546912854167316265663733195446989679765951689386651923222665253111965361327345799891191266671971976592523246616584584699266354349788941244813352798158963677892861753767947362342236832289878954939286889626738852434543529324616534113863436219242695836757126559959145367787712861344898598254949742378847616782725194843758241925231115665334494794277451265365677777133545874243451985191525972538241585962375511698197147524767481539925952511551259952513969617649632135274229244928168464323977839822449741554945752587718195777669892866821295659797377176553229198274754853228987714311855176875692966432643441192522697194671148234866929253262294453152419313134591182996311431764169188918121561568668288321396681598288181245182947665486495864993721528522929113768296735329719871821663754764939848321742692577568424698954445329239294363419245986444248572182995815139469372761393717553651849329732658585751679941584759733755627773519874831824763236118374635281442328691672937149749565827336379481239385478183156991462185612558562381728535639118245454813858714821893634295116829354635819669851938182581979552485738227274958941858895883838876449262878264957932719396679466191915192818213895865774432356756746244435144313698265697622297661284625118439697414863534643218226577177919778519886138481692513159757437314244221724461539669873837461289694896968293355111887269914812662141546266571971158664543924189173227632387264258925359641948845157721847664978879294158942825339991974638926783613117711882313313399662553121372582253231362682899765719911138275389593528685754729289289282898426465516364738188117915823911732367717434616314214994375664636852522345694134545734162517879453594728277579914486871822498232582853668425326653221292231953181275441262782246567576588583781697141156324548183729367115383343145959589823621882718418746169254659496478739618878518472866771234973619471431117867683669246359646896742765765449197454367782744224777853317642641365682369424835292776996751714739287422353535944211618264334596424145361513996396466272594734374767283133421941575182241513849216824136367359497915238268452362843245761395334914425132865881974287644772294595726328494982978485259416616954425947776964251888493322973576897482157643157135974285373628218836931685889693988397834175975767341418787735922841433838326892526555333885387562594776598266317962473762289845873249798514245731958134341214681815775535948419495217429439788868345787289921858357998822799575318776483484358183761543623561991767295523848645912165326563452516234676868523913199629365599549153499975736116326177193633576569619686158759479876675837175722681538144719645533179553259629777611524984847389596541656526573243295583866684442985941582938243541899175623966244748876979793936125832282577991454231616684777468752869116695631932993541917653527583573142514596785939911664914653881194344592269752552618998353532641955213428373437677356182335487472792132758181748553161174412249317429594492365199395393743856776427365684829328347766939215772312937496786617331997599599866986269718376936658758416356331827434394221624279933663297718681422852253324521313669877448297149313437748199929375253986795418248572244943735752265353813354167914938422785141256681962395592382674424582886982458445453912139287528855942531566499744934236945785471865916153682565957359953422847922323937285331734359244574558239461643441863834359264511955767693656879856237652568718693168828172669554156711856617576882662469625569864433527188635393358585446972757199442148999329543481734322496195148241929941794932194425554264666369351335313695615145599895159676511524944294764158696675189947596448823131596791551117595588146789651764793473427337977415218785639795175412533365861482993679232191517937181496872919198265277376326118716755333423323238545262884484345828441572792814758273361617831313135973142232587395439489261382484981174285344954496334241257385663768176511885234756169174792258424212851839241625129926395511342762846828743784295186725265288253435917779957376784445859277193235715482376193571814288215914126586825152642988868386197586987535127511674752547455154611388941442182258423575219614864883775628826831672828348287574963129689452935981163785694451746857895731923311417584134468531126794277257377418965468694547538196413127855674379795564817458258788989664911438318744123767672349237183483526345118419675332465367866194345878288928876418644168745345669146844634522161825119984427883795279643885991962472369692378547164917286674661787923872997742446726444991456335916283362145168749363562586127518135252465872634651895844544284876491535912964428397871124531828447499871977397137794716958149964612589576196898557828423236123472529466165554389961713915416642784729325769197184154335675239496668589156965663167491857469289855593598174549736374358974883867326665462715678114538225514789311876312463729639962784334782523698237454636478473532953321363523444269422959785938123334461522744249981275934536337551885736999314393498892235757382378852439359688818686788353882918782714749796476233712527814895662843216164511224384545115594948122332827378379617959459898172983115296913649581264218177785873273592272344392218528425183579777935133156475595446277675921898579972286714163596224771353331178964972643948298818175191323331926323476769569349246655677999881521766432368292916569126795682634719331456265354819711271648891269982927543967437397325379168174962154797992625345176694499296682787956545797331638286525334982149744397776487441158789322691794677996553189823936795626786756192789335544535627387837315969468636569914346717534115846322257991556447761239762273755266272962115648214227193319563889596682672235155466166386233429369926174197581135621248752982817698385794353245796611574562643391138687112335784354281646799938841718499522989394722775454336129278917858856776937114547851461367267732625283785485847623557583287861122539717335727468523361577364364417376989441987737154191825151591226725749736318913392363867715726387759623143932161386562233793332996847141334549457193224483694783366969982435371969171418668135361756745877393389286226972675199165738216835152859471967125534539893712384678754691586397649182961132258515371639686295868666842835959799336288146656232896579662157926948566469934537526164128233825497153688589823564269461372543873677836673564711216151177321618865647294448729621225222943993778232831264135996997429592891168879952958369858448178838197294889874169784768591397289989787976852247926482232261768766524222896919691338432537513368819331419998968981722975525842623546576475259957938116656139281434972427833826618418863466374216694635317588138868744971517928576828358896698584447834783475121693537316875612856528986334645614846565142493677228917529882242625161655794151863552294172285346752817376582667712922438547969544623441998143723915137882477311772915194888168358752538565286263352749128724559333465212621235369334334195459271517137288182516538752251684512541244851658698332117112159599554656941994754587676386492242286442135124588735483912641664872416419899237811438629872748225444984863776446488349127391192435824299465919537361262891789933593712647146179795811989968841989251414127714783263351246821817832862263834292498623736326397878154379542969119861133653363859664981834829839715717962387463327615687168841719379865983718849619156753537517424499897158832782586251493943774923983797561638676371319514861262559727364326183619631571856861916876693924532782744782676152232717467658991168232591656251364334161615495411323361326831856188574545984333244569691173167674522755233564777134973989285831362547851195563274662758766348375418193913458765111385151674492832732922166932443451855891249322485566673254397531495975198919156593158364683335464961459249153693896723189312738224258163967216495967255284457268573468554174613299814322656261127444187494854264945466421946937652968617982498782126658641334989965825623852519629385947159457354735275451592453479763478313127398716341389324651427764584795315174697625546881832597945394724122579242684253246395987496777279226239286611815434712452127725645358166636716248598633743495869374178641111723473335498737393139337272282244489692141813533735766564583796944894117187321582968694852112695984484181812761956794178388348846275573454631624284682418242925632168414876736245493634447547999295935312773487836178412955754654146666643981663179999194577832236682355433497715684583831692714263386738167836284522814753923339467148845516124566645811192425361864757288799145798288287328735711185883652566934742551271143514521999253398891364419436439779132229934364242267597438862848741752744268472687346878755738592566639945772841653148893475133279732614272264219422212438731148929171578694914845945177951955745642689448738212795213987972446999957989662473552162359146279758653332397435678785719613229284948262371122579346726676897795198813941842978891472928697267565246539512519388425616465171726249882622872698439891335832893327385457633782525494436919288519237563124483634273595295913744656492614931282518758357846211565995254457465515388193686386433822326651375825243153419847579751882446464846359463683477224188166298724197523468715152673971775485256555396533293787855241218746251715125778896165849352372245748798219777466152546461597611264933654629455851114549688348344736991362397772772224172896521984474499528285352364751949591579825165916714339555731823852899779375665235568493775756121319166173549953497136393776368278284872925918147749369435151868675943145635438191117849444429176661964416849657767441275595412177953494177933517332357796237334138278565257417239264923546277569486233647386998794175338746592439933187624393162369872756284325318597267676883117995169677818438378884631228418197513359949772588376538549379168718943835613751578129874891797577361543193366324125191471458996621673873998639829219346371259611658835134876757678512237333283258931532819474242992113826135358942184255191415583684965567971774762177576626964323518153741896272278925466962373633337691668175293183529925242394636384339147657855296197592639982419731735589154562161719862759889751834261176312517587452536514488551767763394343181625878428756591566243562795183144621352216665621234379548846159419435545191452554781625498992833865298797741876354326655545726813322181654631344675248683145624755853917379383541953819114565849424614329248582485666575719394324674996919757885341887368396528874363954828586919198715534275861397571842591292199969412719285313951145183292211196836196914344629622139349549447939539919443814665867881733666458391272126386542137795667923647465483683392755947616162754997644282548767822316866461636835588896849714476696172618661242689468952822358828425575231245393348133214429219942487919922451564375596828747621768448331464521847485966749481456298921967317381928514176995941558341436966695686436743343736871794637333782249772345678751327477748562638752618843398174114742415341314178148922231137347719849453573878572362575568382842734659895172828154291646464448511966745342423217626679315758588575948472513724375842762225963711294931171442769242216338734194923316422455521424545267939337528858489515966117541966649462223918846787282782435421185131332522395763371548672223231632644885994471697651518619831773845214794239289854894645426584667278546869767752931384735363638345989664641314497425797223386119618564827947377818478981328828788525816599317996834631552233989842322861782472154417452574773756876963139267362692337484751915592986299115831991122751224225564753362272645735646812723234679945269277431894257847828221587479886713545524838513283185143679657236371831294154271579873139994697235116226529836873859952941391923423944484466943327223416435336667759197433926347967197621143618373271813114637313912773786846753879869259512222413579746429975262146952892913243381253784672187271875944143345564587865222229846824317711835472628484915116999671811571553999961898278679267125216244398577473452368126832633242756975713548684799591183245448623121599634582961729816131564315526465427875951932913514559871331877318885371463543793147924945123642329857882936395498288571173236468432919293731269878725722144569383583493664671567228699783249158396535789246173794542521734628447991468371977146591631693955788477494231227931569621671865344181821242253754891742899785319616688591726981468433513379899759318158118616642564615842721685615419321171734971441714776744395735756762835222144224582165483866231796868379473784132337766131653712298135862241442564331732777147266868444447472637948921287872597182815358986148733533542218347844934468367861723965317327131725118453378964824211631341944125526362577473654165126251344645196722768594768154566269283546955515681421785599956462469522116556914135194543537963288939249694283585984337568264462265169937355593982313948755181315712615338877165285489244652662243492724691296715132956311466671719861329349898492586996933678658445555378367986123622215362227969414841656343855116236663874468399682646359534934556112387633541319572187939422765376414165419441287375977818875492832347767712729346832513289718791824699378449274746975192863633624963881523538893379878964317568854132173335214331318293524259935347455777287529549258599824817342975442149792635559399279451273269693817776738284913811855851177137397165538346645826791265373965784579832755218799277284611896365593485559961738645353723692317666895248135197951486656815926582261683485885579527162742234772797645973562898759546599722189258812498653723596441881852959954744764628989229752839914918883146522883569582366449329718487781233429566514639263994864792461474694659291553468568844213348374544988898742977823596816139866329796476249345126375755467343863623369874796298724298634257532783128994263873544953795129763941232921326612865249418821785868881971193563747351272853921416284282271436698313429415597626244652778719369199421451719462974428484255169879811835896632627959888292618595475446926578649334313113262111558892573139883825344445652853886676633835713974497831395469558295766948418615934527535972836655112615456225698958612198379734245385731241699484244342968931454773345268217156561783988872916273497812723426962839237194274799138618779811496589591291527786788448395185225873612722862431987739549957568834195376342484473145989974528412812329943181437639127914365284464485379568599252253743268576913341766722561575679953269926515738695275422469826712117999459922782298639855636316316996831722989997869744297817447946529681678577253127436217841533275923179827632933575175668612937339537518161244399897463233326947898548344358687566293414734328897641564889647383912142414834714467413792556284474567617998469895526795759367693849611299145914446814388214863156997115819398622113549441637842531132512349282392554578532214366357318541459679734271933144568984724557692548411628611924269157338683332465316466127118414328131798121256776292813512343673565545346351817516587737851226463915339753833474113685369271895185627582763199491657164982971478939677753942871835631128115152844791355558634627169161862466539899834379131583278173258384946836618144846884191898214142425996556359633321619688598782714312847452424644694463291168248568642377518862211546766762575329973298849624625778354729866397294494377138489857662943928646355674112713541434171274455219833381799761194935443468793323195333391376365568993238997227526848168195711266165267966677329983798517978984589916792358178867146887574362621611171295982877669247893229479339445354742828474388966377215147971495778849685123719435145548335365732526484985255987589943765382655797345622947335164966232741895375987349533365652947559723792227526349382597962255711662832944694137156195891816476333515598868271865474843922559172232671357273148584967259494282494641676382495254548354182519648983949467596119453277574635587476569415255765699817455816365982547488893368728689334625349737782518287413373932855217641594361311228958175467542152725665181911922816613148793898168524922923914284745948718897693445735826116423777261931719478512974465955586863589562543469229316641246684261527464596742553473946941519915866581731394458685979573632413888436498427762521118965217356635468897748514655756532843577229655345928757122586129113349941815338818584386433935835158853833464335283591133424897382176367594826324573464796184713819436275455176332568937435894175917424848435966213985727296693983633917731226845133694313852149312582354376769372531841136331259397422849416333475558561183997737569642683396443987733831921793448212469688123319972345346314547457584432244373369583816446899533361693717943269196486911588349666625885678884694322913841774638271667225993452874863247195556374339941439774842136439249675281623516538495768871323326173592542792355273649427447769277415559639763171324365998664571111556518364569592726216961398318452892628964813984584188298837652731982788168356685992691474138291389457253977536824984122423133252186792198641223521832853266471578258247911122363245439636173921825539138139255479992764351552433775678489494841721895221255287464821569597979942919521525933669952196845632615616556687171336239249823375536896451198785718331334215432874452986976754214936158459882967312599297662971474978712671766486636534299377323619589646692349883335743661282553499353912126193225678834853198237263452654153365812684978387199815949214597733214373769587196966469368618482611836993842659145771696557485435527216499453456823873536164616947668286921255736914156752112716451178669674146746951616727886312318164131535187782742313181621851666958191498266339458756717681755341139978884315141915575243397721834721598728333323769383692373346616666437369481756664724849263724388831546484548194476769676947275157299738161879316871737411936531241213819896726393374195997649743753924812473992238627926688553717919398525715837688371837672843643562312863356813739712468552814159178355679159322271317163232646433358894798529746767573685738471795464843685558235761929482218177614887145699492877857796916713554842555914933929695474854425761144288678952252119546821263638531838675461474565518189295457118272948474419856396194913447146944938875116181699299589832536229612487986584543552311383435955716944622369514858189117241634213796257263223597395284718761171359954671881131759357737493599534518764652753728743314944293135476142516682963726946349647851377982931689784964558171145738856644646794563847391918911474368712965643187262881979761897223982988441639435623618675654365453649482444477738888746281516941295132366783465253926434473177286577714263498813184636873278876434194511759539738189666883761392712152126169832529586164339268428424635229993145193588821736567498759161159353743992662734289829783688693528872161136289597488356695364695372577479188937775589249664934352597235133736482941944791282516645356769931479662656835842982646972646448575432576168442631774471424967714245392887631783651987128415175388727996658616971978669499886325186785349191697684541578467188586264787687646314657695431138887493861528272712177826358351138868943985791861177748363997119876579857326412418972898197686653118984616336456254323212778334534332681114658363694815872794146378527537782617865236713882275711543395874133617221782958154534588897383585754565432537323664122882429667141577921252884949331419441315928166766772949232255185939949549346791476559462675183575458382215785711466393459957283638546666134595539959274168786948882337931378721625433748516199877999693529481542974356996595462162111362299243331545244892338543634658768682894958471741962715867312178836926319146129115275651372578451942462465976875492956973938764756892927425891431524111314179344922124745234367218519638146878361562945357763583333286189566483438522956523771193311817754483625566651213488478598688353681752287753762118936684442267324399418272348357239798132247868387136834157782494363274397973892413985379948177414629148625995934332758743449179331223185564967388554327551457489491698155541168813234878813541379339234576573463665142823166282125127374921255412716987193591612114749932146576757335933283353454726728722278742464847165488633985556327343215351725431858729198443955687898423384825899661569413598966635467695176555592558487637432185521281577132561615343116637835477475423924171129654853425198634361783884299291955439661268822346395573882791785327374281161284724251438597576998715123139246517712855694442949711313515318958729894353687679641651811341236897766191448996959915985918921698365873997896371272668149741789415982261949567573648442415473323712827892647395547382422848279439411181154873326945975159855788628626639116227721217623597965826676239229741511521372429125586953665576359299241267398299738432688125639548562577297925888611867568932986721768587168546497473128811987558535263978732352978288968167792544959346928243231958744649398452846779461263475471254617536361344811746752989526431789422838852342496961168821453421352545329443673168264145189321345578819734182296912415814734758396285157556555255475955228693323829424167613126554948559218449521443757518619354647472483226167191275814674598962698736946543143158549996355939188851444188281496339138643135843718742249868997411412266469942213877179964744584424639265958267454142946419657988441257742567292584678217262859773797552697315353711431247332198367923172782227597549553275274191792197256368916751694811437736795894698135924588537928859532281669938741222579312193877729828874656538531576416615773543325193567121854711351991577721142551797587572743666666622383286441519158784957213868329457676318347242829294724181913757594934757562652662942331421584334526871526671735829152973132544995572423971933514427515716751148485526813816156376136587962155893454935215618336737466161266644879262672132955437264661775339615522687771865397913367235747597159216874969488189315137592252866776454749577475295617446459545191635998845672181449164598452841813393175523631763669928753837827146243795957913269151835298889583116474868658865661642252939877177624999754629185948254345223831581889744115993396212435937118145923897297777916515647129721414916294823579269629273774736677967676967214929979886163435883577335719529711697675261513981247859339271142192858465414693716482414329333542636452782251421949988311234477538153221435456551347267379617358153375316852385328144661521235931257677252479992714169121123615529285891947837986392292314564916733313315988676215424544879179642863183681347956478721198114167244452611644329856627737636933745179249393524498961734376979143649563382542862656729157644556699655863825191266737732385639288142528819319324896568687148857761813783714535915641498992866541622889249482871334363162148681641738632561647669195491513252325387159395349916815343282517628256851678213993573896123363924727383459269468694874485719911282911246252187856344572933823839139943457556231743298382562755647631875531132116315134379555928661648199193293824336754698978645799498498618889222876236934896365214133884662583659373865144668187491668924162237263439833288986735881573969281795148821138836498875932118826986589261273955584369742842524212649566572765212528491564715136289135672746257498247282653255663675932195719358162779944349615863464564134958864922814228188574798153446641525817877389187743192897231694745225892521418982389569162131594915484546476374392337244356486776114557193629948171794137756223733177687947832638617899664176348536393896579632582262136543966818338698245197255262273826122683524373996486181516633815515664715122329958546586248338768315584985216291935584187929884715152359869488571928336927895255651875662599446447359751529935589567132272116658364238279273612466958265376839644967784791951186682496923595358755433792785883451489172321755511842121188665819847745875831481474566465221791674347724316245371626252673632698822694124737154915639776149298981249539893587887241227721629426421363241499267882812563534465197113436465461148128355496842352852174718134248949755195777712896992263165577361226535882663741339445542988713725378766922185217131585673333614231995586795214797845282415675977966414973482741425833963431917593144439567731862245531773754312615937884566542666299266332551711394173318862137636543175239299228624845739832594247334746755676437711273155294417139592956324955626642946345785387135321953237788342525258516945756277362573242975116511362864328845461598822919418969886962484266612651442622453348226713841156617762895957171395916586651764325981179553161271672228784758279658655599815922878989768133849894658918877378455144118719984763126916784319244748948718797173274864521752774138822692562268475651983166133535216376511626343897885981673825345972412473916275863351318589912499539676866474869284124862743972724782267793289986397572746824185444568138446224843599652334532166312114847468743971845968311417837147321156918116279675495525218711532536116826433388727268678458391542143624255474246852628443272126339581896333757232383127434546157995974516861474592713445788283873469718485412661732955513331617733713531961926187272623855815578847189175276774491543727216653436224131446993341485657367832174686988922511734862426143825922389877668719882268399893174655782668324195972187896786983338895861783282578675455122528852522917174383439186521923164947188288875313535343894985282575383199877387521945233612229267775874851578339323745986197113861356631688311242415913512223388313856914834846887466627727955774169559822396884511161733416884289234926235623963968931261848266179469183543739925728734818624321166154296569351833594964636957863468668314148221369745297673467783558379674484319273672448575343587414362699921736994136983317655286611751741624213625212533286615354339393454764916435677785444859282291425891382724379947572856763873824383212383619693449424989266456865185223383242474315693628153739137548866979116546915256951124126679456942943586165689264375576133166568743991596954861387634346542997861159119694181998761185528626393397396165452452127125665337956275894499844168271872238751345962331661443759656533645411444838952117142316261813167618643924818928612742367338645395257438619599349413538252924454858571442399114144386111292636911667682729621824342741859912483457126177148139344428593473622756457165768569493835573711163237862567934669617971437617612834491646338585454132965624375546885938459398632135231692928453849323267177939133545693884628892723938736328311464824191442222383685457978698725296494438559588746371967736698997536969794651524141136698357946688374234598649934926685499183659566788227971873265713242941214141627429226292517887281384294696658381291611851538245264673832586324323383367311924549896978137668979217533263255498377865776442238149872186491839666342729452563377163272791784649163234268295423127445514572935841154468277619821644984331423896992336153713684647935367418688277299793963222575257683413271177696664959379326731488628845742491846231146977549577339292664894776499393898652598239949295574751479319487352481213186985333616633553492126254263561159572732385638967968572788933126874136263626491185832199782984669963478749369367759948816994359245483355171997572465245734158963491525923922667714226688983878998949532623878548859417294571361164196267444287962892512847964979278785438746442631761754541727644512944717352413468434776757411759943313837167283116383847686551434644936631349649277451918552584948331882925879785321419164312695427396487954721243262177487656187716344849299324439646375929536297711184914824257211726118951668339437726998423123973674579534457289951541471572768126463216631358143196124171236138664984546651465673364662684276942239573227263628945392459776369472338549255417392821956712347274316159964414134115189669783491811414319649142451858714781939911841369334137261156927395486386479495417629326431923642179617234962593264175617798953149999612918256462769129788674886766636827521256322223192858125782343915566672293394593676377845968349694251368588836183629413888613552976812659433942294123391169315592972237169353461663982887717357343545151974211176364442213836551894218295695613237561671953518577897516974534646382258344675422191752348771144662886698956487586669773551543917975634538167815369337672525795592865397113773218141787837317757832451961237447241118781512175757882777788423126236814845852427195272849781973585175458844975664981164931828166662196879267634921926499481286842941617624375675666296134143526629689341567924469188681985246798546569525216543441388487899468212658599119654986115843522457268433271161934322823496648773488221446442434765945274838695833645677221444729213721193851334598855575619961881252151336458787662928568465443356461483127885541742578424847973617654845524967931287918382978137782266727114716824515333429223991196576266547117458981122133222212668374827528264841842954354465621358731473287572556659965411863987759795813659793357244684669848523482762136885229834291566441181328585686264685667876831565463494342791216564119796378314759999313471471936227285712533796785615741868961472179548782861548888362448234271377222189266218996723946768275291823111136536314985279855662979161252353895325714131995451447342457562751272743945144568592235469116271277341544837373122234659549266173885748121748158251515569484889168631443526311125966512349727622485538679399291696236469222773911442298926825883486921832918298142341132623181429922914194913716748832993399332223213612892253735617796816847958277437516631883343112693176751577218859412489614715863179555691312295136263224574861257212561681699191616827255541555155312358318126277857463826861375886811732533249725451632227244713393265317521382627779889694964273398728469487658225193152436754973644589526161983481695738492778142489221836824153111573312489272311123196677162262229439567464694615994461157363473315362997356615195439545161317638153133867327726168193618637381184387663283855351261421173899797236871188463797813844751929998711287286912271851134497489377148155863453561555546885523541343947533767814967392979439664687872514779561855564652474449786474515882737712247512639873741477728216278848953692755642715852524324741634328578642195265659881213476538769617369568175549517427765398173823548594489834773424279788484676829568896879145476793652489846327274943529423851428683721594235841135386218483334283464413724298391729339168399798833274445853772843665461288248931247481874142225461817824738512526264231644755281261742295945297612925978453769866848958552951621813398133398374756552496572542512721632852568843597626274226366438381564511395434195691923458971819855296324657965415496641337417372781313677452883323876918637365434554629444612843129699353177529865235967417492692642476683334311623118748576535789736484615136187387951697341818681227578171678395889858462443199122868665522231718782537751961962947683134345226185136892877863156614827231652349651331418184378838319822977192856887817615832625346227414114288876566217791842374796437736955722367886546528546924555228812383429996649172935515861471252489519418172978179529115142156374234164861957755616516119224831153559925929785245785385296478573737528918876289657264683229167328861659536144818525962373268899775631673276566217683719926795661134171287824443192363254733278271677685467691999225439792918735783541976635634535167826916879346489477931482744238721419987812449476168196268572352373379958193838444144649585519646864757546728552954228166517579156429163635589674185781441177173524411764211967456925968166753913453319629724457949435231695985228549392362697499233734693182692445465489639368389553813129279322858385348164882836196387394124298926441345623785394922641143452242784618268537866347491494638643719279885737423136656695847611781687665247777979635375668428385354111514281887838366732553371815214354562548222956518653879861271694949994715899551395583468485434728726186564427547885131867491873643141797138761559961946776862915228377978755781685778356721922442258846719288236694538119192224348232793619423982334133942154488299467528551657769162455559886696431282827871656562687131918667199217398986931685744447327173873783412299782739393635267873151327457665533616525777383859153964718365818168719276894978873179548464844649418416885282969366128954437792532452139558644569961855287946188233425379134378274358766561968771913538531857675999765491487253143395137193769257933562681295499637239939114829522867115925464236849722522913953138739221656967641413464554748142814725779366129259384639913716875357623649141955863236916385763378949393197281557869459988453771574383692219364941766753587755791139388598425717784267416162549653571321253524272497137734777741887818723954271319922674932595672352212397624644634781274323779893114334985358611178184316583462562984373617368366164485932158214392629878514429824153545741451779841627577818679184437891736814786747474153711628942731793472649293831225595556341313382528671681863875224757482493621772547586671857278544361491663639873532978953779512928957113374242584682476642583674478969286699757195232885934181526312329779654464876954436734675396428485459684951455877441817336877696131998384427914648717341926676278267184436125479149863764421847653462783384721635521786127219765999968376758711351329731431497985982618274954968199871893942629218268185471757545432412685747757463361797863517148289348722376922248227983134737644568338466956161882479683155698154865611295791879825873976536339616175284654629591978264716329279776283637888837925631111623549417824177856638419772872734977817499716571134865731917289576257885655292294569843843651588192771235644753198873165329467176343255619964263951256677513229733957517494619914928476126426399594144863224213594439841462182929332617828138477711683639827828842892674586224983941393175856629618866293825113316426633197649519385894275675894536998287851791629999495752332775263172656625676664484968272457864161215766233688126313239264939244254631243311112642944859242155469722835154154227311786589695121992974568964385995872521378671679776212997324794381432548316363339741848669138447488533453889192165958814796531369111336623433638113883242685711511634184336678479756961138598548581888222768695461155957796649486565476453212547532926695258186623159783883946689782341654452114328176454748397264278133477677998714349692421225532335573249928788111861112923566688135358249997718784784775129578481814618517366934392678179127854734284833549122541617414416171453761143386298343393934464961996351365593212935254457783178177683628966376469874119778875672431581377815539497798664452928941988926685147967737493837918712781581248653447119749921712582661618622576619319373174244373437487248375845775682798222548771429133861344719258337247282959989883967191361276998691429514482371577266391318897657797637966182138645264395974628286948634221334287794112419762588173935246378686365656796761799695877392718667382747425881959898376195276932749814556133127116933533948441694674838431633432914356541373233579862694766988188413957974286344328587853441247178463959357981222161736878882598323527443232243358311897576624445686329622635959789768525176418867488241392897655531362768297174892525445613478829955112739546715956491861288879753354337269741345874758766534418733954761634546923497262825156817112477439774365593299371884355955182723689826254474391268683278576647885866382627945962629926673146734391837889673157229112659852434854846624461675487396351246388663145696933989427146672674212967262721393582423227873821231327933984913351492713479761773894486673964289327588726581657726164639826235966795456914158629136487368982477946381862256928931468294972228792338424439121812747556853954733855686938931899164829393588859134692184966856761132851298874776224333629294669772956965743921622955116925381167342847392592544648238729256253866148768827161434247818822436623116972654341372686376147379831231717973295233481817311137929822983679898399628617347439121992299457326945996757379112923913122155666259659314941842942323533627182797752582865948141373425677374554318356542946739856297654271624944769314596169144653317614676159525555784399394658878539896491242775254583492857644477365794717885388635975151793241756224685353772544121534494696662173541964232374675628166425171278432327639857214755551192598696438558322296815171625724752612253997828936517923965435711761876175755648278779166498858834812328783345153921825355139812383323292424828119979514996886915236545675956766654694974552141564917463858433187535723168161217417133428161258892472668374473123725146742757645782848674911212473876459535178646729486767877915283837768276929691528195771572981263828635137985127835213348436352524377779377779442961184927552693939587424989824919917488143283474323944342233513412141843252388629914228349581729823996111238189969281914852833713182692624512588416516781963142441691762122351181632198174388511569536646751758711719616134874829863335891965735795665357545917983115694688252621176592354634322523972339234285282731854126437589876199912239647719774985628476353942732944797457425723284121545739911184563217849312638921974546336444681891674614665556553897421955412392368539885441184453984179499629745687575898895329527914843814667225862341128541581271555734191712388412423356214212266628936196214944174489999411535186778367888282578927816846778285842668347154292183673246714521995151975579999187354568138389468773771117115914738175877515542398674575275765237935313153496535372638245622133725344549789321758919714365367648163516465286261959821245672325119369985394819893774788244365866781688197487356523881693939415973931739467272624892862154984371563545481187248538614718196433469723151158773624575854654285532492697692468529957341796114567685855513648489375817976476822579155495748586394873479916687734638167432368897165412392849412874579212227196793232342425365442877687819518177399524655181623681459239271887616557813219261539563386283271831575246456462424251578186413485431844479916147451598217837955487561897887381134164883454249687224293862599582998375529824772582892187247185274991442424799847116124737335742131263385554436227737189712285397213521976328921572389359468976686747735345136974191935961647395768531954446943243335721774483867621795138622935347718784123498268238531492484898579346657986692593445474512792548462926624273332655272433412555272373833341563537135266595551168284477791746888581916646299115814241819773461118118662162971452764635512737737536392597685628774247598661334986615764411872648152811566589886446812242238383186366312761648282762875987715923539259335388296271458845425896258963885313113539663336766346842647825345646799544876342965539683364786339818652938452657111968284553165145899181836181789775693946153566935733816494462449888982687842424896277716143276154842191673814183799361865172675159257115385693863888864271327822636437756325611779665972993664736459134655194972836224413568931565467713112518682213533778661516152712912152818928271447294244747718988183264956662695314537981669458246551845391449961322919165919723367449878993888821911896387267474218994873152832922891539144882282981367562654746825977879257375463489935179553144431117122738274412413821766169492411192365182432453734799385134264363488786928153324584493714129536764543133827948485725985386339895237449521325942523991439952732244967828838423575765896791973985361942733675811387666244231428845839893258639748414827339361144516495619363247866247869795698148578128945167743357933912471264111892685191864188772962117123413483552951936324181287287998139468723816818431739846455244956883654735315137199973518922416984238591921433133919269152182679182841833854255446361256463521429592684777173526942166692933974724872147844195788784353435622983369463947445913682916158519716932867262795276443534238887758331516312372889333685987766539362393823159138961228526382734559778941155947743743484112173437394187182575148412641941147389918215914151564394557442536253153863453648694823266999142667861146371635473864989588583648224327854815243528817754693846767989664844468519489954312596162859615199425274112896337376982966836435267674974163775413991186779412827574862166334763962861426367438175361556189355641726768483915813347373871895358329884532731392534352447517932754623974945165116531664424116281532728922517127769725157457165917288989939731486457962596282682389177879831879415191248757814132938725597564594913826781471883986746185742181469552929956934322785483846854778624814699292513689117482966342113474834643784952853581676189388515987351529894979238185783512352741554495474862775583849199124287222561917483559887972981882211832978968686839898595783661881862968754612194174823381546524589684458819998315587894847498736793147927717537984554848576349818212982662314992347629466999879689777833953441565136952551437385242824129353499791386431572299613884285119337216234777723833793971488888712412925391953335594681628495355396587816911233763131182729345673311992581593868161158339253619931128266326491296212934948298291282117628158268878961454164872881189731545451238924948354532729617681544978972663957871334384355893855232138284489957178497723292375888991798236131627556227436564153841821632234196841363996543747921991853165474957974262796879561451545731368663359665734422267213256728755519844691173594629439644116971421495854761991451484237648235266386669135134168287511373186582121575577979275193644669866595616553998676584182345599486135584938237194642849164513451943381773596294458641546876119193421498746246581454487964575483725754536141698722161857295543814388631234293965279354953416686893745757266462878892287427176565839394911646724592711442239785266986486431992241492534657514911617235866765978927961424964455414226692367754546241362667112443853492627382736358374431139363446776847565748353178411423348572238713368731555752583513735673775646772544488943181341524171248792367391748533742754715192125974199728892645717973343752963441649522389443913719933298373517561421448472663832724923749991636676528446591773844134318296149796257181639697979383712531144994528226279247735742913144147436786518125928699164354446851573951691411893653667982336919847143212143222586642339452131925727847141253291754877821824816268951645749958823311983164433959744717271166858278255451683977842211828924597314228754623818593713794575735555967832283364222473642988561815492173271496616844197185831811449446643683342926334932414495429452915273416698119592622169591325526934253712512451512716765787237719934294445488439599254622335195997317741278912859865227449758247968532548328413478889424498212998641784526365583271222549251448192261412836465671682625649673473588528719346794851823476433671828669429354923287277515137384365122164987379587394145436255582983188475112959578961314929476554763599998274929816835226953697163312299117498378859361865135721951161961699426191137124525977972976973931953563654355595983779766352545528864938444883381547423947181543328611544822159294845138835878919779814195319319692913676243133918889288528439388377644257351632418327167891738556318613347399431262867657628473983844167787729734819664225152441724139797478341721766186681735786987847573316467433841599562839517292847178694346521658594785636245328125775297759615465722364788319191577987753513157439645124744643689477242382587329263764948392669596219348486116923378761581645475985898646256757874649788641178666956819315889666829877631647484987558489976731322289942915544732576324111672693722695784247529667288588545694865824393716567313121768691961447728257427962682884868618714637399113644339497675851711571733452352596939867614198167114186329445694186972733131837537745356391649958545617819972635397723451414497142512382179341769532666695924638779897914738713746892451843314261949639112773955535669543663168252214113371565916452496662767473683893238264663297426972148886934213425231586796537224437194596816237559697277619329643352691381984647696312963784747862931948936389948568744912376962164258941568552216171451587173278683467423158377875819967654862628845576781498275555431286472534317854422559366812355363889142372947288333258838953377656541766851567379595276952388943587443927963689528945531558332688332633318565517399743787519568481442653417848567541699449395123166112351135771423573316244536831541565557934875113333846298772724859315987463964285469988855925319239526263549847484382966448878871632357581364192419595149915783645869518544843173922415315863236512442295468665855186515992293844988296642497882389821428547812191719364493271397279211154724833893737167364283918828923285567756927623448657756638528746283857448118333197661323963836443628251141973172637768855237751922735739826113276832626137693783865338318999115688749341119268544966796676476943626539638655497784463921557932292835787532961748975365298892911183551214281154951366775564655643887997315311794729376732286539718597217737696956874445652215275823543216854459146371734944451832175385961315318734796281524596713232617647156728287795646195554867927671375856655335688386832216898656663956692214572398882993671436882186745945283423219398556688165363736221639859169997742399195522884315357133939938712821721262339669184897191873732814874799912877775153852738992273459737728895662976341423323329554436197875331316841972282423468799319986428449132118127258584254274163693437339438341956684198416711969293826768682676234633464944139149331816664721344686821225526418342321975347359698189281521152986116193625349399116924176162368769468539144173873464869566582367393144858255532777162997646772491694978883334492197286951628657515912789812342449158653693457918487455436559683587352512736515244988539974833181815154216767371669391398771887967361782356973928858977644532317833991124711913777563227578698382661573933933291856167715563381437473565766966849455125462689722358595171677251285686122281942166926424479184111558269367469566147788926825224368174911536472186753544124435752657936979426414988221523965431584276864785335623335476662194942458134382714365596834489588882927718947128445874466784632419691251145745677945379948391332289395398762128822348233941174192119539495517387512324427414622723666595144773522634874515976137493852356722863125412762247641371564689151346548968243256829946892358254176729525228443124917586699515822474325747679871261818478328699837158522289256262252978798567339144885992727324438536395231863756134523794426768611138642527783376737996338894654656511662438566127716348917362636287242375139621481914794431583211824942543414433523782934972382362665718848372524872974361498414679249932759919376363788637467825727629894684591137385257893674156817786143492594123527216464767337915518847186496658458884361883672133996585223787513492717685953144334882384562212441511269653866279467686931152294344251115281897743492194298227632946856464343926355354654475137322816432765956672285451786298929189522787282748747381369878759747598766474557321948164941724678328283829163884968764157128475297195376282459855611815695442951561976584638493853943393846832976873422763613888261491664246333819159126385554269317463767399561364265794248455484128375914849864281759964718247447255655937813221295271441364887613176459129441469866811826214855951586388322357133722694213588972129547378484986346514825162858149984721558857371811382697862766755126969844479449467536223388843345731724951985821663174392185498872933337315687642948378485925791884115736284747932758585176436514814376884268841925763259782442612938516821614615161385264387456649471862832371787714221547282844772768849966934794125178787861246491184979673933245641518195127647755242289483696958919818418173747251469296355841731621542348522337252171515198162233266391142354869956916424121322438156259374559545936467878889932626232258593447939465152821712973686699548772354299693775746833271649572449563873641917571963269223971214959337599681338324639641848857153185633671693434796659633417212399751918168212572236198238948968834935722531788781381293986883665957328462439297336345524191256641472217249259872485836225249814739739552457443571963575188968231113948283726863958295694489292291585283454139324124682811728837975373527821842233581671652435121548889569443556884751794936337381158915948192761934994386818536431331725434689582972398878721363375346787235972169187964636641868392768561968275973758121675661488565412596393699855666714268217153483532241499374749419626536231478611733753779154975947588191947787659934292296694976524414416174848732249359817195756177427924316179373317277876441848679271499115923243959626351244982897736635236531624676181113592661334897328962832289697716145192224594135812194312171739423932933472684265363683678651582774876193359566981237495251298465742459575531128131869374493229683717664115216918994829358569427688343653153644422714728564495153776139345597829199359196426821198691513962753642566564196677676335385571645918144781289746492925442989143543357625523497936226559747542885119769321549231732377242895974473358369223135287415138218715952376182992214632463765675436739845443533743195239415863386857632265417671871384234718936512264379721487554582894164966696723159921958693941229535721461832135926111869163165117588615597799382782768663968469116867315183992969245891187923723498928426715891714193292883163293984835415775845243462539635955243525954421895219445587549934347578163414573993836373126918242988885935462669853479661341163252139521957124198324289214218534636477563273571293611422732674936553298325662672831963925172464918227858414561642627918416541731533227157392355517198838562534687818593132256797416298935177424913743945161739469177861267799288452654159223158955731736415324957112516427622317888852583993287987228659491532219984231319628316928772712865875873184215156876377145295471957434532942446134651463883419415936489473517198463487674995735227854682831531276595262541923535219567649783798338744997989241651496269137317141924393182895858898494497127631622941248317792579418738448292253346258989667614644497149959153367983761626486748168872755659875563739891338892698374449994872436599477598478528355688577844876525462211146778593861697371667219644854846414243438487114168779642926489138343675423913328196969151589471314451882173394193678673631468478724791917226535782549782837554425684674476128596659638699355685154519846448287841792652577944547787672315123616785941988671114873548768251321888372379226226683746612417348326153289181682251514265395928759454671478437541692917425916681526963899743497446546177658225265742132195233966529126779581996561763752375461122823499447447193158334449776877858187132765363668479614681268843652454429845291838888246342935389424765648257249936731354456965886351715529233214777613946522891435595845867178436195387839129951499883468154797396734416317292241118444248527346798148778487591611434758598213882695452288847898841215154874153211645743526295977998483771975285248612944562959647476732638146559219484739813776413865127829564473312674555712352647138629565792132388523994127279763625569149242359112399591397274435881784787913713832889899526949437495673353634715882762722396328958414749892262641815976916538313154417396492565456943533275896191431959589645279762925222712211344248187859457223414826986117229432331825849461791163661351852794926897262197256362517532517776157736452551266772833675734481996658283247243719892957319747836481289492925286165269889753535163171191292719325731718684836332548648568628548121182848121744887752516267912713829883794767156729861485266246426495664931635297283119626138679218765147299729336637488982748768633137746717649282928717981746417791364935577485576447934998637397323714251789326959542841693322853923426495316891745827867288262562794432753432494875662269885131298522786828957435789895774285193945294774578391777656224432831234543819266985152826426868941854217577493191485655197763646731951797436635573137535391555127212172814456813914556176211622323529589824494593957554254215426667516488727165469213428838351816556195755552987887238191736716352859334769957646358148111781495589412887772445959764473441371828658747494536922887224457584556321283813256758846648983631175516523794118583376829617871877337878247447385512184134721788429296919643361722828121483551392292681654979941922723851995114224383246633516517677953852362774982395847197648315181275311576864983457166829649147954584431917495631336816769653457695947938767129142632297153378147539332198699594655765468796419942865163823772136612958728447331526823214462575125318971714436468151371716853264674572542874511315341391976181548885938195445366888818884492446224617416859384963733411841174696956687162998474556887861858217792359955144972335894588664573243376261763251273752199965393617833448415718736899919895424574156481321782544133923892333679984621543691655856248438661727715967111251315691313146881862632226736852772331251555233219362464146611786918923967469679595631124575543133924229856723652124225662916318499819785255411522932487587197846816775298538589663791458157731312977377139986933113247942613644739556159946539839153736787141323267863756418382285457126719731956632896436354372716417877749834396485138543868138678256939993332869462115282194951775357356568654689778287386671546162676332186444311227846593446142119622729353673584367815159543653513684518766914431911515569724965224563439929352342293747618185596852184876789724942115765664113686785162631511894113588945345493169465528468547746184878292731835761313958892475163451269232114689619814683728224567564486596845714685943214935281936264713485756213696717299697698224584623286697957637335285843744182443551229815566199597881254652785941951832377776626414438773941434518582618385846377619586668611142889959776351878548476942793796874767644368346199837519589757335691464879594292185725673547261629745122172481688959417659375336291692798846884687527272117541159119278952529887439236326969974873681474626583235147669265161337695642183632834337983899214336186548746118282415213573392634233787651252158299519857167221643811555669665474435398994616559748773239175421843363951412967721587899796137212527723853847528567246925636347488148313597247183697287648262799513433762475183442169713618888747979355373779913117177338117879567471918286276487184896717374329967167874382929637916676293635422126693121222185875422941393734735484696616824291632736754927389827276646328637681752426817435316923575196858516581622283825345846983582176826554515633895338792499647735316861292754933455223363215978499974993157341674985311531937766654943247971827215736778761546181374597273255875337895779613291328676374688964497187443412621643599136375262599297941169331385634436163469628647321226258367731162657993845687418439144861643547792481754123743675568845897141711948913214477623178853442935115988768988325877174968282385774273949726658125833117836144521828121992656458839131823327657639331429574218889883864184748519443465422732491378554763136875818954475546676693548814116583152856283636392762195875286824938224732995523788877355872444736557821918368637315139416549792446127918834785316718648272151284785585358525146616461277473381768215621462965615341267994233298918569516582942466472262564872672428357816999135671796842219366496221891481484751718392592427956567647675714977858676735866542197741418869145739487958544187276859888764578139977662415712429994781556813595492247377747978758936171651811448452178752438383186683757736761694792675627545733392565148613752132278738472855175221724484659851968631568633149541622949313177263936171933246181131224934342966268765757969677579579873286273888653927624571226163159367984263826228981236338744947874562887969681577489192776169755192289875743679326226484889754263461257719977718438167435391625852777447434915846652375794855329596239852351725478415875259771629131916921982428258735259126167969951652549671595457872763468264959924166924973598275341677473677567863565862191827241297824181846523858334434514127236817325387849224946378618929732392923441133934337854715595367586668892714196428113563912437175732611771171621422667857981797169229286384244375431914613671287298916624847265697688959295223831631273555362729477371181513785746654818433484331147254284451825488768491648961965678197333414742597347399285181648437159388752812634363261768722654358186942121173497614671431685919717481582688727577943886844334394842889937718566159426919332651144222114775611125957547471545537848148415965976451194741783225818693534918415149949313389682172931163454283777771611839886183275282426844192778738812688387594922153626926182955725883691341641835197698216491763349598522675667956715534163149353293944292546242712254548842767176369669812426586791955838114612236283963115743313316789589849952561755965438659879547484468352497452957481345222964792128742989725811648662973178546747412599561931984631737924777341161129965967945418381172348162168169955441134654382378412318494299194638529975392429269379119329328689332328748961885713793634456393335356229116984453622874327837241775496387775129361447677451164932551278754255271215861615591984938845699124532542127177536614996788348251583646747344886456745313236131988243716438727342914445747349447242311844714448538963436151973797837921271525366252474977865134716487494454889494521717584995466994634868346274416586235533169559912286919526856594916468764618598616296148723253653298953312951811429122784199254562256477573652683575643143867193218845592656715152526729994614833696946211772176227788668928399549143653629736347115862753473416329575736697231721316462617748469317679249941823953678639393238158716728513694888145897727929624495956797956334127516378951922251645315819433735584121815786911965585964997269517927897476866952498884273789649422291837423918947716124382255285285277818188871642242661775283711216896514392455467624681199368279857417836869396958316415221847732462134619638324154574186169722957969329283194387644942647519594281112928228546291693747487346653554655467221738788143681394968314678115725688555359516446721532897797258617352776616249722775863631245195739896456961932917383545568166528417933628692692429663127824466295997258918166197954254926362882371984684579989775999482827995912919477714712679158986177667167357173753123378173862578234839553251425736944752148274986377212427468821515871973789178595396437163854894382378546454292631164771955334652779524157376537634919883325671747688893529162725294983324771654412181432337598897386517784749278387319441171761578129797261976893523367354339377287156662659238579895439753679277872447693415252122453337574481178222871111534735869182848267364975153152995466942859922838554842456551741186661845737919754137162696669667232316668448223616312461836782494623189813634884414539421998137478786565717195435677618797518236193548919728241617267126775688277521311272985945761363938485212854874881968562927953236864374548835113199844935629822497634178741341449232624175956185847244127132165987248555941658132656146758745233856681184137831995418163846359533192199593266265594491574118951269368297414828468798645954749754788497147339255925789284657523781529323155979561939846191832119951982287673518691474983965155951149366812163812848236422936531624448939224414587399831924465517841622434864211849713714149589154915258524834996977136541477483672186837219499186799442368915362471853563512398877611737536943169154319649779646395367919593698514843797663527156672362292361211584752417769364821146246262282221595635389225597699213729936938876338767777336875895165947531327949726473194782259656259892733527597935245613727782297166238479128811333773845593722437931777778558571747921479632663466443119855792775456492355422647279471365635791136755989421575282129135587957868534813843889287398292649335911853233417684693322121274196587552774914562921352453471871338974141531986177191225463539452258562594582989687619244386231245181231578766525375278596198223611523579246887314621578267988239271527449927548719856663351262189121754645488268134688924849947858823276714529333682474857741325195322883334265423551834597538947469656769174515751732972724517243197663571711385257444525765478677333679559577982616156532968825457714658695384554157799885757292962426286694949343113891465274351482199558842676966255181696912858147983677843338943351319899884687366632215537312545555434312669495847167519331373828351671737655249945584516424695429476558213636611968498141499841678222833285846832671464494266333134327544827491557594833359772165476931412141286835226441327413849443472575584166488111242772156198225472811117754564667744838348159675746755419765111764247979674631115578119975474459653359227579469727626514941366321645555181137998558299582616138182536945946735479388136187789687639224617379716635537246894753524445786423283845297911571855185538986627845129647337285369677229917568342744697321148554411931822566389554813644736572892894974929657612982255628255245313619992756515613827468173695936386276341791261532367974323715433949553523647581596293513784316518453795848585545954214581792342166436829568112617826263243365572294775631431582163778192228764874241693635773778946834955721187411469622178456248721115486584223248199296131544395486833471772985875693285339668196678915982979457816135647513211867748235422357936549994643753847692325746962654398187332616889548761144629674194781424574152984859852114161458837868215518697972846156352397279855656996755542526221756875582465921519174536777389443939477613293234141372958776511893749381699813115243337294744623986825873654853476698317772143321913378543838165724454219314545625743597779575947372692622865416871129686633127645713864159571257158915558759323783978382338244857637173847778936224951164966241884681774531224744138134429133122379446788781163465368599592894839763439198115341877636665744136992234234934457444195651125516995217429812247871279744855286886395146916929616624588962471958577861452942813574911616733727554341375468659795986945517789434766774219164923411194545393145421177497394784824923356776978529516345173332623913248715392153994427924347398598712573993196376627398633241181859917295314831583212863287385261169868387579626736823122739345259125843589442923693995968881396216689838863953222521916694723233881862657843155295295654125337415381546229524834342896297629441877932443384667889169678249264251833966284541228125962885792916197384892245346956452521989171679497776799324818442593691518564383169638559729643792149989735164468311264935879147342231293618934764778161558452175387297547231596863768723547653171798443155215699856637872537744714557863263631516278855998662932377942167221361887652251996198325899994726742828474687587275995474373754226387135473139847236774281455666385997434546419132598816842317835434957399849832981769444473266687172682575558635692635872276644441588645198742311454849957521854712566964748767893265169891776156392887241926695711226295362876495463287269728288219627244421949485692318179887797669473613697536995125822791468134951221579223692192574743679581885986833853913123279644891649726395777951342542769612981954725434892596521664831681878862233665944273724689151929995862985241744241413761575666465932128542595898937284231786322724825668717186768587899757478449821466135743419256835791436271141177681954384298772342263878873969627621938356223237252528495682543294286811512833448698528976139439747438489462715465396193695638591233951896965592831438687149788881186164651191272124972665643412429915469469377487874931474625755645161117925662448641788948314767374374176432665338486271911376992328625167213745573279169986675617459954664937384581496395942411156841297579317655684213687826922495514152981645293522761443933162592817995857367597774797998293443623312796522161737196684514647998228287839835997597265595868547458267949733222862676926591255889785379352463658696396836851347296633557783936895334896481514223675939697781459871261719859261437911868547572359465545419225257947833775312446372725245266672365846193623856374544968584231256739448689965592745232868281396858683541426765847451537344463948816959971657141865727542868162832435333476278165635378455261344476898935633547889426341656678194574275738962659581115169635325763289652357593442441757699231616815759884533867891964624536585175531519863147736722173525954559113153938233895465662913417742642746147851138574139219448113356531124818811667969889823622857499592871662626413391272334427257997974139199731149965988438133722428721639512595481988629413675716686638588547165154814844191562928561419262957453732114424469559495545351435161334425856191135965497833855461383625989597581976415287472817845195584434172178618227755934617926554897194291951863547839289881426794384613797764827699528495326976315574833599881539589318748436957313775124993146883813586427912541897398696881369649776427197251229849697386312264942562362975897871731457987984486532658746234891863817585372619252416269772151147426175491552465616222179284387928415844998145694115322131547238978453742535985394715917951664451295467511199428888289864929355373628468468398167885771263997415775411356974871659936132321151427758783379756711613295336321453137895122986556516736257778793995774375463918559131545311281489856173518798553345499738737865749346585365199334853725597274637569198523923855139382749456698343333174475651152179143176636451773871317762776863766153615249297474594269346912187673833246165692931357279751767534696821315875967191618663648389649329241717293882952717962788652473396356976344439599275344197344562977673187529458375789987791946244889197749674489958746516418122498398171827365249814454894685724544339322936539429754123482842295427438439963815868271418483691132865687583873259166996744892894179528277453777663263725915294691543359984251825231313813212561414637526831822424544613934969111473124697677729163424695192992938239679237998884135485983182374186143965644433744273569867184472975269614157229536672658355683769284255559261112679834568926183991395859665775842715151842449738768233198555937287682774828781456267476211613322989147528286231846583194154375353356998616238293749948343768294418916756368278442235968234943274873547164861614627113936429536922265872257217677368561182844526622118113733488215959947131472823933734917244954549434235262353545827218722227659493615221345688169879551752316344414825859316113999954829149563993374858678388577452743635581761997462138856782437591753391466355972984867445568227292421346961447546722445892613211342375861895638199233613652872995122597676938738759119264351449839978625227999754554551985918781778439941638593947383369869527594236229172839224742178943895543766377275356367532738422791234491926632156762425578328476489728728281486152273539349187715686448365313897995257181987657125658465894263853268855843417219664599978484669874669133364174838377165893258136481383619915287114829397523315753872931822439141521341171312886152155226369253283226123243319815128539155969278489991214434314614456452847854782672772914444794248873967652829176144334567946359136322976168164578881347829555356978175779465821699622314347762369166533478869829789899233989215921564791576468335315137326226617563822879525337848359971481142796168255196438293927824863965134639545944486185386967442537139492334627145554981686429572275195337698382746144181623568775285697355973146648147198344111638187712219413976779478293513565463133234174361837774593743988424726939335641623289548792981733284775598952913311364134222394411678228913113323449842163272522588499289499629954736732949179337156964993754739992664767565486282777156321794683748114861297815962776398466625887697163982661257314933668229617365162358424539159433799429371915511636467819624656815646673573123276722482352626286751318664855173643662797857575149168715279686838195364848584987883753171137519418824398956444222397593595255295876396199544845974623963577876463983581534717213564749876563188477534667936646982455332887186833575832524287775719223411199681937529561878545925837166165834825566522588342842325839426897179635275324147211422713744214822874389821223943865134398728111277596476388561856459878548348245985522148895879494272114837652139571673552938957375375767523626563429664746532359786252883144579611675959592726593297375478726775733326366437976375992448229786368581995648234742232474286153668516416959672156268394613197464213743347395398725544994113848158323645355784655197396696868763584838364732186585213763458124472855579842949476986253487298525799257131323259748453581319142511524237157463226961218338132283235646241975297783793615427535847291825811329997167417849591975693674155166155761491275125122571847242547253628557665166567614687499543257418253918325851621977626569875415229411341726777764525151937577878829842813471235676172974721398179953133478482849445532893822728514726953871953786338528818861711172666744748116638581269945915913167742914714367115129914494884199763942321747557958948278566965849934265337972676469376933538912814329642448585921937529772452542963836958797298181823698734888963244838698417115287345117585271494776635455156564286787435843871357719354769315624272824497574698379293568498849167248567224673489218554483176172795431152419637657412839146643892334339568432277797989874546616728251196948145725492389722382864679788363175646176294166384469826784619726369966575871398744625273543414138924462848866639171588731171363254589663448911898846518694631844383248462262342926576425888851388493237444567669125646234899917645857681837583384757459848728483977635798455683967713676448286463224683328776172741998532359885986344665333838992981833947825413936482814195884982954248838369543171252551938326512736418333377574588633634566297368899621957585944796869314813528317169254812386644239159449672492216212581628273695699432399447547158216268975333782625754686331936636342948361638881355693225326889394498234285964988448659162748778198719128625912745511415589355945725635586876141681521168982476756218756343846784745731527654227848513126419878241623554218531294144245774751465516762162924933326541927472427967524529721193225778669216447132774926986886298565331241874566633135514191799455887811877224786188538747897732329999977677956554395978758422542431437974678213532137892633776918949637983793955147836888255645539481179348633247818496291664296144141964736939619458966132441944246323685388238174769452584577891522779297811717983918957494173125292291882851558839733453859252569779756742895677448784968973929886751324482848582359645532724511274216535618466691555987147497414823466826652311354752466195835116342823467586522886921528112411135215441198649727318351259389393713137137999862582417332349378548741543142917245286918943969713475429632822526944634427613473611143194276427922373615355592751764963471911692738178413853927983388525426574746433264457638327546397738384648271587722573395948557131858392128966637774193586332944128747848734296853352591122225516289862625944529734983885195545263948219793143816294471871323838932742699784164683929996928381982245294273668827118996587315393416835252498289989689338957477617379794833652539486319994732382199967259594545574193982453462561457962911363899198386429756992936632612737916815633274148637729361431693283763226432826687258175227366674849961513675233947654165789437712617757914425599364569947971651711475165497846763128913619654634661266695389845246836186952314669676334752645148621329813934288245667922184577349469339521748653198799897245867793625567631595694453332154431289449895548587145379593686928937751739373131734261229477168761535498326528491816726762458333365894526167815875457913256878194563815421181578193794818594383549829251259395195464745483892154946851875794393739283621791715288773759127557719637878858937346213477379123784536394988761494914239856757115557977375139178368572556931739165752487781776511358493995857863437566233281739864514882276862193747351669642627177346553139148312147114866927723446982274277918213713188679449673271386784584384663761528443299415443992458777922398449264483323756946279936638856678585722942316819416498161745392239592684725495335855751724243345285243624152574968533594827131558962223416564758591831222825868654865196632916765838859931416271646944697677242525499282223738782376725482196357776695815978745963525853952576243893272768432937168444748884497676883958781873578422775454883449926211978964211943219644922256947667644539848933242196486692385849614946839613826125563121238623573856547598771272626838941892958143786435393218361942746615898612869492811939746731984554923783959888169952935517596841132499674553248134236667316899891939886331445248559115736314283276254775718332975985467988396623238695175888976464898687326877998847243712419145414372893471278943656837976868389616795141147832187578265741568518977579573255453918825288234974862418455679114394275593415792177327953519418738144483522971187898593833664546239667827124133812559822178432844799472273574754798679887618792161988195442815185943929679458544642452875855463955247285139983337571548933478673286784296974396833987679826674971559869466675258445193983559846971856681238743476986264328392889864532554317545132548969788866743285239459294697851646515481165373785629548898572535175594599926184645588367923265562111451352849293541356957253619718834857932842994129614338698468352626429692781182942364122858672844485343411418691727128394961234562985225266925186787596892823368456968474875263841481951131366291776593989496568515591414529947124664841771336176626655997991682147422598421126677233732429487571223261912914451273446567494142242368447536772788922478917419524759473226783951752788687228159434361572141236299477225836642563989836931143652697399882444591778652255368424483212179213562538494518934766293323429439675737556896687153552683834756613184739318776562717975246592153369722643528165234829334973977393164327468274676166189376563382587719545362529215713639285393542112955479531432792965762382635645631967819942922196573612754297659656336321411411157417561881536481913523663613617347983161114642632784139399659373969365375529683849353262925842937853378831697772786993294567659434651433492278336826124479144176332475614729542124626944847235867914464735688689149533916629915684129483941698592354634286985543845873165114863197449747445878162649845346632829563447261648554617681194656648593836443596332692358358614267115388822161684743767592352567267686467573431794961618733978684351887424656735121171854131888323389931385846357454448642639459678569597972516232565329483337384941879666715428674195134355964367344299779222168366878183689915638947815825921747414222479368721594384776277241972282428245116156474731346869856963295928539923561832856432316892221713545447772764949471512192323373637161738994477225375484594832183888852641977688196543993265473641526579565223133575864989516778819456392794996343828215166522413346854934332945216916512154383416881373695878497978629624132361858984254631359156998769163389464151565827842756445221126444269674729291775849473894995538844791162979946539477755934576259629726712695348275848232669284245115575744268975458279436243557846393756272979493129143565829494133418926212931232136272762692994334135534626639842358434683873294596948311963836961814272448658197681511416788374464679824677366935976916474282616973844291936529915515942469419116381789771423313643246272222121757616583523634998212728731832995656383444717185795967839712892357865118577176656932695575753878445855692318953455695942426783537912362592477621261665895464615396531579717367474331719134485923456512363998725147216929457748172522757947717212722312247711598751834637297998179298393172232987969331949739426334264461462559246158251213954577983227253317332836641652846383962272887217938121665738812449734751938549242143298669331464336699682445359452661316339475697357215347872617752883525342799424243667343514288266496831991942354519234564772687127718697672716146167424789848551121871638797312826557836818643743731684354185155611382862735989352311544942347717835911173659474685548932165744417818815959986345878661877339771459238624513235513469545178945969871633973286636952896492184671548691897914566151249767775232366935894594849545558423199621737319799148432365719431749699761482351254976113473426489247214341475589866466613944572395115348474812788335895278516645136568415786854676165473323875378834754222796253758295326592129812376588657253428237668217498378485943787413744556121831669586325717176725988333844826871727338818515276774595769159536517341112862368836264741545597147761769845972753369634676115718474449423829884219162327828489136461382662559769666796478216118544562528752638593952688319998752198258924266814299456266166931131845635942422831664371976567678643185588529793668184182548284147345683444414569258655797626829533992345665811726581959711281144334456793283254612597457465568891135795813118468627241887322191112561142342187848553549162261379435528553751433278421336443469392743698862895212933954688823743726175851938549521726275856129492998472475228169131748132633662641467695115812724887589642817971196766267647818275933887977663653327833496166873466744439184349561243472987674919573715623147983987234233989379217588148342129317919332511437458195888611713534313236476419133742311961131383694925552172885258388374376415665855399596674189826633161691156432961899456864745398694553557299275355189665138457216561716434452966364211622557267723894345678854379791641885591363542765222187514482445413963988231496827926667894937568844932843872553144789378761415288581655842975288547473238279687334489764959368293848252957815447875751135151779943757852623265842315317793678663937622763878451471982652728673856517673861685631729874955612986637394589537991962949224684872435144381334922828192824272658789184412333725815694784112366924932363495756136596864374489982373498627182684232817134562549576715566164332544624426762816763333689294617759121552138218773886244963413178989935226935712181695181322528326218629113672881749237269392123743585485753921994817622541653725164512966368247537289433578658154594681195928571397229567222136475724734225962881612547258351888359622933419597466619425349337163924195336275822481413827758544644944566173555682723894568413765268594191446794965144481231496892741149174654948442781713741339484588496851144878156126298221259587335819713199784375893714718567289751631838895133611971232187715671532515384785145232245444193659512753171348842354576899219454413567764787572696842532531376695841626175722872466527761687246631681278641737854315969937642213351378223195869189485477142241466483394593978877715242945149285824143382567455125538722226144516899937974727227659332543146585964857554724435281113356569117594887533894345764673988534324154342183263487952327696448879274697696912349944165724367144859318167657781665161433768452746765562236894959454477653487551117553664253547472819564792446546181447752915732811746925158692391344919118561551615215619568688612192811557512663173544589347297386467522262326514856194927737455189632646867517783482773436961458319473958689457584652884479425245172476243977625179266584434838244362775161723229135774115488291627794199252363276642942579288338998396392326644196289335243976854583192234786185514546951236712169469572749357898241735648218393239176149973742455527979788418722527121817281425866553411351123363964154672693279724954979189295582886242391528388684171978888436594127247288926873281377956788438739443151852438747753457925757539464668643875647213446138693355289546399576939648872585333567965917447374866739527755177413119489223841126788639394791422621558379643555113875784154186147283928863116427694262666965578376467334535275843248394889325142778391743159532746655942964468635354228522365537983486662188841365786627854296894142697895589525983544319538217511679258716657955398529471289931878783653218813423175812829891977756991322991322438928999879866521221232231353495275964951837478589492515539767275772965137775513442692144899626173178681247797842999193483343849147884818667451439449666879162965633123868493546478435912817912565766943782924562384773854543689154657714816351378644928252521325778559729355472125515331563594961715587521846958498931987226593673921661644238167859857468918264465421474796593366251886676481826358385764313449154932598126298723541917338662565858916718426297442432154819955431229781432139864915119481374717728787638842717987586424441711562239893765735424972623945915961174162227699132339579673154548645941152811813145872738843287141534548628719992589653436643247389634484355145392246478933257875737966471885213427854756961647129715342431841263857221726769479349764895979885168761831497333256212592178866363249222251773197617856843638364477388513489778437122596758584931658398536493136726866541398689534453295644736417994537556394356782891444726356946388934663888456444477749364857576268514882637161416279195479226642593871124629569285284632643196344521613864629648146498642951474824874141411465158697452537574756132536466591996756481524261535938281627266355819447489895837331137298824348728662499378751474477286867389162836166983757894231848434952958149645243517196519682434729914717572174324833573332563844735195752949261653889212267441713312785769684749937838943675755975133618476839811493186344817394896156892475355383681224595224583287665813327755114225574975323422187676997773373775231627949381398156645322548896217259852779717693156587631499919724618766645495691347999938839791141927579918567581271163835714718719456347284832849744137597977647461195713285369244555285971633379478859167584517752271567629847874658555313553227434388949814581846691911255476198326228299547522171161286723213145555364217867963959977538759953397723134618494679565118872676885566868228957414259751447594173537123735621249565529553212519742453734275288143575419638778643776938245654466794235186953716182765589944388858261578252432829975423316524498115152866988269156597717368698418813877565372176734485111869618388576223639746397646146123863781546146219273612465957559745893946459161978138363658493266756839564579556368984348187313866358294631585111818332121749935659478832879479469371483456248794631522698525451278215531954723176116255997533549369892797278375866572961612856771659827433251735272278328513969913884525849892318434246995271962351592185964185927442939436433546586684178486968592784627258512169628914852548387555716322163368238829395447376911471912217534345126146479295785813813932764977479973529438916476657748914491148945276229199646292865656985198781397818798651361436882488977645665454224988194137525652437292567992312618418791352795847646791489529679518378492472845518178216157915855682411547621962877687282881256623763815556553649388896983198651735915541286548357247634934888861359714712255189683356638926792726686957171478336661124815574645293788386422255892792283629963472649476998223681661877139815242216242832533781856723525316828148642714856924998669812342722615468528994495894649639643724974419261941389767122173936218595725641634743528338426618228957439992964428569282123573484289922811996337173981981237465782673754743365862249137259876344511876149455749844746461337852291367761595968951235851882666666792457416913686717283259315962439475115784852522239444464959983839339788263394426369695979866158171959765884236742699186873587384369245623134698667556143481117544447718191551215851463692612345678358157192112587433782732865323247942641741988621888162246777981665738713699552539345358825613769132991151184127941475257527873675764768666158742888383933611968424789655251934112839223572467298576422836827337428329566611211167618771363985627448384833953858517375482679131764591764968353182829256314226282421597883716914275999529941548781738417566265563152914886848696568398954569115328419687269138674413286533432853773531247159895235433185217392558812826529398821344551952772837616777238157938963396492668631281768579375167953182712866629637713559586982667876136112753526386521468855111887389899165425843585511295795773392279176416989236677595954429738755742282889782448997482823786559124342429377412391838991378724635958189916747766849548556317579964772662335919474337272683348235591667689179126549245394527339789835493398219853666285537251137999338658369254518927568274175764796542478392633434179886184661939684711448682824222911618964856713964916864946367556417393677246433723499784328953593123378972524885114881312987235536753541691968468746865864476928684827785772517372847332668169918289846322552189253785942746736453237868914212927395778742314839252826626936127735212865994477272354925517117671189256656982799925217657347914111136771277346328748413937737137139696594337869633363656328921624563112335911863198444965655796152343475965949258182477841411924248484761254268967193776817817311138514538835721339517286765596598348679463824746796394979528968891558584755138617237414354251838973829185678537249861195519592488569576124765478455355794644772436373885151697423847216679837179696984488447278352973548432129878565893526233868155388129321298934413655167443247666477488517389621975481124337883439167818436488475793794127896238124893535163899469548948627229832191442858137963715518369962744852776941753338518958773758832216373867831154894698374549312512148324986991361628455897828978972813291789716767511971652439336416624782652318857945819143965595956424678799575268658552647286689231678456393619464298362981438451517241879229956366182379322156197721897798693238737753674779388849928597357668421185342619547331223962786441273272695855798329441636615148255461529994453285228272731344168594646525951278679486568473877636178531926932689626262898175747345187288672848691395485283657379688386243226175195622231486912969798212433939449891113141542737796426657849883661661964117171849381835628596752727712292919873819793144982457528199218489266447315429797932683583392239946679391741511394451797837139933681519463523542876846528221114461321357417651727491953653754189119135665428581129214478753142942954411842781792792938892196389473824897955934183286165264682529899278873464763971666173439572451367154389755152198514737685719735431758633227216166528175545417941815666777497183624521964594288168524291838525786128224663972687437746638571957658461725193161893576138775669424341211711827896143735512176918322342312483962574736287473963795727948976262327571298725111379651435222736858695614485776894758799212374958628178596173662937615625743127987684423921265358928578943254742599742132158583374111994218572631594517692458675975954355293254294643392436283689164598898113532775914237845193919347137836178246635147611129499223925597285918461854624635664574655294913383938113365727273511875494774992294995331793519849737255632922131421853921151935997612164345456588562763877768257728833247582239976141217884698479161465223335222725726414772599414351752964476446928468734874794137292398625269751696359745115427127346998514478427952735335765566378977627154886571643175551915533329971775153699764961315395847168155932526675631837857476859565259751793459813884678216682636152916185321291488735655213365969159658269188926889334744969455359324121828618396119483779725249161451442293122622569846796219125951194313414665719683252752653247246466616852333381584559714927732367926512734952899354225516277393984644717191281915425855373193382745916715723724154639156355573546136586167337623974779494741994686225621443194371657577851748116617179193292528684431995969778338945845964216964396395782757571363846342652237557186554628365381564186241353998695249692337745781198792725125785318357389844323322181252754223652466284177498629727733996328472617316623342114975738837468195365175636859959356719472117926431838381855749774333271382973516588416391865731954361488575726274914642517188174519537374845363662915166763669918742478842377532622227692858748622769443661312473575244329173744919842197927254581983324222495885668768569273511598731242381758224989634442682732694518635691312799662986154225465716468927957926872969574785311771217989663355941937974342762738848536483628192294881294379452235977515665365464741751278912224691249695231666931195192792913453476335847992585584974152242476713245728417655983371575699835496619171912655943361217666447987546443533688181497416173617494947582844191898937578275334154348186279578657439286983324629943651267115769492491888199561355511626336692541769756556592626176137559219362338213748487448135547382292938251869144972525318751468478661464559454841982422197133969625561915949223212343541153438381646726119121331465618613845654716378878779893837387147331785146763449326186368886689312489893359593413912437315864795822691925874194495437248624983365535416872382619953756418796122563894382518668553736357136627763942379429175831192627439872557741866797615187996267881768722375352839679187786381168134815933557548596494272719725528887379424257996536843914764314982728659164744496179268524745233314178975258588274999831314627936332128543389996385267277537221843944787915894432847554297918872265543233612155237873282873761766319522783987399176385472537593224166224512131927645172234974284489911351363355918526637915424762652667782916497347799599931296351526184275794427287936927936661612218636996337135737228811467426647588987529123675296176222753415944842573484641161767367443662166539576814277283247853686742956589446917323949264849297759854592325924546849854137936691575813945435778452335637421879936416699132619444466928659537429849419412562594831332176128851634674414569698162183299792565538884224579427323422539599545188765166423354976297349297241538314711442666953571295924727871599961914161656892912393773341399376276662636116386416672814823749256723875584993633299278641724739391577825324477775682545525887896844435847383959417552913481161744286661288563394138318556552434833388315142379682413157693635117436165568785643773977736998318132536982841494761167731318147741883481664594969964736646449113181328284633928713265728452252459472278549622591816377112236269295313156127156126743434555961889498694284888591164496631236114143911219597346241571134245756159338449389912625663575978453957878713649539671236383769513898565345697549496419827184933322968492841584413142933632935245449279352399641834926379471875318325149369222294695223958926446277672697418428866377572373897423289337978728495123779896176626834767554214152544621588176547229685239541845189459498395858559518921964846444278226836419354294895871265887215925518148963462751137243522321713252955749966239242845185227277492576959955467469654262673399928166651545989636572896153372273978533576174936573562266483598795557895392774232576672221361239573343861947349395843954978872738962237239844673257452747625688473496198183459664398372924582228558167965198954363299392548551495212886386171496716635777532561182158776373323983435881633789876871647374595872124593645813689267231756114572683931285665724629232296816363321513621976536898711829499915246276447533976545326297236126438956588231527162683192714314847641289191142758896116276516979644661561655728598118626266854717173227163534374173934449114474181292996249476773155598498836224232321934869437643172811682294516627619185127671777857995214464125786673175832818582272673928418986544849222392138245312493224112655929831158151965475524836236381872664569363459986347729331868845181446262596384818578492577369858882497647264645381221357973957745885547154517935946972668953617195538233573265759246392186446144586319557773347251789787331825373992857524646351328286898971317586762413776391312229718485425162738768925543664776535474816312573359141684849296759385665285332555468416789699364281646155577623158988556526342648612316852514728496351882315469239469933164435165689677898434257272964361693198557323992725149756852277136335271812291462866639314421134655163943151187363735655186988333748131236343859231695183681414686388492825219922179578736767125652572563973874979836799265867321458514791887374255725631215837862612971967684998569832843425991261257243991381226918282324713727833455753871773362179211581752525769133419487693819721767831173438442672619258438319385957165398132288338244177816733228934354155263195829226886459762653977272697887467377956581456619896614772559185713487935971521598159435669577147275868455497346252183449386189796272916435958663762194932529588995295647233988244243635887736535944497219487211524777254826468851399918947556588855468849485261288188972516264149474368295692629517384545961455292627536996146186715249635571889141783272885373943456399746833737784911988515698933562435898261838218317247516489635766246951833653583186746474446711324919182357585793376713146615746227115338977335542123435886468169769292978619154266498977423228185183271929935449978766596727424923239231113546443218757418159541653565665829452662547277862895869125561142986243486993678858234234681785973586824413671455167471848716284542914443681634139867941629348672772995364326638614396358271937193293627938491241469184892884583782952745674687733631111188535814898162529877549791891818651231511417558435979849838818763765725856499232638512384174839115576951478481542383411717981889327921858796749958188259846724756347422181654648456251133615989513144352317661494919913264651691813237357913852343333549714853733945761341635759972325185551833926582516678134921141559194966368815946592395697581534433828344224617256475934572535967238962363623247775367623755251863558774936241927443994269773658894661153676567289478794661835714971976232786394231199554536916493489992158687991919854397886434763652746615394385268577256687154328482142579997323169764322926257985178125115836941996238411934612118921422894387477188827711271371152184163491937645425286192117113329526765757321641258857958758979922486842562435451224819574461352489973928251695516986834369394422318518324372733329912238946388427268188416587718698799694123853669357197656326174853891292486632457156829332737212481491527181335921491433515215343361323921932424363395544945468594615816899939366584936421847595856336915897813361653384358917483914594963743868823141565354992172511917261546337541586912399396456537142186518242389879999828463195698896456269378255253935761961539319843359367182486677144229262181865298125622751427131443358445432849631982266298899844177712353436378377594122792775971751775996624452181491551636124177154453194439547575621683284582376629829353195752294251368726744385266981291664873288325176549867374863972837225522233539283968785179366449151491694857864951827214249763677615775159725229192722225182347998455959922434323494515913146835669155946278499739179569763344791795288785533416313258134257625684292951393643263487278593255693191296126481686724542389595163253362863499348829353381239535839265341669593384398526538481864889312368217435754695158975961339259464184727282542945643137269974891117579287321425867168774761949958796714446466752448325679674567336886239755339564274631687922654233744619141886293565513194347751834373266254653917448656979635626844259864129319933787364327778462676642943863765123759172737564639373365642727218573379342188459367582136217736663989824923756562311494914686151438499789954619729759149587991143773641634984855739633571251253538683645933426778641886892717149816161563683251924982571741345125721865923237227516663626551952433499981293824665221472925921153392279289479826247274365756752969986895722684296813139594268264152731292351679249453412627433747919829945991915959179231862145725696589988879463361173968263623173622691487222548544741655727125387436365985138862335279751442868512137525936812833349214248334265376928421881963386317631463769196787517594581719338972116373272749499149487557378266355872189252982985832466293118534912199815192289652798417626558858968948347556411571311961516491195878693347778835855942183521629296945278955737223795883144215924618135829382992362759144453844294997477395495512685589813187596885412231659119157695574772521297638839895795719468715282333242994676644123474329181687711933923388833334661981888736596488771918781114369446434197746384252243129131455289821229883421726941243134168576357378357587669253166369764512137753587225871785191526383723825591637449826884383334952223395833786429491869386617893123343724193634563558475926716817241313611863218462299771342831534654724619931765974731864846898344625185867942338692677951541365625113599273414264421925168184444844283199339645976976572369614997316516428383671276713929979367187636158976233148629812797623321963577364766979821792771533753748986691977673655625782834918272168638725473647197565647947745752624486923276785531984787341826877225616823491733831389812983569269539212449423785812683861116822774774816747126485543629629219385653833497287626269432383193129674855294712463979912939238439296581189359585771661752655478496844941866714172136191355673413995389356726123226735749397427615232147528239442913486294845595817192753555488578616335598148637237392647985732583114653466227839558613392864922232576612323995841711139216497519646217329417992871873774313962816426148879669745822188419594765316929716762535916115944884369689271149795847337847331629934892718712679154776469182243935494575236482387655299298292494924369683211348984413311221269551876744945877776115335446452496373946339616483982414856491521146439952922651747978353981143146687673763818881676412619612796354111366656334381929179939198633932958593935453344341223123875177362212413937151574585787965462197296236528122269517175762298216825548978789995745532917217827417941737515484967419598398981621414467126554749378338147935986916442933577841777588383975363954476579726319466925833939455739177724584123149741113315259623628279637948243296295526949891143868812694527637256797289268362548328477818572186645363378194237969616476233431994428645444757444314841563785775216169514878622942325379548126427923963251911114335652615525157748934258148147451925185536131794577892595499244136634176779747185764822342264567229536183847646122493636741286798649247531284795834185658767336181994646665134596714358224856464353616373764124683917718994538862132758825215473753424312565331433696478889236491633953298621664813549327139679632735945896851232474386998856718871474753347341376795284168638416433798921744662231657964716646178347139183558572536322693246844676379277422367329942299414888234852669491526257241249269556269653718647588193815828645679295159329163821639811372144691519913835841912965944972986335375275467839831926311786873396623139564147928111649697365593255357293617298198952921637186481825534874593312196187159766295265627195444554753352867832449756316915337783947362357929153937557148561328522238362953758931675378934955797999635728994886833251943346815585447818716173656761854977566115548229988585831416371678324924367178966814387316744899521812237944739399726347829288149128341924485214175698379297991811734735153574961531347266856836999361766122418549464178753335824631715316456389235422287419989453324844488997718351478918896821142416644533113936863653432114117247791144354537212377611711912624383486711153753988639799698741178317877982257445317167935898895725412289315838458154656135914475895923843325151865229721221547127597781992496371892664774837538178745825864599579645112484237934616178465893859613923151553245595113958327692543743147983395744354547368127261333627325545928333686313113828751112833276657481638258468639414424586813468196969875611463294535873544779688284151511535844286663816274141957252292255628937593774381684677383592615977769318575813851217945174334829596516364744938148732249561943881431157422614417371483249332419452447268328568385323537348589423656362983738556977329944782523788394491674528925745629887949216836265122463254627268947731541123538149275499749455348911144155398192918546319254788587571875494213393136767682149886534511949359478672246815118986628868942866794651675365755543194888673857427762739164539963273551416681421187249155497384691745775322353342165169518236575547925346561885881376235937484838519943588556944161573166794275936929367913595812859155634832433924839421571159244149491884827117571523569564476788727686177687334466512447685352123871477135667183543667435759861148274876432939283539162536513516323799432414431574481532273323844214135276518665993935142374557867169677137873372554168284538215821867579346573538923741183914494471136951598659442616614885334761664358397152185244715184515761737141879674772185555853283668649344311268525633167552761826778693923148881342558392477567925874176379147161126735872516398784282717612398498972557517236894312372131259898776821669272851171297399314293161542597414589585514233153571777721869591948786236547753999965737713652646314817452136425211763334598752371752587689321739886119469144271345483252963834893594439343558583121335321514984234565588733681872883315364652964219657429777753732153579834929339295837794558731844281163364286295776356681453437745741165573182458173631664997572944959486685728535777733213969943447376834396157524396596782686718435917337742483611351828977557389771484156284354468541336971598566514819417842186921943531679536976456397961178771754916164996594948566363369135991391996385935237174799915827416445434962444865663832722293832475896392445711367548629738811946436955188559675238979842523515148742239985842253931814165215728472595483756861253234439949491237276614888464368681124816735837555115482327654411412782364736572872311432176416446615749113759736956987184624368828382282445327812481198551866648465673616237917146145989875538363619869472172775389778565917722172958996992178686463317617277475569358747953712347667317824551996921784478758882436247729174173764633171834612745459921937344591864169943493666191893874517956942247242471636235294482732416118222835963915636246573646777376188271676767228722467722388815513229286752373154281942159849379692698264392495813796992875792661719626135173554733422498857123984945537945389562793831716418616999453146554399467649691341992581424627163582427272231244343382323665379527668375487482715133154419747798444279616455525928133563436194828145196639272563474519743342724437826479385331566917961294265597278725643176121611387295622151777448992297798768777496956951817551459468137814769499873466557292236163964754921948736153616415537132237693984877758344514935576288391159357634288122452754291818648543466228547247383457767757699354499991644367985211977551299224553453416731528839827562471382746869191673614597368924142171134729629675835264891681185392395665427374756263541599518926144489921648923538772721671452945482484438238371247219365311395632861293915742745465381811739292477386576941214549967137299118255873429923923365261853653563368844176177357464988963328563899563969556279826213919321167445281577422938921432721643648471889845577669549582654626881617795678215871624662827177665625384841552927978344415113778339757121175175863686927536784516481283288595179338731472941391848846954893389312974911195123217979574854162982179379378771989676623996313491618535352228126973635734454683653486721832633229471833267525779927478461623834769843148689257258796641682973348323527385299914683245213299513345575293513493869964584793654976322821272311687574821181354531163244351481538275447555579923928242566514556453896641987978269972128667912546736479577255961857948715496549222749685491886869563434862425336491258797675241296538714946467986911679436841969512472766391979559525557132917967194269787774529471815617617384182417365133474419499951629448746875581183229551499483354387942538977175287232371198423759543686383978497119226235967241183452878165994694516918414127926359346942531779229711559841533967881483525592492253297171113398975914355794832147355853862182879469675143425518134628794992278114962374696146859121988387484284571696155648223134922849578886233183697252964266558731667445957266525238424739374936183726211925577988721172999393989162772664221897778675874713881896954129431418176842428787966945531931863793691184315283867551913995961238588596826333418254244343738742599358831453683598892235396261229253935979238576356468898414416339612297111857463998887627958589459568369343179279156717393241974939755678975992786467985388386677542918795284342978575984812477122222181497822117864253544779461473681528211211976391554719746884931972781791876495459728682269462348526585463192527388247342288312153799135344586224837452668488593752654276625136417152228956795959114332974486137732944728396781772114211548139792885157775453419519829863666636714218886421652592484469736387758277946577532662819245197524388995789235976243313225634375693591858671268771992294665973432669754422426294283393547135367323278628651369577715959653968689916667533558416176569424719578458925776822752348885726286932867669925616671714672943551243429164965516173143599593857851182997372833439744173932296861878166784975327282577768988464351156725912532241387963841676992896567957199314242937119256745835471965764785197179788684166637154159534893382999866625931582377683434813131229995665157995222979122591783815784158654353764851742891859228597992755189255648623791776588336926181578594946897966133571494885483439377562231836428674694983421554471226239211743481859347579424761763375285247486361274921852237394521938433179786794195169282811252144876983952421729235233313327412698386471412473485797127339151128836473423661888357967789585485368795946392269985679337284622147917491918935822379193719261374164793784575956274172243168185471758915262757463661875179977425388178695869595762737245123754272878727213142516589392894168475562334943146276834662842247964429542835148666239585778882478819753835338284616565931698844614478742175974334878251329193552898763978365687964889812611856145811116832381175443313474457951432432124251247672812238464169292335336641754411589693539935744967388853817247195154495388751146765648829424132546766393158262747381262914396559136555859555637356352452871425316952336381744568183237394335756441563181254499316529238651125668714912926356266816628473475731581881961685392762433258586958916185971948568634766872729415214892289172927779144631793643942411528435526294197449519772875916167799242869157792542418586975479149153137122891935264912599937931735847648726799216696736728312384777422382862782331913475395333718451468544611743733169688111381215159893354327689775533434451462775655879391948826378591725841827472969778762653278917979464454289365132818963279959647572716224139642823518825619574211371872285138319469341792647957974152269662482327351329474168764169274131267398923944979286952456363765781419319494781698283427944219688617537476744713522744537858815575328964637917259223566151931377719514956736441262518113295323994743237799434359598419728231528893195774695939778518479292244922211676836427375135762771884174385232724445152554939196174481797211281515929154456445852289248859867827217113456171464572575259136727347947283779725262219624626288811514332589461866876748199797588538959218144119697261979948686448233133835236275892887671539173975278461873581859847695657643731247983869116172864624977732994918595781589277364715112873963344183561527535151332831817282425724961811644158989953132759981442847726879174971865178142139163345817474482767744241954155852174654292638695368682576861445442796225386135661537674158182526586117525137684625372576474525273773424836584845262429956217524881131494952325741962847467228597588638812934416583677312913761499141721914353892168777878243362175257347653842946714589393618725249852516789873353692521781543965849889567435661928161937182276759647683436791783577561268385859713571894472538685432447276659621877956373425363816849655219172158853361511927297779634235142257921247287379998655527821424537138242759566355119559342373525327139214149674174138943168311742344353656524829213115211942914948263527168359359551961154345748464695392135961915911925438892636185615618214184575565997776847436986446257665812358736414986729317752465112591625387927295866676451496986945886324114724399757481429998682171691999372789565283324213962168928917844912866375597818294399191781474763857575933613423632631699536892276823314475696859912152814483591172393638287773663857847275424411639792511376443617381997548878932891941958691751568468112888679758742826785859796632442429376141823115672146925577621863779384276566813116697145896872948966272737317618277979449126119885412673314954779367391312812781231387617992367393923942122281293221872471596334626819111238237549527653693125566146946947761495345899249459816519193696463492835314338163142683582741466696877397639435639887946118155625182811562494857734428928823274572652697826291864214985767974321385444135635619839328784461693721254556118569452372241476445697612966565492237363566493145595156251796336448164319859253792117531699322765551972866771941131783642554728173251247814796818866238374645443758762341611289875577314767292466132266227234112557178534253478981287617329711754551393527864642651321141912876322341592266621786716711891976498522571686347314884555434521159911157915538268536979322653667547631331763568321797738883147791354475532777598668321198293962995332774851591345167166886172261683769134283116613318896392418467623635953253793923713232461296867911494618877169439552687696372963912352148844876629777537154349539655857532998569536278883195957812376138118964716413271381884564781383293978258878176114182437716724933229144821627227535767437918392513416897858559212677411199929979391878453397128385125124115992821898533741552389679171471951143212964247382411377284221315328538534947575715621437659671191944787171737296568681344212219394652368339849495353287616717735181216939913853267475135615277666677368158323538275678138644319965581474116458275632434287416392841877387813638182224533353882165942668349612419631872197364469964129954813944885872889516843837238133412696984552638678263454157868197257745289342299816141546122921635418726649848838333475876857829351122784767549373499877562243266278245591334351499376912135331956768218329655583528919112635528293994736679137378277177331663571761133689582218925722543498645712813161918118819272315544317877947243222933713728747382612298872595797881169322195823974983879927587375279282371753148336513494242767374382498473675487938277571645462679719546712331124839476331865822782536196128129482329852827398566698297798518437658442613322167626335995746578234966236558654396938528182538441637348984747167649481288231164936669447719515279116124837933224779713473323739539231624215416882763991322584347351212521952531795984915153586191129261266228376765155549787386387294399829547212717152138647374183413294247768928533624488195593734943356131722474736164764293465758973575545682143638915424661145722168412878172435235566912814476571222397194327638184684764292638759788598819572481748223523685441327256837775812875576827975518539233825582862958414185782232964887168696783886526924581694789257853612279367919592849998265281966226432467147196179969785213388799221367152751357343219629837697519644239394329842143114986746496249662581893785878178466939557972837975164221718695431913948645717415919332491249672662846699171721291122251254291466541198986956965866181915425459993892791285872358866756287622629819177186572687362936544186357227124813358526151333776285798311913384428259763776953651129959941268599314288556151315326211194219858779197932637557978688687997982757755458591246932789448137724888544177836949432691643345116483237535227891734973846169569188411153573343214692875471336344974169326539759299476814835358654159172534598528345925287622477772778721269911644235544394432118265946963853896218651971413412328713497572761382147133154294325185424152237354457159344664985483814318431255589374217562959487668999832946393311521276461388954753535618247568519536153171765248371741555281832773478576541964882855918417388465693449884979367432821652389116664898776274998641723776894794359638496993393956126284863232566438357857277471972599875188243775699385982628625864751258161448797714113254925581754779665798466947457662153592465843899257194687422177262412558141211925724172813899516756891583693595956363444623664148626675825273678294536797143447298854346653818527861548251584183867381735825757443376192138447723431494974448982219817929853534756796983327115335215815871122487966454775485727228617275276415181636193522192793453269676395794866365626615874129335282721289556182542113588971813311462489334832976275322219289419446563485766963471892923931851793249576853538865744845137113972396133716169836319793296896194213715986671554175943352732441741922498965199597989215477511584575614418918847535454881542479727277516486379913446815857985847563113652277268482963547336729455666831146851689785139752213148694186181665724683295958179383142449947993574833142446243971263317199789836218513545168255261481189947839451281434938744169296195988662515524556838713118918627995852812443797371141349131872471955135278537255157171173151297283685212954668173779877171189787856456559814611977944551647416292736281261531537112456419259869832449455497538249274824638595477521454883436349266536888637164715639117359872687229896669365625188999624591668271151716632194692481342691646463467438889899348477481448493929365987666655478294823866714916721399955529846564946233893282763883667128983548842454623842917284531241939264147282554827827545977991193917392929173455136779166764753944763764761185597155861435811284469734199217656342837771351359584456855765539144226893827832689134618175626431742329491174232133474381633264237358287284596618946354326533845468276885134774566982313855938364281757269527864561572766258984492467182933619954182267772579818945643735185988387493169216296188533714113489317846142963571278921281571627637322825912158164856863921872635355546936141836212898188155218643185777371454975144831636246891197565382326612115577549144622522377795836486595933686688831182227887458987546138387844737625746533158956619292129783954716289621936621371289381159354614322173165726733741668763596857377374579151613887952718957632347874321214165443127286971534648334654665171614915514291243696329663939446495775335644668817538485777511148526947591965756417135693343257117592351337792331144583617832532271395437196228322668729512643761889322921632353498379129274449427338529563696836743654661114845667318355414197561725181279663919638553193482947929537534589779541396694922125725667229657425369397856348439891357177932663289118794216959928954649322488796587466677361243937391223462229778413971796711993722743967988855785982942522412674636823511395753259453583723879242824264183658772797854226493426587893211466243492986497837168616485716732354474562281864569331869438992126563818917993348362346179967268714983784374517423456163958765546835192538888511655251445392744326626778646586551975918437591822474859714253896893373115854935163457328732922689826127593884489624445128219367348849698776214174498999829755468242199957557764294993875748274988186172817583913312589852679166775471452191289319547332598484961498532632649579414146375113599538372544597545376789217616956819737771239863399866676237832411474959952837156922688292874914141335239312996688836744931322715748259979278736528183464584655127832728736519159858174433887399172243116666461445243484752471376371672336862895298545791938954672638641326415824568147121725162324188119649211565378869841256477765565428338375881577542566992758294646468384763829664799398464282545181898374455311771699335653796393363189435865832871714267446975292598442726298375236553296773292239164134743561984538736494512625631843216552548881653183433595946131249795848716662879913351645347351238612462927193193328372794428341291246437946345566283453684527536549962666288745352687745185737372267324842795139276841348791527534255539689191927692524383435286592943892699781449479818942448986161349418466499336216999933721436459389225764776386985878151182627545466842318836424991896793955699935617736628151548628187471829622173745396299144994712437419471578742271779684873243366915843988652778635673959373589989473752516662433981275192341238974338377743986273399799922934731144871554832458677645436628981975252216699734481245687238936923447568117989427421778582274675918744554242163894862699716973552326751163278448813963834421666786441357663416387682854285241728343376133273882449624932456427242477161387666799541734967498113148834853627275129192487225126239993378538135636536663275776477367495137949412955512738295732548277681374214398848811529982135843491427746166839719669557659224463415977683266136982945691512848167465233448851438512971831914711457869184877891731737718899369394989887264753816778547326233152449336943226586153797528131226351273766176524228486137839951566583757345796217845537221194251797862676155655348882512521825794578636232686911888938189152639877749442599191178861668663625612485219459347245921975731982343569981814637442833829392379514741648619972715898961898925954228271932828979557354323124519821638629792689443156578779129991963724683842684889546314215114999261628813159537471991212611119925977866972814642631652711711693171766442533976948193153233382589555998241328921729924236554692637135848979762723614127663832975677251947914975335636472654851316922195785181413875512666931141642732399696747923473538121125288351361239783474629952764875372196223235194331591586651937454554265467866289138275731832466811226663348946748666237119355936947583816689264918521322256737321178359817733133975996121572314399124885568751147535146184213522533821476141144686299797927268311591526139134483192861552168988936988689583931129215258465153845433281149321333153567313718981524731745566689783939659928616758921173439976854135991872732417187195437324897291789766839158767575917728917735794679252157923578168821621283752117922226718965861643583512786886576688358154529582749989957534181648463277519457529416492954441415242467218144685525255258573623137163873675834376871286143393595111388544136453931949542761199519547489782316618692445619619559592239296337877646778239299944884185995526394956523336345128415794383743362556297539242544373853272445751815424966969122439724931154527598138434911812144915496481633472184926416486589889328856918236343634165684242211141825415317732183498947269371274355785215877886124997623538555879347767235822333712473625461858873547261642764935261422968943729963678542618991416457542336596472739583643332463897551762221857921968222455571759314371592575367353165398645619649967915142568283499718661932885889478963228927165135882884962349285172372264778362749827312446354769777983261176259131741885498664632439645643147159114181539385648771644286391194994313355373737614677976515515893323547964147796152739379829297529763458762331935297115996795547423648413545627136847225895358188343973326877561143755234668455278475616284839833287591856679297834484191373254453212285643641324661958976291535755753316469582846842738248281654128348885733727489563376184138449263141513774313357584171484227134326466633163287835333369689483714441993288516288691927784732813346335643383891651742411773963185627161487577632615845812217416866563691448991261644125224954539286344368168174146447859244586583117533449136538162736658916554855498731634185971954518318843327767529662879466362713533326547322974831117944578649882113666388484865856649885759637727974682339715289743621295146718414753874734153925287396891572211685762245648831458187667693624672148161533496439237893452713969154861722152584586265499568855861136197292348596193532486351736648347957961719318552699224286749563247933993723568627438835598454667358537798145896538311851785941674427186989468911741725774278224565253741676466439411987394115451875138285722255294382911311845822424333784818227635625755727299331743911389211753324778241959872835136953854829151528332326193265778252536828622673485516915232797592645325987244472912413935914663737348746459785866117381881246528231994448317794383122191113654366455888618376515816114914369694248716466283833213613183518367769539166685857177436635775491277119926573958565297849317856753553444991385131549123944617283438663152179671625526829171778911776872968825976328888885853643791386473154531252941728214476636654272586847853137198898135786341658796369154356854733536993526581459976861185579942285764816564589476952949495478587853343878226963556641579116844538642928639325579233279179653995769851512434879792118894758148513487438571868836937715281974635953685432426399982552958145418783951484535254141285289173623381575513956471774782218296357575422873258795652921139939654291642729135883357458451443398717771952845323447282927959279148826819984315558355456941957852623293981421765579913515599365426545843864838276167416865781213767349514897694218739315883993278782642121771989853783362441657436588689656545529887913237192834372231174738178947647859458631966279186548356148893477413255251857765317232635513749469675188164628157851993453625551598995799962865649539754824478428297566552738281144998289616556254819455628335438628445396831456836861322144666427151689252296778254275478734255869816722831497312528155726231616686348429459979121725295818868425149779794592393363782352138878362238298637655782159375477154989292811653328885189917434148437336526571792589987977691114846578111657726864752447297397571128929873635212676621439158785796687475737247394855887882651138786414875588116482969646692594462191378716526164141894553692947936153824455951454343687847931623238498734238254687845528319372684324196518314661344796516443581912211769581746859318858592759631842896743726391322986844998961833813476757376287386769257933915296433987614222841426331124394822455643313625799849463464783154378632851212682466492636993118525377463573631776316358847247887314149276538595225651433147725455857865417356768222265478149574158745275899565376591846549486782655962349386613142226778617374438824957965525829932517368886227999393979419881874814639327738528456633464442418799152963645496229872127341471259143139474722224191292825862876879272219479682991999182567754321248248175933112111918154737149253976772365566566657553734546452648214439875332886531693936671733444866743365353785753146783645988455938245659838293516173347746561153865321293923264651984657213297374895913394518764751216726124752941431659999775949958521923487582524578466323826721662563691448489736573195376847893949298232961933579778215788357541459172377359517475274632467122157953179794744461887149376976179655952732294531417111147634121186672754863315345946948792914122678843228458862466851719819119265949242985752896581541321231247639543641116295752886917931133686639883894412876954534235137495848736915344431926468672284813496268768273624624249916223594632248193811162422836725236476838152751132137158331883315952424219384486577283915984213696738259987324862661861359679828491396193624199356331365212984732842349612921845467592992289461645668619899773198746835944779833388258937994313176759332618591719525327915235532186918169917978829241831453894913583497387974755678651685863353512731458145499956712779155469611773896618147922673748653179149996375734637438586859613821724713241613166898646222272552534884297267463842715326432567618987485192727111169681223458128816545153124724739788798124735616259653754126577445214115488847363217482882439964475765393176791112748736957954281666185481861969134795481274593457956484578464456735253261599644448867223157383954469775725578821797427613449625951837488746537697337187222273777648477241893452174772593619865539467171141375482757896256122674519216318346764848627232633881149968599413888362123725887256169956894735813638839199587292798783272533924276957747785514674442658791991218783566245674931275428178176286954181713151453569891798595213696115165361394659538517355765935634931466376731573323858424916368751685322884831243437268558283957916446514996199343958693411685474917567856455477663422752729256636272955489936672823987948963515132217656548195276474168943283684895559213812429956351155364522891355254434564558174278693845924158562895241595393719568832234529364443957997426685439393525867783236411299831479722732973569236449179288971197878142238484395849845754549448135828942789198582556921364316118581375552351119245826751169651497535869993193825387851956812851693189877166457876551535224388448646522238863449983946356775618372714936793946733126742418769696767158628711373584258387253912678273144813831287592229934224471187389561743651489511392613949947765711773936965816934185478372936486454646343714296515942867861518243597229481719269553728415355268417929958827732687958788223639469261946637499668343112823265999896999551291255168378469665165145634578587592187824658615119522974211968617616478743584984835122433438378149686459697886378869192344151965723446315994529395315438734828399524144632884813423854636917736686879243339619832927368958621278856769991942824915542436287384169535423497588879212344852579865618158388937793524747122278154614317246137696857211813928733183413236628387861561441633595613844146697425191937172134363734116429979621111213819812237419799331317278288188468248451189959881792497225123859673417416482268237376197589774631761591928134747464163812667139115154935738112756152322488171971474767239941914618831967765752788164776759659919792777553827985899366831785676554622456547235724639213379737372643667211824385647557764737453516772492574892454118875237763123589638885164298599476878555757995967735231549488235713656231721216977389333262973454517229389211797426458764851284435156965885855596131797171988431925521999575833425594192199831923365453381772994444843952924925341675993868158583766961143333856823312598482241416991995238514185324562291424354944133545285583814349468598822295597831258616886321155894785894353926922881479989884473731219533824426584621418395623984995857137478127368398936598686176451963798689316136838466335832467362541489319822394131743135251886939168898769988381245556861948531437115981878687612155642625457489181578654513163266729871425163161917762112326543214182912427723723388488519152352759749882542613849668328323358423376354498558842798538341565316443968487243916175826741687217741136965678869566837582559269943935621178854799372131186192885277628725591869796989186585674281853624173258926624522161537845819161377572373824365462414286667573681348465757173618759157514369618541367732448697552356816322272825951523756425159274853475571763257218463893317224518745283357552262897177397129359132549765411626795493222913747649893758288249728156478558722585463648557361221836563216178237563825769485486578114335822635389471846774212767568972453615933861844419711876631428464614296573556895866834496528463733152789944423988562899442277339543692585825114848838762867591443613859231641925796562548387412672857869823814273829174892633798873568539828146426313593655734611856798579483914635884138519869855515361218598751239542382177161592926945875548651594622737433572563256634187833882233494237474529724476783455543655875397824364236564131266728974552879569785297744146252622529754842777656154827139744796957722295362935421812414467837321993192537628261141381616389821919219461122837931957997626416517437253254346948933733484835565287892927352845647899936428864472142232965938492181973625391636739842837431368466553814233275857631724455472327752131443661935797769194631743327429454719712361936935387342462194148418378394496979387119156345648477385124453149968668573217661397136537863165952827565864539559252794579675179141896273515468473442689636943856926542883328144488555398882175667211487699484822665175863959415235152811649931176683968263294615111382345236344782177893213463953971994427149418515285584739925322212653356386937455884267258668889844168587279824392627232987765649156793311271599751463552236789674153473491458423459694615384232646874113157988223182342878392444931231435113824922256333242385768689723223515815119732946153629476457569798287688651644259411348863628588296964719763277926149826276925734338689565662463966848564145417739687533898124329894539933473245113844133735255233586379625828218482884165471873221748518178999738815211756744945918668556435396167678543195488888633477991428924672325624162848692848637569451816847398683867616899553387232193676314162447998567521749452551818437734876665312953127952216187829582778434964159351946166665345194269911395691525618214779284692928817826485426866676142941219399268859497828495162565769778518524398336928657244299655532472123532344835689494713677129256466619734116574513863139731645271831692992558888964357229283799772631829864643538853565473742697761832727181233917363899153212977959121828831131856145949259336132933914897899875467851765697399482773152821696143827774343963981167362333493896187764177463562556282324543833331995492937283327835957399663795794123216823144826412949886156514825235627929482923915983687138519912473154193374463952118822661652697893281418644929939811875821989767986116869251133913889471468334931632117921924314583439565287671633732424525834373425351778525587659881232614131272597563325752426314327486779886944589812275417937458986654531925363353479999692327215761113114641774999889747969779256356566819775275252125722779693228854435312818222324896154823243128351779851662793282677969272463297265148194273489557342157284493118523322639868722336431248687888739959213987869982525448287975747632543641425313444787696293766428663836866285429797556174331871737819375984434313847453776753816595323891233552736461636312572239561749742876147673645256313415369332395573976743985491929369685627756283471954242671673488447898462979326311634781837165898578314412333953915273254849338275885235447532823339443727659556934456878532613735668831594448922355733675735997453235184528219335897154535914649962478811622543823527859459794589626596458592883934619633593841792342976625893186555398547722791824911472942149683113855627676657946172266379137447632182758324817515722258152785446545719631821651923127732819254897367111182146147339812182995284819621629612226847727825815423813864714675887361933714394636816282462738396822824183412864555164189261189662743951381466891295594418416352415618636662242161529849679214354814666323537523573357225136459739195617948591747962683174698561468929524453326122289485745689626517458783925625633471944382354894538316597948511647639957282461613433182765594668239214822957918351558524174438151152533637327153287948345676582586738882513317425119833399947995557444584815536137918138932621266898346616168752332234936187193572396856451236248362744342141297436911546658262987152484578696348928971536341439235273621378812693389432965198991527868786576525853795881489289241816674211762146316894722631643623289591566669389867239392355697815754698244963847659578592151732197555479865148713649399593655764419845712296966329258197452828358232781991496927842751375567382193262352381972666729846391929138444568586573728281154773864676411756594159311139134411677145664648278473493495288637675377734286993739968117626377135462225533122385361171833459251796918459551788125123195349154223794538473542342754953385381792971223161294338483777915443492589511796825247966233924456686833683752333745432855136461928481748913135498832996498944935773846637948468249338968752144411684357939765569391276941134575633156648513149878996589692948392486149991295282171537486669588637231229239647743696433188137889512523435389953322754162854642582632865483377498654968154497544696872211437175921315211549282542127237271886278398717741569793713425243211637546226971935795965296718828881534145622515184568168638511288339732284434741986883534365383916978186418772769446589915434634219918547314481313951951473644954944687318746666962945173346621124481111874441135229515837399382728728795248131642483965794722783555235738541584532737196468636871393665417456718871589225967445564639269714364141197919485239685946853722148453552242181693441744417688782636771984982141365347678336194247823892299393329743599222829244725185214133454227465386457471752351761163286598243761316142216342396392411961874149169563674316336854185181157441356293459789392885283689695339353972116184913181419767736158973251361958358646786543325818615921956951675438986539661141991383477862928351258682557562549678816682763597512361515351314362131689756985735861821336355771773832795293666242223345871347324596666174449953264387865888418768333721264158454772556935765631452634748153787255291882267629655817271965333838457335551122185555161157579752477218644654753397783787444218456965838294658786445614347667482887469378634411943584817562281477123939792921923362642287496333934236285286377693655764593135327649358676383943196673931232744417422177796979389847938149324653374481158655563446149833854117434662765529965298792575859159882157213754549158827964459344222426146391654558329926441275586628221741795248961961685511958511211374354666552547596946931779681727132496942285933527119176945815518647241348741172672569153543973847459484247344491547452614812175611647961674924167693852322428988952648695196482151335446588377151324183582231335358792449166672793191348459473897576799615271239439453297224414151628579875997931865963785125429472327115693284269656824425856792913513961279695649232572156525715955241257126469483438533274644238642657357893839262924341615917771826551239512418519933882473959931576498439461221192389516619692758397121955966966184925585545619437238113598285682974422856315247859751999817265462793877417821695569558438144579638815545336385732675418191457429199543166683156312832542676316225179464933336756829163221731352867694975297762443358569533567543291598116773817222967829254897926165874441729332328918813382983489866299259172314194885293381528513912736733953343639149367329169341423995378613875868683424328243274472799651836413171312633446553881151115987527713744895139584862877867265915676949328711658135321997623914561143954734788592913192653953298292487859228876156256421615924633762546458135639355775735236578855898522325676691177541853519384773514635193651657491586637654121262634924278233862919562326617623774176483196382482337557918761937433852261687735857482281156147769155169137899374913931935528394289584596264981462654545977897195153482997484529675927515283793287536625263614651131782189367586327778294453728712778876713469982659567793163733899576246482469534469148345517776723236864898732167179883243829372594269448312317914982196476294352666691329441241538646264773117173623654687681643496192379578375537781949718861119599636572398751418593463148238287939567786561591449675788691318991957525152111144981469228258957932573177287271659686597292986677724132748555519467916625713279842343416341781727496967427623517639879484452514143638368921262923789737172323526888594495411483761644341561793471329658189227484457771625785822843897695527356689355327775266349528278629454813638258835331953714622584417887149753534947843223665723243821523487639124717927274654868949981238981782252743461625191894683795483552666841176137546515873142579725981554469863515245622935173144522467792777837352713885492685927263832189762485465744272339729535717894761898444897214336118159529298574553385574284517117822753662518753171428835285885565631895136811197249913429897353815884487976976688579692571316595974213898486153989749896816454831351439377772159934812492836319333376293869953855225354437957869286794971766149652165518282878786345742717211264369728637714672216668738559465782763615384632841416178813748226282432768222395235742622886797315348424236345857229481468927646279811223746321843769895687251867846868932643625891869328943917672357159213465943819741534724582516311221455839111174926487625775396316342814724611912541293779389719332423674144134378387453361232964285452745156564292826152265361768113367671316525716211426932997797924669599152522142173766755424224461319323563666763929494735145471492332577832498681529792294631761783849412641598549418527889945923285135299338172193845523416887195597116839736936229751981578267726417899763255766622698556361123752431397521985537587431867968233356375925813445293835911596498623159441821165574856336385915766962995987983549824436964454829415594983671824795137724158439369717295363344722235995399132867737547953286468669168577479455237869565874428285971827654599911787643111342158655536371729629676431631665679434986413565426374916869824371323691349576927535825391271617737987899756247989462791717777538317997862574262287266236813555376964549586993211835448117242778264627476955276259682472195353967428144649256759617655753367564294997351275749691364738964799919397923949413461395768553922912832523715655882711276932222413585647817462848118935636647878126569149766948749532983557334135671484461845628451538884516798354293638613163817841728177647362781842711816185779642447182617764758728897416962835868665725482856527317947533695182746218747712363972775326676174247767521281316413679291867464767432283181211752927827893437694345453761771735826517377529379513947292267231613262899541468317591121336959119236425359385115655666678273973885425941868269625189647554652838371864839745697915967693157249976952434397747437822572786489386879913432214737429566743361299776676818917481112967439745865632188777468285286371914877443794813678314123532158158425169328619766687988141335948861365187847823371859663786278155172671363934251345192369876671287345251554868872372498375832939753167112387154371519246628712676871581518323559581514165845193579627678488634571532837319818155116763482345582644726336316112511277515538987159411844554254214221861314182785735618854268678889965985384362824374168374129918794293629945126343538365677656436744915988599912365181647292834418798287935835942458412122293534413121812373877813652754773134454655535642828699753938315416841285637182363232116498117557221238691498425727828456267811613626484423354726587232747437488639177418632994442254328949777539436167829918352567897782669312244749421321146382962739885794827381122243256774971933721279562279281395519186563555736734788895793721162979615859421984352931591662768864724298131228533735775641716492863283985997641992479823893432517725913491164953289961241373423284575714729213421316329456687885342713174874215236767681248927451529716293513126682241354236769611582191441652299222247541916976924133167922221932245988879366858259445146246249353831628544139843877379784417332615666519821695971698676916638798263893674733239387145645398166872151327681793611414766285181667863783541419778718175793281356922299533473341119917476694618219337269416731631531268727278898721446476148992953968639447226988822559152842926312175117728316188233137221312923119499262981588412694325355536737766673751718647797217632174646292768924894656424935786894247756832613992357788271548217539215786847136341918725777578332242618282984527618489865623535648697415614155716544419969212756525365825219679223553449459525966471942353329231485727552593988436519744965878715276831979267199559423818385156463945142866556491332592329724359553957932676215237377418379694649933525683293716333963699658913894236693812271693989157192882979473933213429578766561351449545563765975216154828464589513455982266554174677857694941881125414519165352617383142445423524964315299735784522725848289421726146456428786947117682399332382895439851629323823579618531559637251244315227398645495257291153778772282793332175525938647753928785984153366463814316151725826784362566883328598827523584175642858114573694453234975233539873957757194354698811387789931818993676475791158748756515417588378445972541445318172623252999727551847882925445143214428698568213287865956479783894334184939749157734228746713192324732914876879543863637197396426787877164642685861113722341863441127724276244621621982115282424435196313936386257246455754795226615245427946651374898374642153614126558242697624192728982276337638373177246717196377165262895456274471184764463989685191371625332668677133468755524934151912543699556268394168619992316386441799645241979375236235345874516475438833738765278771295682821458889763835791317275185542523668456322514963993699217551612867791323372678867126935679649725473595622888564265867334387158586835396473228544911742159764512985414851262915495467563437887975415799796796225651316449116713243612662149741196225869669239543614769873736846347822677689522783157923285858482173239987839996291782991475314329532429182881489567767614225455498429337425464391966635947472811543465295641169955517111837817861197597969955841491199163653338437976662557941968958854127349271768424679263357233917229843759835667123848964777957678552726597164755938734281786442286347897592856358139448595948246661449199265789582534264657561137261168175434372424739285841843658664451983219341723621194978232977321329538562533785773271993189622742585431573749127435524713774737985418454638639372813272448722428949685146899726916113356227247132989483172944534135358968673275374223529714256458773668316533969371432382596139717163884435631548689618757359239845123455717862639589355979782775176392772548519457472858736982499927183237967711446522384873122923621832628288233873992388699681942934275983714981279317256124118389597986256544561471185686186794753441856499744771778247754224688812897435299666634548113523871752839463982737499753553695972935918954131214743717952221617791281975277387552732427537488156975161478216852124264717545351857343481299774866282552216639514237476485251637245489599142993415142678994157871319258153351472885943831246922943756561694721818392484597178372546983951433412232478627425242285874178199241462588459172696614281577377381225473297115354724231277894622533169468278514974287294873234376582417315965352669478766968385933173884288794768785551936764247444512839688963732375278744257981332413462168331457863636851548561511837933765798475727313356992151143736992469297658488593192197299452151287215861698457657755464219414322832418567381956539156476397637829961796414598149145662181754435429379819268953855392411575826356374255171865159579619666947552188484981976471427278134716362469317796683328359176878249774721641419977289123129686499366747691741636345156447295744769222872854896429834457177649915826194267446188979314112865764245744941785282978818329486851354738121189497685474295233617722284885883733481717136548719469488856345516744614426979849676623487911451925275516293276133684722513537527944494913329822969449589732374176315795917887973927865737955351871431831418116487172544248662749762744675574113629863276131294169234592948348599575781384393699692959144876635563931958377545395381374642293758831935753396834462388653662836728891275495976312439294468541113882897437824444576484629563663749828662333666822451812767813176167713936173663817888843633841435296487885131311189773125417441849477165557587675452744283826891737343787444191645799916297777649372549283582645194884593269823758892819167311619997446652433697476666452173133922645219242491238684329436628919964473387436538496728651112983887234552195657476148893713992171893136336781527121881161458456424636358736777477456352386121653915521383859486221755873584638938579487762619112176563719963755582431185245255352898158154337666798716229643167346142846268925595264775638844677262455951743282697965527392557274317782866174133729361971926642971648824421723184819896888343449513384724785974363233811635967817935495763251485797978841226986688127683897835394181854975563122833689978751279576552848484685777936922785793648384476294553128812312461948192929366974338431392331567449259342366754175826936967994537541465571145342733425921698951614749287171515678719291259144914467465962121467247156962864363699335722723758462257743719225584496857937292947952625985787234473848631341434139389677146649175368112245186589397353956619496923834937444982811435629279129611884176619196277299651567467438496713373162777487342387923654484954279386564291724842524779127513729656392511562856197465376915277941669719766841449185512192699293348229975558482389748838987896121931828364912231193875673352853844936643943156264442998233398582964437721936441875954865975723918251922194637614198474971442522346336536878548948775162185347461882535922765657425819928432167156288588664129859231122864851454963621586987752764766842217152547799756444118274549113333837971741526158459265519529731924711865917412346152612453336327786773353883917513663897239762429986121398698348414684415471411399711839688412252621851377326446315487244975289441325453174617237655278675174917948563778137741484892767164565267993268962734652932186793247553242556442494768851959529734578682646369418873658753695667994763835552492178434298566923593868941585624632554774528299459526421368729271336593944653697558179915776593515164348513772515223113481938379774198859135366777177214217944811129914726232718495115526218579681579849453522351651192512448287234227142383417462561519754663376576281318458184239271254599625273681792446253565482486646597114471541674188435962291763223823159292259566399786885841252443647657762627346293781265279313666321987157762381557673989919166677766469146154198854242132147614361896799315524388693795997647963953512533873391959238617462158342693735812132136949799525631463612884355467558252131973435469611788113548394998291187329754615673473636344744443551282156516973221372996369614859866871412118318345535951819285961546587686317232664968938846342385833582112823889175868653286393786134135217485492878533759279547258552152699138314967132158993526451556615628338733535539329561196142612253986758991543564519518112172276565939838772128468318198395412958441313181282917747646465885988721842949966257839583928497894566649733638234817856146986665121574446698512993677272769315715752186745695685841557623444814488696159598156449585336571751198946441499285838886399747722731514147286295777545165948699763712126735443899644149542392367437638211644824777172915144251893544464517888255852143545941828172527957636441836138272756748544795479133676658151967932515259627154156223768573469153112627588193588198465112447333543714452269517216933343586219454624968163112723415649777387122374659365555736966419375994684721176991455927512142878457616177184664618189748833128854514911628974333932895777177852282582544349652954133599186879188145399522586671973122131517595298727678625372359469652512359779532288848475589434379539543529453461254981438361698531475626652887792988122737896647775246791868538636427599368733589913661657499251793352368249487277434578227122189325549254171897529967677479487418843866164233884761427155882533417572277581777144165869258419639287494142919712928485399938972899539832122873974811239133819198941813924282588757861863954862765745146445493267934919115382546829412156485599383674574111155747678762399658676833289489584157794469588444211784191148196491161496254178499477776781579127214243766264193838596264211911721135399815214586434949258249219312631522942379813396119824734644716756949167947156666647899264534998682478162776342885575489732121868915712778411479925353225327394985555533462418289694925536245444788349576615412372672115629253431265291651182218365565936741974988487442531651376722214777763262919743886841877448658126892197186949228692678421285987466564363856858626784415524112757392727882566228886236777987151671851549676287965577134723327475458392258767362829521983124752287125131996623793644732933397315115517495157226561932114234964354813442946667294186377699984219489722815561289698115774652962819671762317225273974442796882172938993133745262548872941538625817596899162587632428612543414773433992818155797937687842172458791981169863343925683356353497365353259136348639187312847185792326532433957711617348522228797818451594878549519232973185853533467416673536375388485773157498635464932374811328166523738477341766268276555586482944217943776742357264629176695897117792978533666363724529288656457216213156392937298549456211846547266471991983692345371892874318924551539537787821437416582923614959983844612284236867515696855349238311762971292778439887572995818648714791711977718696343533912766546714884771442292824167257424957437815272215424496882516247632364944461579121469148288712454571864219266158293985714673717164141551465161761959439786955651164298244739796782634582976532546855667131919587548877964517551245691494383331873759356797442464814843161383379535568148762897367549846863189932378172846926533385268735922915243941124615268375881554146247649823815276681318896841345747311272553961528648327911923496226234388674626469291882874112724327755592943579488466543843924345918358442678417342885969359774155988713969799423581186811866272669439635484425564452142927634781524475814355881135328429163429372598989313772684216937822154171231128837215363673265756951358361262955764289446552935529644369475579835243177722723364227543481926818333548291371687998752989861441363425335251319998762849735759885927449854985764638712673258126617251135514881242993169473274735449452993262274363568496693166519434632748855271526454923329768692943117892398349765265476332191284494173192835892317643366465473622927337418897917571896423851122223835566244844481469111386397418581927431814152288988116635365122293846936339447335935587913423533826418831864586988427227359582763393184161318996837439163912176395494898839728291924729919196625265544426287996976457347237898324757278785584972595338132621442816423282728115155577379531573644285493654454958316943785723986393733177412687517191368831137566838135755924675373319183185749422124598981446873193991297661682894243141975542741939958625774852156459445888162155959821276451665191834311117312695675683327372879753183283714974439987118735812786983292572859172968669532912189577786833197814891756698789876723491984283853242316756533411962311387515881193222787338667554664682332729618929288711656481747196228499259149147726772419583273794523347239233814581511458776934276418122934214542582537383975382822624816326669728969587774392373545834446892872657595372681828272544977467644788448965124195913156353998643921754539142431922126641939882973946399392325426417979972751937231861778911441982678565738732445439417288222229376222595467591944963671582613539142299625275367554711759819252955163135652177713182257936941935442634297383964172376878552654187251558177474769786474228363672386322138754111989536947764921158669762446837836787362136328422278244377961543111845938669489597391627393357567551133798526565285246876191646489473642493949457869446945917545572735874167913587521114594247774857425729519667418418757271847321163424465239969719575283266998983325642963859728755364589167865276639735119981745362519316982498952923423311374891849859357486382473714934852329212177913741379495666159534555575773472646772692267752584838375842178332718967973647686868696268264187266943739992649236995491327726332935187976139142632971182843476468976763375368421426535618845482277744969576317458981452234762778542747674115839628753765121398132215863363745696461637139257951161656873145515252124736641336442497874188639935145327872994437655243631473275678299886965296852474726654971337236113698918692738111765152174786386556446196378267133537644913631375728428844651354616368768831958321252935489424784211166948932853777869398239597917823496288373549325344956995585256495894729873894317592181538953572962234121389619359457419294542727749249267117142876517426768831514426322933636712453984569452482723444536787257482571826851988159284636194818547784766441338233241493991471234882367892824636941988177215226514631318499753346334142752264714176286835899923634937191216677983482174553354517919618628385864291298552776127616566427245731941151794961563233778311124586569564433728874986254874875232878624157338295582296583761272459211515238947386594141417423657567526138722449878382422953217753493996766819797515546631841525844133698178147687141694677728282594844551344113625765132613411569844298332522782358642691832877752169872933191215177226219385951166934225425446842544253172676572274485827351744997393618756313419746328943126424144294159679829684315999381822225643958915886754964463491462583956241921498953259695734669718182795787736511835774155419471378437995667118181648853492448355188778334944742795571628742676275142774967421489936997761827435829985381822869652341916987739291988516596673547769751347919828817657396843196752626649339211181745454947246711962426358368376331876268873452337578112828645377345851738953186733633714568985628193165849147611862132588376747546732226929761656859997724387139693693393269233818697468786478437696815222134414272818676214946695286697899149555635482913495845452921689693436998437636755339774855824763916695447189663185942316897273462922465263917325718839418114349431476981282913474166186897211134272669776756184488196665364377675741697272889228816562988415173545595213389292972537725555951295634154272291388441192546931139593796224332359192991145736649687767477689824713812825388851798565291869749119391482811684654599929885759651588626796654118458338226782646595446926571781615337248816958697142633279256296538242922526476169222438343841493316498448165571473514338412559879499233139576514754286937172947876799982837388653961653248433929689577559277933238283397231422471217861878652774571819522453689599275252917174421491342486635574592916195693834973917134797245483563163623715292481194563276623868164316476985124123468575135421227646174652163454581447759371381934642997192447685628382318236339673762361494953425242353275687544629745874278419723948244613247698572148455375256439243593726476233236971388793436259599761397911223718847626849453492367386976987267931582275919248354972668256971653711727317221945343498214799755926197726438422845164874244298699198658381922215522988413713562569334263154354715993732913258285217523737152423812175375579398718458621324456636734249686515275929761792227771443656515245652142928986198866799965614128474677868555264141628514865256993349925671186591451392776192681815796363272819755873939548617687157673888869843319593446395853657214482267141461311454963547793412749955648774794748144487256395578453817764233697419748343972527353542218522762391365987284425139273472233398338453752578819311228356468687418254428564344163275999546315855769191745268474781279234743126582481454879716174191113386677335473518894754362561551787245968415745524888215359395364187563414866318686495811739364662327557822552399848429383217674695348121164384266887726937683942375277373691916695465958515899936443961329311859385879629297188723117138958944762348299119617578878471255147323446254254924661447274188583324548153567858315348955354192322666371626391111535238653952174241666628147148272693557733939344398951664367174143477959242266474368323648346659977671683818355781423777691255142698647918742299339516155169563621585275848157971929525121876238275572165751557448389772668379986443649114158882729687744459457981354154468236398255828254198776791195439333952677167863352927697696137951236394888564789871631388781575678396675431798675637755532578934864411843812568922786238375178543773856125271173231743569966799976241642249355568622877762231116721673797611156718874549662662323271458119114684461615559625745953987787687945371431786748111695883552219814431463531194794854332577787667889724967965334718931987645389178849335921443813686684446775761544466957992361529177411966542575822496185211262158797884527564146265764184198294163741272837339736212519817737133396213375996859379539411273864184513739229895721663513629796184444616526385766723173424383892234685146665139712918149567646768216618165667537626429365838593314954761127869421153968451299529795171172658589574779594512553422837824188836784951899249384525697489787561237533412324242694153779757494416248388319724963378545319139478973699439391787914647177971716513763694633581371534331928899448613762224372398341673655534367928294495722851673749994546863553462891362445313665655997673727163232258382822987543932688851556768873611873861513716853748783359245494462658698967453726574718611141476641389175829199636916766761797451379176567466328818574258127742768576132768388279926339132895961827539695434232933555467546933913764623245657649984328972564664839399593868621599822717854329692529469755415564346416291413462493448313733378712342849989225355688417581718678692786664675119667388136116853612888445893393247875767377852123399133592721934611186793488699718611959911913453451121358117967737713694593737162163187886573335995254593675371466764452197321719224554729256282758183292933993814359629544262436235553635824115439382244559682214649992564874216225338673632751214113149515835446868625978933153442755695178512186857334127221564528187683433431915737139641686947735483724856946418199963921523386723884377861481191976267297515977255571246375474462886615346833448984118726243678656216649212554242641513927364129729372293237641894933234849341212139238451125194487719172996915217131966957467715464262361852361173168664399868395691737812847844149895224919837387359929983776179968469858642468983874773949446331977842795831628895263465299811917592761242293973479614233994184733788792811296444394615995392664933692782891334763114513922287561729997176198473664824116224779741631327837763829399719211587351413435117662953872732742771414544765166732826293365539697636979245742324594914348781659293889712386326755246469336391219387257364995568973519423141159987692338617153959298139344339227877119751465759679472494717728496995961896361226153292562333162651136115642664258477524635839984987587152316522467917361743741139778573593144179769585449712714671417557751256922869414374433689739474948853555639469685928377249167561345578931977735325232855751496429777661646328749243427892921552529274238748512526668347529573714521932696436678334266898645916358231389932598331636315168558164976815798937759712332737671587764454923614469341563645293331916351632892238261216459878112192635688767881687616342128828927979537412181248717421432213994691553283391494174896828948238487541759877816292581153856659497949194971661271327323596151879673582879834842863695733438425372521697589863958397679993735261413363919885189898555444616123152377567455853833577112462953257375121754348511758458594589895523834888311262226961799257136578659948768864885472551455157684458342118985363791845779374833267982292989415674657134841334539238347445375842397999374495648551375818435718927616543862335171186577319781672333876153374781788436165144191213489985213579548381877479668679817716226464398136113749615463353133543277517311791965825352476668822228978697667752234758796452133245922771436992214568346871974287588755677277487733556132229537286949417235753425658152363225832426465977452673937843978289662794329726451518711485671487344412834696322362932169436454177417678947568585787874716241647278926729565323789567927441595221113584439851218264745489529839831278429394315219574921862744726643584413742242299481566629982545882222395599528455581942839983371572691241191845273366449248574621771774682655172387922845682843919977335489986115797861329493693678312749537227586173194943182348268322264875524931239422621745669481597974425726728759911975431378327914244615386141931928541466287878291652179673665665499445963649368424521477634289639553958122157878239267829227289135319921124792614529191923621623133924825393444684592583854795917299581999334582841988352532911738576574496745727715529673672745572128567129591361713761826179537638364176824839919375266873725377213599181474465371797373654171782141938975311728887514768265343336329116546697475126482218721943565374828478115616255375135928364689162798598959663189582883617165962142891784531848776853123729216429417475837891566142433794524255985622194673628232364534886281778221329676838659685137515933189891823871453197865467117599897777869136969358144581279839718466142834439344148576594566535371884966398232636573922367719236314691239941213749131157736758377736658542463636529523186749476238882735861233674425732396233756534696273284341682154273885159592859556765187155249666735339268253298864262965379225796118914739948613938124641553823533314775659421693594867812293454575842416348397547723393412646973466596128747571252571711864452586136636419167271218278354689736439882523528125144951685142815547325567719412725291367751941374816442192831912322358114986113593936135217318539754443642342571773285696425167933356529743871946265623254759452576137989277151766127331795639777378877873488553955687646217175792589256594338533991654263969438585499938352114393268564858772438957849665765284418354539496537333996952436755285819351289822554744328451135534824749767748883356577323414856237691576148936242788528649123546296243746637241329959713615847566979243696418539434395654948774361284443974726657977442745593838846279556836381188623785244416288615541112641737598767279529128887422422576558297163671521422398931152218652461156424464416624517513623477514629351685136687137677847174724985819868461829522268851547828216796683428519451456241375955776346993244983817853455582866443866456668947236921156483568292387921487372884464478926263972111681738445433769196886593898988857939654295461371857417676564348931896295622647533362828565887679658267628773424649832666144891765572242918251513575531235614679226331429244184432874886236583593926957971387611697975698346486777372967986646695392751465193561297372169524173592666712292448456173379231437676732392419534368956273184936783355574614556882667174372664232456893243687175231837254321632767345568617313735718414734796952676131882611873342183455723418556967145195172496693738319539385871474982498526976348968812828316344631868591297732526496588317942284369219238889941561118848422549876687598276169215116988721864841598147854459469769257139115488337121694949965742766558368787528221189583468743817453277146686517525563789553743477684398757496147673951716979217865383147776389147322382877888473991295862599483114333329197834122121516755682783216337346818329431379934392451769293816387118831867751288324279297468976676459436111127848165984719416954588421921812675481978248168663819641632613779217384197793568748692764825982891619918687843696465529992489577638428266949198643185174113959692442358953753615824319529714564697832625781949411742683553898258931182659543474446694749138854646644789633869214762136928613966619976748915925299492974844228779567131922413722759857221633499445946937167338493477989942271994487989675397146463152945252142461167825455157683787982385589626622313737132779957734862411362822932294816972877649925155172152355354644221497141942346754859974498762263213897889914687962858297963179289569147936385971156954641936854798592284722399314888352245719288147246526746565744568672153161754567929573128583838695819995879326816754955793875644124913499411991555941311587951452752981822819965458478426122155239328419479375719446268769765377217937975792361294719475442768378172868337353362732759283258985883868771415541792967775981778266442199239683552756523911968784417527429367523686237527514371611352883818551718321962612948998923291482335385126923173266855656856983995424825515613918593956531128317748129559119219957242775777597371262126917836622424691277726452458459151622383335673688351984218144857819937268536894728716227811295875768484246725986866467957166443919746151632929595231824528262443326812864965814226297547354587718498684968449761371814648886557286943339254128245135478266891529113434349541445747374288668719691733266119143517134442297167127989296795697948541874993798489187187565924717661647947395934941749385786266712865557267561954927745212727397463817623269354644218638899537373553293428344686117869658491218452552893726175574361114853963697853931292798246661562956242511184367376545458825962156679729727253871424759631126131677557429234392332797648541243299854586588918949218763626521739613161618398183983758919552424384579531368267455629419455486713159993937843467838869783232682996896978661897579345124325484572259747513581227142643875213559654638467615636449684859479524589842667438779414371645462424761554611332119149365228765887263216577581681485311832797276882192747486444472712774843551138238292829453781859126491645648459268351285453337338967921375129935749757292424146833514532122824488354152294587268418661653744272896192299457153984748714187494563172181935649927382162459288533731848831384375193198333242874247229992929246735944766971156471982871962885447841216893797443431518494571925698727387466199332482221468568137788516142732564691792738584376844684297369425673752825662188662931349975896364537628185183849132955841429946389941748246329322417781822816434327379294734645776554535515147468995995277621198542874435838564353742258811819563749162454299514788983652542487641556681999851317995251414542216249898997771792492816846389398713782461147226455445127636565445614849844664288721223985532864334518492757165836837125667743156516344418124596189881345918324863487828629968566344368848678845283954716693448863397172838722139424774333566343562267349111314245513835179694849856678588618832362544942812275269616454214986123265559639756152923557877266857972527579443948239375962787263858199636561854577585971148654838637581226292647396873876632915867524536155198836393679232432718368791215614586126463375417677393262282642988679216323763519239434552515682549458871247487389223656796254498243129133659488318554123638157879162863238166886631842294888565551546859655233786768878356112457491175949451739284171785385529258356749673635553859837465816612527182848112545739692437897567619417581299344815774917696342992732579487411782168559117649828992138976627776872626427179951849843631291957434585136724629793686848767742475824335997368237485168834597745117349839456267815411283532395796439412347753433862861223331711442373595169312587774774917977912248377873813959726183473279869982728495665769731338566672668455526454911475347368124582736461822456746763286813794151223749729854428884192783942256256531483377798586886153237352866527546662342178756251554378355915658314447544398823867285911491854674917541969751837655145174958395794458445399482145549955331169438863695125953167692485927814855632781291676871531568159849114677745653721497449485289153154429983548718837461419837733137368365518388161716836618371463199816366175781761433983729746154945571268546512543742992976472775211226979521664947137315952127438541147989145538231952335526268993996694597939651745767219824794993552891583358421886516486846135489559517833663652392739414827444388248921177332452534455736469688511383488912246388723195522489228347474364477986757956417455367271726142478167633327856591126623585187324231882914687346347899946454276587465655824647252839634368666113859394885248853834895211876586869789157569445537995516582239795653557213146487187426175276146591756366669198896447134542145684748273828728598141744987192568823548829682541234317695393338199353135183236339658397726147857762164562773496251171742245928785891247224544168165227242643411889893523867372977488183246486464343684879596683311228432961696829288456394752173983725911959541458383712287274472643134119953997726986294819246319511822716895566953663842756376226217266755391796142216481127639148865338767736239451899899552465231564338192623558547326361496819964486386356692454176692632212117336964478137173579138281392392135529957669476612524332351479673934919574419861112334457585433634924769191976985918343181524785167332332329716315139236278545931663786797578198691523131864357412769248985784543674985961385835981813782258512868246742759332639699967963722887712364539442593453348934296374144278611544693938252933442869263579339474722914727711934229945382214141513693964633736147939458668971911169355617871474256291846533623628542993779715921529513255316567311499765635226178137332662317937877743285717224925637792812595282754163623243533186754835174581664961322535877175641133539777734238259392669366831732964731413725639547714741323285379653683854316259821373394511837882138314644258241158387638721487591422784199992897635387157986635657724123993182744262755542115469121422611718971287362615894349241273433413299317823983462885698716848278476396986275399577837787271186724343831546976812695363981978559973365399875566625142448436182977383712699135587181123955563659377648786789348946846242786941877621389857779453936659717399366926155839596431734387168776713295898371229762725143748515275484963681692466638132315955563999385643592747399992122527163252279534883946666565766917612726823875153346992458824523263434814172586719498544326566872113484881848428347189411857444543862159134974788496326312944386663777689965334152673294298516172348895792334528674983392932538663452921243484251548867159293967213393417645169112897693511717526655985548144854133782822982633286664127811394586855946234377584231542223231589274577278515253566599612834873789145753592117352912873854332499414768927227843923119494816855885161752562245547647576847323799295179226339762436273656378447456853854376242375872146673516241734999326839157534537194334837819288111792696339682489713194874783594452622344292349311428895362492747818932352565396336125539779733422215338575994526126579436398539749163819398641143779511131874837844934853796899166816919195478943444729997577474954654563989884917479377114759945389734922889381927743544727711239282584662689572245579759438542459587853911966179517472224168292141726916881587438165276682491594655145623762593288615363482431785288549815854262923537666798855363127997482717988232886465141656857646374453932843832567962825419963689925228282574719515586126922369349669388434795644192692384418323288225958337682979948256496318635446821652419596491125654274935459942995135964613613168475767313195185597994354523829546913623922429868558982223594346946117388521595351137259498623316815643484423847831645574335465945489627957339913965493715349832469322815637627713342413846728854865956598259928242373457938812298692232855747551778123615485684343555639294958925616876494852285439993812296877337825544728935578466757755442174865297678462919745319985427534898227974811991854284272513254534456143433522486814221261585838352766997258476867378494331713537793383916844438155874396376538397525716378611515992322739481199759319846717748247368441268377253983866526281894529353378196811918393844443432773698825623393292919283627768835185865327545764954762123798671188464975528184467744846294962958794171532339664437612212596581458666628751616947798717857315331296756421579163732492277817339348913655591587768818125795437361162315765794468348949419833558654684258638874787481422414559494763977839515864612653673137867333439111152647888954211413199712954865959993781665885814123972166343727626894851337718128315512235317868537822835516316227677779299775627398572932551253729476386262614342289371425521791738366781942275474391442874954916632318392517155385317594978369833953882923727245665414812626599784952943314927384814283245883752146149451743469741158472859123226728664636852836741676751662973545419662257439912958524679656999328285481132822116957294958557379296725616897997581281586439166975446816486175633742689232236714257727356954415778737659851431734595321824244621583147933165147486818888293643581895586772275823412288997252488466815582799271311428317911959785466813972978987938748428524382827497793789678379243975825254234964623891757574487684155569873168429698663311548285681136994219851799656976938747385387877286161149195573264947555173751377974976875422538821565963328254939316993424556246373878191714196127615836372895521698496466765366926417935194546695334959426943435964666176518177499884826399542838394811341247876753234654696778597887811824492966378543882569318196776757197184791554742986827616173647445954323468632739399949557711444937269595448419348342286856879162877736259989723546643237715621897661175954935177732944614175154819816311683198752945396693198477358877835134998282619159468285919687379862262969929934869777267216842728934119912894279146751462945117799191181269677471946181274775343342349365312959142541557923346669773698128213116349294885128764631981681511691215134412823688931129176226375396798138319566368469276778416834482295115851586412327995725217545755255549577118239938489899543928422865722423235127754734777967718985355597719291775257424121781578993443213113989584235536584441339574773984171129431863412754867724992278585686428414544719195757145263991558281821274635433997591115315359257239255518852231889881491925839443366816691793679667587578952885111789347397664629378915718897397355188818674926842633993762489115523493259551134176374551689699931261575428421728455891858616699515562993834815639219284953592453797997279551913823631925254489568257954818898169332323737255191824619888666453374496668374774655115993759384511951526344711174565153427245576571512144394391646141462985433978929122442751714327343532963159951852984169131452274427494719693677776261173117224555285555394561347764761961781135543987417763886552727724771773327515245719187732813574842928249789293564562234314551834916729697516852198211531874866346818767426981291911964931326849529385927515614614699983913497447365856495966436885674964393835651135665141672349716992312594148149586999966179949448668716111814763342246733626669425285886966341565678241412967998427994489913947514227367553242962752988978172812132856581795891155253939746726938993641719198194517711774245826625879849848657998668635958421982559442316269859615476959792688834667897394388148584179137295177433192731958762511817719428825667856138123989239128789621593968644246947336149941729689729124877281784517219194175933894795172791777217727726123595784144531699676386157638249588855359692662528146631483116954747363122376437231783712113616979715816133664376344514625864562431822323468885428768129516941174245265511389721686488348832938342657297325297244873695377479393358167789297992378427955592521746542119938627844676461819951934577688571342914361996967953945383149786619791126114699484677195388256716675676276545473839448867782252819276784337774946871766424548629636284527283565252227758192863725333664372437852164638438524774196362678722495689953884535893292638885656786255248326768248448619388743412836349179645558373133159824154247761567429974791893198171374787443497938935284363672467394763496635437228647963229245974449579932464175938523735649946368215996132538821672944398181616425825537669452598681919627677118679921676621659417417467915624572473439181945786526152842214669786938926919486127622716826171159642433923861562223382853461574437569869145171282418684839876328964849733239248387246438316826612985958162175893516147966448998296781486493862111624399944743552219257786971182243563556729964164978646333321444688734394199496882655377599533881663183382321718974491149983161126413641753634539758752549744756376649695848299264929173956329847591449933642547839735829542435274217189353517189953544478429836146845769999696691734169811773486968434413273722883189968946374779512833148311498686572476883368317381684315433192548765254489299837875215537746889656162598317289856266619482161935542672512229195621372218415397851918948269158429546546476894578668362266972823756399837416853519434441137317572192983624388648462814817527374474561831159993747828218859576813258139245125298971799574421191215117129522832729687634165174184684284235417578336188485881298446664966517244866564282559667491966463192695982527835981836675751395584654231382965453436982457375824278482419695139372869995631292598446486435748765841729182289339163619233616461844815713831844759919832181727711181552833717172963855963124784781746818189796983167553744112379443913821689266473126381579617549741911178884521622339286246881863764851647189151263182614382368534828872669565581788848276382145325192248284632599463279817891322831955663925174119226285864996168153518711116496327835322719316111352121131669282864385444454955989981982958966142479893348634121918197391986589725695729671881971771389377835786344716663642628784712648311789292672237581543229681744564632451518629368312523471444789143366316168983612753189933399393518138644423683767165157386314555457221642791977673177795415858284994948227224871187765286561478676961782493679668333742387215971667634653918875687862178699185231873348539425974559647496313725893127869681276431485135554726315416292151967611747239673145565115613717814563545258295499945345796176756112345868568117891425784381866375488865621521219231618137193639168844314456566478449242941283179863284528154691424436529547744629927269965323365587228162745296197813817229434783494391464784392973142863816284432752778956374462676861931548889153211895422768825391474438215199399278721895676194132454264663583491362241796215616842347613951289215338387817277851965635829838748269186757473157244695186978732457344929645851563923421117781825548839784378234515847947514585838612571897698958522194755283675445682569129824755754218637785338686732643523878352763524392614461944197358636361536678197366593687987621474991143619498124773942631282338727621879719411768961213121244914665642592442517213313524548828374737886139368978299441794585413675353865689577486331419656186332767943599447176698638583291624898593732765472932684542641612882739983159685878946279433492579541549645593179762388222349596441484457796184859186887821869493441775454152337124713484469399633699934338341152422548984913856115998329954948169123812392576176564386289673469471752771836444989417835782128945919976969693971812583961152745126913698656754834861157151214625326575239814176461565169171542963419933993319745881486394448433773755834964937415444964397949315669143448731561184589728421231786789823685641549987758588692679238218377821774652426165934181993793528391276641772478861258257426667587594157124351226232846577134871431835635959152663656293996264315387749334239375539157447163384812575497819635178984617223531921158586367128625592763384536417412351877488348788954372523263813927114652376244938355496692973364164517644256549264693353558665151391154368912827286412555411915944949375275357966516751182172655148965472996683143796894811965568454881978537649818477857854419233521598451924894631416181422234565625449449738181121639751862218668993826798596597558324399429265964245713552199845666986827833328531911245444417863561142614825678768772215646322557551621993559325173283646267393956917816252172588797951666286379961651255453511379163129637264248213237753994931736137989694918728131796185368341844532381771552354323821446369243595633691744868398589524141964314765924986363182839882184188598764255433158346428496494782541396511143347161693521159428452571131144367862932273278228964292194198424918292318636347142542651149779979888919852375987241385298265161149839794732231833952479375789874755615987198181476422338815883157518816625423549971114874442757487277738259313289298486839993532238991715535734653492963851284315194164515988334562666841959269769156596194826263228791794719675581131638918515627495474834892358352213193933394843478851231254188198496689899282429394316321638438267814794622754664993525686428334915474734898355544885343984796176513874364188632919423611979586137314739146788967999259247184786396768662349925714629623329688227773648651653912373234454313923781143797853943269372616136327585588857641735941867937539251819356132774847229396998641456536462963241524145165644398444986523618922963265769214543376664225386166252467934834277414959471798314828963745927445175479396475185467262434825658155572419847445871486528819463277615645638262648786327998844149891254616423586343864653336639618533882534672195371626958411361192289422777886313374858597623522641672758436956173548396158399553511685426112728963682375915859191168499119279855123241631115915119748658554449841154215125615995869624479613587582792313752342827788115974223751839159224357429187996373784869842736658182724612391828187472255428983779841292421493189626849362159426299319449468676546111945141961589511353289936678379252766652689631655872774322147952218772841813768246312634636321532498572542716619139293555187249467114358427978962979124623245161871284936622417595597958161466553561843314554382731316212257782927112331575883956186586619378579271283249628823421968528455282287216339289971212297938763281399198522448335435553256912138158947799832664196641854435547442236794577733942585578892345178181641187769943182538418542938736789688353256454696337169252934493351275389923473895692426618946162177514485723992451492152845452558117546116316441589684668212247856699191721354382349796415529213753652732746174287256687247957322587549723329737442991514397938166829681821783416696646975767563144993183151381959424911565211415794992297336219241539575174215584963283795225238172137425836373778177255767279977988729292729985772396852568466953833843813791268397873928753257539793973242257185663854727932764642839143268956523696168759826369453365572466116266852526417134167283749775376971556618249841147854137194531927163713636519613298599288631621337598749289231348187995757719831479144951963986785484848528599525428623799997656993377138866627258911371268823322548241826477282183999926787918162975965583211397597587956757553649125663883992551388183647482644555912288467522649456611248382646126234969621774698358371998251753264551591577935751576564488453678933863919592167913559977622968769856145985189779934811562668423397891388686663645835971147867197767695453819163545942145711418165633257447344587981184564594389752956599323672359468694153482345431189822277313338297512739763316315285392932255864613885741961589917537628833229579857322317365256997569331643589464174115839354832586319473621566864364647552734872512448689635319625178724886264323446195157577448945796175781992336845331978521414974571948937151633956934685715192348332125729762956548815366765898629722292277363716586122678157918879999295811971538238396299881677665464854842884796534143921977533969353636714164516829211287839125958391861267517187997915697599983713789785335134723413972611518768135993436928289539616867716582274764996487295147918583254692828274673191729323913769974243314131477787758779969235222534765157194862436283978881391433717313812387428927224992931863243862153261892684314693674661863158253478458627846295552827894288114259195856531149584775453762563877766249882785643899335611865141717221299267739919833383267769729442542368139929892929135899861614848164766757526628631199965934418295671135776447198197983486725535982984462995694413192438919552949938454443893243442474364217382384928452631743966113428748566585985629762845132742174846683231528178155228732894891274732944195791684116878947336442724826216785743243721414236661832113733291664878149989393958921232493622777145858746775968769662781951227921495278645131895862939934145626755263925438417983975866359722386782974525356143349726441392339997175336849333666527141171292179887218683615861422126122939247115825783844439351562964166978779251618881233167294389695182958863824593694819619948886384588365535885155334395188776414743568912589975317736134991539993259949987974385157669959992881195988786573811395151846735813822299177624795824329493866356627646554395673154485324511144686251895125482777125656996999448962141543979147658113691299234839933166264958613413661681593875766963568863533763818966924211576262418284436691882777469778726432472289523173261227953728699123258476427625839732426587455356572397829581962834966524248773428538221168163245642283696363593436257254958162625743981526765997512226491316468841948188654154794815445465112885878666531935214694137464964942428275617611129578871626912286436343794463464411278239829948561184363698935374472294275978724822257426299625953162468865646918123753373224618815159846388879681856173484654544839822439227175159656885249682975855198919617922876454757616893378776567517198175718184744314531297842473182899259156529849282212874912319488393197748632539759836235446374993213875647789654436157572198487618785247815779922515252261189659426739411868768899215439428373114785725791556326346678611537638995456925961592115673533475238927463144439478578145388524136827553657989826674477995657159632376641228111657995684158743795733475397296252942398794567836498526155653268442471349585256886637231686893547674686535151738281893941531663239697241635698415485678729686819857461434982723351717568526216971726869156327541411157898518115177752556177621752666346186876383147182789549515669273781468885189897964898747293119378493181698566252639394112323338968266234971585538567757977291176783395782649282937612398117195763193561733641734583513493111487786932814267338576836155255383951644633148652497978574888427623676847239974123719656845777437584966688576867237183766232755512818465212688391998264676852291471216616874693682486754328447564574945523971239357821243985622968353814991913727418523819361456271442731829982732582753677612238372454525424576614887944795827744877339759116667845638996478142528241115915561343686484122734875788778279625748996525936198475942799616577831729372753342178573633592239822873619773917114951114253475347424685442731432725735151486811443899233496539591972577514275127296129467999848844181631938448258761515394178951358421414257152838778297513298223153183397192364941759399618429624822251859165467432369219152922383517582488823644779789685675814155893931722965332219257624194518887171141136559778584245655895782478482484148996854267723192568686434662855745328734485694649598139385579944464227655115478417119147574467794116662271517348849842679915674984659667616339123995143833491788233198748371273452955248576535348546321146253497472985621374798643263166671818646724276292561324439635292172934696892412657679112954463579662911581631885552543537964211266357496367346789933285871189196621259776499968851269655554452914937995643438313339183638873163564353616758669891898251847143398713953436283171159854847642879539825967675773776662146799766628591986643119387852146514571142889978432632658343436986433335513599332384549452685273715937578626648665918844983491671163799551194869451333621861826821989934134429354366427513584155253155558889724139772412558854368574127895766178135265219194429366667246722328121426847846278193749363834156856888472155662461745561843238723392138233698835997453326638381618612534693476954788929572419361232364723168564922724651692626638753925111965447517862731882544298581991996429169745827895948348197186976617414467948627211924733339936577226563246997716698961293296744454999223612472921726735143526841249151311447538699271765915689513516437471133873698765255593543682335961963359418183587946271439652948934248288997345938645577432525327632548327841333185532264325836498532353946968176618624955528967711835128614411952723227769554234297688449779774846166723667179587246979846723296782463619326154768354148719938697732983893497664388792552545283855943222451216445224368511829294787898942943686197423253344253511281173377525923655869183387547656553868511992357632539767419275628895755644758412555439171186547426781354528449584926823739363895572596847681448729392563599678125364847595538399228265593469271696971728262979882618158375291259846817633629698758652379788713687358911272231995659866735595863577368285487376831616278738113349165883321947521481918861569784681168389374926953953738774653911915723759152547742913761135325314786951845988551641926928449859327912185563318362364844587573484183172627838664779154412248387674981932614468836739959164881548836828978324296658543458737771444925712633842486249474336813847147517771953192694549853433626321962737722121171424499632893425411474155346243273513365444774215242555978582798148364717174584898953438286345148855225822159538223455373897399175596877182935746971597776385393743328926117572168217874512121394515297817554669461157397599527858477957592846773777416945876662488173622716464541279863351796834631883862498752767544857837499762731126255928194837222883522497559551966457365648349437669817553497583937743297121952618588233361999291854263855858918847549875865773757264449723622496159826492767142748173954195334737629258325927282988273472894267939844675166775953768816975392184966323738415889155835422842858135766938757245239722253436411314789372157779293263277599149261539356462138957253578227122937978894439431234848186887588681376246579322434718515274732688595218745676797267826434696853612123986433812527398931291765935235313845125266885667776652144556177359862477955422188653756111617423398425219641648493667167237859287839449483456285442257951646444226158977311738372486181133576887482279881963789827425428775343171198166153322193834376242565853861667352573673866292795759234419574299355593888396456831843284931449265614881511244616681988381323228679967117921371949927835856168826821511292238331123884369855747237278287391222123492726612265777594312932943154383454914119586235556648632836253487777978925527972525387461175493178765566918794856374119916346633419844545394678314615595128572811695137457715635974433935872852811313157727279776118491877952942962266837555411112841827412495691716388133562663647617357587845826554357513659912563397835529111644959618854755781199782243142996482251136489868868735949242422859974976624599375947539443575569456844485743659154786629867312256829258521765779937598475114238791515466342898681448275675186855716231664743492435342718297772343846911374523665178249157734867141632658119365761685489252547351313478267183459427855769913736756973789477623555138414315567231737185923674938332263683148642614311882149432263369528711564525854833146978183328369939975337712285387884683824749633529152722831359937385666939992244138218481415397935382985864977381999838868487169698795272468285175157733561256115874489435334831235897143157567144373314726198121489193288944647164284566165855894783912795158744162417912587975433633792297962366496286224821353515774983568694243649362743667916473761917766169233158322577267794951151726312224429241387183761256251211731842373286213812178182687617669653669877488667855553622371937881157834662336192447618745738416599283548561269494154828399239678676921776692521825296935837795553254211769799672291793275945499513823888748716725784911514833784165342926777248627917957321698885319519166781641331925747796674194944831517461474574948617164464856239279895842188572332937463747359266146528626574595697323586212226639161933669819467199347958169611527628764754689388322916711561513163848113562399121219761625766862135845282319121231197157522197399783291212123225223717569678386244563562673784294475212977785319744889156435644179681677345765538827721453715112169136659125578358839954234634721733387288635449231226547819371344562278942465288291644423349463698615598634242951923355578413663423873534847133925349786526672914281432725418719123982533199179587411682222891793181123321237165896854166245314612613835847643132626122745256515766947431174376447947111625176532225858845273896499199152567921221786569885265794513598743544454523169958554912362621475638962413698583247438664725853324919239488237441184849211786896386299937849573689873783741339857566468943891948924292455388273828445348417411293612736264879151994317247877887146299725193997985426928696475978688558957246835365856795333729567322116719492827492952484746583214313884712883622717954228866976216573854132383563247668434831551198373675714959264929642935168168875132593887793174947139634339217611758836594712184797549972883533417389849218417776429416594746986614587417237814445376824188775346674314936715948455936344912525183413715265658584866599989141538678838444918747133662559452495251944767257921513878824747877392485762466167118384165348126744872346373878578215592134845418796819546824561379839833315745514184947518864882854746956429879378661312186475559823418159936853598629726363717687838622514278437288951686846595366127278684417135931987571219546248964611132845327225871872835348134484597761282794279356538953855283642317214383699534166861946455618737548875125166362848932577937699454229632927644836619756458128142453315596169441992967492312196331551191596548547723463583792315368357217751693475711958117237653588218873843178547532233856512859568346629726559391424798348422368281742623368288329697422153378986169229545353975834655859186874569381334757154536891365173748185913835291914357826843358533331811183593582816488951176828159921128376514784232926923695489482384911652919332422923372721748866255211211144264456673754716582197618527631847362838193363812111761513365348865947735961241351326356572985761354816492516539551176633731296229489138269612557564926288217727656657564424569125416825735396961526362684938738358741314733328469975144325297133896825287328144932534866365967246727236856769162195579196682395856668153718613823361359727835321877672942713984318334194777318285852946215494624545854222841669144247756385556899364685768824726139684222565244971438894685846447416617663276563596375633116649369929685892437687213666756319236128976554697355865229795225237739425961328144629931989419822583335821741655896798896637698737968439313467846326194665324277863696535851534155653928459855641791342727869174639829664548182261184255832747988879734177875981988313876849537323385582369766745574842325268888117555772546119555938959465344243897354317827862454258185617911299815245926713737242949499171298179593985554726438533452368367164112299654925567418543668584299589718663954419939882148885194832892656842371264151255833422714883847521647644948953444676736125497949193746129815158494977678197891788952664544948777274831639318376962227451844622328691753673499185285931994455476345399556795693111693682126563176586431199557657796855946692988527969168892566335829314762951693287174863119622112123599683642768566751941893913114354211455529355828812891171372615925959391226698479557554672733124518447349817634489144481544654995827552422174522414653796961469842586618725266396751828515659523561122882298727372253114557599755656725933794322546746181839683257628212471893846519117199958263934734871849923674465163957864946418785867759115442856251826229659436892677577122296811882493256199787845682393412973961189315814871555912131461557743741669159426572851162988132795968924828859495561465664467536923813295879727364391756282744436596815383253877386352869133364923593921125312131555741634769141489671663193386241614756932936963739785194223735786951543735212583461859371543191595559712223351596571597549749878332192113328366713763516468346158257366587313974359598135857453367893451281567883831623188833959638873881737415686637946618893765532728681321678232825375244419743913761783858662633268573812786966233291485339493698445634782487999329356779717867691154422659258269984651421296965169392446469276164329451478955459368313838845431752686522417742668587679454885851928669898563538367923968256632732477456393454269761157861533584732556176419735692615482333589953187794334286746715344376523517626385617925589259683998541781452989449241697593559758683552587684527439388147273146994359398955396129957749456559247562491186524216191663618263967714932849381791388344593418694474656849777745763587837266936253628281158722277535318814515221471288383955972624144835274686723731558833239381685966374642394456319273494323471766483755865291739637865386524588127481966365337299776294845193894541527153666385253773156554734166128722978595921287481935498695396967254993584412139112541311628225838137465614796616751879742653136938564924374844518586461625826509254545873256596344979832323853867211796911558272669442563858134745723313267164329354411684487751122433657354775789931988426171272314468283558917819897538225133253689397543424193963625436838153319239872113312618769292874569788791578688898957724642717154923783831587357141823165335939321598671627343957928234656149962911677629353637229932386998985165121773518859572475593192988375777755114779626863212491588316773447736194965539748978915735311634397816281644617484285657166229448127536689131768286559155766518419151618622587485938733218767697592653413551298671454664449298736792922267286942977343786685458136138245953446644367544183527329921734218453916222966364415146927189491335524146222747978572974672621633174577198251957785873239489342649996685419494262658871798622886764322743672986151737886758725491712985133221714786564128899338499676179489451738473674463485224172689427442425142318754182694891958788523554958288953349499687572341292346732439224448477235982196294237889933755178814527814923523845533516789287857398879271422596137388755653438157834731862929513239994468791594276538515616546759758184854882287831671141685251134822315583711474442545582117918381311758928156498542891181671588518574375279718442531528574523363119436743593447489441177528744944876441699823552484391152825219586121188969315444773776957468315927815611632255412688264999731321992452414527968126931321283213291435566797593393785816825134354385821491149268537927687181515833414443346353194785354143183566786129453978178547161475583748397718742849755498195132479653463133916291955594383786833887923136425923928357785854545613394516137537828654411895238689828268762414284958278358761529491216972192491885612526293344273293788988928196546678396511837146314192893681345893532272254957567866855123146525677794898383938795389781984635182759239867159828347214312564962146949824528419333853263417713815499261613443365448764885555735363379339464789123987366822394729946858783151952159875466574845738423271475469564451886433726398138346373719655988966598771388182924531791656145831489246375164254595564529123495422446862368673822467817618857378413987113869141286756516381918748936747913816823397957576566341133796476557149469153899436859962122658393116131846114146532416628782492712395377877271823853524371511689619146723439591676826244284142192815576717656724296899127421611791146617372933351831641381432392396856583685818882754871993132342737376534113881955332321623847818636288478756741263394345518398161669416162645741168483943762667723553158211685781519713978224885138233934192569519379565476764256967361669714544571337865421745232956923883246584616382724786298393874253465113353982152429939857235539665255581778783924816881593935792315843729676777257735764957536556121392258725539192667953694248831859964745287186333938286591374458345618125733346637334983921355178527328791924476299597888713219952763541522868567317984855974968925177239395141772469755241547328736537357751737754628132164686568191725489552226577379476844589387458886831943589216143636964783517385968861299929524876462849981728295981189982843228755828726777586175164951934245999571342818566153558743845258558485419688334949284957322746681428868716648932748133755838476428294865419392364267442834661282991485836645671177721893258267256383665229685682353342656372997515761373139587713946292728927656133249342289859253851933713367969273296314298113487579639864651566776396614425642388141936481436994524974425878116811812431463152493789931417296877847989115219349598499439158635319916897317331181828752665427847736315925648655637492557987762343963454817772235764928516373396682836217973276552932782498737276448968654952415598567795457274698493157543672221967636262868238967362115253463569221737893625429146346751987232134295775936467461984558646268451661236639265892879234177692437493316957963452539452748597739467787283868993155989263813565411169877953843956444369648785325321287881255349973399152929452973982668763287173393217399333328695652436645342669879518431662512166118661984149927977819864994191691456554958859536216192582881859885439814588432952459697776769647289159488231225459317175541594212115934756866391211928351391611799383666142651772752577596565534543798391555522586733472937579814283922857498556128455547283174572652847586232732567911628834361435619356868942187687648432747789331255631524622379943874948615648643115256527635537714197857421174374789339183435115414989621628945313145144266766296684555516399721934526743398816354798247667638631973546765555171448243919562424411655222665272124938228163214534698919165573683175886682892245594383289736984291669227496519848277475357944253298129748478363279716141624138358158922859776972842455416819543347249324271777852975525186848173785797925982665753293692276983259629311718863337436795992581714665486456132453186664243392362628255891312337545199514743958129834313424556219518458722816616588828141595915956791652741392749622435464964447916971134253327287329765141473164761753166488995737692185912328673647854481189561221427718839796951625154153118238159721514472166138523927218929715676726163258851612893614495375742314819134819861959391539956428648829721111987882892753638379123994765865853531699663926743544733198564947298158914395868112473672428792421225916345721529656812144814144956546168428471334815118587771175628114955883714294593242917814456265551137297516756168158838363788334235945695369765579353178357278591185544958725262187394228835774772225499369786784523834527984451552989716774353684867218916249285363233899214462657367147661578993226594515832985522225971927616937476815278367728839326397957548384755372298768541462981676339156532158257933786822921968491415166251966658826587787764513443847453448193885433999756117341524358481281468781179955544267118433252369494163159954396713423354569695425831135919249829159364711669111483474965977859764681141197996933271556943728583841834843533135441486971231988262244527869972415543138152138855967418295191239673975778881766261782699998921877265632529684189267326216996174799242483241549455276895384981369374493715869694121589128426553579718879444414714763664495149276156844678197368724888227731648253835182791526288576398169123836199697776728336263782586488671369129886556388885162211758514531442329864481269564765748488821963184969387313168534997744526512618914922643758591889443895545595495785849123852849774963315765284652245946332495373568798264683138242735357477814159829645913316928172515343922327398263653962462359318833124255864779944131266492421293495719296663556858965413535644883353362717962555442882124577856989315476172126659827939365951549469896413525278151733558153196933813543784191994967212116316997377522779188177463174383923422139781856754642487684912392424636593478143596545293584612844215744971774914557966215574558967331727784274628314835262626312145196774289442352644159191731934433911327251376438733643714897139429431156173516477642712281894834857961567717344198268386365647932627663334157556372188615178761921776918314958475584344742526517675275985479217754176541581121777284571197917673879522459562538255492481271938114865999845978682221269376468268544933916494252364278295721536478762952689894929236145617658275941135173952453375868428173879363466873268312449935756553731567883379675395537319784429672537295432388718261992778291157299719352469341956144221129923723694518654566562155565466468639988238893348994988434871496258136759647851649947769156184699483966719585558342917912418868795982662511945777778568518484163651696846831397175711561298515778838312984924729189135144984359222953141432683691594997495738631726919952121368317617336698551522913996917942763522144613457418418688377861146287382652886536366134841527622239947193281733259761144286846858633443649693828784786295668342115447592552743591878477833567768292941186258398474212895231897625718796312231967478666179158618278857578581677314169666651421327112858516554174589345991931952753837667222528857881368252355419681357967129995572598314437868837952657468357614853684926613574269325159874534918266556226463778699294971424714529164675291578347347743774944495392658178124747471934391794123641695482173457293286514573864117976593611856554762212658934325921551811885439695825971753174465519589567999859439726882988324765613568247123955837414482324678939374188799974466995444655893694511899667555889488921375754813263343289835313241923159424894928332449322642855957241282451852774828749993987572295393448412588859532512719357455975297848176862723953213147782278588361268754735129321524282388945772788543924336256198415534328784962616998429834543273726146715191352849661543887114475869549148172155991144222822267754587392188292682675196278393957496124223942199256665173891285724326638821929745381797876884364786248829912974493471957646861238741533522598847174178821396328192234375424318915321982122553451554881323742532943131222375599544823954127268452545656683233176568644945661595659115662974271715679863338377732542917195491372829615727644417561751458888994176935417161581136291235913792299781221826954867466588978248357126236328893378824552348151875586998629397515396641764569646274773534553293633296161527369976333585839149492619216266892778492641923825655795616222719977796959841132685165625236316392861565449441598994465867497826193247771614653542877253982773382495252212466799876582779847165213617738873343328866124917693123474246823256477252844243993283539834415629356851934347536745186978328771795371363686349893391897627585564971997265887766986954615464898286275791278834421116476892382181698176183876117297743333441558517215813189599299873195348383132843223519369278945344668486788852173214248145848462837665223918195325748433826652824579981371979411863615786451522778667684771522597767346861812988844592779811959635357823813891774924199169955897321993263453419612111816891389911191216559671541641622281228197297218752618662534676685615415234845619761516767225683133564966349799565625272783249552787174797666521872478557862715874572841497847835962825492452938275348388862644949212559775767573197925691755148149293171535183482173532516919714524831773371519626869918519579832294261497538399974765615542434444841778411249126592941475516849224191831855756395488436965558469768641735299739267918485841676643416478987851766456384767734387526163842636582226645111673991643347622664222334986386344643796828661716937259547175719162322892757638239845778475844749861841115768579563931767241615481565565932778624896773475536973929555958915866246713849382878168914497287653377747921948925722621959667433658321812895786158329394261883146866946135583198819738143921225791494987535734514376179361383752781287731293533769366293221484662679341459583768784393424452717854788812651936883313453788847632981661835727496716841127992654743718771253992552136146836971244524282396584649732435917594527958266395944496278392892431772565382799293522938868936269235272788868876217319175967473395711789555332832562578955592711381457392725898954991776234315332366986158627412891767479791224448937641482932291166793762883126928572591692811827486653839132613459498468539529258723895898848273923847681532547219487866649456747821589542776485233818562396951542679433689126548828564784378332588439678481124815651928346178116858895643544825388371284791611385165417662143461396215573543651156486253357592511132579832187282739443668216467468526498595223274117353274699335186615454855162563298414863685293753177563969215324963448616115478586332527338759945378137638165912524775587252256573475137833323575831479984298745172574356487724116133122339294791847252799552861572764896715274148763932976952198363653223728232896198285871179795159261333234224823649226113171575481423526836218371273682989926454484634227737663561738926718244582844345828663929983864444257415578892472148428326493736141789237916953256988819558711214282194774278583981761695456476784884242558397594568428854489957334648673411149475327112339224836288846176179117538337459361643251134631346256818721555471444658641814938642232994947474497751514695187731943142335162591175225683171744837139362777816723234692888962245858764839699271484842821716929384259442482398436618899859449367673525743762595154933897741767424654128384443747239398171136767123514332665838631561357459925626767189245637489435341185877329985572496758486337862859436967854292442116844475151335367763338757989989563899414346752437669334923811856135955488154285741663164245228721226753547754327374578882393164175648883556878596742539648854351614582735313261634776639514937887236498729934986453825765147735447176847749137653834319793364818414188652663428691821799936497247535399465686456436516497926539382611546994538971619147748392119379313893255942992816569489599425356636749233423592137166825756379822396318649788991697178552168941268699552421318368955718914797614563397548558473168538338787457793932675429256463316147895541218492657189994549661263843385314244297895775138985899274493822335544323791213991479386625786819453775844954143179997558127616532788172555768965854588499158791869576511986871355614443346216272138678677253288748172315915422534371237753159833639759249672723141242826222194356321244299261574487678388477612233355555579527855522338166827948264717155195789121243158531124939299915494871873886171833844146165855485671657834432415698891496871398765629392624854312981129616636491853771842227537634736585248787862947131242884546919566171748515599291314381634325169766749579139847867395467679285941523561472256942661186853769254295451488693286343341835191915415759886546743467592563963952483757635287741986634771966251387662224631385383934291396711728483595856965492675994913572644371639114699138285574965112255682644545894797595942437738853492565818387756485988112775569788735224152725354742542618253132994324619881395678722872677978958379731618537993764842998685579396268229973552827391389246684513128931816161252871819714462722913795686282286463553423659729819179537144363899144375539412371287231744269439443659193932159168771743158192834298198399494399275149454353345644543262191431437839764188311874217433531573595177143451182167478291352499638945639975173187834644657785738532994981378586267431886454927769757155173721336977945579862536391115592773794382185543427569198188537594863272369723954688588486138787253571697577851119968786398177873128977623397418313172681487164265952614943772483788836864569775379431624881118286959535961748255287358535636454948881476558374682396958511146338116144687593851161666426511933743436694343627734681311861843127359919443694256523544528593894439429243382616267591833682851382114936255316831679643819984912113494118539913958813182979369579719291942842126897195273217255224144137219322891698116227932344746138849869858997718421913146318922785551544324184825815198638529687143176517915286666156927869728431628268948366921536927793655496458354947864366217798567632261794429823588895425294931693818878218289446236767176458428787454265973816528184881325256824559866263443174881258279695266511386912146353631645452311726266295874178592754717242462323848546934321268333694316442463645499982223228141419628261396661198997127338943963834659678335234123724446339526798143999812234536797139653595153966156136258591161662636865271456161664277126222178239816324368864929245857559766568448179395161443367852596361817652457375772825241825964599579334468185553634146218514853719633168866311563776477236511771633838615245271548975686336393355548319632148273969437959568784337157829132749936868452317975397992683574658531116751861566986675833979445287287851937882579136498795637955673447439917254146686355817493868183735725431734373816376915291918271742373245562642368758367367175147255467813976282857683497194597392647427624322497164383992349969123855615937966762181379493388399564924417213768766883622858677624915455164321196664835818775427827352757179177534896386252794466289355941746588868386911178414912846329384832717536135932762253345866885277337171572174359453587962648155677464412527841676834439684487844579911153826874455797755983766223112216476854298666442829195596616826344839138884526698587947597167692963775554815465393986744331198275551196376812231438882324233941475473199689792734622744265457485832131188957211562635932476295677778776661371326468952988597155622598154181192648523522372166428577462769869932664825941147679326152338214187153434827819566498883925725123728969332912858587275466837248519294127317483241848484855569329238631251989192276814298744566477341355443352569158357121577124647671115348574377213815842543896564674997734251961141635777957583959338811325491414466732527375569473162184533563988561713338773691716915266411719645525737514763833424849479558492953526266542824156438266119848142273789223314719341257657532324441718621859329153257812554686138189941935956841965645781158551368143135629383389743221215869885798911563389698552663674168147416316342568437362427674969753594123657893645459581246623498637138393962224558586699242589353945863158269514362821835974887182568762677538854945117614872689735411657499285667978628815963836376331161988435931873662257449166689786773595997174339445188984532491866215615312634668966854116355241751311731882348234719919535948123243214183315128478368321725426728838336556157983729531592943494286997553156744195947886179398626116851965638137512199786615456167643638281983623722581141586282845998816894255536674678637245328828599178474736383731593216747518467365982464881154912313876527462177475512879884283493571122857854692242228197494533871783957642111224335233753115383342437181381391623125481681128442485973991918969261789748759473511917296187974888867732595533783773482188776954839512651293469636864962828422794744898897943995571966148879157412699479163452819895598375269991969995812146226114564389895674679569149143665265621847817364621476369263428844294287857463835771496393534317727224899546827283322841184413284896365128689217548632639961288566173584442363996767829716723579167315548753943418189959531777673394657412696736534428452437275414867597746328869291125166874314589238992533218227229636313734172894694846156767579442853925312492869233638295842774859959471511686688841669143219584478415465424972655691594715753181821356887274237787746116561778759875452158462231894494141126979856282485232334313652945846523417925144566788119263457831373613313796252728539545869443579829941321835996847682167991246128911933814394977725739429432133834825196535721472845875628822194375775327687625898285647517615832499829478231621437891532282764894765792514665596385437445592889155514665919469987419153593671474925371761696574215118357494442833359315365812222622536276521583797727354635756817151657397345525277892254628198793757475199641157736842293912772956674283947141713496416596763866424722925528688827446995462647167539521162721691235824359413129762614699771639652133458398691565726976942915769961296925864721272768252443827714823413979341357424337562632312583723999933957798119746999928276347547448634392192176555356253786438961834253253459994438843211643549622926342466355687472673735989841932555672116664399556629216181172226674774338657512164973572578778345613935781549745932387435113936595678156989863345373116515618246793598187962296623933574933636396545343939148611882148431683312866378662666425494517339387627882328274339771299659372191851429541358671547566521347557422453316222987931685236261894436561781313492184142654358238562217275315633641934198512424171281818348781944146444285326724742722545313397691235643164736999172324644974633645198394566145152164437834276449838657912516111116449122548172854618397447937946681693636433517778596231824528175225487929261837686388371721427939366147953945692321957918941733657262947142511622725415217271335141324128268139392732242848871374316617413115125186289373159177597966686897488886394321536544272777435913641328848369412954351427159449794824798433463557872914698443412682152874118344129128368112333391594671972815117198834634857986925382468548948748429873247844325753878722616578221287411174415979267138299735656664294281431918825517326298653298527825967167748189812321264574325817493988752568448479575823235615343541315351174929857438651991515767777392398681554296851849881256934642762428474872566539418532124467424566312778824456497138338665417853373439311655374886699465994578794847767722248526175921491747416898665336349271686177116271729318254666188996854551362868739659563819418397882336353428182156892271221849538741364695414499988196117181132896833272711248937726435142145224785813963876768441963456659169448929216483967891877112666552584475274613897665653262338873921357765234314951525639852638839954629143463758618161145218199884346348475659518314498828727695938542488753682422752633494143546391438213362593766828167462615224156865181239486968764419579971376851359472211786563713749536653148263199229288834194467219865968865164874782564863189819774279945342638187232617825685552868752285347146758818589147482657322449953566132822759653389445166218294351953143218172389333729339149573468662872587696628889813826663898754731978647299976866137683862636999196849568346921534382557629219197671527452843984212256996816615353494128113381611624214883342867116498318426475447747135357444133673592243869313977678994736149317546668835755852698397661273294747393175541834974713469375674847556863317289676945371116664156792377687315162655163172737922681827576296612756362558621312479441297716265249865811662683729663672332838452337716862839181946213334517333464935612783791874494635165888914316875854122998437799285563364685262646938136959627536972217665971243736438114975716393423178566589741483184469749369691897644191975993391536499435373353116515512999228262791632158483683133673662673488557411625442681892258415561798544274135568736615729659995154898114596943615365746681689184563273613286456862435983941738274389538657382868981588662744552779633497225319198135792965319466329568269598487299668754274119732576383123961579535318635925787834552864959916759269121513971664918285579468943868751819186143442249686523417693467356244848971284143783923571617441955438135243546615896252223856942364176489633383663277487662255272579127978396553769497253368774922732428247782956885599725583974147278982568644232671541189276571177864821664976132175164971627625291671646943445642248545596247556524568242484847152785243746492932476281228692395474776949578661797395326166185612878562419165134743263869467827994748979885387651876253987778368543439316735489467882278845652414646576149566593181287969425556819556159895543752659455386731321256741531975248393237555127148253727761757271999292856358952766126792766473462371455169863839432991166684828945889476351634466655651229492274761798223375521166522522461587864924845151512696258399445483167468732136285355968677619148344979843946553178563331971974616993876979424722557889877854224814181676528998143721696372684953362229871569363534683299367543778871766712537871238448355919275962937597641428531253188478386672854693356398939955253999727374369728944663355349765954825543968848721276491925981484866219415378951157796877365292677187836454148153732397924543689497171615918823175114895248495324921971371151457768147559398721112199126122246822625261288951161169969662666257397813721615511415492457423937656326597648188929558574324425261682241984882684538386696847443491524413771937289116566248862111141582758742469459895428285385398455521374519435325765673112432265716643183926448824371679612727278742948339763635951916876148865637622544418662946136712315189533383436656412516917577697195947165487942572712212947617396799515933626763824943127876595175924416667234426719929696345742233563129842162632433492924598611865256938135288331579562991661655261752654163886922876976843997493477531835124515792479952241871998659633234485843169964278355344919962274522895192987314128533933728825266354864853582882745827197888395829285578626715968459159636555836845381243623199833737581234626399617711972371154415963175435955994675671787882223728125557131521878335313172293474264728321463548451789987996233558919641787931766733621319832176866739887579445997268278269356843414482128152551265973788793476526864955761895929416664543771323997393767747227156723156333354533251426989681396967353775199442656777275233253757562848347271436993629133448522268342265872814494654656889531756571686263353682956311889843816454412917232599584114292264344888338319133262129439748844268656467287181496497339312175491345771498216235775497227424764877355385194617174513224855321517231659958418116466777162574435147212217846747483859644782235548257367851514241434378655857211915739324374577618936899365974875338368575832683476954879367653185799647139377515181466483156344814876568485135643578116311935325591237875488741988797427491721369373169598362459127859487559575412797646462595497163811655592142191854381438967764854818456441649624143985871545829299834577532384677975442386876876668115766884252848362491976644219999374953367449175314291753173862898284418143948558867843248424592328659453655419186878972713153174938863128547456922829988273489682467757412245637798596494632689626371129223675455213743195343394732732644811345755137246669979352414668947962436829532197185919249696389175218789643752559948853792238126635393356431574568343512524436878398623265112457271421562993571391152367768992619641686775122142935261836625875638787454766959153567541992567939897523997492386532275164219893772533613352478921138533944923191332592716844725736579862154453375424584277538911547323538953188521979285836626659481744428636586463281753323878816979212864492137355319531716687373283378617699434854896776434141367574333983836119478945587881816653986375556956984788226894974539826433778463951328149619817249121752929745849962764725614328239194385159533539595866326647451358777281134476225691233786521555322941944469182541564742284238658843845272179223358611638941715689763361366276492253225919978437493618645152799894115514492233861112875279348338629179518521786887963589494235977883623464432111695934963375761449719945387477446838214432797849691583111747371853763186155637686535836899636512766165569922779323815384346886963568923825972913184522835424199355946326723813211562654185484318712333894184394339483781228447218331519817345667495764675418239952983873596142771357514144865859948215454858926139688983378853746556981465166658426314531495568192799725231675527147399428874684842724135193634227856787573822186357559168321633217876422713822446991896626679799566118278359474863942593159938884584391224161357631671985878655982311222526551394361358734479867197217348992912336351123551346955654488268359382916997242166759225652468193921111599314529985997542687485776766725646977875464917176793279835417961448135561852667137344216646331365167593577623325948359814435451956696842594726229934814146682676235717967327849731112426974231643114798421194956956287774976139441619441358544147645392698212134184928942685197752371331241352651141834992481255362284218223477371463851997913538647156776994631666831829629862525221786486647713385467318284336746715342816575793238958666189553234657827363832155839695394258561824515232515618192961489694439422862374414865664748776645968819175191441825371655521173559439236635668539156119551456792625637289635477372872826761339599953559422859576654825491423262147293233317244819372629642957261881183322136515323484447443248325224345447986518746279813126738248563816494144827534413615277891737917446741932674994364772459432122756429312578858274551675517617872313343488254961324271612373149278492638443739759265326453546363291353287451325139652285329955273397515239141654518636267153558777427849754798249892497192347224955539593772676465615314447148333875615971238774224644967771593679149537649495716179455921169226229152615645116512547948133955665551621174564124267851654948393847799816153554869544598782691864543423137372647591839617767733187328521247391949922873648211498239971984612696587675938658687499386374524783442118481345194734651387649118341449277391781153417446298199712754761479457452683426835633413577943989834667626846439782131478163369242586357842463441443579375499414552275758894127161318224664684828835491288571385415126581739112984423339277296736127775846756734165398394913475187743227782354651278988388624121785186864898352279958775547837916515171469285411296964416989789239627663572811929516746445313125176641977168158199673395625936333896994689494293159369832324846225713962999318623549412533816427887284263294954298138271452883671378594814197416218925159248494421269649838568179971466479118548555517381136843738765492292145989429157151634816782219339434722754558243296577944145167981361535879693912648232645141839854997474343544696529672185168943432169483736995656693719315998239326263536236689149318339727431452878129723261174915827779422447534234295511528817489146987121762985394744875655483397885585651757276549936381828146724162517481298742524142223816466763913559558431583886987167714371571725679492449617215812672999145917463493535496915485643642535935661799942571162691144317449832387266259495492651555874618482618434948866416469414882232179138961354939559185925492415513415291215517462369751389529869199618529968614649524531473457257217157844795168998341477512227847433217675171769674612352563336178278835432497344615738875298794612385816946661131493381799567817944425918664576515743612547326829352752517944595967237371993684518673733517856352973791889147597354626766442965962321398392849573924489123218614735765574667514795243135335295568943489745586765267561883492847632868842379855361116994333526379355238255239656656254677717424358759475987942497912468938669985658695183776815695631523388276631489897163653192564595722539281219187694857156283642123365173283182851124737346599691716323431639694715978792351319371781133274144414991661794724631618619827311651939985854234587547497468989943946824219531978532269886684577861442753615682435641538186434219243317567925267521563361794113926247983574971622766182161461752375953219697558634332537553628644239348397843695126268813164837231954873556726227734524839111824828285431112522385536818817999271989523523663891334824594383299197958199346624647929367796995895589398223864127728544312711381738757478644956628461682762781762527264128412163798857133291176327143445185371551325827137133665368582899326479392772484177333757585665596232261237465863484757316862322834938951786262319665494961282263556441418915145991448825744858214637667548842332374156628813723974649384967181217422973742913299654561867666776427594767967276229576661327874415164421216733444481835956634865361692692274417735827392945339756616766873213785256875168481455916572958278456961448834662716296833837643577163195978235414833496688242589295494981794133515743391114362179529816886198338712931931446554595476153653375145347331364819258775379524751255688491437816622487814656939945492231363933584623394668341134573685611893241593733197812914261428878756159298372581361341766797564338843843661717633656622291746169842215371431983237899997971566349451886828916228817796482538952897775355245757637287834966762941528954456922673382864351926119249944278859926335411645637246141943369145135657188143594217792786911925318873669473632142712879469441871557714651713917187264299934111156826171142441149654964856257252724331344367461326721195611425577819833358994125686685255276723393385499299691959617121447919248465815734672776526138262852865591171452617764496918723916272532527552612387637327999289786949981736887925687398986714783466364236814495852572269849317444951373854283668716833895726458853761944353628588169239719245919385288614875613418321279293684512928789165525765597515513762112284161877319875433163414779769788174169781678119396646893768747534741718865565594157646812784427799679445892341645318888956388967824767246479444764542427845639312677399846768145587618383745775832552434911823351891729984361743976129519599714793865754189153241851782639681869236799197192225299367439378464386845855543665274999631568484721294768122477774164926171819261289655465582269665866463453469367332656295311266642277521856782394468187418334987995656731298428754652393124592282755327345277952317535646975294268799422939624753585938426935342129851144996379517199732435848959843937336742783482355487862655537821543116275593528957633797149821874974689128268964526874588468546842298281917893154732279815759242351258248828133585692572946769974999893784585734383339513288285474353611958421748179821149946383627868943784757554546549434152312997672948313967419953885289319498265258178365894788166575485234949463258975453721526153582914387222436322746917858463511789118619851473536216791537886844734594478495647248727869446118482631166895368963744439363864692864768347764559823255172357626782166889665929792196593527289857953531586977745844584736453338922364492898562855383656191433125259679858684778296441959972273696653636385652461995978866973332887149777232466455852737334657735438394117243778253326148392964497236536249416222452156785871391114556169999522666759326713743733178573463413468932854523796968265922358588824516791143312816623214338177858218777871911199761962384182765575443139129928993189317625691247662874765667356653464125474587243329674129754218544845383639243563329721696916759133551724636863184945194784258241496467828395614918427685999714743388951789331631352928517468731858743612635686629711649376147123985255318665116186131157551353649955564339849447851845599634777772228541423446131195554396764331351295136469172172425855312634568666178615491698639114633686142788384244684742494494666914418576314528985248387727972662992749368721497811648311896152351424349191139829874683572277391432745655657527594753919126745777941495869511259524715626389756441479866715729661131592129974517555431881362237331378469356697341774753787899521547364297847571648812979758691744469688462198252832138913853825162928863963787768862751936117623614471666734498284449432842683843389245716145962396238312461644862674145648224344756676723766142198592965766299564932692858352561319495861579425727865941665629739678153281112583359842898268122987772189281248553336596313115212979177975997743164613233334744822628315895568664124336557832293364194663129974376798344136145362761926327214631189814215829334491481923622974183973293773696135164254316513911118437594853445741955476926217216947696871195578462899579189691384943639637975729898636634693611915266929716176155828479738888978384974844551156537364236125812649836319664758312937351942431584367898753227947139863747889927444922686997581282267531228299734125384863521448644387498217281581999375515558412749469188796744833659181646476539475374142616987251159113649283139555859911589293298298451459552495879861818627947766411535479518195962953725418174613655182142739326411672911716177331829932994925554511691671277819982863162353898257397354461241938115391535715529348863299293295914424466935476399174384294423712144589963419927924343642163243447785682731723314737981187311635293661732893923485984171619763262437499577878117516793763727134167897654321221969438694975768273843416838849845877646923498394578717389164947424977569717427864634361366669381687342212953538781225242796625674396426599652439431944113673131459989549493635576661952217421345243186835177534189174174715849243441112429152569366663943515438672663814719854789345548779321277333522782667934857499277198115737168246412994388938955644454836623447867956474266941494838321863295781365893398892832314145111228785712291519388472583875386298965535644684613548687865482912616158613971331574332928356436596191861247261217539611434977526115191214829839472332274662322823322332713675522645762228248329541673743991342595961172885616559517779978992141536543621961616456223929718812854517757753793347849241121711886235881555725959734747638797775488967812474968831193865634491929795384431726489598773235563655525943375346984724581793249594955448765199787958396365588428723256923521388882611237674416277482973124141829188291857286793531637728231313111829894412171323365946758878178151138358456566782276841726523328329244978415983299673534285417247951437268656866712965273794427992134851615281642836353623943642745229179586651633267417691854127538436385948981215846595571872614456984367255255738377724791852286773219813328881517388547633641227437217539317367985748581644655387997659579295893265913966331747447192948857336442932237759724567266359944756399583695369242577283617519875593449698135148185793954614691939373332243536334793997367615518425656859192724174372997647296838392867875846344661769434932625543739315788412856823754956216551833652239969945616871275776431312577688575467826413418986517448684441287523294744174972512255913446454186395769166453593626197439974472981457353887926277786529425751839975599776577985663294134598682568926793339137484613915354292247138618831723562722992536835958652511282264519671779812384879644784792817357214181951988465228486755845551351667553641376888536191473928844888643787723382143732777969742121863242792929133386452247921122298491471562564782226329121132231961997943288566766297298299412317496189288943599217827636665785434821839533881681463925571149562853826778945993948231677679525699871348132621824735783348399758725758551512583745313446265239911475219258316579999233859352252278788684523169968961355179394422289847289374278155171577496847845738445273688583179936666248923385227644883639837828475987878995497251538792673454281678355143672377229988955289517564288672838155757646441958898544852629792595961624168153932776252312172229716767163767159227631751857967847494199476271173744799774461153872272198715612876335213438443629846846716267443866385528351423386969539145769956564915739871199675527431987881437638191977976834276828916574616369167165752333751341921678928544449244619742197939122168869513847869219983273774765762547597781356366363579646113588633362939863488814241214625853524831823698946825238349799165325718771849642223635458417323635295963947991112464817737458622232636729319319445625388123984196248719649561494855384195382671384965929965893278695894331488517912394378657975725214535564394984123331296882353753914559879357558871789267382557747191987993557335393318837172735444532222466188527637529126289632165177212711552224765767376137333731451521656777953519236638351534568528664221924164976549465417752593358769642957444187833264848978392968922926748237828244427314924219991191655457148941371991283614593492546871584377494584691761199348372859997335163412651736724747564648538351656986941913584847573836688494558146549549786171717981657487722516261914981687658256211947618869465455643792456272781774433198144469923182326832899856188498281537517626737318478263762519428372911763246855783518774735766683673749963447916256123485861319567821616959649154645873458477333114175658512426869257482129752951457893753784351274822923898893936616961248464461742933313191284743338232977393377361671769887142463275463981318933981856734437464779325412532234522596168492237515325856199222552791396246448987529184693513668736756358783689331249487647993664238753521679593615454117786952373947379447386545978379957542667869587521148782278915891544599275134775688446554353822755194111513869238162616141322596915495456633654359511114135274763293737298452876726836228645991321593122956134696277889542142964192313596118468884663416699794184214453963788476821162621671179381625819978715396392453519416335386765762423852471516656585228646122677829994231271735384885548148296976866177174156574852285199818494179586284677225598627216296926322369776144855394165676384876397413489893167595991567975352881421758637934683181126713347415456521473166424522523294326156582243269355777128279479719315953165269195672374182138898728214319826835281417825917686467267697578141469511281661439964671239877761717657665631753638996918885561522285831382356599397797576931963179653661685335355923771462468675528764733265689172348364499256616473846161528425558275615528179626999494445387731457918351257128597436771288851985575499314994754586154272956934582811831221695933647944137621167257229232371772135728121773677482192114232218411872673651727555653864377377217385442796667312766142557285995623156325971591776271325934523874188699186135182718831332663859356116914516125285968879145319234734434775375773278955758269272455886354679157464258723539347482769375632546362586447571414941197133595747364521944792632924124637975339165315399668721822233694371814619139668524395277298547864844283186851682911427235879555937246535929977267118822297152544257791382188794415276396991144568147956253933353779489988982327231825321613837115943731628749452543965925298998381563514388323555741232732521248384545962692836399312574516538357619186144337855786822263715539298187692913587165536753813365284982549731878573936689761987484782845797774532823471456533272548721381956418491726761213519564434553448177826998654674925861213547772579369849684941322798718951727864679653512894816166837521683467735689738897387874546197255471242789562341967745288697412848863122966991196769277946666751635837913513412977884677143727681263944384534622499746451721588413787915457718847711355326453193461151586256139699624245669979215329368873475334295598965961972493418185322844153692496793878917238946567631844183232891977877589274819573456865166245232717456472753788933517914537931111845482556725517747547889572583566995248821361834587365213359516115428399315388646362773997847447888616546954728244421619384116784644286772233856297356384574153495713478582677296821438675189228698825763929648219342199597498257137594875838648552751699248163656414782253927662736785519314679198567672973538791469919749196895741398574636515431422374282661134253981453983435565573899155157561759684972215661118496382785432597355642853317327956674653274323957321486617338934571744852384578298337788491292538492886914359179982669398216359288466967382388267323242963687494231725353571286818911115264893315386721957975546246347852242363771351346934577991614289493428686621743346672371321748668819667218282494952177198262137716563383191231524622321126227788444662861872723184295397898675419755849717979286516125615462992776249219717625265766227662742917521522492153679145766322484575325357486591847741195726855211622946785343327989989551225535587671359762193689678522524967525272316172371537484245486782433849869476683535273696134711843117193939688832357527229489472772371564521294317969661597334511647784935943364159825864587937989657839334658854744219468251738783465488632427799299246959923781926444297349917917922416497675656299618331231912693743363938474193943876998979148312627729666964258545124811814634796468324819324167567857828372641275897186998313849633414231284391761477177787172934254466484713879896693362967148554889537816183162521746732545389677421199617893154137691745363221952852813592786198658632157368343437618747816515471133236852686827578342932582918811133697765336183817999147237927119378944466964243822725347938739555348675261574755917341134895649273939444492756356979972251714529822646184259774361257362332683664827325731696123927754876135379651372844713413615369655247565539557542912242493828773386833474328971151363413583359567159386697494489415746974217154658565225943382123686174493287452297618983321522779386625833567676427225456497564492143535871436968568113532277516719952538561257894713955173723283287239174188668938223729881299397129926324289973783154942951881582473995413399577772164258346383329618158377224881996311134652873634448265876244223754856211487649983888264778279454728237355818816174899376983918379992717398178676955872479769586376557275962737333629755532468196649266753835547718573125162869424349995177521281947239635721652184963461122139922634497858823812397633534636517679128783574854873525768129661227228886133496774125681382358369861658261381967368727745869685571525331369455172933515982848384346768793637125118257756939657171745514875566977682465848813529483924289736332981126691361622449741958912444632633282228268413266269151384746799927248954783119535439466721489371184778145335276629555125153979967244946569976636579862366664549263465191887449986962187643877893137426514238125512719563641328521153793115896455525551724745586692851161441975526951832386734492577564617594955541622741323652897643884443837371333497437682761415784136318936158288721577743883341544263966651468239187861137351414721125569594317296881884628658929121576425845555132919461235927728754386868394616896733634215786562989465385644223885147457826561559595923366687955458184864311465314784121687472816714189419545964342644611338427988286236979465788942281214845623442844439366733626645655937489632716948964547798352626119847699879363269512262186257748522271257984298947264263776541282419413192319294918224491134153282922321341359539451889882277484675696739644686429498465482221577946517472738379298934463585523225756493455371381183529676128238793232466893812891141897418221989212347826296466368348187898886816838621238664289924722492279849423384286942351342613743768643674882199683818842983256422285442719918876256949136352883911544615595372986569462186263463316766115642738374219318824259479845456999962898317237928232958833376855641739449251842654748621848423977949773688762826289941124855142724681848694784383286387662165137475568318675914221749484581182729274994651151462434373731628881687977441546572614931282244922171668381435871931424331544935122187715747133215256487531914425414174548159461874422254145465915212555369194171522626921457747257391726625133963224715741314139758839472973169372643115146448313184922198414432485675288723542741232342262594642199517378522784797829926264527515566182743811369851752457799451886484657837844828892926786629617156591372956237916218776338278982432458643165866465232754561348482526369675159685198263417432369311837774278146645452581324549469452229537349983527565686929756681811744477465696343781473347816786859186821381813172998322893571155963535642522827927738828165968464616961212283974646527233618454714318319437724176618431681426896226146979641156717549597538117628233821674677237879728461361913734195953218821597578214338329692989465575466415252972284125964952987445771412826993121422918313381934591421692292483435525335564555995946985195224456896329765919599872569179481625295717773273223911256243971143551932699716126216221734921125269263312282773393894976367459866772912928286425714191716552426884873165763414765263134667799377663868435664131437749995765582147433365631132165737726292641744577783256258454736488996159123461138453967782154681479973975211214947233892996364391386574174984487191379468993322349895293492828527454481179392424394812251222164817136132961192431721825946152322124636712891844915996581984215326678248328412782279827724935456922746567397375493463934436872372545181711448967213415737414539673171159182868588627199721163931237142149226163825623695591792795497482313898279522761129187357676415545724531483549541458162738468812273525652895649673379442267946154495859929473338665588615298893222616687435658423862721231829132382859572145877962223236217111329393241244711415526838448158269989393226687628168741564378274273982313851511226989135562378685883912277127238636629955272131517697824525237998641545852145986645416757169868612555949233532185425181786662412656148952394392643231298853883137631525534953126438357222491783445486848233534156981591741619843371854675837223812762835795677895871237629422792876859328784454841853613455515682365187964399672755196349781348365874558886643727317739717831657133377245718979799472451222277879916711279167937863996997224881789259375272874559749438149527585491327734811255118849643685322752873544925948349123987344666741826151543926859752149774229692683387331623297172375242453212378696328379599286313727851162287157667595453352782153647743761554221959483518786879134796871826338322141491168646549818475566188899913142146991544324151496113883683986998687621843257297787166224422891768429414627336994789412632822888528549719542142499439483674742492346116158362492234172338592641754364878594623735232463213265331546913762133315737954253479881845526893995126597382597833622715257645824335874693752424685755251823395726213662835967225788213274413765485649722297928396116414643928345618678888579398997537882173997466233192958876666327916113383938541759844521277788577187496687432596578829846694352959789247881928556337221669194298257179758748684117727684683912826423497152819319881649897197269891139734824845732876665364178858851724296578951128673198415389173144543981875875543743572991996219543841827294747811167266246766599873854563837418514128633298747624999335627258998399263371134796175917458263862671575711714273789269814611885852819378449756933848728178167552631557481265656829681488285838881936555661924696554683411873662754318754746214758116447423688743962736181591965875599132389253447519128167153539969962181914238879789576271533428314423312714582458396713855986816247466536984928858338593199569173718362949242115747586885831738998724918821822495954631193276965736916787779998493754754151645118718276953833661835219595558957727533228411566638147996442146726569671519455917722511245349819555322452477778548688692215986839369495632398142999758869348829856785246365168247212997821593577145459974471284894993564614859644978865392311689978133493777732128894323434381278981229586357458227648771199225912934871395949851514379488389879962338368861745685922859687554549563497273236694285379236772226173292919232781189415327995216793922112824982189829342149459928211311591889986868882885829791611641589667566241829996476456417469418375129533694484129755274819849677978829279416628673989469344391897679686426977843942866781119188755593125622384577653322321329273632823384412759413734755876784845927245685859689962337714372664156771337612561455678358675631135613524374331475732546313766769228469787211246618753372548293914741717428431981646772825644825387358189822998163639722265656974718416387586372534594729264751129859488126644786145516333797798773719521283452955595228387946613974724731165269698191837412972258539912997513462272253883971195837726915656782817922299587495868549129673242332922132979617984746648515828832822134222171769133687536896789772974385381456358626258838597373461788126151676447951834674311556515326821978521116288545856899441861443341171181698541935494347323447679577685644488579929343963287843791558923341197177991186495988357382273397395992771888418716641268475594223692779747677547911926854493613963139993559394983185768987147443545425769678176374739517322945297638195953759375646597217392719463362757932749313842561389461496622887478633553737773792736666227495132984228581257416589245756484887874285933937678325239614242628296614216499156877489249564625544185494942846524252266911362715913343736829451764961461596655156389642233168944431366315869365992756867254857379214735229256635699376181464182992474785788441819836334359768857984352721564534397838354228994681926288234575895587213533422889881488392547127565275437668846824862771724424961587919676458121496462434664151297798654289181121556788153568468146791218996997941618313658474287755776565154757798628773611928783258714219573343994772132923672896766976823246445812994185342331986583174377821399479677192334321869165583364383229186796728159235931587714223335233892473166978472418288588712134314342557155882822748587457559978393347131418591663512135779666585717411541381345685687154129667237867821938852318767562863728422218888872656785661397482754586795464341495964438547275348787255771194133628869714522955723446714723115377153134465449712144514874175692387588824357328411861238645184213851642966697428594617359858268443415582159781539878614477384128258797882759791676436773592983797575243217186144787254592589759496919339938642999625164122196936427349333196295256642953262854595229251369878384848944359333663264978194981799173876281913378485762561858927835112729719927754331486571353135535696566557233555583128234436878328874429122376724935738151646478255587388515976368831636589235149687325165562288969813451374776735446842386484178159394422698359784467485924431246165596565379258673312793135147653183647164188835955125326621475673836442848611915516836488515873155698671531421851542179829396511969726767899874827934815834574569431916675453824516885368614159983972538172343783361886556951938124267863986265581658213797889692917683972597944999719179757616795563741889564952822718673333892336511598444729899169826147327439189148772243922817788282913546533437294217499579257976265318751183783182722578583289684224988995264472533681538737695117594384791136379547589352922422959476856758466221868784884825921867532116933543528287564945546421163262854918348166621995348889885291386775499395856956488265144553689346786615181774212127631875143166735385694769179271832919413618279698166322238145126317247488295153758471582385887327921658467862246873812149517248849815541226439826197381131844627597841952574465974683796769221869643538786122528887155621632618552715673164225994617959112262927188434641961559719514495521792419143496482536597456786247316357269499937189629254723446157771386225118716567572854986671247266877468238784421596893351363188555381193759282341811144179367212549638813822945115919415341942185947727988182573163883415498696181761569366513618897226655415194169115941572732521222886326726122822314352434575577655375846348428549964986433879544851444166817652546835467544487763796112672346389962388942389955225724771994522427535328357241653123481579811942594115839442597797136963844927965365747681839497118695877259755262645294366216815674151856639236399828234634215771174158621643152932844297528975882286137181386488562962723411888915618316234662527614775915983673224934457814154814281661158325636829253844248518826973877698141633548722134975855342438287991944286957959446721344586284983976384878664697178192541968446633351637482731537346471475318862985937565747779583128155475251248631487759426465567452998412525387315979921556912647725566526944664152944987577531293739289873347743736224951614612875793671893557739331625664935113572638617952524547517954446956293366126811961315965659984578187314825385371491886351247585392922383721247377456879874621949131359521545372896483359622615627642584538954933561795746816267929158591395778935194567247662344358117936594386776122725481615939729522169498975477549187948529481333438458244681433332934676514636858694417765698921913379839281766426845512961762753979852868825465949481577542715812796962743278762688635278349739998474548765529687531857679552441187422297648586239314872825959866698717569218831742138199693477137817543463345218391119957394997687321567771299929929815634924661482447113112193884765216517863891934634834923212677987536213481573836217498717864562114734862918281781329281877313323794179161978946967875952673794952459455342134521296682737116391536461785877237237795778578196258774742228941643323899636335949816279391183146477645598132524594912841848251788442991794855284684767752455534377566546721349696963636661223448175728298312161656898465476629536987717627632686356193539181943531391942513762486994136145137381218292452637755344757451853561681319444515179693977592585732781711644984491351546286243715972942996374613737669387811171568752949467737999656574353441497162255281754552415952287511449155169678754997137623721471414418724769435723425266438364293523393669612973323729251877296548778134984171393564478554363796662364762169188244571225649719366491756952859763118921473453269718873467442427517499437651976846613949684614365194945691587269721994852212548847331698747352324324598619753546259228982616747258516376241484197918716866449145875511124153452143893588111924482732823226452644734171772862291372354575299354636933199176275292426763273197359842131147555973115671887187621595698691446923223689668466928167626385337819121379245961562466928536967638539657569856911936538479966528471225862856336418162798773335161283668842365896791861537759265372547321536825385451414179985412655465418971518934164569458788943478818795645547833168193762554682471139593146618825614881826374312314363655126997467834825452872813238473985663218872263797873954275813299545855643768927614998315795894757333776952744493882692169559823635813487561798977135142975856219678817553513399993595582177776534414257497727595844282388954516745151788469918482791838613153537132181835725563633524474668822524623694276722984144461736617758119279686247335638975147697372162188836459172534431734473199214493385719617769181163499719539968185655516272971176226286148935743287747345432339941568161943426644217931364497371336131125356818228919935464982113516517932521333112815331628618859411994144166357446869822682567396385589984519243738719767893522249696485825749911772746325577672531277669933813979153675232888941858693595674862756913425494277362122369726291466957287537945661762787658257373868476237712276242319864688396682437939611727429541436784624271212995965925657691633211462768788986461753318957121321366532299976612686917692493324349981999887546794393953181322545434423311845594723127224345398831162272365715177278999313631523518636752222728446226146318458699462927949119944655269789615464398581374184187442867725775211541397415723111744829591858368313441162443633616987826811637367581586729973233729491171923658296254824791923285924921913266976581862331423629121411391617213852847859972243934174112252762136219884771984276574773877144346856735112189496142418685388613286849239438367871911759287936254727749572388965155119926528233414266123331135529929892452364514711321433535976756726762986427787617659882377753415181167788356916761648765449771177173741576967622576442885742658355519665151713859483661124388112643598913963257994341342659459614853542748143641154178242177938393456539323576572878592798589399544185117354891878636715543572325733333857236223975644188434565937248433145566753216514346682173697529833378843154794218766864232774755972765169437748414199392579744332316792634498248536564792674996126696767187799543188558515993594153527325995848147882632921269565616337826399293871933125231165535167649378277455547758259166598994767684491225569343947844583372658315554655912825227792158376439151695961459532933713817634165179129515458492694864134786282688599431874713861246458836435583342275352633998993547429853391533751265327596485639461355574426689686227866495857783716253584152919621286736119888948653891395485446445127627594388243422441978511145546397945463276417451438277272725243946472689229854886693329382895988616874784678856515736654733339281676935391175725287743925146145111693122138499897452652165768168227529632469438274349444899615527278121266119916439263633593845551453469978768382316459687871325459685562347265285721679456487712769315448954562943989715352922198918431336661863152933457548647436379491857833227318543286851583119948913595797427261469954982292275966314773414129155959448466674168689856186587382876711556112427365259657285823991561514124355971574448157537627763623134558844882315128752523289341543876669848168479345486584528562649385278964711724152618959785758676983778148199394464357216681446934281984784624968273983542574166574663942394688414693946183597145581885823261811379573172221924463449739146136153999395416318735877749743344948248967598228981467141114347632534338977879576613216316639492443876772459296746165686249177112488855978887462968516939827637766441847625351436267768741484159683666326741882497963826854258916262683367234363167438912427217713872286719134339962862983693364541759328121543439594793953378622786517419464697656125429536398455195845772139684296626568188733232615162264122531981647435297329578885191392444533585227537258195983381411544886134536377993792179417447381668371622259938297415344968686653478431544537256976398785533197323255119552275762481357691998529834435289295762899815564454395186519837856322491372627952372778439313876497526553514399426483325344431961613266425745676114335658189175936252783256792292535189897894497812968283743862114412381969387977163871255339529761987183811697293589514936868734832529799759459617647938523496768819778752587447192794445763338118976649897531231388622187411219197551548281112129871988718628617263295194913114982978838598359164373773964364752758522371215111527784989315679635485612622122953622918839376248785236386486472743733595433856714327755484131184356596948323893214888416618616132579173885273383661591151821413469466655151478644673677548489725651225729756529866113866714675929141412366817793413699358614216299239355945614834282916867286786698514916466859257358934641218767517817443126932646437781799665226996638831512676218876755792322791453244275241742537191561682851875188496829974925634679747721798387227897885177538896759331418346957637314721463342817748669492977741361642777881961533489338525288114166234812917961298121862369161376988369448134144845929136142168655471395197512895377281773878623259278688338416924631697884656952768625457187779932982679134629685447962769437329417573576737785128715862794425366912358821578989759345414745371761984756814692676481829384711776763138717966122759732651129997563765535321733896869924826714459626168571653743428319681261695656252119174357688318376371349794319419317632389118736353486445675615535288215115987512748363639189542949669169657388542367531438371465239235198827551686438561387323635547155826571648381126954765837281985467925968776778363628111739817353934328196652588649449422483916298621438984232986829869987186695546488376789877359234912629378813341267836612337249549711637517832948621281323936871859813552335428179287228419987961859185217648555363163893792498472471891554388624829288568796433569547592919779951879724574116462316155245112986973854281581226345949354753952548722131178289613296121495579723484686594393253462173112668421669927566894919355342642797648593485131629111935469524673245975313725875766857283134472594982413574941517982791192429569856987234637568265344343465421295884597848595322745157494724743212661245985515688984712974446667713736234564122899269356681356926288891256657647643477136949531259138943598251714959653146998914896699847643714998952356745645814474346919361569454568943496887313546135952917931377162319887498652353738838411547244364342971745868232914645687411736968156121515327496861338968932536431133972492142727749535327468991993199238432593266128449275865954162174816945252752596392787262566654943537132216345774952658894458752894597617331717282356125461324494653212835894612736337752763293456677869349599762383968135354488146721644493268487673375898146849412465794929758414542919814587417543912384257987339431319657288932122259554243865897727772498171372496342765941539289857885782729949574648133175883867545114284278124478372578866241885385513828621157784821516129288616166347198184762133283783792552147661369277543646854122481635738484419336978222796197234277648477827749335157326825537944598445915779592196627288641224673316896463312311952671424445782122591126346466552697548862349431679671294749473433276862196848985852861144961313521195295787566941126239516546777776295663418912993515555997675342969326555436425665911419266589664595148662193568167917812561425764277934234478175864654899721396513395617944741237482869732742491631181864238241878954815179118251168134446268236929311717616422427329564268172673583563224665716427363678466513751997298664934665482657573934399489118954356692121284822114534472361155479149241257639839273528545639267959863987548522339571323775672376352538182923155981922378645761385427236337541139931247112477594126738351914196897812692848487888441266246545124715875948786363186193627261663944529914762396595285546242117491643633198227775394747352452181254316515337194523885619744842865386836367156417595155828292376794377812597127776269651469586265681369429121798324278315263668237143184186155876283913428684486199397794299776375566697564893392231799128985513958427153422541653632642339779963713497638882847198251374351245425744417386469169874911235238668133564272716613588779791313179872237444515265413289958977374161272825366761292518414299827223338429844411531671511721712423635576359799842898948119171111454811436395279459152943848748874343465994591446241434517381176419536934364496921943383922928647591182418637337212449622722565214312531393825635768721882937547767911829299653238999877169713488168949868814126816793489259587283986862742143624283522436375893982566631724175593635766384752859115666648955484746112738994288178535287882338683183355154562368212519287498266465579984338464374423331951865391858747979815241562884878955484457231827797221266345722516944279981962642353368893254393986293182177231465671559675894282891999296728843391434391779197265364163643426746679197164973687213429683824578945844439836983784134872263519293776919882479738939417523863782958538526542515217148891166334427261911555795224928716713234676383382337697117598368838141496925143365123734373288862566595287691836227581816214981136575983543514135883873473761763211787931282494962248475651626845893686694732128232969424486969448697255528639353549572828595338288793235987822266914185835467265834147534326421121539923347154536849583923455467599581624318662244183373528163713641692922777881188315566462632886844936193761768598144768832919583875584659736584388655536627566853381645518145573337769421166639757811451255692823589421427171956635769775234316554485427234218671237214636946582839472974494251364884236739377569586683931446352629142514442176925673874997522674576716259266757314571859591658814565969884458178425591449494283538915892237134774224248187495646437915137639986417621438157529163743245997885326987928724465461634957446125647244836697134569633916659351714316789347941396248448193917877317875789484412135878677957644363949517345576778256912696459775168998622179746559151129744621116985646843696251256256921472382879343926276781894398999927146233955245753319388527396388982494689112676796615465294623429559917716964432193528847318449394284864441772871113896515447376684968413361457458636187522348796282122237271715578276828931719328519533238319755562143746716747577439643452327763866131619274821663616751982657733445486313684659799475372527299433952471649983863889425667376229494442595392577756786243959451381634763182348113571284477323242393679877991691947956383193326445792668358227391985512712833566946182816536246244674844836263866364445996611224571944336943218734177676236248594588729413633396613451972576225664345265427746315631527764285631954361893466996559591167484946931466436662351996745741488762364398842497612681165537675431567785678697368417523965712245289856493262887638278464834948465341871185374926733579841245979593479487813394767993877989387225462399878297562162457936853465999118996794459646679362947283571472269739154118565591684392548675681643547848684134192429563321888942186778527811218339276517485268466932884574483315223873419836652354432778926236757924253145691725156313914526191783187381841711215736126468166133332959933894814476977524219722133127119488678915683334654525627838528457214893452684938389731523364298899189334481773699563513838248127935757195962321267417789694394186551248644866971512289148467765399324286662157298316229854639158979287844847656567178863214918795623396579333879566331552943612163491947761137982515559743993198337329195188686836482255434633455176185573449922659764216468794391897355588489634519719355223543522346684432374613573417828262314527175527543894241582253168397549246686339518833969274371198842665223845776567663661987986779835345528986443297553442139785677192533421163282827161163932588386349561676884965661666867915633255192158735121576443938618179384783886658159297841933883699527985163728622532295396575734785463978249891143262682247611977393579384273286492641653413399129376395692829457692656876214216132651111382126885848426946346849194214222334791183924627241724534943354475644752854394927978432634849276639184278498788486329481765672243142459288867614226154139487492715839657534183595199492321169239612576318527866365394426431334284331862712388993321753284317516838813964291871292356574983534916896193312387397423968246589981469167297435245786171895434322258253873614118686172259693924149755131381689447945159118399793667971198956989673187977716775931727726412999856964651321987489552322843942726412676717795433476498672855926657614273843384522259826991572136787194477595946141932531577669337936373923525919992253199755688362987279319891791894293167624441437244264143112171499685336779622336642945346443472438842417468681253346879312558671465695431288193427993823967825959319732749548889479759955645129949812975839716653528412865365359239426798669324665396472817332254974543417439775214741822544658954398648361248757132113256512395634488214237983784894118648867321758467779468636814213167842663537253938955717287517813487533774599682577936555296876294855232561538575268813331817427711214469312267674444675655487956167483322428284427765329768452967795926167875226882414279924219878369865543963641671188978499376192178523618861837936634552378867964616865542624316878213339116782252647291352573258968171171759854928626651797912787594512565541831682146115816974523874939473455514627238698285546823115942286626976697357164417188398783891462848497222727267866674443622557741679272353968733381725877132794752768883188841168229517219378743718586784557563364324924851614885732391545281417738229584655933485614667185226888518457792294333783148856366845774627397416748916311185611293561822649379852542262159519529665656719626691745851965816846613167636598247312787773252736496613365913837657725482697869498868184574857592272619769345275961758116571129137287253176593177152853499492494922646843581788583777816745774176239722971148876132712375753259761633839822689283353571154268134287469249498417542789783217991417144966995736479547426625424354157344833495932875696168589813398931313542934919569165893783913795724957149539575371761938327597868363977819746273258151962611387113498178942559773687563733752361599395189344211458115466541666795735233156465581289526278235714376688883428966975836443366736142611588729495182475998233886391551587359299687823323125493922866815539547394886226438857158235715266199629117628259935639452823337827889789441246227681524696827699376154887992494251212661141791628222618498528743742798812961932653713552484156329599278355448593763126145348969998715649272922296388991435311298979444451541641368967199421439236269583435588415392992833865786382239463891741369358431516984513625651731714721745577638315655826361433493864738285946667222713337379519785147965348913525685818624574452856632165856297564154816352696771333438913422167472741375524191923355136267464199274291633921922247741356992392397615678761752965647663262271291961428283267354717563777985914899939647854678949685852549839318191144839286979837313456447357166179552468956937658883326942657264118153948439194963184787852566856669943685683969178545129364859415498756294581498232643578853884322287797245274987141377261448761867536249556844547575189223198174726439374958383849247259357245527159166549368441354969894618159753569193938763897383272522326391546446648424684312528771792411455998542382731162213978947278214592345573646641652857641457257416539177339783847832586519234874426423945912286968196557468845286727921491628293993547274157565137727757718427716159767162717319871545215847626112988674754364241393613297857558545393557984397226577786461115969577733422742452999678314314798536399631683727827773492723172834463215274446227884933294482575919321747261683459753961399556846857731437485619583778798643236892573615344794651827786541753431487647279448793773551194178392331185692644413681835834239948271369628772192469441823235139935952813678878813845826238649533137117464131921295676388143996297716532845826835493929824913412282734817389872392473354754985283256545354139348375619963361869185637143334257974534321656622638971773816221997441862727388441237295474995984738713875593345358967395693982464234419859173698484194563769995396537511417676493713959124114622275815946692331591884795115357573952446995117166244514114649286471614292593398823263563815734361329539768988869974221411874298119161927726591497718739825133834849831692151289868732692114486768659699694711596368327427866332176135995364313838661413977619796318798213643826771792898667437957826527871152628798877632365168749381968963135894671433668954737665741547739218575517762557821585959992774695443983558793574523816716863332765943297976123554644313998221386889999785386532885225495226235713792669186739817318857357871242511666575246927748422147824847988935572975567331962175756138726618966143688211196313767371153793587192349159169778855672686754193781815818814661455823979553852211391671441897842423629454748858867734768747331562713657822516483154521295817852913177849999436642973982363947238444128917841594582878914117719543944643336475623799591999761623797152484821383652619599455416685479516897925179229278123553129557417976767265286184795949241195735532198723221728287571584573955497586357568549347994932379663112751375921764687476769996742142226243634619177795479269844947268762824284181761197123887289884651733241548525523324612228186551433636681531872193452663551216247499957899877986331475621721234854849427415193614752213385396672845686426835186549661877396843127585127698117652527594223796997645146796696251392941443512292854458927576191229313336486595671195886533131142163286824473938928496948351364551778341587879662391884618534977944768816482437465444884645842645111881328551287729198353836189589656688422439992919724917495353297755577629629698661951799223332196443994955815661664624534757855589788272663917872333675141635273942857913184871994351755798115418483273482668757173246615326856784981329374159856959519142625273671582419815679274114127178585831988138117575482792184791548922911722522368795864163442375177368329471597365842257472518125849552488436152525749466416227689545762494998259713638169781438472747877366189949282998865897624787474299788772689879655134796264811228286853921988943455725339619621538123314413196339811233293154196898128549758279151263471666975654365119963779684699736783479835259669554722779138991669916878293158993354431432231287977545353567346671923855158266953696232467192648639824428344738198799736436689432423755577951858628681233679523655811367162947887645557824855129591516211494983537181753247648487438948967365627225379584236974696489176891252972498337659236586914921491525612841663327239777378659699641991163228449152938654519368222229125427251156237992442256977988888429135139643222454469156744432353265666519631765191995568919125339785335288264663662218897898321289612229946282557758437116938146917138912539673437169879472166757359149282158472188165992298763496391228323251358153543751427656275286927322356152485559681346743361861673796491439974731854328553539676856474426422685669982745187844427955397837175541448412919693933628257829537981914754954893285457261842685372363747132511618244859742919336563726438578548453728591789713357629162918662596667327384354489231146227973922667388926341778681683285772972138857547272237886843241528715817682245952164842334648689359731488512996192485698952719735597534365454863999559235315267616269675921215515549462892318969675423723742373737563631842537484816986368576648283446521673311681178693531284892235766623844892898666818826395426883545839128297853543333743274862196578389198873925337512618993193649467275152243655314465154452716642268753857123442887392626886349454228594195348415244315874597432753582889313253657976564893545619868956877181455153798188431881866659236744868372541348961158934588481153439156319324121115817255883977291216725646857848328933421697327328789343827511322115336386116737516428719459481681224641241714553185864799637794695968172243496695169538491959419915791825943612117151888973813794263244637987187782768456747916322545716595193761827663326816338472841581988364336191213784325152236273262986399997918276617192215722137125654533233959619318428799883694958392614898858668499269247316782521671151935691539456269999568529577682564832975899324394149891748495532725911389212631945823896635178349639657667739713194373935441164127872538299271389726918432446737424566376383321281769593636118858194722349562489345384637147812721172285231267192538972585355336233441844969658799686634258571293325419784648417454927331288296428867636999839555957579687396938715577166947793277834772512294974421216691479795377745894994491731832492438387813586865354684565638777819637317546231646913358712587268131741595117152551876745783499391374423823538683669133691949859886328599741598763665834727693571992741614664438785257628377524512685536992344291725376193744175232685274396516568995514778285797855462781442988788227695412871556982151273372148751519849915159647751758984187853893786677272125789755543959635814171537134235694578922216969548745888491714273631423523128852735293942913338671692852953837999419592792824689649623827189678619469528791158912973253842818667513465234229929996319593663329179414816228919997438376622844759689159561361241872718369454728675461427452455443693327252623389836956591735259417548354415732624298757828344265927743183555726126891662484791382956255499961472961917155524542736341789666693788788383735178252776843898458626574392574962885862435614448299747266312718987462595965498228181797338417284729979464893613422581293843651922928853233593734881991273437539621495728857229417496414757599551571142725527367116746111769693649553625156782582945545511469624577839244812959143597147163925462234157427512415653357943343778882286927667897352675379484641529747228774443177234749778942994956567334677864586959927711811284731463729495744327228979959967331356526445928231951838632517349365815449939743736819571722545461741375256139392872738719943479443569875577496574746626418746679826783239868426889441972855412482951263258991468382479454874892186992395194929858885828195485573172282789982956644935724262718995124172179254798199462787847637237444649544823712758726511373874527861694185355519382933858925356942991398722372391573656347863355454464246362571427662296773917542977381726863894651751337427169257865836312691945829842583199113879351872139124415378526724533711625713715715255572323975327697548119289569163521642948359118753453471336223574537521345235198334569692193359682332255678977891347296295529467599614271167746779477996458285833794219315989555583372917634127385596425813667216433522284585213762294774948659272434531978489645764921324278185227469457375239594886827234822443978813549942881269749452644866263954217291369385258174246533139334644343369187592399624355568589843267483391939269139365819656531745483711714621513347617652293177614774834184134356926672881197747124486694916222723481557556139721149698178791862199944779471353356225123882868177871347265389414124525794878775462484199527358649991569757614138166566417222886764711784434737534288628321498964345312644917551857627549588365689118262552296271743586434259728518424578688285158396938243114964696143999618223942524347648933382895974844554737979292855646865944431724177449126935129573258642874855351894795488888735949794871165589668837475153925318377555551918854647364878959489216851316385271444151537223151979555574992519442756798599694691534971269418252336895644594853895282217237953174653916355739818326436248923139484685229672553364817429212514442799211977122358638269179229543622623628339443295191917828762133175335156981399799789379246337535867363869889749627544456869623998725811887852612455789476337525396766745428579624282128551293731317871322258129437528374383565585263293298189923664582719955493928226445344235382629771665914215917541163465892954822867367667167612527854333528898884699345951711762435868119888575835859353323488431816615573239712297921332561213183643271593474682272384439449647891118957384542658776218141994664664468185549694561161864853319666992699243111446443438813134998577646561869794437669549743931878533278254133575131164837229396148356962374619122227498111121524448144262422323433163963964925359152468599631863268354549832446241386235976162267982435317341854882483871565681389512933556641828856233179537665495697743395476161663969823568198457221358785381346542513768557293893738595123957619749815651369447799658159444994967947492427361139874789613193487271929151776778766134994383432157139935111678534136534753176189882775174231974477929483681398276333749252258576267196264373189513776692715662278967584991299149327876846311437223851241248953863541115544676487563675589484669923913466822451196253712649995795986222784828827432783846725294783213462653433165234316878387745965291255587783316536213941714299699724262839158611122315386695655526822984888748751871398767212662234322691454227214324998629764987397466411733542854253914871378897533153224457642956256634659438289485696131684879383845219142959888337839987364293476986899174962685267245871288335814592499774941366969446454376766125243129313337823756382618274774288479319532313687295266973248656484313255385633342757344567312949379575912564677752474719541634551497797833398964999371224276621558228811938814294129141457818843755435527317616828822846536329584937468188748429291274827348386578213911674596414422793526234881591781857295735977245387899278228297271881444849553171651677499298715893826299243439494451188988669237429938832165914438436335989892633525217413813245978689188178321562982622992315792459458254966813999261359469929163118823218789888794828764646553853534843612589359631496761416579732115464512536399328893923471443553988338461189812599882128263416585316253242122371358461265585244564279482494511525451376814417663179817146496448863898378619365662542256885437114274119861895341585719277619419736936913991525553123849699439292794395583533188381663512454464542971428671968796842982227563715992933789876754338426638374544933125494271645167898561276621912214752958923438997833751412412513876962854995785477633674693844131627792181459896559715174257549519378477422499854624121435179838856683324443437789289232639422395863184427668336135147299139269634833255821652255658367251166937411635116969284638564269275767487441841435353716641966873347985729793636159429874969547661357837686947453485372757692257282754523116751179496662329334943228559759333431369825946868363463128184816248265145538124931176387175365887694997559351633641267865382668437727461386359512527293622787528389824943566317558268431598159876868251496136761587239268973761435159188681347484116932829184127522431387312951342833114912413154396225946231263346646927947353771393786298213436189661364989145264442952872125612467483881875391634828986186456592341527585913166457245744279727949881538119415849653125433395988865828629549922877187621849326193584444287179366974634627439139286521828626531227579939673676584234126967529531278252217464912225625111752694719635636462742853214515679747118969533157211395596955412375176873714918618747286671211437924511672962633586293761771713484843899985157395814279256136265638827815329948428735639332857411292762283175816679131144138859757734842158628275176171483368124895179373934741148745873218819298716633925489493266654854644463333784975594343549293478733178381668965514747871789926798194833779565994367955923914583372754131866456771475766956484622776268155678146273658143781142117714529976779387542355523516626397747623181118662796247497948578241792119111876945668297881748542521621631697291756474153125768819961922972691756282696897373153948939126374249757716475191395498289182619123987766283682612141757755825726824579197356515619574259641292673931848664224764622935899998166358331186397663924926595384189514346345875431723913653971478338652275651193154254598785722544398315879878174497747525977122441271647634321659434164552353385393357198331385227532886919138657771471293121543185362842854619285323222433576784219494677838745265477528765344654584849622485799347878745367622161353215443813835513486813564661785914347627799349578257493759717198531373941875822535374548418128861888963159421664189542273183858847633737767634832865983291466258812184649413784961467666613227997195459488567843888644394416295914448375122715993856265515125495737545156126624787394744355683156881385796447625444718132499794363392669394854397657458598466783912167985369688353188827663241431436923558416241537319956258381323715959789313455175169585322334594988857776891417714753273415664952726493983813673837944364728113285724111391657831424749111812129582982819955736668933832913124962158238224585242933216497597894997711622958472465775314954642831511452557474629987416792155327467413556284545533164743846378994633878496849382687942225742539783169718382219356941162535678646842812649859765369464416952715399461524518465899735965551622139975837367914382254649285145248145636343823251365639547841455257519122394628733295948732756161821723842293866264667448593219399352545644931436783325274484392327361834315338816127534861389512137999439842721323965341468498411211132925176297483916942761519618512793399818555745339494454495355324543424268732253193426846371782945376582355479678819594919168262688236252688544335273563469275323924649697442855471617853868381482845814548734159111785961788636818289633395518499467854822784255163825144584423358934415663987383564978326567782685915462658476723111841387154211611136292948699899783811415725875878577579338218275455495966433719557214226946753297726292734114849658961554128436188618772161455319195149441383872632598514547967976481324432628872922752995792588215245678739516786852942419457267671227189938417183275296242857513525213186936633831458963936787837458657249792165119895187755348163937541419616916884282956478285367129161111691178496571917825351851757746716793541188187759174258333897556136278366973748555969671869595296613429915379923499356441399698358599381896798127953486595554378217146126784496271327976312648458252754212651268299886516561314228383513768774582469819565586798626876243829167283274139567145797374987258164782189481236739398925413118913279478316337899738629158259931247285896427297168729624548531555353742372972678459311665417541876148266463529354264228669293389893719245486319635947893692929818268972411931983476154324415385191888938921998336741162582929428486288869868772354369498688531369876752747595639146975723675692488944216856318312799272538886923817127792322942211928151747349611322981213316416597293265898759781878987217846476195312881555433419297816581228737256324379712942842632379289852566197524574677852813931738723968576226664821686676957939792887734345991383442897383975944132784118618636858937755852445746915416255926492373948533666139729251666257896823217959314817778682657162731322632326136425182849993618872712954176689139537699588848625694889287835636588247185958711279657564347699257961768253124131994549852511425111276881282585563826611842983484491988996144689861521594682919338226915529867842983832299379282914693144839513691863172997816195345539821752911995293371161559163516386462542431949276362226222363881426569612796613339449951176354485831791969521833666552657171499881959145995968224868813529658446521524812487219584364415359193744685975214823671996435951869934382788289561737725258733719692139297916842823484919762943892994813693167248476875732825114293673821126831678154526697297526772843955627563377738297917747213487682133889226778697397851661989557751938731417267885669625694659424516389319835513959819379644575824432252134674868759776739176546979994197465741515481943849484161959368994367317735727992838135129944834258788452823612684596817781163468336971152413562891479148154381193599684724168248265269974392381549598778165987794229216444663616545321227515264584495947492642196516627377774132479863582646855395956573331633769654983156521859434981313365542415694898548433465863783198642781248527361293338714972172936183996847563563795565852968159547746229976222581946422517312246829442427149277261892843662686366199241944752578548633887845561271185278454689344186264958585511599196849198131438155548387647797586151961863895799154961735493141646741716986445359545617946241313776746424958482326776461984894261744375661417538186722619998495469786242272823722293454352281717585998115286448566781125333384931419229627261816574585196225626547558321936916553811399921462125769682773374738128146947984175559598665973255156869543341546182141796373598993577422744697385488457974323922268819964322959576321897229412537417493625729556177266877818851681319572932976584288774554338377398254346434972489156599823749479283597139536555469998981154189986236949872426762652449443752749453956833964439685638473757811756949523797141988342188353833896389339499292188922121844126395923935875774783673874768268787278562948496773839116572497155873628711541217479489947166771357417288241341978816699495962986616434157261258927587525911998558181474199194895534175555644397186923431321698142458892256585373775916928177881925785919556974141531133829417598966546381967371324436518457186882424953159775897229668512211788729215429376755457224963174142813824355272646271882277484776866247563978931547525621468736311924669747649673334685729582912184559523266114245684955993193392556586712393626164468857156366429868437656817423747521325841473258182656137767941782693276323547336481984559352219379586117359172528696852766885822669269884782842692376453939599655672559837911179197631833773637294339221912118997559542818172771214914194215984549592671567625534825334734131475323479524276528991312675977114535772514931582461392558146746189655896287235361389444247812321274654162884319438362676456578495849146223643675389547972639377752665177331687126961758819736511756263895853643138194874757497462878156531884296995371645374999176872434492892491817861497876783369492732911148129795734491968284223485485588399268632961966884296434972411248154916993998576895347634764777572962562841588167581253538995553648774856895719458473525394747112868153632113146874124553827616693487751841143629832366557218777925789774776938929146689491377969437314679273964867415455471167991629976983277562283626154268857819795383699234443515229534418198868495644567982242663425746544331158623968657761815146519164495481341436382856847432983888226755668711429513285828926294815569935795736677884366256765155681573942314961547973577153656114951235365651593278426231475965361373798252291418259852778364889727986791999931754638796522899772478947927921885347126767747713758632323114982425126582365936199953974385673814325963987468968853951377634925245621718544431216491437181471884444425268691792241263862998977212642958716866888994289368146767711915786453931829236151945611281371748374666537349954938599416534596324578212745729923761691333582113368269333785687853892814152162396292234492868543722893298313541141263493678422783863273892145248254492747489657832149228412734548887842689544127339141872944386264847995848241762776762855184799983662145968844192576741258517395551764249933422468132246986625979944358249472517329423991553849833257961817948679591889834116889193788778572337286275146357935834113979716839547254657282874456756842813485339153318936112447912596667715347132451244644867557795362932355956191214556833488247673755881386984894238711158752418684162189576954276946131815946884299417245748255847441419814582881621435897622185728858738165244395347716467665136811573379783113536217733588881451397634593693945455137366943177196858197357541175576392794191691366175819553558996514683172141257664243987233121662139227339345819223411123224371563475117931411323543554865293147375775466486517761916271771983529186413151611365455872948826278275725811969985429996179861577384645234121998449437835711857564838342742741565597289759744481862695669832878417135999863291287345811783878619312611676995993536116175342292122281248727317568168775298217318535648429231786682548866687428259614544457424982936721488128734784136461193481473954181872654922224859859277224428715793858249351634618436938368239698973796511564824756348974876845633881442487778143656454731314856935968196763665829454626657122614911818384531912956318972673723123982811352343437148745981163354552642556781132726699978173318653616862548441522161967655875639891376521354315412496142528971859786428344773213231845876763648615256971347566779752249795168718323929933677144919122991396166898171963229824213115294233738318224219331212432732241653825746457757779799743925937983253527152727485454327518891697813164768839678913345985765724594798165858815595728325671153382651457922612151532343791894922276229722862976927142211279672789382362458445946639659767624882711726952785278731695571332618778659345313729582552917929179837691514944215154398397178175958626677859369774184722529417893653319875711677965346587427197352572459728775471895442174874598745779641517854933376573759198863349393234918389527153327337213435354565766474435128351183682824357684158685837339254252311483816664968726299922836239351398578123499261879772844456381399146757186193971946911344862891794378985674861853554477744823892328116673949934267593367659828959749396571473688337553317288873836855492438586318964394811697861445875117865486373691879837614647124525289737344494371363923366967427736797412841178284484611196837599167797862977676813363262844483388957743739486976282517571928245931684866694271798849587578282775734198668976955838766513331598959358115991584876542283494542247262962351389776329537667191314919116239258234746697453953163444253666679483756315939333428753976342798736991521914836177733938642729582981133222584171754955799851899996998298347744719194563348417396895615438191571469716948779498177437879668615751511114872719516259835772533997956157433593443957828395438637212815447686829123795525146889598679193761342242512162454143872739649815838933273377313716984257919998371163271487217577175371971869775779997835535272868395282377135682579252615922288817325542253592658664614194322192624268362621765531881289511619871296922263238671658667517667444463953168362238274139688345979414598794621643449733591423911741189958491363617561729761941813821715444469721356337184988958349399742287247172694491798584317136991119623319478717876624845646235225176397244924792343636179691123611129834235583796958555415415664676649962311661165999429769225582236122252297193572513488389737959551574682382548579816634697381236272638757899656436998357985197523665539118162714393927626114765921464374979249458649499811366757784219486399244998837716843417275574423142955444126796378429136574815218414737138697325266968515895396225597291959671186562412899329732379179154921928564795763785766782779675165956813161547825272858926874268764334439583153669644534192327273595837775989245197451848969686735317974452376775519484361227891219916442668245685623858961639649539164219913461823916881853796648554764655881862152649624883546389766121498584679732684971224742717217357184441314471768779143213834648246571591737893679584715987341154691749613492659587957356989984352315276496669527293937525324737967583133578538248532373713166751489781848679594436453724111675714562555213151484828298489436716952186596792748921639577411979574582232791854655718654284272119466679748824177648483719226326262819773554851514342491322844558739596841115166488528658842187959918582583197646488243126324819799547596796548176899981592981859884642211654462139937877975958937271472346782775767444231525416123959273749717273816228161691292486384567537235525136932881889928647992744467797398882959137838693382355691279989766852644336275493527176192189856441514845453983244841441638524156116388833212415897941893634939538956837248379758331419763145886781353166883757581511576761157725749146624987734684629286289851324217678966628176437355864848861262937723375273616431815198973989982753979486646178158566354542538513891737481997692447162424557317576459277276835969574515941679337862679485977453299559154911923519665694989625933878882172164414279738126986368656424531736967374245946525251925546998951646264686181732246247581279963917633871577451554166724722616997649836874617752968638199259758313375762121886982743542457222151368734845824412474627862573577593366639221552588949625762918668883446366292259134985451542316185328933552676568756281335455152483175339485932716333355781275314511933961363532954278746753273532525711645777862378942517723865996466429996682699593633294578968614336224762831778922331587484233566977344437593395418556283686842538262514243561912746364523296348154213516753843917533784993526321631871456728828552639128369881942928962434314259311213138926819182886928348653574575877569248157135726551414651917485231135839531993547566922812658951164436389478622278851931285971165418145972734851734736644231247777569165237512584947419813835492148144565226463846585566748367472265519931566759396843525332978184434416463936865539789293389186438879414595282734511429648446178755675835443515855896749583289864422795247587962441814763961855276355679416293326317762857842469973549479988319739395581355499287531468366175958886324449877796437474299696281967599833619487811657955814421496255937287125895858444924355495999392919611189565318699925543943862952822829855285944845379663747833914184969587961354872726881672752161446483179115481552131187252457392939237237675638831938634768497589492214761233915197859136864621459561946957257646321233718159284149134527232995416427687483392694686838659738278729567315423573841533278251968848694314755192284236553267354927786126381789918329964278813384952452179158938769655952841159443688675681484259113598771875618966724382329544544784449426876672343661792645987255688529197564677833891954442166514455345991257839118194437633273617932431345927927726158711928267961993136527218888583343333159835834926568267845683916138433396787278624431114572761363115444812628589823833279245272472815295356185975156353377774821191519143732138534268574152443441481274546748599895542946178211349466711374122992444627325945179894465481782971924486298592997886132669637825826244744493582259761826878459821534998336574598455546913756647689978782338676522955446721384142938797829687248423867438456749833712474342965796973614458823895164292525611179665726249931229516925266526623478951455448448398981385847488736629564987722451347256748477149681535924676621643357821757369227269641998459313537318273897718424377366992922165785612781451292518244832924129488947915949959199813185366577426291891384388186157365781338178788667785923739434149527549357134889457848921952356296951866577845789463264258373882576562997772249985281616333522668313412168272168687737269422586297436532349455293866573513642352984535769593922397853993367482561794369118499429993383528255381361686496226967866184436159678694753371983578154752285699546495879997175312226582688256991621117995693134245773842645344396495994553765168545728872316646265764919375772525986774994457864438728746223354753218698832527959731694225449894125884666718493466325736269249441828274745573819331882418312245336943316754133855734964784918429114334818191376748134413793534424747126924941414217648816159381764464945428468889543223827755631156449871727594357668849624285171614592553282625362155916313821771119264473433949143533164434491591416732874278162425639963312351381744932347244374746622842865982855247272985212575237329316784978483299397716853366886816484671519728637296872297775355883359399169823532119229886321798113842647528861962973851472459241524676338215219397573628653565616864586497717726464624478524174669918646216978625966393245541816897649261757517193632835288368747582387362123722963146554378153789728444545716892285739156951127989723176645224332894798373475163944242696217539718178915333638831234393813455426313193526668441453773953397737358547787353186922389583693265989643491924223724842679948254743595825726247418782858752576939279651133645375144238193248732658513614767395798111819224887142781842217836394194175176464166234228338911439837235732268464965476188988821793525978283929225752369158838898149537345527447823938944625515398352974436161741934727978537957872867398984967859229827778364949926645543738423335216873798191183557981253183396817494573362469523212226323552123753998124351111421432954318519764954866371289321462557876725692875361778796627754997585146695772297364133693357556394798356614833568761919245978617966699361534778444434457845684381848764717174917349673366725143116983353859249863631945626928329816141336149815266251612293924985597518213192528134183293494773221872783882933835244452682968179157325493495777171425573668565469171511659226824854311666492937835975149951532717246293842835627125518593445625338947221312853654194743976447869653365285469715113377674217892656972498835785285523169489258423919158939398816257463391215936126122793733693217742162181474176786756928277378152258256383689257822414229847542746561288347351932162483366929183748645479195187283321547138935299953589488886595716859453345744638876714682231591175928231615857634394652663722638131833982367128448793869221372273156344579161894762956767784811225648975872762128212787456835756318196574748741451628353826499828728465639493447398133424843734615331884724957676488619192255514147124485669326855696494619969454955483948869544994533973879894198537721496441838271467744524822764335474927989797823586937218485816344644433392974122694225152423145417731158136536586917411543756285967952764316954544264327471998494178254563157491817137765854693889714959355984964676342716175354223517442839125572114165761286497638372443355782791217674672211864689723947516675684342517628793152922315955512961483443214863277258479763212417346578888164371995722698818938652318986882218396777936795588352462261747868686253845414852577723939893578335851134664849197758941819157879354457713196985559243214218885829255825123692156968289511388751676157547797891397215145163938185579223982661789499893499682471837748827183151989977316265392273846728326529528495225721249257531292923464315134545926929844596496586722242555899489971855193743289851954219697525392476885158366352346667425267696833411825732356471135766373842314645535918933579472838465738768223565955846183929293937411376186333736199717998917291839846444966228737797487278887869844577774485257826654361958735517855521859354945599925129873223916367443267651919891392268371561186828145781789659778884711765863445348697665639596374645629185328742519266528468184448888887328172231136787533222655434312923621733735393945255419842153344595568831359553867398371486619968414287292146322141757895555431271688397492932126291779324657663621449279261463872948859214769122264162987123399493267278544445451857945646866794919627451785328313896459125593983844688656968787175519592951248432879534219888675135974158172824981842353231977479876362268349637611834146233771756382387211163723796199713978144562799399394665845444414511494748896736565812494847168528556731691254799281329692398149873555494528788696527476516319286521951391269818469296645165173624598517622513337246699115512853192953514754967671349141699764964158399673869426449343392267644148858714189932675497627732495787573343642535781129871444572959696919263325683784551695843826884474381522179237683642125297875212639771867781449583694113789199262228384951983842911411668578493614332626715178177116163918657997238489959447244744459541315185616535438462976359774738767155526278521447534967935387153757398716557681334629411739434698328288744391324675596568491661572389153372413668297643483447595513417635765829749594742975613164384145412894876715177254625919237532172351536116593228678168982734749855987597146367123828715777149135414153756372874254925571285276626919285792889184575822939356816596594863959858115587679414984522262546631616416855512442839271286329983942563157517651723631658279267451616711551214276438482219125759618379324325632363191211113477336152974394767873172192182338951465642971346923139238336568344388743931844435747749573228142369233415398641294867795916799835837277596461479754534924683575858565313948875749172463722169654399731924719263171226487593446775737628888894191112649497521297769421219988387387452389942151725656775553372119744862765859829384942496734834897273347623595522916945627889367864287758188539518212653331156842349923822554414224379593617189314215476631851361697646797495325634162624619636795549118637159512918169429373831374274936731671662467498325597524722225787635791846465287626467849851317971449423969567239755448322253939173814219955678443866787812195892272582486933675962521211399788716954971574631226357267286155834318596652914925549356865461932352911665755156599524219546538653854891476871339271681535177742116485422887829736884936424196296635166244935997475867488797316968474988479858595871519388198595422629445221968455416333133871313364297618695448877491683779889115414174934366254883842217285985416714116431145333516626324823363934343776878311552113534925141442756132698428463563716116521543718219459291936272342831582535895626551468452958181264312464843494858994748833631646967183376696982769143824176938624323558297695661664844241744695826161871538895859124527691949431936993945833296217469227192923116615798269488989735645354445746297665472319217969413747281645363829456677476163194376984148564855789446974679869296773186822286664587183449326234712919682789344792481634555277636836784752686144273135579886639311878243491885311523951948581311487291429497828968253246983114141758889739419286891114612812215288157929759757336337787866886394298888762536259883541227794333532319174336852848982993652973326447354776352424222321575663884428942318943174585516553198386728522643435532869321775985792364214356589922197928885383752988287513251143242843732269434511428169364377571655827932863224345249166493959194586288364674997411396825128928467884519876366895835416818699425194455331957437918358938687528128452875869692373216998756517328954239625584712812411276726547332655615152412583634741212845577622972567717945117461482555991663859995655339848584512666146212476374739343137864325479183683631347728633835521942488486644816821572444627178152299926588969559697731282877682891782348235988936619626694451541518632554952745495257816142284134896931435597137552122635633945323926958397199634745888341534155447931751358322785273996849354777351335469282441856145639543819635556982999132917522973837127868424912191994284845832214715581322612721798117381773873254682613773744613594221288465779138289456629988227449547384741743552476947724646389234852226289533561253835388816628193214622554819715187495375737436737187143413483871519136598241813412215455683969911793342155235474685929476662452421745751353688146428365922165296369734758917811443277759764273888751125995675698815581455761149814816395762212983439474848932822292612286386484527453636519689798969176694232672316468118866835621528166588535756382192877459821861667215168623152259336151842828874584988741944958879465458539216554943715798183879816341993923468752913472279456336869857947283957148375482327759346221914631925628345773895678592113992354446897621187376723572663862196421998649648464935272337523621262141914868684966583616456618633847837313161457884155679328982374947666862886675978335266165181565231717995452949672187682189136548619298644737674782459547449994754663526798456724857792445424688935386845671252546216349771138932348832489415458169583459453335469241379319754559317542575797133946164995859213133786733382193386982379855665877145627845845163651887752317793596947632215521774652327447915345949781791252218674795427928542834883863876186933392734524268451828994272779363682653195411246226916314571497645718997448443843542173411549193463362195838923376472613657556692916126598391517144295458993661652353892731679473683127826162135251441592568585653854535142234758781641776525978264426928932396164237284735223129469962754873488791418772393594421316382658896765795573692841363383819964752428787344692776782919189975341572251874233499977157856843367393517594816145932735419973217747977627997512184156696574893556154816696345444758397754922367861352811434867232141614996222718834913935499122215265664265335916316597927937138554819215737137657296888679363117587397769463237846424271197497145665331367579243775281391929623179692627363277454862881872844149999151777174727184362359422735734638694391562369585799642824386647497816851977824484457428856429157637212288779117542284958589474946756865641652395412796544462865439916378424542982161714251336768759375217461658753734248161646499327737563527282555858663525165995668314644362517882638989485884449178432757887574647425364841285182923187776423876528154337345752734132818339526268852185719263345548627441281896562779248155378832583226345313959126931735361133281412135445739732234397623726934963265698961924146466227488872167473822617798192747349976754869595766827586494568282178643928866333924563182547265362136326982514715141349483198624825436935186555159173921238181452884577984447932738928841648673761118686938711773655438493359635625483884745721166519359474426777116384757227214845779615947614324842216836546821387247731471712985296677321913931644315343393391899356176156258292522945365584663588985681215933265368884342686825613172182474671196874196254836286482599626972982668958673945544183231183679867912717563757392699811927164959639719555729448597378368155459412381225696538377994729525159989917139578931847546917858254242933734661463446289869534459752855926383328552279245987422386351652368599354372285684415522157122247186991438445992333674878479573271869992635124246413779525563781767656799311624254521372818286242815385294356661913949111827332312739248663229318582583563285425488492148458279127265391517138676494517332148941546965815617365894244956161943987583963424249527931316821815194741926257669412184215686666174347348853598547645955493968465798432227456119853246776952787256197217843452227441197683751466865585258483693336325984247264641187511339487711333839134848193999648762591371393564467741648838682567616733751917454127961733592646317979145234967368954837277432961658562875261986771262979592587652486673988986553567755513752426554121318196641886551911275416852353272972436513157148264694388413528726858398684498114453861692843614289917756195884139415574548717125916672279648151982438872542343733488415358164152384961124238311538467893698993121316317739459592337917365154355274815476311251373164789184598826296633364368394591867666195876495968273598227567642497896374892387194343155711464684263889267486185499794174129477793871686424922559329737128956624812869491693637668649331136678167143162121383849713635637395989794998191117492352513976694192161349247258887913243439898297393326231834722421635857836745464586298282544674635121893355882349859656791957321822781925413526582456926111732722881872321663222355846446328499678655675732142166641274796534481245692175278374928935395948286388847855361297688472999474291728583377612711468394384231551521369686255426452272581892846877813761376816442657695785868456236492439919643797466924311144656285427227171339975567886889244752283894699633519964552139933398415694844895145942395486489518349898382662166558687116643594427296925161266722578279633972314123624121147618745652524792932223474875778447212667617177159261497774341175785841499296711626656323757844293676525524194165629351525198498656116547957353714647789297936682181745548253324677335133825484582565998893124471193516788225564628217976287634633863332943588859559247854416768134356459698473327241816245721524858493353281312935996421982934219157472681712893383924912194515418236494454434761153343452792232935564889233517613836161128332424959338352492251434938841763784179192836955179212594386452539847747838414821741981217732875868542123854336298286115877165432274385669972591328828395189623749266623429668688461399617679842758499641696464211231181857741916755618658184515537536611383473847397252959319741484844861197462181785871899764792185461579115313281757736693963971596533442853179145797356542748787339563747845738297822466648416138974246921492112783929573413995682995687525735993284231361649117217765326888477695918134988888618264695273891559149942431118968673932548737883786679792713588256558681564231318855835885233947482359485697637422984363775977626731558918661311598834192488238712746647413433383265664782515474458992531854282497842111359777922821873947255484967277282259852822897982616244429136745949914985175763923535867779243636617996492877259393877534457619369958487564389317484236571331256131869626953772521733478391425927194854349526666538766696737237727292625465829563448897468172852552692138629656889678214119284328487599241296664521339749657979717556469468934365388252115893672426852787479895313137237616763893377446273152583785487157623891227862578674822189527221883162273858995862134332173784861966163358257723835257255422797794399514337988271675399731899569887748169768674632161823912856745417213287935486572563643738483722342651343769317452716177896168292456479546565219379886565262171225852795341852778655311837924946421589913987155829339412994486926864754152856337251281389528219785269574658372996914933884784553178915379296385866368546714259455146674482911497913756326641565178625964245183764947559122168565426912325623998272927727923768191671692263452279351132723988787754713828243368294286457545414977357639433568376695229873394691335176829265992651163948278527559956637542932195191385991743487381844477661678277384684757986613786134781756663281657923611251529121488463828136299981241356496297325151342154652641754767286814526131153267533786759126734294546148944359911179644645117426779363167382161278132575985517283119315832937144855983589131648939858342434238512191348241394286961885837339989288213126145343849927399122819726645836321754137828557448538499952524156929422994757482234963957198483984926115379128141536721329158456747338765757469392963984899623276899665229855685871968447398616285159562336894371366198727667185589534656135451477886766413112568491755458882839516962613914159988963497175357286883153243547426212441156672399967262485638461981114918565684561276324866612688679979726375721637268535184142999885767394755627432275663976155134699328683145777983449735331632981813659853339938261222744696894873138114336338944855118567146523824524837459244427827664467998261521994738642873654419655334141982182344117284348779633166459458656771171788122988742936572316151527535583385563246439965195711663414842269616839452258657117163313696893763434369474138848454775943512887119435453756538373649933272369959992526782234941394296413638532411552129232526445754383546287318463563475627151525844276795425151396543984598541124432199421826835478677825768661983981923993576914669341716663651938939219355945291124993648793786577578313886316318696969749916654292131219839458128594577477122441434554536461362222578295797839972317659285212313548348827491376517351258678797842765536275213752477473348997681756298626135319436163286174732796396267771299132538745232615863592118864772674836699123282658897116773259326687346247465421399911577782613272994698424865785775722489541766766214946323881357727845889855421931325945134259729513181166517589522825427731693552759845484133975165516278337472547521858342548144484191822657711342437251314197446746727972742775916521541948682255626312475542132673636611467572944565792255347494667227244892174531989194528257613234847226324675654563994628479682974685216573128473653114942891886244754312522369524825318387365889345674736941892364684411237616441896268752741957215455558219752622348113286261871314659479333595529329637233219231696533456795245175936549851763712254588947462758249883777743914138466351985251863852227881171483229744732245232416517285282328549422785898419439971698216347181922188557377321227275876499297289396142879581581218786434344962881595561518467576334866288584652699956196742487921486994741116266161651224352952989579844843558255229232457542639675558742987893213125149683755612246918297876196396791768934493497987716474972511189146928257586175755482789839837731413237865572956484642523415186117328895333436865228369599916596238116649762448869685534324974596386848825159734683936367744193521114885381254592783228873373425524812439433772749151937253485737117359392558633537521235474845556271199234196348989993338622166783782694993626414393636387493959237375674935566894246774312517529247614986531111423889211459112815554852414595536724725759759839275669799248671251613967932814732187956879636641711997689869221338923581453116976165623598419542333572415716393898359418349282314552591161671859675524447345475711859865923997954496738543979451425491791988773193575319597431462892761868624823179499348871897176142117868251456484218195175772385485252965898537847645142419436863477453842774457111614754586273399934316374627328378652919516745547967595956688415251352312976439125774359896546151185115392824725392625595159653651261588661133552622261665529765771728684687832983198154695462938819767225787975274988447984165855721421999577185383226894299775246187166113812248449129438396798297913424784796531532454372741669359481757127678621656162236282296143118719466317372768971598617119411289215736453628496454115714734752651124657718648163572832395659625726171741695499647838958494465825423486445873847419294143378751372429853331614334354657984648655796671982952385691965642916761339785774969186555541983174559662439996383182735278176464627572625594132349392899615242594241391731233356284463213736875288117289393537935351672844421837648357366517381725773856287161833567293733462333799975583299262427135498633855134131578777693734436966738114416817954721579741273778342131371851635815853826834299933125152146298679263335816226117499894918517464278592882493912531411791542267484324491539728872912971125121767289428462422318398585576987963769692336468578496145582179764129978111646484213726264369236437424114267895116277773198111653384594999568169676353553353317524974362328215173587641965185846224549761571967215778754262634256689554592576287753528833895329866621168315833498738422689221997558553474856285848788747748847582346673956665949827781455237886899356641297791572248273686463132967522531299246259966335869262358191143252166781587219685491624414527622828476434144992431392743984656837565197592781924953126314667149885394143211292596797327674487255674177287285334893534371698323779976694213736115366684543465622528277587858469885543786921463513429168744568456889157548685735165161934371114682586331198571876483474781782158296829727454441978216573542646365945897642176162982528763817343746325978275782879912878259882166587984781358535434522226193398757444823947779223563675273593377911482574242144298565863222357137165112524738948883468569694496982592654115818576712558427746345384538849218956635781421285798235578352262957419976817925385197644477483578398285776567995394948374112368188996463918686125418235636761579358894183852553983896358724861786565763146281588757362233518576213677872599537392837139379136736884572619553163254846763665338816153213256553667951517873284964578788993647794487537214423817264132822965744982624444766147752155225312775163335677953547212415736357424821142499183436957977559174715186979227925247742439175982342658246157747252825157954452565639542146718513595881585829965426369563143874222611657238925455972928211598829878943656547872478459371319181878752126559236453298124145143139994195749663287416318612115316295694167924232872592242452873482932337139432519757872925292429622734546378529484161152671712763735279715557485771886952823188361777658282729287266749822121846913667375447455161535526637691282446164596232627679922573233341374979238841993659549697821145273569472256244489344393184988594649676782294643566895183471229583438996116468614283799837749786828727227664523832189172855613285947668334674867966852935496714198854576833317893478561199668977842288769971659785641631485281854961726713668536989133969577562857828578843685272175261228863948739476159496813119525546322625477214828656347547488832554525142663945799323966594376422872365521624183114399848276727894818341311528828146121827488166346269291253923736446418147853367984982997188462994524438212438126324593112947936388619429653345865225525798491927778719774997474994446815744735492363238527244533866446899373712936148989693145331964553479549722236924873286618594848175138991123614882191651499784691184972182332611829874813871239248525523735995986873253431542455196647721211798374588732775819328973644654523349788461626117937824177432874197165719852451144725121753938338834494378413496777377343535457149569886625865442958772914438242197865426992535631497697921825833518959548681242272739432494785926711654422535642714646775143534194168491543896166438895498542852256185938316713234123643586561665273765485955267579823961526563988345773367783539412697747384571414871196764915845914666484642771158156622912586985232779133299394988549749877465968944946265173472225188176721197791285691198425546955842413493172281748747578912516189228458565673636419245136286774684428274741893442455847455922469711528782761994138511345646762732772549625615917667789254728882957292162612192756334337518486472291216466466631253465226143671789899434179522536763383776134192971814399352313879197264866165253332662575616982871586962468983215261417977454541578165291989299615755432956499346252662651559321884326522159974597644717743674653983534538525864527897561728173261513955796372634492158229826232282467846462623853147848838342558775368794955349542226989823867735269139424847782893582463759412736738669143891989237363627567639212977971259247168785946682344263359946942855559328622379493618943845529594147169729845764935728811353292595281962846323714276956171398436845849123544723239734332259183776159159393564877741263377266432936831848195571254259476282634826498473373629734249185594655136665491617778741144942489755247883431482268832825228346321634422544572787478551961795417479791845293461197842947916546173142135545779868442534235778275489581935491267912155566823641277125217546653352356692374547544245655388854169293763989333966381744373266663472756944856953661535952176722958923616982575732784268365836929722971568616178146551377749341391397443393899613246254836759678798542661839898192727999654521491134299283152852912712557998937931448267562645736896949649422114937853497561924614197141962172454149378924125464774376473569694917933735125461827154781936886286868239522967938643911993579186663575526712314158457436584492157314645225334749574296854282386916471871214678524734417725944543169237157514265647978649223676972874488129444897583456277524111276525336269558216431947698987915556977584448358781775433232911365952519944758525593945146226242636786779944786235327731442856928685252955424836467949164249749498913116538721356148944358122959751941683365388883676999891896869854792137545333589179958147723697976178623144392298184897567626313898669764283292199478914674295474239295612722821746547793212548961879231412573446989668878933718785797637774918597562348232391978458119776177936573796598637634568278246743445182251611462124569376189554787284298358283485739656244198466974494218937165537582995414148635164375166763215944143563876538125451765321542936238475642294995421486828951944455392855874362794732312996189434862947524838118371499599187929394597239513412239269217915795525963675526755867763774464823374661937378843328994351585867183459442168841162851175223598397542375471254259334341742992729463599936941356277511575764735669918811584518925775821277649915986775723163855431811828572462851328898294489712782763618644838859537436764645713778139793174858792533199462732918792561766241819943252286258447397353218832813896929127642465285718939711982169661552215352669139722691789785641685895329475377258327385253616674153574411837543363982595766323627864295387931256554583149669821616925443135149694942346192183943534167361774632126249759856259492717434419773964577442316929859128751189166243599243363754737539315413318833172984219384656399328658879662867956366394648378191954832787763458973692856783682575858825682826513853948525663711285865433594155339624355721971198485826266651983945269641747736564854559115193386692665638481936221666566865193762827378297289791756393868376542623348157765745718437513331974134258954739393662594143465442744267953325243389438732967591664978564785217436468241247886943321176445755486923626649327991322338861335863454615369299899722843628651126359629236946824785868129983975499469462946536895371982979256695531566651293772199187384288648289136789688765874783419718672489382849718573969337576447294331358333293149336258895549149362376218537731753367947571484219347967799471445651354992829239163748417344376832845344325238144418248862197669744357688212924254157833831696579895553363355779164637821879426394749155388644531984774641582111583378896559912199367621667758796933892457448547553124178744512115393537251894539839136991352552889132846835287159962559675628717619783365772467353417465726685256124341717943668788524884443967667181952645899678311598933237873661766729397244975123816937715862937418327931437738998691361757838569389983125687387236251225918744673561752319947659274396775449896141215336221875781119676229117592622234745712289289146658558397367571733294312329223887632351176722784194333545365543295439437818966366698932367891129542574254959576935837852522622565712127411358951423117368419556126328948973668799919535464329821452236914279949849793227659531665676367684578462321442296148195552178726263997129153262765563917114876492681481385591666223413113589928976915123473538139369569717798595286777824277979896742512272931548915687193779658122363571562525325683382548493293338665512754274642959913732152373138688853161523698597769864881293951835131983332971647632811929214286688676898986959691782773683989557414973861465325483461628896751479767144168589127362323982566593568263568226118735855244399748984898144754464237622235554428126495288553888212864966411732443162479225412233418694234296349645673585835147467136447867471334881138511124641353796561297329696698549541894728987543451273131789624467546827616358483419592669622957682263833347266495454511462555314411692825532971495846761725345776736817449545575948515575119675347736461315852245886343743691124786422442825939426841114463474641373316488879722495315642877141257487926613663792232584761474488126727378443693715863238255593494865682426675855421533447886115492969291658143575636869548147677663561526329577928594446249996651816847479335827666991624493157136611437359741596296157486681283842875591574623232736364922939223499848895247569632267558642453682565445868614457573326279315563628252547487733488529136157492554467521259832159891812596145391526368283174278167147177789217158775593698196712595113769679374251689858747317455765932888826131288963736456972546148216987599516292464998595548152963652391239858985373122576481565721748652525413839231377814759312374148299639712625731421885826843347145988867938391432511182654887581979755458187129279267233619357354218742549241267173785955869694914667811734749446614218794743133489979932315248819229987341543762657551689194873784672395457624779513461469656923381419843595871721957983847439757797662921497467563151444187952611476466396132777972895292996957174519249733899585675295374978565826839793873721387795223518365846527486663835843512933173997472822561225487872123115311691337418664575113889981281711661783423268615994263161178138294262494629569858255561467269178485633984729694429864719426313251513881262921342227687628249454494663678778793814673334957972212577724589458639186318692389491557238476411274972681441667517552253999539546843891744899558293318488331274747926999279923832142878512628882573152177878141254231181132829966271378154858763275273185366253759786581854631746344552967571746613251346698661384628614251234795119123681446465716566872984253563455613736471842387963942366511756216479925188126713196222752835436963864463264834933543628781224719185421635998381545795563584854753294156655474527986342689954439538844487935365953476634528959893685924716123597844496747532511768249518219369143372945697737793617557366292185413595164726495656292827535634174323717179618263673653396858155375645331292996264428647222126443896427537526242573346957158683872313146787391447559244847696882911325873512534188193376136514693725282332474673562798281831199471879992138585742819628692711646613512714453936916867737786741311651721165346847433294862535465419481485819583225334629862397838765713283231543866227192331914771351578771724199611221434524981895841618689188939159282433712891384345192999882686584637997976914337636825794851599861551257856179832414873267316191246161735442215346624849459958152667649263284627278442376272977133785692918268875728846453638242499869949756633114876422664577617582376359813112499131197533274832959564444644873785784337644916191946379643911378755178621912522525242194495423277774445546787748242351781321538186428872531213936151237148189888321297449351543147958652558436267267891725768962656429465396922727497478844639884315351779369422161888572834812233657624549472586665391484853965229772125962111655185223488674195973174568669534132443762428727214419756691453755898955286867678818772332466641119714222796453143911932168722723694895164589893183986282153224473752157496475673971598793914341495618348875433619658427618932971421354121653814868699459142148271214626681862337986821725828636546997565641763452932993573336889568213576633856848148284597984839631886548724397192818268856238282261814675995714785691484996815921892258757127585943872271852333222447292812561844222338313325646769479559684567978192721952496972898754611167754643614698838424514468637723486731981441233963413749591362499162169194116281521774623648778674778777177685636694965218185843229987784443795465759261978443644642319733813347793719796639794157377138418741419679438981859254861574324977117963815693778683178115436734324919289658924683878678211774995395393268848396584331251217517835364679363272729942956966716389715162997214475368462957517145195511619328645161896981732335735285244166929435514182263386658175588984585427866375471798362978526214652273768484822872617883635254518626892631922199258736189484734586265317319428323195792639812369866387927857569778137389279394371888578253998766668286293932448336274988267142687415914315449362878266973676834563164474827734829735432589162417722149431194384357689846642773443547478578715231789662225482725969696433293715783648759287358843692234444713271433297116841514864887311681997839138849412562938325956894982663676459399446628441835413791857214648677511162886878218587652362726572221326414981792548384328571127149261791297366428237559396498992717887796512152964618536155844924791379911915191459212817382673942168968159558583513772399447641747542346281939389455675617362334976199616719637572147488224346523132982652615251354193813227868169257412562986912319588819485281295936173271869981849629648166175658256462447446419371224928425979694131365197537444466746577965923436453742594238664137775471862283837991149453318511268695581619871569664419629478485245683643428565522752614541478882349593745581132216366711746525648688851399392492837588552193556414198217146275357915848848283714113734527933568257621414211472773154386988233948699639951197364457875463376571348292286184719155732368676232155864972579859753325442188792815482678716691575786219428387367795852633282238696227258866683451736897216237177598293988657882864443243665352911731939884551536979273539954245216218176421564251976329214518928638445976123338325856766216917759583979672993725318884495984758687884741839191511489727215579338116479462351391438399999456488288726641765794736555444378816534485848825284656291633151831572821294175593847366428522585532613522937376549275716567715147397559631467911827487922692995725469432467157238866547586784255682525751456958843376135694127686736212335731594832424874274822484114125698647129151438754235273662864424288779784737482694111466552984282968826279827986387323876954472466348955726423931752838533859895528213685226518474656397573451992623879399841787932561216452531682778717691558341487397941173132198969618663586525245738844137347233194859197649143425388792424937236511499253957297716475516898519159188994297827478115454933783688586376685355193793237521778135874411967583992261472213189883469719685434632747783883192968114163932455716871438725924199819215597632912679622483873273143163592155355312363491577893997393533647162492617836884552741469693955661799868542119455528564433618164234118852952887338175426767473885185968154342954752282848585654161555351673768143241324252627833967492458624427541562867928699895424569411733385431616318967836467712643695834376336845649333758438571731223549161645998921296947684757778922816969369251269753321785562353334919845859975839161149575619931321115579476849745848796255947958168516452935818372151555148734538369813996475283477431825688839756637925562179226858939487269244886488823921832515398346943855234862554746728769389113696881313778832316768544462362521998127385177386863516952976227216917625122649225465951957667378878539932985816443827822578215982634616714284727998779826636224475745495813275873639619262772198572992472688155317267273349448375465411568364784499127331274182527967993738196536446168175473414299778952751392836331237553794293169954928947229643664319678997283266567451163926171591358146764979636461466667264213347942418715757382338874589811134817148727283811132919267247149529224185793983996176992715428359371678147326624122719879319145962828621343883393363239169153548621381315583792138332236131475226143263622981983825838439566877471687958136135496878612547234862831524316917356833683737449726897748179551274865923286928889458222928873789156658875467254178889181867135139684361785419797586483578271573532867845374244983422668375332675651334651173551673838565196253617639194981335482565221719324585246245444556885132552512543881394817349685363765719859993279299579393251775942312386275383392247177282258632861889495923143266953571684457524511349821135249825972939374925265398278372695676154147874374791229926844893358943357845352629739612286665789574897589994965827877995451829876255894893288671447146582674541156636894112868893586243399644638289669179256935273886215958312128184971795397614882581976797898686964943562222598756733393972739436739965176135981653873169242274645641938549147182269465378485748192284848731439645581918746191999117589263395268615686558157147947785611829345195653287892696389947396487392819364463152291728612332968698767683939134243214974116382251826664856768972383679989597611681356732396193321577455215966824958511548147368315141569155537822663615529245165458394388731412677737367281676921849367131261217988615423471971854771473487418187946477615692676943889137766674258894654113268653841643328884219987452753868623886851172858177966789844928779958542549625432217675659951728614357591552983194841495389359218533283136224423896725244178988722139331843283353934457754542324426348323522856148484258613634165588428671756359187413252425721268999746711435334963187228678685373347828849263558665375132981427641412286112346111647149337368832862179688712322374977999716598574672549391522747944624683222979337379217259313996467635946233155682592316236426962634228831135582631752374816491653164736747275338493529818437492686959432249762491753522445173142726667871647776841182126614827988444221383869533541642293673262995326335621553716769889136351541862595146981362836824627242374461519812499535517288648362378714755545775627277885648463691461844396764335932629174919268294267586251573965126923313227827243881496542737238721959151842554733771323475287959944849833177541616636974472177161345136334977837499186424521126141543266463136774671212553554257291417952255621187218352596712332472165179631638437162291872995131226623675637361166274251449841852423679122857853469784727682667898254256331916242119471128284764668973695686298398234246954329576363522178588427131543138541486923265362291941633677978623651342567983983975937385973844988123268855144231633461957231518318524398792214277313497119949769512821698819316846276866668634574565525495215798415882447298546992442861371649569946179799543131164349366321267152658616568651766198924655651355329189625481556155956311766782212129162519454158533153128586617717713754698982745951241999559239781165433222396889794884738631519515947358487165944322684446486336729444272888372693659184622144614647165343159127472371622725986459244766962872518744795857356781694969645612762534993578212779648933976437593755144371189257121812187621379644957374473487199968977739756711194631158375984861767449415974974446442259756932197741671177564897331546392894993667524529266536368412822992382636378629644287714544726815933995622484336755326768949529913292754881294867399855648588579798953331359526355228683431387166851273286148662974832154182786471377585288854142423528826984519537275783566969991242132619869813531898244821719733924175161132374362185457337299572888374387394639837362983612448627445662292663546261348598743684227673793857299616638587341598711567737922621671133872694543423358931721773729823299269513743978762722887959941241155995269465331493561365258252366756362217639667714839455269395859485585247113783256289516434929856315718418675879478327869251936665235855622298135867643557541195417982453562375851414758493493842531765992137592542896545765858999966445548276339498951527912781786329762579191839624775454423572113979916915997858325649181338538715615185574268979443449573315275535133571885673516649675896392754245492579946276849696275795978383722868851477941899427786262199361446212257931191932619126214149173784717499589571629531151565461628889537465393364317311456782733621573218638854364884818476559711847157829594829298688416961829994688369318599519367198683665663922747657517566482199847294668959114678429164692719674394548433333581322227567736683191355287419667688818555126574873997416145991769439374675322698887627131621776628545712234384172723524686653214157528631957364345587945419629914755417392137452818683123184974339769489581226215153455553949453228256194215636241476831123948151855554865437842877369451654458434879145566259337952977931376118585398745469381985263756883483232561434869797785391566144373685732664159928686115252755273449993969363253121731345318826958848144869285485457461899662367259843338236675118755733789716429313635538286586469822289151691421772315123662196978185181948979947157568714813511228626719517511196751532992243364126685536275275649792772995129411968512128445989868836825436366452293494236615591463855487914538747886288849387324618146736988843529247821849451711514177675458611514285367193173224521267513362312631946755952363614519369595625876871435829145385645462319879257733865247149657111546667443456128395717422376175118665318553155975356187115691191857477321525122535143742192199274811531573174226629792991119826396348495693895556334514514595125649588837216561183533783222623177924716427962959293461773845142733113634428614623868725118412674774145477337679845727227967114571784221843699574935656342952398456677661929767159514138222341165723488468344938978389292214329771119745568862658476475596837694784557994679734562299637219878237572261538411756765628438315227755871923742626282743575385695361756748912163771754181429878495478143742937195179577518395234562355528691411827754415325737272397749599628619475724246698316534297946897657585966389859771213522326785541389875313397254274425546114557585453883112736133463826426762519145324524686389416787238894934937358691958566516964686365658131665524428155694289547273647531595836367173541849893519763596444937544241384467346586462612144436269484491837551198634784787239746773923195739638581858236858812379561768139183731816628392273399146111723722994974536346452671575964134496594889332756281336483778271611159427348514131154692758666725729652385235437523872957813373844798825327769511798883563699864233913435111951928616843211186418688832331415417267851161168798546338461492832547233337333193847569314243326369183314136336629255974487719345344464866599942856343781441274697923399847832815549717742857126717137911693784237286859934635215827597565733144763437331674284575235869442556922244966924333679192577512665356379765357689847756893643699214741616242799774447936371539439713763466445323547348965917741719985312946477631354149639212363269681864311962186491342262476682559536865751959697522636664323566399975351445284835977542863918637525959972481772259893188478232873366253381357562452759675477554779394522546283337491357795441717635976121648861491525283626586358745347419185234276683834473987759284713721243649297468896185749768949299323577485932821429883858541459472628356749931962839124767793731783617272163967131932497176438396556263268555367358487184626446191616823767173717635333694237736875566633449619362685943355927515141693835786611778262477969618112161343812461447353489176946656752774154189133857986984576132615672977485488663359857385887847494492238756412547531249627211839277281145775728461574335145927834652656123685429477798292693475741895595654185122791529678895367356796269468979938979946626153777447843878665657345238879474651384877145811355988491287125561598784588967983479219226937564513271528314192337258979671326657864826646845968672479335466129716176539223699466594435861463433821473484644579129352837963285377224442895142933866949635833361981334592895988174757629193438316447775865343158524274172324154587345829353557498615123243547994727188913357985746247359594293563262952277864427931655595814148364558755341662464519858347642477722577111166392641526258913148719867456462972135166672452665425391945571666859366823968114545974967414479145971462657557791387683324659564941975149684363481248569715669954941344313638766879715686132116399334653996872358329787389471199921375574942266998966574429428219326764167264852546184325356165987644958655829972579892335731328883276921412398555425546918131828134536577686439871314815697689383745482159583468588867227984823995523527575611459125847535816214646898435885828621214856246746291768511889361223232416139694392278927995821923146375877736146263844643224216419835412185588194387541842262793584924222569378785348423638897945346666712648396821662825694377812376946199829512656737296524183329813512494253397871678211429749621862999324533329376187238983954939918938382693529237849637822223114816734883145947619672344564865245727185488781442397522866333747217716345913146275936912635998519379893284488994487987259638487395274492631429857555269922758478975214466317273826333214388224912432657277885966597718136737228259225931718194653323225688499194125427478278633854266524343252644174811537489664988539953277322628918151778635932885769175797858558353421273675843328226685359194838168175342725947857414839849222917714227398892486227699573483464133455175963911621471327545881283538935329619671796727372749758191774215165112172643479453427126283493818318415659885729941752251589761481339785663135928883117145911149963931575788161947148742332425321513469936832736539213335457877728864755438599153953274719475146932217749489493697825274992515287397951899738986767374673724222941645724686474951678934396617692665136575192597653356775225975149552197597656391435991413891213157156896559179221519541729639834649228774779571531474444396289543554331587535576614847267765628854176224876224864257863549999864271783269771157462158391189965483551665622737363566285382378816141915477638364418927454571342845735271934659188971515862885968431858931394192979929494583978711885687515814192883723279356136114553213683173262443548464176676112321579876183226468295592158658671727594191313847657186291945812773422631741924778377995989468526756827892883349977665154988731395876665853966943618193482364383761426789985679838648976992328595626294283631423375162652783632993613121274214441847181168322421761852878289523515294219931172237223398197948298698117911916229731958857542259118718497387989861866731475689589359188827616492576139265524462386274155615144389882798249574692329624964576795773842664412871992943338675354611984949489566565658771548962322411794532477124478346298984125344214456693395621445864653153567986332879197559573968323426663341862859768513449644466597253477453638414353487241676224839175711163894127256879836447829616276272441642466833724347917978585182225278314896168482183879527125135643463752357185293469321812324867114368482181588725545625657933733968896994933714267619174666838924792482674944349989896242733625994231286671193882869374555897396597616373261547523451885264883432293618734877628862831357645878976337119475136912285218772358946568268114517297315714681795589145752552992621259611178138686579154298388448463424329123881538432742669394138369581493789632364547683511913638576525773625751114763922913364122662128371755746112314494629139186398924989553953283521873774772291982489234539746988964231587796794832744276949537323635683453822394467775368221842215662996387416642418734646638748284383899429982212983346798671379686766797595715884217786542669527283653312772261561248882147887685751171147162127142829113691449924911925621722535526516775718511991981433495547997438995565324293289323552995583335924469871381518439664763111433734268156275125967724199399332694819724331733228889287917848987368238551623724593511392985763489292937988369718858977155521758766869558373243938724419751736582266112838952343914444218381728834434517292325615848268185157839272521239251792185711518113776673723845759829817387347947314862933216771652632351173876496762864184642616669884791166616272267565818169635493862768428826931786277963824363639796536328892869476163443768912971423144813989826431554829729816847241521719681324378759621599174797738719767788116761513652558926689458214872671246296442596478136961772159116131648273322959752337394588489181945763185379144266885233962761854438636154856262749353537613597839682386661376459463516366616387256373838865388235574199759277982518681566995716254553436343931171848974562833546792933556848745737615841134277846948283766631193752336339656339823622896558548723945667523144925277366811654525618155896199571888524184958491859665944553489477128426812639514579964418645562373913673736686133128358992546663744111374732334535258948182646911392327689723954368262958112792721752511461655972687762572641792765815741885382549115262325484551931494483719853764378518946472464494822992986252479239123749775914376475554177215137937192968558885422957253964466158867963697475927112726112457152836412761518988698769269393187179719775824513461227943973272977747625195445671773476572888875549299698142518565693258427293646565525328467224773887728437582227677189825546893281752583341353118817788242721928993142455389578359927639892883681984119436374299181752622711967945355297724224122996247426312196521929789192494592116756477575226217976975114353453827564121632242948435836251576668313714766879964815288813941415245515861358344514132811985934446986363487211651953133131524857535161398928873868161363413687339835855645422797492537667935657539914467898967697759424196561213993438917892552326167566111122311643333912257468964629318329449393625724838564359619521442276115456837229955289149181114232742276748458344761664562562975148254728553386652717153399496899594966619847512662366675525983942228789663313568694152683982265387145991231476235639887174399727331729733669382744522238657619241221273448476539771893757317332243369694339862849928174714536649864823345232415485393574826479366746971493534962572737118645671145732769112497544615315959516629981167167216859218628124964515414428125734319318171872268619149371182554884795411587793453346274272327795165614752312646869585892933693198458812942996472329898999358547383953146335862984873561585438256341554166641839115462519842747279224521174256156582723696869476486747634948543199361421886823352925778962726925831961959631865146613498579161553539634476562955516745592417451694545872428512953426966215849898242729861691784136722231795783597678463523491894355576656914253829565896935193338675328899124494359748339739942618239119811259574446268231124285987987867872738172777589681117416284869536698395462219258157897595879722461299644754758564352991477358485494357722197933258347473118945475799562561253468382828237821458827853119133478287268162752897579265465367594412937723798966723538964489948468551232511296767119895224126953797719758867442943711333634329578238113789513695876898151572328122823199931299776356259296327129289398391319265791295225846547356375113123928597517128492945669296686887189937767368297382747656315894591493958784593322485239759137377426511379737958976489354256984614264292153747544272996311998369774283398561214522721342232967834243562217328679739753876962643155292321132798651536722397461656275215298467212265745964699655251671288925536751234619168923338484393284546111123374268951273911239547881489481617822726623713725778346364181252733883455735997453375891219314386565718279669394511179198918437963442258114133373471378269191687721925736937265492327224923971642724296688494833854656956243296258566134963254548884378991191715561163449663996884212199198179415519744698898476796885784571329869724183962788457835494742663648511817192261194777295568625767527598217424322789498944795161822652471192333591339123482888868914159258381539552464691768444245549454272324169315563639464887331265572783998928373535471758479485743892991782599752188253989818481551559517756621728543831712548584537488143614666419781651784542884632426576942473331495463716794245477934528654787715142313881285723425857512889549144273359478831152536177364228112529643678562557619326842262973114967224179225874686369375561661966678174984461828444271527683577245842239665646479887947595742545839942888352889867449298652716287981169874163947572581346516124722836724121213951218232662263645626377788698893813524771897149511138786545324594855222382885824837694257668928393713932918471864413826573374193373655655582666817279726852361687842316754819598315167652877835419638193473332142657412578361791753453789912125179799857672651615959118198298696566549197352311785795584393142696239149754875854422869277472531243146911377763993177984632874776989671618464563859558919186463151118167783147223166756654289484584389958241962367832486895743191319294918194229792831428873171212911491291592472554585462658677768797717756882937375619865531387155814479967241857327383744762457837375269883858578297461836172654381696573858595414159123629774191159616971639158453454525482772886746334476282926242583931198285848571718416517131378462379197562499479219759352378193139138873923859769634558674484697619486787962837779135883329789449366934629792568471849179948861687369721581736562546344336193169785657715767312555278511219325383757426882512765373124934844372546376864995171587889271465881944462147436833881569476412881874319413946538716852788328497474814734128579359834893634562218587851153891725688177349686796544318323592574832549363221781343663584733879252395221332311233489727199476381411822835164976324275884712449569541634128525135443939391443389233185486237631165357277391528431648166689332338762487197149882745649297111344918146835539416579832841652666856768341784623271153336381437823477291368611926921233761894474611421445295287769673847925252613643566985583357124298988493654796153651188213914333121859214473977331329149321653944938837275462173115917839894187461243958384482672171744723129856769154772119366452336787889754239124491411326852984542219174395387615654675269457699711518836454915469827343267836787837629254654981963676893574242825576482846233328476154391625886333872955467788635231559511978592788872328985848351394344232171238824945723317931951373696793716586889342661353347264533113373929498432587592735452814224341522561393431971233777856267582532678786918916129385951665313355512278869759241167553598928244694711686551364469214354145969228588547171117443443767171666577225977575665318542798414469996628914761227646479648388734724365965431442114742696523395765182487929864974347396848166523121258841727113447165547353915296212195166767999586149763164563184282587153742699183958254419717115254857222269277362177426396986492776377494399925133664383871519576113741969951453718246413463399898163157942175336259771815234113818124716814437831797687991481672472742322544237386944743661738765928949294425243627191356418284665459468618112374972996637445791236962712512749946235888522881893498458519673576988566298276165384129979737164562497917624229657959836798314669789388139451215998871341271526584321224148167446324457463415954275376679375118739264781129614831458915842343125929397399358541675365748963163465383913826661627153636323518754272562742498461165317847198862278225398527354358769443141716934745364195721944811634937918599873487787359353623685978668428395543311846869121378875531462281635856848414396333299643688795857332714644173515714777835694178891962336622862443718491959366935131143594781724984824818723326717711961427499787168548219432992673677619448217923756566489578635882542574394975238874312268921489543588917393616483614738529558492559438948298826987359292155885948861755574355843567476571158551336382848163646882528165159894725354437243395864924719215183455978322934252748929389291518833221152254558622413341249299982294218313757529651873887817794914424255419261125992389979648938371685926832943443551456491283918967567151133466592645264272472357892696618833583545941358484599278337887669917151555679417756764596274741721526472838768444191358865348399241777759525459759783568982711723789464326742615473628427487458626653163637687224486317955598359813999352919621158679264712536426616539611572576423248598642282742385346283339872175824678685858176599118332127224695952711295983631631343455965424818189997486648691624949335776147844734572126975936429252728323996379515726394686226141391123212838778149768927447141151152371454211925971763496198114918235269579671167133363862772162874391248195981694929295361467654972975774272249531441976122775162359716123236288232118729776371395176677889586319428379256663683199665353181711553469363829287587342756964134288325241432341978612776372574982814227261473571221387815161558638941665612848961188868264319962855822372565451448213939349246321792827163597531232534557462883952944741189731754896341976255449633816894766839219733739444867721911579854427436398562314789551539687551892535244999131488342385242887975128433731632561385413826814581183735887959294123652834323752851132421195914326561734964339494496537546926457913165361683523852495137639355954251665623965248377781432467742166912573758263999667619735599694294342616423622567136198558397716249291742993149751351294834595218917981171374348373382674933442243931948856281996325582874117329512584379876776498845913423133983132567445112741424924155348636839875518118272213594918531374856743294985711811269559292329694277585973342333448384193334183418966444677891124942252584782113917551897586588863987124592683873526596253891577675387726874941282631254423561237655325893296295366372723158171736257746955574891537688784589653168831326753131173722498747792898661792266468574736875648397586343312438965611184661124853599224343474259511527872874268496417731977482432473159345651391931693699328569587783616161188172149497339174122691859456464262265285918815216465349375829335351858249929449976411348628531164139852854776653283116877621626929894978234899217418985646696288157443166545455185964337886595219834149783117624191433192651169933335284493155464496695659654557779278527713247575135588443898564572323193317954457895648928654192223322542236571151513494169568579791954157613697657887292147873752736231781141795373992184762136219723789774744161459557823125624585653621984398324258949231583931485746734952883218192895952244182556227423691919798987372586884148541282451349319198815953532834678687622645665564345838162244511368138382748385528199996999349376177895168876237936814493335253759437833619233825394644866472645478251412324596825388774311365891615635756215786214161491425795854217783292669289586525566935419829588697753769618368794396746617555325899165936651521849413963617939518394796351392475315591842644574314582217237265685234217362619929376476199815273685815631681572498936544413829188567129177124353946489721192198744545452144367651198961959168832265699783128773772666552447229325784653953729986142686829541363831285478749627222489962914939323332768521573395333329319613624856912753791129542863683553725198679744913914858934282446617215972735135425789473789824484994589663165685154989267139468767115161276625128327232945971747447843959412813634456548935998632315589539618762195748531129782913361214154931949413345446324514748758154446339169394738359598962736631854586492322673317266941213665749178616847985225831424334698163169821493171682165186428777683788768698815863168566197965622899555414284579775621231927468557512843352698575937148138665419269453576636473876479272137678584428665326854249665583695452398649495717393695562119278792732675514174713852317417334983265412752158519794824554275464788218384487338187568713229665932843562819541359985764175831424697844924767881779145551134265524296488864442598493846859255696915644428762811639894587492851441894236981971932912359189264298377688277274175366591498313633441197825532748365893832551813157946717269432266636919164234449932513228152267839419215618141824964276961177658589598859642624999426913829574332171964818168468399881972829242348344624521356175153258338252366198551812836433747143775679796215151239292834117791177523483813317329238321521399385847264354675396129841892811729313817342798118729613692772744664844578636547499368527794868234597853626178898634475243518231561255597913773536773276426237374387837426683935412619149662488716588121788872411569474339477237885786654431562527553876722435192569224566613655298566137278677824845279839185493349843458295986259666548546976299182237146534158914568411197617524635238871265956412153152713353715237113229714345349544614848917539139342212525957892251534234866878892893854338128124166477764441218388563896796588884422296531531468215494862411188531539271124249961488864195913844887715816211215152837326626889378847328848749143334956527295112895527289953867179564124634234293744362166442958895186558769269434758864587672451868414288185927282167515253387363293419228718437522272685814439648878789559481122248396866218962849617562498391514332818428323486357993932752792124294935765994528397599664743835243536991581831651499455627981494747325463446499439254625414443616337773916545568383754275519769382168258891457175459867217974892997822592535333676642352958238427188347489993168622746839651472981813639539735586651143186134222292545496467716461473661363784894837375792572116244319435693962255861449596696291531363822116131526551598158677629655937928631672226266952818479334825516368226437942546616443375656286812732264757911562195322785384874936943428117154254785763282578851454675485199424672147355491275219577195515436792815531969987597354144584927487676128115193642365769117598137784295195595767784359259898712469788288638193771196821899668814762679442141416496886865721591966124857959989528197683254394289771165751648699598156361789186964169534597346276181616784572277573325774488915514563122479586333665121559349789925326453211843988499534357315116548174385367555383236559281681333239567973627155357913821877899222257854196799234924295172851771976551859428342722141546621787864419484326258421524577137116782222961383817638769926729429986998193131411173839831581421399999617919949935217289138159168167917617591483914622533437334138829579128156447798751172795197988825736531164833696694764163659541812455561742112759925332597431419645981865154128121643881424454398895871276676587441718751175415283651677225773496567331337767275431586298664894451973195662478812859468315795229125415979916886861796627195517327848235125694289358711519859571355177578147465279151299284922957454912795521947852761667169254878257327758642426582556342155531346968633496427965129733747378392888649768399196517379643261189278832897537536275892655961969875556626378921437996261666643428873534152834875565162137771923719942447539896432838949616697966759974626594127299983744413987663658921468861579457631161369115251141176842988723485582516496922815812595674445683221272792382463853892448772239542547517545761845124267935246189233883546992984486813594818526328596759337436774453593873724246185668582225782126365642813226735181927249516617343687777189752169152855615374998355933531494599414588849366655479952114243583322659444368834371255366679827957213157373255571586112658439134743137764988435572972136968851133446193499233669767778355131933365865194915262127794518922924139624214414918121788239921912324285596825226927985897889889911318766248749241948418996864763774559152826749732653452938393561815721892465337581726818727964944415385421853591662152814699884323752284268497454657737186964385668776192821665929673381976395841628226418464755613939936545828971691221956331691773765318791577436547532944912979345665523479122754497682871178982457798935845999448986174281968113681573856445279967674982978767936863158673299196753141237994785362575343452359935237349939297723861383628654655967772664584255531468621485749234782857385619143178849876439242511684323773777884567454186189149198428685852538885538736334238936768527992134911443225747251842517358847859239274574148752625765481364848762777925429283245712248253647313569261692519722382315121464193239156194244915234353754879187491394894317697219434697975973612639128438188698641999796273432595585328116975637626584192334473821341152638999652119598622958239263368319999954163112863968771676982623521415611812987383159216785935186116676767755473687596165547955455112667233779947685381635318752152317831116999567174147578233348557141149638575283686322944367912615718661518936184516719126716875335192243925533873442343814389812422524716357545777882262489369591542813437279547325442579495445488678812427462183526664593936565211181232877165226872131323858279376388475161683269262384668385112731576882931345261388544361761933879556759673178296831265332224511455119866264962645662174195444478878854359756919465552852295622417172517471862796242416525887116724854582556624247277719287887458733271225777181797468377955689462678689246844822657384968427353419256169644925179796182923647876782396259641157916624715978655324442967921924615267537924788299533628411493853368911692969779711972812731915231929979264941792878947121119533423419325617686673567269269112353572493864613278514229146936151298447722283498239542554147732652395957264393215159393696369424553847453872172586515755489312665749483659757816445821247268323786614978844623157528442257979356816283976227422274816122718632112711186617458565845547617369578648637297933787252795355981938781654364156334949218634131214872936453756388772582344646666943146771945473239368492756322815228686668215426443272346857937547396851661111644961184778361115844328375375348735733189925926499711537955578441713912793384913774825521857681752842119236627884266616782449524597688511262851166735394438478726565315321596412964583725542223868479812941481575823284638649825752722815843799371588841613695968231311884152179927811771128525327357225521728719481467358299521245866418579241268214728548489413898537364278184884256998736567845587393721518896111699463928682149769131961741441499335526474587454455341424347376297659277624359674117148462188697352268821245992382994729827576311527488312791828927478361127546678317936196178868596321322865522342924533139815655276397563824148231672874764229635254891271674386333411876376148653832857824342875115181618211965258333914327493894211252962167572494783915643913233348444539385425773973436727939253986348276717284381514174676581778392228778485713853159417155933853153819558128393517547342744818122483337148868117761485557938638866289793678379146274538221983868476355692438432949281913991276123647296238161255963163342258759113623235132146532737851966741642813925527521153225998885468412482683133774788991489367793633771838931397666565592327986239497479373391157593142263969573412159976295391959243368544571722826623232651645468694547874845926677799854897343211545221595186634312387567391511654954194582144474592357865815869244643872976413752875461932426241684871977598763849474467599222261547543283949232258584233244259394946363557369474222544747162982375881235852798198253525312518635113125599568367272332863893765356557916863679397329595785969475921619285443362893743211696634924174983526652821184213352814195593881132786967866375591671971429518519778354949466916963149981931681646361664599189684878876769826771486551891718675153839414386952871425594565231635817748165658736767216553964936516281986349222887598253348731471997975519429598337152386158195174779311242299923727845359147655821852855973865225899324127872353337312799185586165987398975189413943213919458954442161847445265468678869894688932127192734241676442238117455247438138199494552996218917653165698591291141576574994785448644293942151154192538937394747591819293217212511754536165437277257156266885935199432138571287892596112599183581434625463371959918599648545784835186622849844824573426171648811428969944837298454586193156836867744737119718543992699794477952626888688548492681739698135728871467225868697855726676588959836763564859799383854412958733614379515899859786951481585358527854795383277145649677715148789564744252478172534491152555423368642957984881833262266411733868723817515873855171286817881176947127767245521927944625383399772483269873324316899351879187865194419285417837426351428227993412631548988661292835867688378597669694582348467531916663589249914973312435361913893459788612582877297441855845134468336196344322141765651224635962784393817347432517861873236612779298488193735874559536848318576485223922184661916869543272919647148239347784784459394521719663366179192769146572591842712668884491381566351916246319489645324662699635261159764384212156687843993855369365241457878974521214493677192928431476162958211211559616495587329456852146945165111969599947668593187181684289679675423326973721819627674972939795237458145226316267724112295153575211994426945551321621738334561989868391794248259222284916353341136956924348153165273662286511423126618131745141457693812552572673343145128522556215585629666724947241642483536246784336192763266879933161324827586998497574788466357563583875612212931787955881315952298585936135237286881268278773782539123635147755333348155822199253154296689364885118714385574597791119678594872372152579827256825925872622987224328465347953533925591652749549861796229814966357795759823867634793413394688224882347337593365534664983341261448672284843158691966354588594547293312695991759836551897646971698828987566542414958938681278238911717454197137421394952178981772742477765577298227512628415472535771357683493114754895545972125583596265494694959339762268469716156662191459744657534649465345848595694628592957599862788222615545893355194289838614872693853496776191699918891652949298472611378887946837696661753663499659687465147729578934119355685449397933345927854757257182539974792475618298874358853559793688856184544343121545229575434772466155597721132175596542974342576182432113195213652395482715863561692692891312676685123194568713763821991931188546937246492262527698687671767421914626255369412161928684651481479632345652692717799467822741876839843417576646315251822995181654538678325968587912984983479545887543375851598398375673811743239874219585525343171436717671883769979927468782189121791357336592497389925783881783842867698238367184976444632791974269727641466964451884257436334639511254288775218296621343864217166172489346666576137249336746342848976899555292694397329883516688385974918316375715436294544993832427697528255615946566999398561591269812616176569124693422367227333293364869395395645785992622344554878154173592155434924176298543821735133372476917399795224967338411893129265756585345755949763493573674579945682116571964841289325571928823361469927994376283124562653434649586566255573282493759814145499347793417864962111374265567196829588728394589799725242686385866615486395653532414927965583158629156676131463592872568915211962866423924951288375521322822827893434636129938765216347318479268412763354246912532154684522327267233457772363495619856398521226838163838964294643538256898819382187379955464637979675263144862161786782227589365223648932327424392858879627443863127819832563982966744695229515716486469524792897561828341281551198625577846915659731544552516614576912695296651512666912162622168659717336771732987577673644739484354176644615893449296358622568883289854114583726735269121166845253227527865136799214915129693117328869555958627528728219278468181976731335176827698518436162979956528549856527176926849354459345876639414145752343927732277281577129969354738952233815121729675377262187459233346426837998955482198316931853177799382881765313491121713796983663672769845364484596566734423678835912875391649988534996447694476876154573537435377766319968396883487734176728245812442336256634872554741323127698731763466939295258523644855594257333468141961474234587862312727449575478464392624962748878949663421867783212263667632417291257599485253454579725487426245359988836349574821872218951574987976759263928419487517483428726493167874975815843582229452223852157745231621184332443387499674889662165125123535668986535483769615721122623766322199642289455316877877939395826935889197132562149726528438811492889878571626828779431253133962158936773833414282124138331536631523989262492718819212944985657688977884912182962873965354828576373941232439535693898434795642268461574527468918288939398751867593639981625426235926846611676334676565427767389671345795763384742477799375192957971559925144597634393321629814611655646159498151488611663544894968322826765569587457424667956332152333817343282827657914597221225448627342559641395986345856868491142766829873892489812495971699794971452448618747536755242391269556482524465237789443766885882846474524861364942875151738226399835267643669963149644616427956828434188345239333287637268753424157555377781623949583298173294698243669427387661618737523733282915269182829575535497947321438528933942114951593922525247278939722915116419449642782395813795666757256796731693661881479649195669285854527575831819745698597953871456787345717887751228168752948163642474755423197217912767859666828865338761978678367524219965546422744518696452278929329125557188263423372796823694525426861479375425631791382541892433999946863314867927955198177119488372857186352144628127824624552379454151776878331143734284539646481875842428241334516713265228655633116147859983332893128529385747147541235223345525826768685969663396318839142694985641399795749879519371285445743286215184548435364282399823396594225612955787223531759632951599819369454822533885749792886735616522556837179356631581667341799342386868555579141189135858727652678264919446358345158524385149116822293127642466969819247739649129349541194149635416328972935836759693583985847377818694787269834782141228693329989648126632514872974975745866755618429172233519695983445839415866696614626866715213447829859345895444716381952462615387252275654177447975959185255673387394847144788475859768372738845575748452829655131116733994778324688432514568162962644723289811368111261596392396348711828798724514529568986115648598589358221672923868657356719559396331243198189365129735395349269782785985883828229282611144159917185683951321942861922835228219826364568571674841831824345944716442787535592965848929232525996528687339778764346127939171468111958572448123456157639546582371356213246947271775438371838955989681814497114181624342424117596555525764464771832254386685434887329795921397371495823361784171892751342469197135416532618815883968882917916618149693642522991386974154845415318168322474663689275571855384714629442578844991817364448766146418331477242539511245669446939678412449253285235258795647231187927159854172675189858322924933624229214511768265959781873364516837657997164771375343338544884456921619416873798323444388555999691651591178347268392628464863811866925921845549269331166542622798388879843395392124139664734894521488263481911112514469832211462589316455444454594749713813758997826452984319657121181261446235826551547868723525514429563175656181134811672923453694549755219717719189147238363523876641241229981897791413239481667331345255234112871921334261226838852376879179266248359565576149834859527425349953678614161755626812863594827813178838333388651321316644936626823695428746599522552215698168731989429283732774719829468363146124865863145391671552488194416118383869972481457491539349689378916383278317342871933866634551351978285916739727811286748183127114821311873655325332896694895495776786762936567889968637996445922571956158684462457219819543924152155661438764889619598432633938133588539295684433473315467751453692443353819142488698144898844192245479649654783542355744528728932378331386654897923475726688371497231348813271872118689238955184796729599696673782549451346655924576324274731918152987191665156483924232594693497686386452955474764187247586834583212756731368534932635374756214525589253278929311564881356867318766761886567597534921936512232996453529176724476768759491522511135477374745273747412441572631734261777151566731471523661722775181157752717471317458614665743231244719979616746371231587969173185465453312975412524662356163362896331551747277438675889494738718331375447254886744222951422382114141473278656329531525557766767261297524278791743894447993478174184625942811874942365964399197595857359439416799826322631549389754388219141528581111164116135899327937941882749639736936648127939623315384456318262664336237831772912539763483289255677279852739828961846263482316754361246428299995178675813933687813937468278166673321811192341831223858666472938369339238442424545621576113214929842764597738272543589189399682565649889552359412659558577335482734723767882732896851588221658732213378967139319893942752717579689716691313243111314368538375123993653672885195225641493219621821165232499819329774814124985965952373413373114181552754141546132257587715925312457622826869472586234895285626761412573169995244656135554915679619666963751353528121574864311351226812975991342943989365686612613173261759673766154979538187138346651626473759355652583381184818363424951324239583642968957338164394688519922879232227113636531759117958851936848141749912454429328114898771464367232112345686617418777645689915627738852319969798566121588577839691475595489448295796744571263123158498936861778258722169164376561319193678546449121225922447984115813261914448458361752995684984464679669994728654528517966354689956812891162816167818613238586471151239336417923693462574422969854865898428219368584741972156942328897548347273112466463577262382262714447254544571116254969187283363615419653999991624929817535751919431394584574445726696357812892844763221658891363932455236415488854174139827943135379783323751536843245126711912439317538793746319522924584575727547388157331952713994353689151794321226848723883173516764668627859961544326694891951516862624497383427757216575678629215376615334675331959597944815725342982525771384277226721191562985174224781798125727387387333531947258525585385756475213736979953767429957375841476987259846741995736521247611558246752635298287649391394954198893476548958766431458478773271151287731625491933866794569676761689362414842745911689826773449417342463846828419458339716931869593638892483323347959839422398347498378526746861555437368497221759677427971556511933759488299264212743538584133225481327146942463445588425738939468389183687612934382224685477313932849197666759178288546963683976149949595268176893646233491787282165915421227686948661889757465471971392323972565321388353989437523442662858895325344269367399849174239494273613227534368988962868189119436686898559776673459534342243174633312156133589724666981193399652872976568796667933529529847813989175631491957548899741625415693591162191185749617582644173522861756955153536477134287583645811886481876127655257675323586957935663548141794319965487634338931476629433412723718346819223124152613545785856127841521433633937986341818293795478429442614887584117287995274691442275435713452762479268674944977184526186311376523438286668966563815312833869419642459826791246537957148325254118244934613626278863566487782292915217567718425291446874643752842363917777599919842438883956131255445911751731524755533617329234667167132984145311852123733655911615417516999438313493665819499451781531121842761991156637665591578421522514661759764326862321356297248378634698563784469591535244856664437787533791246185137531825471713581133393316814317159131577548785787116347827258854657783347115683384916697413287652211543143691829219768598626369489523737986167977843682453879717749911618214892575733966343214878669739631119256629814547857224989853614614528171951494177788276151312662123829924953258826633247267333433525496771995876538743368981213564993561569945587441565352473618816253199982438263128653778939711425724592644549641595762563533554814253316659513651916162314658929344554218158313493198227472364186441751555375594782594231356654187262296623172449588892826471788484694255452584432221392838815544892296631678992213232215175538717926578535434544746966562814674365922853385648912697132222579915395461789342933183785896144833363718766599782999167556151444669849515154122219115759354487653536476889282391312776612931695947574962971199219286746738798273839224412411332249813475354162243163594644765888768916521836849156495768124692466266797769353257786252853212347853432198923337915619694914138714935944835957647287156536727697979473755349993611325957439187765791965488377528658143775673357626712149875627472265442898924775345458345896533649283262163339754288122699143496314419515747692929722769773912532762622184744945996962848238371447517615178351841337421323149173732482977712886817558679874771943171268839116687331177964331324621637428328865588586271592633974946676487263711557165913265552745391838545714758545845151686769288271124475849783266671728384192918918346729577782347318137436526395139791548216339169862495945565178937979681293298174213696242748431127985995214911339588193266998911698197517997829866766971561451421138779468149825581177123258299181868893586477925933644848657566651328566114785377431714578225678691546156424841663543979891267126169664295678635887265944969761266122449896659136733236531587512114247137782683256368919958698898323124682749954489269264933612533624982245149377382298589749882134432536938854473681329383271483725868351145572649762799916834295671496391747819776845734317727274393823896576544137499728598194524615973429954345985767515324766135513744749963542916667198464175515789152856191281746435261466917465279343952959933664961915695231647571675861662727223213752264328865831397262343963363547744956742124244758873177383446299585158268663846723928536879487436941756513796367548491987836678252326776945561115735823695162976987654247573682165436686181276774429732589747832374832431346913354226365237829945428559473174398699235648421214735579416613922771693256986896279626555115317475324639127617214165511911531267699941843492113418858858811826565368441689889121996679559529276592335393369371259716659692518257269697814739854724378227377981717665456618693853271982619216365811444915754939346333593313738229353742226628443966294414687517423677787458272567975326684424155322981615532668455876535866261682779841283448264741384679286244411274292445351615643118936549879887396339854815378577479923798686216748613993329167883873942899599173833122343248836193496674534439612813946251932431769217559882742932225739622855821731575364446628738291262336717679627232475926789599594725395953913626853355913762512874483887178429194327798964115391638716522254143463132927237756618588938242546671874165786541992749531344578944132437795438438491354467715619991133792234167796829266946486286287456568864533115139714442958466211756542884195696567881964711311265828986395645391867854323343369639528147591929915589911234449313254857617698488945826837362282487772423172728622193585391428556324455653634575684831451382246758983547699947494877892831944599386539288282831317976158142481218851868766758777455951854892822696672438913878514198964342422661237259949326165455251575695852864577572392798324748794244638713951787925284816279947352614374679658238737927634427241391628975839652424925667918612632683479853716847247613392252415473619585656229824573712927157594644692156667649997266448942582954214418974637516122755549787771281422318661312823987531318975183235245999939911299842871667266468882371263253363246313479274711488616722936252465886233939489538287848831335461958561653682524342915787721267252996151318451864955423185191615713327437262148533954262762633183423156763866618893218474545644976289745932571351561397739294571198172554611735671619362371637636432677927989447517533659612374816963644232275835566721672718188673837259366739275846994154862628981515521293929494983498773734612652194913314353551779447718969215315695825249483451394874769571991459831244273598537893279216115131813827243483135815121822431924994375899237448728229212253244523851439232775547458368373695847221243166223776311137864923515216331525246314934136711192242761484335748478661974443543666732769182556473239236478622987549525513756374597318845716883636577926282899248778652923591752319991628787681468213494554428658537587265824959761989344676431263812627198593467456478845377294573635345973119844471254671398545797219696917771227122487396149627237286776354354166293933526386998716374818133548957248481917596356983353965228913635463453992627214429626236826278795938237288898231282693275882641934736453332145953112427886949131394847159353747856997675258151281463267182356141639295711515523568664472517991153872442482934278845262411111115392435563745942734251381482472819942496659154227631658676623793686625389384616368423271632999257729247265625239961277339318322184896522973476472488119831651858138778875112537776466358323487399967843334486153678113833161781675358572819413561462654849917974489235316245592537682976867543972794325739368321979156642296573653173445462292378383746855492656753986523631768476649235554728283481123275231866531332787147965293294411823718459473551255949458667987868138963899154168552586341939614516492572485781635763395387258699238474512971942418627256869628631376717895797937788413898851612638398968348931699539728693563726544321154756815657629478524875338749644928487952613539371768289843897287826622761814841896724698877586378828974164458438188437313952577259947343787529226968678964111835718433699342163758515492792774253176435368473638477926186254567864396822658921767448156671926593832513678469324958863329391941333462738554384778453674613597528665836661898265119466717156697564936583672487896622283898447282475923269297776437546725458166213615811839516137781353787584213463853845885387155179347986296532716989466883577984818596914566636324169637975662943882382627388891215157755212395474491563381169188574358758888315655719127113921868273957635566911481382973263248155339992537938156184371497711515937927151652567964371329981121523213898864198794122243231133164384563359548498719924226238445763118432385235895786188691433817127851178689259636234974916286977662668415421373884382663271868513669399821856224541787814779521876615487461973426474153431461337997335171167398825229562688612499132537644362144566512569321359252394167483576931562527548562477597893549797379426577121856173733313455424941973518219295883154373628149443438678489498786981328669363296448285134954721318339184821149673581173467639751484372663676533789887123775649677885951327879147125616883445492989475495173176767338715148477664591939545633298821582985722477836728662134444225263352633761533195861973396617124338491776829929584471799359951374123199771572419646614538422439631849896842972735285636367581442536415988165327745287722451395546986574379691465772433678697141637274691461586853185452111814867584833977835411519144254124489147421626498938888782985396635638261221769542328186274692264627443455329273394191618967283634376491932748967376446133749192418158131394199737359952225134364158851871279241776651773174499694488556573386452917884171319278526361797935479551348645676584324851821614149184127871337875217581672532745744245822944621231778725978142625928419593764765743514199814954456276126381757221471779658144577174785213277889726782656451796494762262479267928586641375254884258365512427918756321347752139343169519639239194725648413516439735575438349238681254884234767639276628441363112126414826282854751312145159461562991372881954429459543158874819918934212297638563416611497877677468888997659495636286235812568314182889544373835454966446582312618676629957228663948562119239389256717612224178372138228241169974535295326624541552354277272958492719322782125178294511226312149229232219319797616965166786781792624724644624384779274832491461521883246597714171997379519645686664777326986494483119968723279735181722329948277378264136242213512674894887694432247439953153413669839217966487581233237533763127991921525144783715116758924225825895855359737897398973754165545835318844716585223999254569894377717689959598828217123567547864544192186936717537338474227813246545644236616358971628129698912555118322971595382352144813693847347177154293629754847237496779393981696914366231524247886443362559529928435947998412188632858994845736478972571411418369443233516968516292448368318134967381421927757475519345165857252869892792466194644478863258853137917985212729264599366589354567347935446426432671597145961395928611145576118376324927412332724584577934544452882274893126387524872664826352429535825225643495772737118633864616297619162491867949641493568839547297193233328912864794959832776584293516737537622992485368435974482743316958518717835351294591829173492886645515277612721178159967187265728368876437698595499384982717278194961513162821359277576646363153549489784865799616454916532747981737596972441491935225868933622684343829964193185617173864225273516888774173371739446523935442692378956353571553476937329754812129824548685738966558289254434636517841618979875429248142374737376859911697684125128722858311927512582552219499812674667488571221358514613453432588854582338339355194454688721859643181214935861369694162833927871178289472956973942346429511387484292138234731923136667627545274583786598771762964531372125532771148687454429415766783775237394417264798229161536195463875415734449828631635567276692878228692935916668621167873433511332189273653228169165742184234255353279434644349246511797128333858175997451774788347297998731995811319944912479293923612473473853873865256393292483633679815188476652266684813941384541331748665129225783162456464798731794549952763231546661296576347316659645612934967423432978592322876739289372667298531637476586664236145962927636479341977536281593217683884547174917915756265314633292468812529819518963687998359578624495536425366152398188814859611939582913537943962869759934884776623714847641846912876767145322873233427189162653839395197528715928151767663628989729328969729219825879635896685557377163934854745322264644391736363968241636918429445898117279715991714866346178811499291717776255226511225822513632551531187713214763775356416679723756764434644929386611331886857122677929264554472942965943628328476267183428755848833427688311148755352684358732524855593433436282626774998861812296746977228837898465764531611829483889499363942777253695555537466633572517882969773832377738464837284334113298955248466937874256854376576776572195829323198423187425961548284283554585874614813643939172781287443791177548728173364261337246971239246979851647863278291824511423436933896851536843553534974925257649728413455929363526813294698462233963397798525756446645915749843249468137978454976631229583567771616429216841237799791759915672632263263656668337217362251517679795992255612534144768864814469348737842391443757122888378615637311984114147322823112837678129841737238432153235435596264865849913625356551863395645351736221111362687331296525977412465167977993159762782333739461596183679367472448617739991936884582649475211355915667556649237574628565975181489835571124136673144971466975813795233345647394517985931517988266779893356985435124595655444168725514738326768269519973497612474824296127683498338225564224351642941551218447269971426837252224318263373115622528658231745857277192319418961921776578542126733531741572377267333871533634216548622669786312933291253425745379139385243662755174178311783319112149553727983488785625583794714816751821619747625165523883143423177159229982643238688966161391597393113811174386145829536555594324524794891228822314366791251672923382661783554675999669673731821149294263496854353318266538499493212627766441765985691343173992222373958572558136595529715995115142436262327919657298968458758251493898129711566375161815571496434613513574421957343433979818532893133471712795429751948937861849142377247317758623616497173156159176879699275925276615422626222227714664579162469931562514235236896362528513759642586747958472952676638478642596554217892748833889552389143382846256836989762959914132846164247743435924989974964357441845269933265666943849336651394378793675782347732915927473412728586734312425187278679416647718556229649771379987753783356927662383146912938827582751974655222349544924126996655719795141561684527819121611265725594188134182443224125184219571929437321538662974375673883739731753474426283379686143431613574649876218816143992495638688835188966586376869157296658416179577474923448935938637392122738776493774828719192955774885956723353529811672682775253539924685929161941197255223737879761228618514597616411832293879656766436376626385826898897264138594246763425943423992882487881649942528759134365665633771548592375527281184419965437594646375512944562651891886328967322848378572816972952938551346167241978734715492686768513536143757844695976525573249989243846919683843439971438731528432715395243427569556587269211144213633246567123967516122931135345597791347947234964575667661183632292215897521816264521376283546755875345196176682943861388631295573196595181659743128145898817464663191519564437538333712583128563663713758191833665835173374128475745919628681956537844161461297662142913772775317991396432441296399481767734354952172613746755374322486169473777974134297862299522659255183359146449758425534476531545943177161713668498842288831765258565252232577316289216979955469215621632888599197927615598835835286159237966966657327657538191618124135722317853573247799699648559752323343127264477156914868693667778812293818245848549824573739497186285466279664496387634896624333841466974839279896548827589912194939626999816684337219856847836237288868738396638348223896478991627514276996558372284352998778739478785373817734833166366122885721589925316978442558273674762344272273592178813157764112488491828924272379159354928419546385365956463689484418891631474192418992637885723953732783639137368957219886348443615673945846662455176153766519769236428892357483989584849481355167698577613341648586751688512117666413262486449277843711451651326865171218732648323483537582513189685694366521342471723371521729577125452193226353324641682764629211746855156582793257215271631432516181475923193397817334376419558957194586785814684326643173828623323661238618967478832138318179491565577448334951733845665563492447894627349634697779235761819144722274797669118685517973163956337433712468368126566153458632165696966292827738263867113765961339926535617279995372972256643675566918568286175582789884536694139731576383899347595363516264677439475914282115854261421946383936762352761861445762793776394486962286352348362636784962672928515623246369185147725221367458397649953588475889551962988623441294979236153531566562559312534544831744337681637262327246288532825979293951112727848553962813994492311415495567349284471552751189399349778234847756183926181197827831797518872656143344932831622383343983861935538852144327378316639828184186437293416838456275737698317614146866295777592118571221141611924691229685424525371383387346347687698555987429746764982625247916665429897648412977376437852642298638528262992188815447132375484247988793783881661295896933551875453332499777733742321913247324668871929886559733864844958769136813894763417379555837332198899571659125255873727219822111799746791583917583755464345446516478137186376934288624948571121557449147764256564325618356456491934838694918564886446371894424416898647137873261694321288631972551414117784999969381399162157392322622288688674512521326439249262323441388146475526548171175991922364392185733273726623539928911126455553125231413955296297987989524879271594633927346954642339371767664623875256879464727741778643388759835331817843294977945717845719581114994767987384177438121689437538826283871497783536337284227869542259336365944385898616937614556661483118512839318168551311565219157468298381211126861981837437342167977694615715381478562194627823519268629181519636573572833514754679532329379232769915187238694941872914841853938828317918768952938129393367568238169741625311493393333558294127922886736367396425747872682993674852435941668191663251499597764139361755721529576889829668333735662627988939985564445391932295749892599383272627951479363571944824162181397568243279114351244535831938957593396514414828842284666768553312432181322683466575732498252562615713743792136663246374187334494863926395497163366894292914253537829358787583629388617798113355127952739467638656317175775911593287359196858613234839496896846144668677163823135417357935519913369226921292414844568249689589726526118117247529855669627666526167677578172723717374135889332937693438246327578294416785617719358682595925653472792478749419334183222513178224484411383224146544755815193723241572599721124667823392892173376424563444445791483522791997124746182225659128165316575554265539137258693514218738376722137689482195865115526488316887989646575775361761213749561148636689346714138195115378234336999647651221423331631157879281879742487487529652694698375283271133261818641484654914839358564566772762615654917488661585431676243419559914313942798746268234747987833724144437596371887599963651342514797231881417485944839174198247527229117147685178459357656461112623632336983489225251715341242313564786374513524127987322334455611178595945295587275915948374833729578962471929537127511447628881747532768859793493243276837725698441616471359588793919582254623446486834858786564744692816157399828411686564919473832911515234216946914549848776958938978581882374874227191877451243939877855983369671371356981894187154839427553599526441938817325931393334888127958583576366888371219523999791485344581917595322232273462322351774111112759181293321556667772747958158214121129341284749427571375179989271273295124486417164281687575582598797217555186782189147894242489249759495892569578372959363391394268297586622567294387313542561866685323885831649868687832166943599912388779724611468251247741888789818675646916842756669333321287968825379858443597263186397315111782298173826166671978598228618676886573764359826813652473222979557184368684565145391436648835779478793641986489919942595277645583251515593241231914164561335872996936485698691591896253275652731423852411159199188693829383466587772892817817724573765782136564341539719481161418774152143799234265235974168119866161174443444659163659844644629225132565798143158393277532883783296242711525718536744486464642852565535665946778452689326668852998441987479947871939859416291479213291737622287379165195613631541759722573592329225633183346289354226363612833745296494627245169471996156239493893432892416891737826432943982261314473613192265836468562759865985312663771976469195841114991587918164349337973861354355654592382287411443239395421846389748776975625668861799242124653617384971332887664733737748293543272568591678434696968532351594891946785752584943448282316364643636395669717111435153273718153425944419371989113517634993888921493743661757757998651149228119939312567632397985749834744554447367423165384872455437692945479985625831359546762293853956473372634216231184641751124319847264326626249347711775676197871586817469173996556523179778455493983727635824568119215171716235423685346727153743664161249652284451885455259424778285197942251485563817323354522438836531736773229419241355617751633275348714126966868894465239281498822682183678165943489882698748531678776934748133469248317261912978746338613315641455284819791987841363124453897933341621598576259386586821289872196156995753467474832413421387486882581154281816289338469587226894841856363243852673528466178647932816432645929186437253769524316597138193574482913628894746276724316215452788869231919474981551881481825992878681771617996841928856828316482359316376965648638424895626264477398725411865517448627178685912631492732717158782553359127698659779852932636514658874784433297155139111374824278945313645853568959861978359565458779943417753447412318223978494372274415278313933163964251191417614844441271463779964289387327978363686713649995782218126857534369527187351241617737439113756182823639255367228881524424688286378521545852663541692923271198625466391785851994142244351459211636266235618617912224549674694646262874335186786896241197455619335312744331798377881881615275198538611923983719497486437854242985844725113383222869493976399487852234634842153348277364883821595527878253357671486212589761719251837652886533571181239195165979953697785437774772793682987574578748416847595861939287385133469233163645385769753769497899234157353516945412486543482161973487913243835266394858175282368596295499573188617882698116332171689228976274924613763572985281349241947554845295561618816225347252355899273692137287167678913726832329237585698426111767657728391423345982441172672647392963891833956344587684642894523618897968164687145783256226667928786483288546248627921533988769438965383937542392983935233989921726334625358388576777379476368348962313737565413868695532268181875986168814344529288741856553629118514484717949956739794258499319161487657341236797657161711731636664328952974442217714873946988455776561557991129788966359838672149785849529429487383897789456659417881732663611228518166191654585262134289449551391117696551899324527746788624742752311966845775117879357298463637667742236793213889814513459513267832945514724992872223446386512274477827298677754865999627267384531313911777532817316258775593744864965921664743473978755184367733228619675949376563337845271844145885752335351817148713328391695173557671195175777548669488447745989756656152518352118146889553152915671174234158258853429474578658215212635938734528859776133898628128371653534886661528219499259841677633775252727767578516322286252813181495575241978728449557962132449378734247335296948773468562694429383615337746328196332988137478496566998652284182614811694332161596184949166374535814964386581449148433338854396787173491948982975617839514933599116336329917284545227977369519518132653553251695927614339279121933187332546686186846169976987869167798942591198761377174661447253731515764754539646353518632356528578943328571424948298152266717455348569315447732559444559121765278934854388151115158493495369886668144571266277562411541976844419314559676383948268221127692942753118965682775682484484254337591792596844121668796145458872421579527292512558328922465332353399241951199344175866812434559788692696585417715389869992447226976235783123894321217186321131627238587788176397496115645547698292159638435953693293646288948857852814546931289417662289973757443612855547566395141268155328162213496831566195598514319649535755883565522222569411722684547112488744284485439479441489843532671444761289623548473521494637783736192211161325152392339583251433132242148268663682714752967998392415628333279347418763968558476417867689996819459236321276813543128886764335271183524629298442654421987419826824975446356289344674763393274756154576291718733988454583889264778925634794556754588935294219586386738117453927474256676187924541114814648748465879546133725167267547891565411887829423784281886649318364794782354395463869748412223957327684719138563749624543665851573349629622367631691845291775621845795756872435474567977944315488857321987239556912699373613132815536624326171761939856115318378832572994592667649524114544362144181379618754427358758193427522929946795561892527391291442182373256634271259412939949982989217412864371385335317311188386286826912249368789211831838656264746236448365923843815797551267631152785511993286466745599515258163331771769977513186625565171776917965939837578876437874461347837523916998645422964651976999682344634222876317483757744433481425866167354974623988551883212252537143878264635912666645945169312925291917368648894567951456386477996976692465254599274319846473161657217243757116923433216744948993694327582282772914325898282171338659297315382573993473281377219164874594932288377694813831439435722971463681416265555727761782153358384552482987531912677645741955863227354543196287454996579465832152876211429137651849586532914119285895747649285278137768868268966555128772689916718575259165862515816674731631292148453448835965555212474535544646472615586872326826953286739183721779218895936598192311862871141218239898391931638768755932835935748637456448492377132433516918563234868592231446149272523122978189364114126161754772824916212899636136448143128575666957456635597119642456756594959534279832381981945279644383687431858731757844838335298526774426591253327891373995514355732263812835246735852159591915487594775856369942417512569551988647924498933826957698744798687451253482284455959619374643492146241578686921426366294457696619223269127619631267876111869419331536437287139155632331315246169112654361854867338352371775471279434759835219833756872849386293136599363763645818485578496195216855881946319789517164892492823587954957577444485181579717887145629124769513941459496265934636198191376316691626554979563725424333259879438481836323268441872293517485337155246777894737614723963781323927441198876148718179366545555747571679447951721516443886241715462328253846717748381568972142477598313586156621448493381473511269979337823485428256475492752766654585356584825739476726789855411757272829292564482152521415945929636817727962311494656686981471334994675261489319764413911847969459616131168188954375574458254978849351446144838356792147852248913846871483866692362575158361162245622669935594629666171786881994465521314763124989586453931919346776897273484871718253545646569947626333569846997722175627173976637259414487977749845286894289742366296534321985768376856264137253861423745732218924619236538243329441615187317119469472934747968913863361181781626554645998695574669895884952913558812312169417862842338624793957728747843772557632654515875169831694277554698351526865342758539588895539888724764239743927669616485837726687852374258438194845573956637285879986381133832325753947519227794682211212495515179274813734583741951861198449746763944216554727792788777511485149333643287559327575242882938432355698815659471227531628791632765125894458285297849919779733989589879394213732315296163134323152148166467628758267763875386582595389825577342267823219637266325743624261784999679881842558171544895211288668426414486532438382661172199844686216544286229156213299387162538238782181612516136455273978932845612721772822433957374552454527878959926918132326943398334675452247137737429552245474395563987299892554295249354789929564662371269415733346262621521366622749864794176499116167118134696769546815322749749245845637196662625296616689553566159422221886946546916454319654158888191177669394784329759694198887796793458378746178843892211979557126451277941547332591629717553263796714417451173123273233978184353923352987194294511823299817333525848147635854395376575465196348722635378762291617255681189713575736153839947198892349357118454717321593486294873986811421245516237386524923499687268299213763286814444645965923638447368635843422665938524995257881615467831173227728569958352939881426199195317977824617433616694636134944464961732192733984543886398782128413475565536735278556185853844784829366728381897532131614898256547563933851739473685536814729373918191376358395452994484845771852661688223931475564892376742727883941751844871435714931493675452546611685873894375658696853487542282149636814331795544238467119217321273663174143686999734334355986993157364668926515377619935312891116732197978519846586488818888978451558245176959497146816593381125161873461945885687257716134144639526852856334791315975568862224165649725247595635233688565575882345316621371823435683448775253376796467493475628277319186511837417943682928488286826623363345975579836828655564144516823235623179852532397744246586178271723929894847175748942689285812874265144438134697481548457837913329724156858397936978813485186417377673266986778265935274672211837585689377744659143559826926117744213141813267161215295787286951452664544749555566965543152645671747281554598944631273587541117271788733172776138934272835835642619572678855457141557649123675736573749524947651696358369416879436699641935798858372187127694546195958951319294819128721479723323717692723631922913774711672813173732883145935116472743899978276447426629923523951235314212118542273834824966252263584893983646763945216692116123479668846119765858478927237739966822615314261655472263874557433814173493728883319435692147779961357596878655876718268462939815831579266811386956662497699461943981796486324918575614352398372559639157667967813263587615433577439333989784354669818468991337869682969837363628488334132145639688774757472522361172375568839888555919545696713619836361154932776167912469139291982518594986953659258384377397285435285563157412225953361178797228546972277797929413738636595216959546744413994833295156616225719653226456645828136531289681151815217651315886598141148995199989599254274653392295198887386374212226544997227326724593331847368469113482183724376625847922646481371618617977385856439922176513639589351846565858572462668118351299124197753147873928173873698717628928673876553645542728988757418399166343887252695866664438969879785219497293261647292533338296264574422221347491919152474393799256496598632369259164292519889784333972734849754769187237215274516793865138914371287891519127467925281683473899727496356346972663171129366545596145658283879935232244969512152655921837914996499513898748933187579452232521159199278141734932779623726967972871798492564866933894165651348425474222367633334593818354377128555866181744866316675499737538273768356429895334882322383826743818643274144576954175184476849229983189493759433749337665157958845244984367191474386142447132926331728145854891329823156758839561543356732229231912316771554481534757329441342442453928174412565739552494427551795886783923168539475514834679637125683875171824751391583939783584941227624796971999947231118247531542214664252159134755744568219253473827233247149414877223133957274455268472175815382813116399917342857683789179588668967486486111185643891896754619386135663353261634813882367716644236692817122173453632867427971484942122624831155427592123829847141342493685681122751863244117721644874121588689754741854345815969245447584342217572565778259744558981539953254999945412227171425214266151465655638178299897838348664278294668112818727516289914768176785241841132883543951841216914572185168161238473667641751452617616192817829755812675641765734584984164655519999956519476757284682887252693483377918856429138576664367527754982663457888889536182517368823311466512288867729427567273954275292851868745316147782499784199528683668532952556134273132441382249496248333478969376589612521634563977789935622648196946287149486782451333785838647231748452491957192214582964827549513348576462279389637733114857797121767394311338282854153437216798874693833956764749145477287756533782864258723187989337935699232419686991762169648671362622634774733321386583546393228489433719172393431968213732834761694973889998339326226487561836995273459349263183694233988962551157393326232341591912291186239244854175687819858858166964577489865162439299975759555241687215281686727737734298143556514234633699272944516925729964414736188348254458617389759545876347844667483726576294958892388992575931669839576185578358485165211714768652598116543467196692113272448392341151695721531989989296429148372476435897841738626535266979786924455935618679441983388875853444788371631578411498636423897142418234296233953983645276545247378199518931315593755262615139857655686487398847912528788381165829377794433297897859616435439812737396737957636319261814245235298827481284836456473543766378887568216124516141677822986592479926746347686289346927125674792784366881548257171663364721289357682251393198795762187367366291848163982382151626724449165774758653842969165227788121837394668423796882787289857569641361737578747314482191165711574699752399172692941259246626763122986216913162365379283753328511718338828125251677585751181932892723694416812878526981989963952224463792473459191787876762865977213473691845644713489946132518337575724787251621857752343494215853323692326267142816949278488963185443464179783853447353191977185628865261138324647362569647255617483998981722175791847892517966614882771742748217291879919695164542698662836756455541441281685938197853935498134477419427375758556232324763565892532463188553298719832297534923155291488233552331213322165446552969198711155277387518624158592697586266361777485136987372932181729345861937675187674482484582654468854846594992667186333781836262956329878267323931544712884399483115882798329612656136193432379669258317148998163654154495532588592332926814529773178416968195755966268638971746144874468268743249744515393375879256482397162374257497925342838634272491197235539277778382563425642871871693135852628456583723286463551498592186237961619771188624858887647745368954115982189841226994668442867652162469558431552142416339315961166291246888932136265888718214199728733211993295712378959868178139992122211429889927891776673385265375476328397187766834481617134441978518226825591173411462163495482232853534973989329344359488937249225577854252173987212249142745767193888293399577297312314477833543712531858796415125245472254597778739714674113614117454579818576358328665975235535371627597344968781546134556899426486235858245193946639984563495943544928842231525277165411759334487878652775826223929461434347675352127184565187478314346769427732933641997485932852275741662345437682779418891175282654719933466123289139819816224478748639955566664676546425947364147818794238795251715335839445858537395618577873942365846671155896525174821598783828383849944323864361642692568749567751645966242567422581636499445119262646251395146385346885729229925279894733335853377854416336238636525887219794111686126548159813453842552421829978479933737727862246391432413481238119383953538742272314543772783494422595847611837857189456535873293342826576559233832867529985384527788335989812284351911888317657426349737627724249149227847512233857721471153477371172765515527893464491496632258265331771332991247576514956172986419485397497499946686971587665285232652391821824471957114769187681744863854736163167757124932788653138213585172376941742944112865158868226623649333397489778864468145845497651572791338215989315227612149785732991924623121141442292214273545634714976286271214413532848981454824212638345365696847921728853225645696431856426999681661546858211669312396937525473448482966786642663783375926452675423518176648884162388769294462883233939492171475594369289614683895187916122168597823749681949238635325826922871453626664558461223544926627684728979635988725735188489931698969757619297168442849676569628324398858858554386569326862713544852646512356684229141737898931316579229345913324337399868762782448341274553775186714689455523656471476721187475945313348789944671697168166793297627942618512967927533338997326977751721561657347999222912633229884745891855488276187287359461448712181166593398897524238174117867165179518848617357661478678355959457418271931655311437294928413347966674566529159182791283922245821587734374379277457564755869341477159376793691335871344719643669364281758118132528541822765839745164139929732883526616763154138633936828691767929489955351662425797379937914796534438943899939499126929729177739162855224926966868568429336189885169572864559245889731644332129625562757993797384246399522534485942196885955673986596457619858341431898393759148698243883766599522511239514598257961249415944896946159998348253948962782365745237822711544459643437516632285517289459413847792933774235344775483327268442129213479792234592941263978712822823951829931481674689877547727889275166958186133381367822582361177473166864467675692382421546542289474949475132671618841884437555392686623124272242134112335989418576137338746859851261384881721567969681454938814829857325386322927875929222182573466277596127118785266176285223467164813324924791297714311833979675146377678946956625946939215172566184749533137598173764584181337735199932245883699856214512625397716599713181449334844384356865535184854252286117491818243719252749134438556156885875778948863926828252916511199575942736592794375179379818818664256429968136353761676557437194417938825627332517563297829637957559421782415555189498181142727471313479519853352182988872954681611847888763986294282169254512563545222988276785293498313653799833355543351938437666486749918881116561895777521276714467467245346892779247987994464791526139664133219223799578924394436939984386595316575532314732165657445753393632379621842214319773496871181453669431514515735792921517615548784636775225587146148277748282969422888389747432945753525344438469437365139862965439571193335269113838432217493836682682815421339592435445174347814162243564596455677121527952531935948285633177625325476259392384877684947354916437774398317435792461854578869492178597318951431566531887663511617556277962114158692678345584644388786583672976735882615162415842711358415583155534684981221614864999729378472925383671683642938417379296833115432788757911113943569577159251693761535125134328573421215121189346498899492833579729739232138953581469299462628589452363565359517634642478638476311446671296145898142388141877417539986196799268962189883969619342239838387213999187875161129844966838766376664553249645645628813396161697253587791554916458349558154213827165725779959695527362177488558354826393287157587213399137782617989598725519157776196998576636424363944575479946636235972644174491683939466359823334732875172511477769695229291324786874271322367933892313313433792378685616632314592722942264544669437877449569928189273489723168911677321266157855772999861177857825646552256831386475462458943624967422536118936563199123827177564295458947741396696416788584239648173867631669229768446175487331247423176121933898632337766499412243449941144223984116672211149253487379373685872262738958943957286713649997374589762556448634332892165954681929885939563425747727932426874866853345391623996667359591178455829254673734823388114953958783155979336488871199899284488256452947769498375474364282529323756841515455372719135433574415679363213757275345347771926357614638839294821343766423425149619962755555835858134756997482342337482847329895696961458287319442271354875744284679724532253186282216493965364532483736849157566766315699216568586758323326962537167617428163822485317438924167773523264869249377797439322627385536842237131958726468478431259591165286979974635371918841755615611237724621983599588363237787158161732194281429367183315974677483456665963994921638848345593331675241536826316268143866416549686198952543153668562748478932881381176238334599446511247939217224231743566814757387212814723335637791146727182719529599851272645314427177775755696545439447591931353851618273631274526559217299223418468275427435875421249948769199835642162714282734746731515414386741747927435617971633573923339894977577211561357319456647879869246884684649664273127682368243156734983346192519711478594317522185583616216355226253191322164263511771382815437942241262357763813879817987529193226232357912292579459147778688998511635336445692436439117865654414466988422961113645536112567797233719552757757911453864199778481652697663237927852247546494341386535281313883577681334864277294736255265353619377389674982599863577173418668675394269647787763928516847612469799194157725481573424987648773652551856537955992343531295962225361345877662162175338346622633258282679436431648962785346519835744811733366328214372716356228683862835251682492828988613115972258341656614753834722582793178284918173543717991353499567664572963761893164762876925861525872158424393619875963543128961537743564884234912496651952746799463619987399689729374278342919945395183792759721648954786876769278675945919972934719177754329236893376877763755225123788129923592739395961245656258426326217447519339825838393997648269778413253276957541368558213128985735951257852486322266886288866339634648323552183298787494271783755919831276373572341978375343527917889896422669892888716221471169748637259225193281141553488484348299814735134432445479626454787587367649142475517945896421797436163825738866316991478991959783388569132917527116142831826784122777669859581192785867858537828994761736675673741227711643325113579542988345618621389343664155492245433266616577586429674189428532964179749486135556424722643495481787751678271525256527672891447425189137844885419959626795639361868769453632161866826586948874859625648912117193683222824691885645199979979688846267348688765138637424312279954679392161726328161712132148133389118314385817613763765878761998917748166545295372647934791789569342947591111537681373641618655468662312412454112139384244197534279419431665965167975398597339656587439575961466164573332155919657299937413448944382513727297142859752483726529857818269888582667541779841582466245962849787943596653445574619223728712771455693358482928389181453233399433893917855847764663797819248971359559225697364729978669673461594448368728444715693458315542581824659421354625264499139674722783246188112474889219111967238397512211921166344353254249962882532642522636269574799113118275328472424586191147416326425332763589632979588571222742384796961218269356293941952925243522117128933858467759755845459611711411284467214769743136662431482432439775586863726938585636765896839896344828981563322684251629292971694876753719921188592554353558517994459629522529368413738874724592826778629871696435698484755193275852623489458881441288543842269644785133966744887885538822837891168552756321698367719571764442357213277898957673354291357682815425642421215863196425459297278721274315325792991521964964671432448768289548647688684178435568592467274228882539388585437963813948565966744986814662993798969344198584158336815261461629425339538366671494874499425476398739673498965994262519441877597268125454141538945995937925664379181615129972755254536338684911728868359155229734187718476666746413248142553525813563218874437168281985949379761816236112444231848936339257233122624224356769754636269974786876947358683358133485881887244632225949617923724952441518113564585969738529691185227267977214551946828659518516828634329921375268739684535385866728949932957474256195547874351912615597682428732331765452885766836375143274845177144579646123615223625832225622325661425126486888949422633183214579522933559228822853815193424751691793947958739814194694725188158127311995767657955393775174977778419598975639323753129516813579429358244697438694984745314562592426331781322181469642263618647788491468489596523486583743596174924859687535285323972234473971362746593246644276462575891298234288648952615112547784274372173591364158118598653421736944141481415719619459314436517191595523553933882716627161519228267618754946324395956653692594318969743236658187572146384434864549313626289987524636245587853216147488816894546898513151725935648366256835268757596791753255619436149612137893441129175399869782286136248917151252169487472341468961584474978983177826653876711516664981388176284965511786357397953341468256763168698566282819595728754577144358118954563653692164839186879314113818354418767863246143531441741929744175831515729422664687661651614121483443914845199458114977138439368511811185584429219516398131956717887885333664475325944746642322189767189455782224597861434565653528236261628829268844876222786937759364425297194877254775843435299925346765464731455632125346755646161546971344369722832355829383978931428542977739822945427345533415556211487159931934564387749971425935874578452453618936699687618292677923758993242935593551291919966747912782994287646881811789784358948217297696369838817786744178952762489139655537328186641956741896944946981444154853316382855845537811599632137411542261345727279851919752954684736752675156763757737612797145417163221524291454136787955658997784915857256292593171765229918676966541266675734931196597497255759384399766237539638268897612176114424299812554596312181751847448779288968123552982181164158871657455352162397394593598892688733477993998216736274323193269923259948247857529136457756852852157941854538169971516269755839934638612944651546587113977559452613474566821864512112398844768938275411193177528629758633918782697248247354986838612564744622772484288822319782552697962223481428837627637615759818684715933174857598261929484374121482884281565314929911948354656794773281245555957846921655111678156254267623216891472546947995898314621371581268116249843522899729281117165261961475358591688569467467164569665612237877824771715441247493348798919797378745714338342981213983783652387151539943667755865154322476514218349234498964449844265313852262185198337224467242657176252368566965787489734447592188714849575161538277948472111218978351218613756553155881172182878594514363537173377754852949126876236452795491637492776861763438949584643183144773859525599633426464718926111477751613941993134668939829321357933972166265458724626586428443135322428933468141491939661394696227268141286189928111966996355867573376394993884585571151785261818135653943221568915111977483464166522725935971761261257885231535186357748336392317412189612545152677341254683812552661621675179237859865233413557692754619115938614599912142486946211561472874734973864177214718228265392377649137413699329679491116535643316318837297118975814724465819948658341158759546916388633114997853676671544587187615457667957632898455499746444213738485171743811745285958592911374223529483663727245531389471597898959997253515337771797734673452155144658998311187946619976191215718163752672679353714619198228688484758815161886257416326238985733197868464441966696337849538119428184721155149698222894757456386175447552855715515685968594231848483127292662113561966725127219946247855921121367452832334944827442136627629644369452573867148872873524275149475399356522134922197349756141986596329972285676675398263777765294835733839376732352166333997417789252434269742956952574773414172986929334216482976223689929226414995838247785882493641522442173462844658326693731985937171268314588843655224487474967664679499748422676187415953448294551489344275242749461864997826161198132539943216143928428188694613425657541751254435266964823273323868493567581923528915395693733198838974532512744635163522684982655542783834117461976216375663738262349522813458435944662127388295228178249584327621176286824724125932855783224765673281761232444826891468679946512729785898941323813838685678227389367736529541821914771138839658564236787732714694961963856611456779337199269537914919284643678344257856762613484674592755922745169745311461698156495551943216522575916842911715344888872182632879261744825896339617495583645811836899372759272132859297462833915574491565372584559478213396585933362397734971325262963382838421646766439725846252457575667498552127669431914629753591956794438639286238127578453692686245577339246749551297932281357951497139943616451459951268182776716417481642265211194919717974653293922984181519519918878576829138429417816856796786463328891813634574354838418966412633511581743281615987727413143315456593576885845223994644937258783233588267541963251514986712469772829725379364477527726375412378459411848764991743424849479496131962145811291264485779596535238333337716726731269627576128531253585146727399415366913515258373429934415933853387868228533349581373692194378596373173836159987924264372799558165363645249127718125452611454261686849353155725526959191145469427991915229681122615515518843774463463874742633884344774657835261516774147299487711177522295621759427731441377146153785915366331363845868795398982351739265788814186563332869657772845752239919327863995161935693866342454344255831231636728387554187221544958441443414966793437735347481785528552882278746978742276825882332986254271145632495613283561684782297614616958197557755192249416535185344949748493167566669411143559974366341168264929565495419554542877589495311692547176517561715881539477988957191697357983952431473219998783472541164852147279296426325282439463578853146653572123645153275122368143456912258348592916214614749544677358352186935125636886359294569274818116697299652141756675921747127927576384239443418974356438139721567995418232463149574916717789735523943765991294141431811568341782185351748758242274253319233112318734696571375482715126938348358221579136962491469961463276912832769662267396332227362589179152327283399928541553278316223127258866284975728763979611221423138813422718279146323383393434736417748828545548961287416747291731494276939463268276896479278342271686278914129946426162878792719667374964376368799395582351421386914319636152921951488512543561151461333927129194122862995351356382414686486285686762852475491938159517945553921476662798347339944974557911283239885954777591393671826515624736624199476115133481371822473645296695542142544872798878816168577147571674627184254931711316154856593449712418823215375395991274723157127167849269776215785691972186878574268173941559927467464662248985291997281235136763597853866654174963771684287653891666853417814199367435743417585642215455125425341982446675223776886421722363687774928464885163631252333468626382663399676282344369473617468885132342118726841365293453288955568683683553946952472616824619264812179215518294331491983343258538644554194713246175263487681434287542842313525912528655324347755498571792842343484158679993567996753722896929158452228118353143517887156647542377497286822225465133737381944162719427118238655157328157151456516357957858614918641535239263713337132796566857729662174981269582283243797463933987194582417345452775944671763952659188327942386553936493369655628637348132169714917636961816267129753555761631129772356447963655539774349292293971196728314679922897311321439636635216947384286375985916938991654164656485812429817317811699754159314942411653433154824784658952883276316461613826188466721415683799339956916287885621282321789858871866455163631282298321478363149125659255418335435366383128223124579575815637279684213314224426863719189543169927328648969391966136145179385275796559335263249852564862788185554119122447752636761247314123677977769913567638295318838331576273959939176747557977758672629246539311228682346943518476537551984824925773916599749585148872869141442818299747611568162838914828852942751524375329235298998379245237492453771292113623422248242564384428795614625976326339143298527758517967438725236868763971821495145831463234746332197385366495898371316538883415524253678316696422542195873113454869135855493944178367645744189566368832362555953777522995493348874657773928423589331439858173959293861252983241154195979886169879265279468571676975372249756643458866881548584261698712686148483269647781448844893663711313151456329987929794173437697628922967588475157126433555224865567743499136632333855199411786242816944856518631816296146114637718392686236988158678172673145715435683295783597354162328511971423781989567616442847877618696638995893748598232315972733592164843232495254957176674637876871355667797211596193659112688275298644313823853462635426574371799653873154439565626167624941929864141356677533884499169453453329633657115856234663467482636858719964774167679925152891952446297193559756512584998178962295824423656631162299589386182291662993256899894914853781288317363452666346135415891968986716431765822545946387757742548128651627298342735353927692745546491562272995176591783442515958697643751851257796864998158543392156319494418177653943647491739834455383623429173476641378331212537955226557365592154971893824977562973517143581686972862234421176253414117355392899974286537534149379689314734812718126667419793731588428781162132843498238198361328159716822925917257959759574495299171751832332136639595332771289187152233356458821861383469477476981183417933724899717944881527125123263946217486356159338379981472796981581238754357389197994932192788637748493738445445134537636685547111851222856489882324976634977678652654738366354474762335622367123377541366772118575696157173875982745759437437275634228835212511673138161813618971483265675825782194799679831626764971536118576665935892764736491797649249185532924313478741361328982896783246428757894667782694582761238552174848526982548717156222245989187461212799844714417818122528416152163332215565795585377327258743948169371825385733358871695469643458475446864425541426475811674927754288773995548471118588445726481897564854397244234871614275724692447733152764166353314621282441684356651626913647967238347371338752216367867112797418332858871735855561256956915655567652448512986523446941531984521185237176264726851553485572724723245841557837413456685142213675788262216997637762431833944291679484595184746423645626921338385222571178342883257518218131959452517694337415729369279982976811851619931661242168966943941521596555337494417612397782175226275619143772112751881567665277684245247424525681768614461976534948352183525883858618945832574857682779121598672532326717855331987155956995753816137597381793772576862449815284685335852931388325811844834242589122596598516238718682164487635535775323163685445214318747499832497829116473816326646529148831969641552188367989554185979762757612567665489278132529827782856697754329757655466597489156331981655976841615142589337232754731886483956926519568581293377649727345431131671617365373598252934748181183148189725232381286487741558556758556427831968976513377322155531375917578564252712129749845377213682339186491571672545418945565823946943582547514647278872326898992576723757596869667443674343132288648924573968924548794228312329273854319515385639318739559681596782191941557911832793647595534291299382227917191259513251694913122849161752552466217422561859151245149215349585115646673667663675178997322369658221678834589845253942663788653464539393551435948232398566321556788618954985378181219956677621289859745923449347357342798449556431314694837752486299278912756489518857348914941559456255339877816682315284477532457871494379849497527835373914149625754171855884535218734834327189654941935412655175837221532349184478369781955362843554596628527854679658533968942386635286147822279133876162865883445853465236343245522127392779923598643255878191543644363531522761535749226925168323658881842818959423333824339251415284356446231152385667989894833351676229732837944398987866149473429131913974777197994661374119342244234432797496185451567767782815227659628357866411447123781879371936877612487918932743811877894887465125262943645797987154733212847348653737992461258853225526598222976359848174988863174526165866153677561468756632739279676952656823578513367829982788744349395876234973199871668747511935854441853239448326372145685777152575569772625546153266624289885933368236486939435649291528485967193925553145978431351381138534234425859154559383417335438281593934318224577585725457881787645828258179316154526951647615379861685571412996448933886656174968925453492482115897186639347632413948176323424983699243275727967142858389631919167171397768555258343161922912728426544321155569382577568758829651294625528955772929665429292166186436776652138229175517437532938561148714795627524954687239432378373143312873524918357878792928745948269456696876692277147148812395911845393869528535329932792822312386624899732584916888158239249368839298172229518987673484318345926835622743672561237466886698998581932214362516438264641281989836839931456496137843215324211183766757783232745428638249468576842317166378442783546358284131694824511137861148283716524917976457718611487471298468919411198632392252378926935761561491591253482596513414986451497436575599727776336556944488527151697146198775217852446874615329378982681357777462595172431963799587636659437162211628661747815752515179993698718759524578168634674269159218978753793241856698965262266177865538898291185644429945149646332785554363371834275158553417149296652977314387615211945385978798354441151589348657542969546325138462477434247992646741575115518335562293416196259723879279738461797915255754378251436353215951129611224689117932854488787382373343344713693385461718477294321544758128278595831891537147558691975776593242724894755558194753749227856179241619885339238593777797363879784745723245147886253821647833781264535748243822446626669242519625978443365547671131786619751612298932256799457468437197952922131823837597433168912529394495597478652399143238128268988427867593358477379592393119997739514253487214932871199319288861622926263784265342241161869746716718325592718322435541526581941611432882151873916558491147142182233421416583783437277272874973995326456814172314129735812398586927553133439558849722293321268761414616748683567437557678784559479839493251496129864532389743579353272496444146923365484246484428636774217699281417855268717148792267687246265395971475245939698824572285791228715632255638597378625722282293973435541913753579339792819928194346889879244381312261352132942355843829623141951276381493586712184365226421415422141279427987175591912543484825928135956644342782662826943334735626121765198255312373877189462813324471788693123259427926951131361698566325525729751453837829754893649279519172947171353834898277432347298296299896811193562277929933642442869748339338565582373375638752747792524446292641877994445221384153294438947199166765199599528823122564347856853427825875726597799934358932596647429896377936695687992793833496238917534226775243822981264513116895558968536948221419424664964543986672524216137956888253558782179737878199682476954768113781987941527426384411915371162341337122973714332663552179275298232833929399622677922138935445257249531459311377159252844367783496348463384329124938292537295434957883112433344545444476295637923699919143357699144571189442234392282285419168961218396249353571789917357254949159788382216363432222946759943848815643644279513533627271174466137681844261211353525232238564177724718224123247598811123869375857227829321535263954955249156639449132942985492786961374377849763665758945464431117144462145919276641434869312392196532635925942586538715724854154686758249733771413183564849344593966879732918949257593886699937233691664664357372919287655538241591566812246763944941615257961911966637741315619983134548234325411973647568127914317551364695226122365922733313743587514772274784821312364694867915746913239587968898124364649448813492614562358136838255418442222351512867181983555369819633744879929915713781935562341294568845726626287565658194228336673456837498117662116825226938586832314943843589789369772374123785715218481739588414482497718977447747675747685436753882552357971755422875534165521788943267855829451537979364726685487683368759684637323249611279517365581356313665377691551667596331768793313667185743787743383994971758968235834317666349477657944817614536918337184527454218892283934485885618417757482793571798982219786256976659388557694762549669538252748393239874533898142997849544717536648635976155849948712665936668222975452966551454114269651396127215739735379393614929884813515234587569986815175457334624965377625361259649246672294545939356118535449313225662881235637551242885338248559916184297648274397375797521354355753261724622841667245777812336691826996347431487919577257369839711318833675694383341955682654534564445693162481714898365321663917341891996144924383118639686776489568458952252689881742781367895841686461586743732614873798488862839466424977341391777946774659832768218686419438494997674927899166885634264196835324989371951965443995312521293725913939124918542731351492412673264356256557491563587626766724139355761425154191348199655236538564131162566865998787743165628463856753897484862741394699151895261636715554831993931479374353857811481835297296478425333656732512548431859557985716238384956996941873857882688159661488874453955933317996143847793842628854148542752341744128786961112996289943118331315616384979981178777679771482513963581977965962839576553482641827174161756242434371714952114276883279254778991227287582782299766984897264953964672439597696553959439146441736183215143612347542464367711863351552966325549272317634413487612757852474816624744516847974734819683828299761134485958554927397266337246111114532937772273892597129733243344687879446542729978679533755168436193846499562557313355528835767356541168124167688812344236691316868855645951618488523835484315989765118693663411251434852281678533934783949179184125411438485137429788171977775177598649466779429487184171856454113756772359289127726923996631831114662886694595366758158691683694169238697146573247942792758127323136884698244358942921186977699892389638433867641642749226975755873745578753397361424234732316674946384258477293134447729848516789427732568267479814575468217666597269415322167937275511311966526332173685771463271639759655396828925274641687894865721784213873675192446493183377849897227495652261385724123348922991693342716811839311692825626715864188257736729638698779232712387685499962633496245913835914133791239115268516121512694183586754766667174833434574533841288663138583291573614141494677676441643382619556726221348614362895848166126171551262175846362431924619321827871875983575191343223584496487964151549795394326638976326844548743886665184515267953574157482265443998316746253746183486225331764954783347951225733961671993168452639953647759122317254353548374546432785451262382916339574499743385343867883921191623579829783191534721598778777739977857734924977348397154731593479153625117413137855451722861997892154554284587162696567733722411615959477815411658215877138378338723658338768723633919512438241823267999765536787967827959764755851551425867335131792586462836221366216673315717777835461644155272682358478947625397743896212527786719557342182621374653253214962531486118217367385749955275561614742253963588327781675272627676131244439687518276232748791466959974316264814639242215174118793681919526817269172293799999858215195156637342159358537326291991491995657371584419252873492481539538983711658188193271319457588341138498552361159466497231978793715544388514518434962585671549719254482333672415891958425557518434761883149379859954784238969792167155459376352236494816792661766461996813437539178469938173159785783363585248145881763571885643121345584997891477454699577141242255694982672619343792648342354569138317574634557626889713748284286127864326551223799669942669167678244565119121399244137292188745559714314116235948431249347111656435746256758251894997822432487929584199564269357646318441688378217596442867683445965718756462382932565641498622227687442987915117254616755517628366999187778287892262735366926652332239897514394319572987477942154266145685115444371368915698714119612271771114431466256615584794655872848848281216822373721289555921294978796726498525687585439832839237996576215946494153585567541453251697397782321725972528261316529578298876916878365515232352782638558235715482118549962176244317152863334762972625622628333763367444666932128289741892634789915647894486697315378347498866656119888227765495822645474249894315283194669218689654279483363783111319665585344397595434769928238258995543165394944486852734546351258793999528813251734897241765689549747678569674545923636692149193866633567324578168321871185873168621866587944641461548545823228971956694377742676721563155356243247895323985153624668972497811133792313512996267424399538119122489511851959455186315357158968186146119194138437968483287982681383883882274926622468677354413339627796913394866811656371712845886565155464741229284819879152441995599825388211128398385281433322761642269979971791529136168281456311425323218278321113718636662282223744843769681581852623278286396669954239177135111251477285624389264575583385795791847555917334241698145254722192174728218841365324117633894913118461272966172412713556645135334169287372879819189435988489813228235852127998896738217855735956768252353142831493294878351745412126341553636664973259984166586697222155427973359575462766414963674789329126331287523778398794951438261151674782443619439297483515231225272641774834765775423663265286693867824216483948479645841369928394876276723897734687961187878687163671141421183449945133729487173431444575473516499812173921528851784231567827347237434615666341429722778459283795427877232866897868944788585765216874496672252826521987736392711388727384398461122118871391461588251968397134144245111239275214938925745447851363654667563973366157421764438544798265711987324818651626969712172997466465295576331483888858965255789316734269892821917882677282548479831356226418398976224831985711693638349778597385996278265636686847671556485213593119825367936411266211748359588788669185877427333944926731678447292991577217841134324987854777486686632242925927358746422788536185536659841443966838561638471978331985968892287679526568495593224312797586684349191647476924236566735473839254253216742444757392965492563578782993567791965685871298355692369468795364359727385215139488614648418844268138856467858686556891631594729523396922517465918687659789159991221823962697197954628586371379381261356516225798269916533551477483527267669937844743385639565313554259925717581855173535471991245561341822579654951113541539644178113175211166451551714766728916726923334441974919981355926797368968292434411811798723224784421295194146476446425277487865196194594896334978518836574349758347696966598885636528965488353177735312861659291652447875699896467998964927847881135711379159794483178471253842844314331345194432638474488762745264687519119442595332679535698115462113113956195427684426975776111311411695193535272524191567967187127966475727134285584539225822523328855326929347784146858231482592387819481324972376959873812851188769597528916143636513873867865731579232912416567218485671456828856877968118555365114479595175861347132842796122622958897295679613316488557158318494272882348397528156899614335273481667792512252866346386617124463327187137233327949568128729246367165668471592284139839692614139835381917957166478359318469861743371362957663199833754689566539856862957613822794978346272733617293388148211378676498915967317926344146846774639168858354975676211513187764926922816531927485914954252817219791871423514343732126439611421389466417657161333435977937878897822362926622744177464157734613285411612163336734469764446787914335374481612384528475627286775217535864714932372218669477853362115689869353379579345273846172382639625639766714637953237734952924965537513163425219432194488679866418257453684295236335672439425945851584743162564187544786526921584432895191246644287655297787636968147547451114432176585253815592295958583583825922579984264713733217865214485886933739146516879191786386625183675857861411188886763382843352629983769699797476141478452686836735191861739575979996741818482154543538592447824713377467194298642873722754546817145769379788451548891975428898612977914773517559328215746535475473263548689333265976458181628255461594362185499886431339389194528578894112441437169182811718151997886286229242847834925974789778446143665679663445836212581456299794159416362595967477635569278947341281817946422968711256164857571597576361793997758773478754592442298815973152727594839794244386395275562766947586878847252568297515151126719467144827531687496246549642222157841121864912641254796661872985569561646827171985455912978176622457592183791888322813991896446582332331589567398478677647272828941273132977686433281844452534427423635722479112429314748789922753915486523423555574747515516571862389831162315742924664294659725853725732751235316672972345327781153625789791222878976999529298393554923882913189887566428336956391782861951259237783415137732251228484478583496173493796467572483221657495744241468747263919147268224953315738675438253334347953765158379742688131735168471166323726644416565267231635463558981252796936683197711672297442241254323826464662332298398132246241571752387643766974713515628233271255374937213719969229671582799794122414134394281192868816174844246286578997395395471152658931345762328297736365682786741533556923143843526131498556229162416997211585745338376122723738859449159198661183819411673844628552557465112118488339387461821676721456966976895618546162953111672616291787456927769366569769726876385462197688344279715772644111749275474942765272142519663874837744261564549146249389234511894466762717161954456485316757726951627797592487723461781445116612763432261398979215282215716466531763869998785696213333893338872846233922781359859982352584369444946337416439315213428565889723116539368891822341572337695666866429344234214337285496965522116747562974283615322652257688697361127213421771293457471239988613694324555623632866513415384143413743297658892976616956485788929382611465244341911596924482283122361397612145125263665894912213238358917911412717963553743853165988669459478558354689752945242638574318245999724272147239743894631961765363244651754466249418871967933459672936992337831871657733426651417599288219993879934696827472413152968779768855847196787425565669754522476262644344813644981456311762899515578993363526914949469535614544991789915266747249975928378622111178869384858471467958774435635622497225619346372967633176538881939642992925552638481686239117999844943134577641479437949939528492685887344997933865568441382131299667381779362648285928947151268925743798634897695286979774689481854923775264833331837784252989965256423838219432415173477675551964516887598531771176314969415491841328167929886883512897748288353284189779658345586766439347962188487355221943581156697512198216134768279163411415954794793513195461277184323443938397566816116652668365696849223931687368868423578394854346356549698224999731978797172315838572332143343395393163759889362128341545777997525721896864781881624758224813655117195662939917967343154434788298897454446336912746839363531359238853186697298451943868121245147932231781418254237522223335739421533582533336658289392434916847989238371494948855775717197679368371187136521294761231849596432247356967518528874897971829461575399885535376154533229111935182511478821358953296417316399797837864656681465784224845564432914791154612647125426719156478579848843294358958581159154581348221995224548343171184979328452162242762115937245133529552375482695661752254966478729663681227266722787792187523474231598619326887155734831573711222261921843321935398689627897818115196179312383812669631219889789279776796823114369212232119876893769439812222537458451551447926282224194214357881735671614395824835234445769458429977837257627911413757223168798785367172644433464638341546215174599296249583718262885938557944373282795653823728716198833625943351411874165326187795578629213427457435731252859528965836746188723456828833928869765137711418279413995778959745691113774814521451759226812864334333691961321356329339719895328649998994825931561373353232753496475274554137972998323535618838475972225627215493224467827799546923144694324754875312983663615197292559972445832353341615755354973127924156638743876926499814291412183597248923111682129111511559658897592472683631742651792835899578327365532685659715873956424372193828369536981851338513144571579761576428115181113843247584532497444985776383393586881537978127752159627145353591278122797598263376237729255495511392362112837154575247252682131261386586577363529143747816919914842489825652993885169849438219683729691165244422828711643563411672532646159481573342395541671737869832537455412635754397254226882874126751281353727235851261749827318863882895177779354369244235755622818988584252176593325637191553532431177582689328459912691745998121937775943865699589748712281992994561954339698547511372479378468724718231299943683798736663598369639442449334582751633289538454315139263285434599652869693347756269985383835275238314264497152667655173356873285114439768473438174671896473689281513478215446353591579126384282122457277621235475533333841257269394112852765312645878152166782612122286453873936514217313881151252369784962264894114735923126231356224611635994215577978279773796218658511181419756553359326485915861619798638614257483395932432817867826589449654482612184126316972664321244118545695794916535123378589693993636186555944596917323172831219463161525919458847469757838848775971133633557241975959533427295692695847182695793287239551269628886369957227686883516441467319176512596217855443783326451182979539787397973415673894438436514366223852548779336596837669211545147432575341253792274831741793297838975497413662888261134183392884772111841216374988981398627715262262255254871168956986746496811126131555932937723319873423813995517562954137798939816257437616167722996318878762543146779431936696786396273148181485852784787236713343859952769787373449798311872295369263428396112255214945922221556452773513194317728112594615659284342692891122883593642992456364678747816818975134387475619234582465235725493884222958418322679894317877316595826912832654729619141717437976547147219365637587481451184681235747457373734482131265253512625998633351534962163178484744885284946361213598695892639983352879172687798946895374436334659736532791479163642269592924378231683842867673947242989281517321287571656324516211318236366197916652515236486997927749375863653197258751298877468133148424778168783558466244879781874626183978757891747351547415483854452649594283247762815545983267512664623121335999179514812237777944494595627196194944335446214997226674145744444737169693213593224761164546871342956815125365575841837271857761855425837453889353335942916682657199581124493317549933114672826535462474712142785777978334426157484622892185364721496239659155882253242439854125145666612527985119332454338649243698369519288698511655167832645985719559557316257111517379423922372226161891595295255972814184211333738727856356779256436745156287361241716431917932565129524932756768748362363955289692534836881456229155271375883742894266755889492286793838396571659965549917946154623885614351315392745645338734185463933357476886859393825798996442724957774352846666857415215748899193859184267823317947567931711519775683918689819514258841791851718176366123894844258142122985945752377877166549854647747835238792829585299644617972546218631491571429928982242839182593355384341372263941154246934284498825248265372565569873576883123885318224741786243229566144354633964785149117631832887381626169455623226926688661738466526122957428629212769425588234775466652282152952117959497128595822577696781884985771619321259642787446994882379846816636732684753476976453571443124685257325688836423957214158449687193724282173715981699994726685395666874971251638698587849417935381868355361333271838612452234752847651277188296379139263385551623267374962782418211117434888839155783268347477296296829316179975452567381926635244825735332229553698336327879483664236658769514873685316993821175487131916867243591921519789697134837828413126366457587355324926488261991193737362991635165466995811989899272787967831336861451841828718624793478251183658794677659529371649786681687843721977631471398452339787846529681776449476516341454332915657525593225152692225241464564128769318529914173284797743199391166987728618916233483267555374471178649419399812249454188425863858623452471362475319618459925299151295433558585925874727719228114932564718547938426797567469371663718278923696437816561316123278349156947197631311765875587794626532115723365385361847375854315856947418634162597471198582812385878698352648887534533471451678165824748813681343685822966924729191464255413536784275351842293992147462892135693919534517616815919644713826365556398647398878378222583763488823553216936613539351498674893684928149721381534368396253533789182984855864916342161776928287195283567154343866873848539348947455791394617983571763515527222856325354695393631516745287917183595129488917269219674292782588838231168847554574431831918945827639646321165412755828817692963736788228225755738319989738725997565275186441823743639592364762397714312846826181443382417773912672993176667366299427557224314562661867413228647577222834364691755741462573336983684877292652526188125162485973332718337572633331132537765252374444365812974386388441197512548872298779865283711534534274326113331198974492762725167374695215437546223652727978384111361861393955567632713481227518643529549733369832992241151892645886748691927899189292197276339817482241332811719628837544976856673697618798868739412945442926574833494263848711641744266368815277416722915875828892297723612929651222312878361239348929179361225236366354278271995786792527548951677291417324413772349492144848994694534255685853865714817281979439782296644129395775154873969811679787441842651138542928114185242928662645691713455537346745258239985248617667812455178742156868857271939785475529926771975551436143145914442872763349226672794397491881213389455678589245315524263251261389324871627622132584899194929148879256117768951998387277577471258162663347223213949647384921136731886129721942225188796197181653631323184286387685465963671645896918126334743512936533789742222892694226691849843585754627838928167489958922916254718979753534439178952744934537798585558691934831625688962324183732286955147521472849736756144327435838433274111283155529223554286668591617916925229761583736244799548598388879381157294377881349383143961747665679479895483517325629715777433899836615143473914565345692345634596156569887177424846485528971211715361348155786979617258945966936463396181668155915629494798371826135633687383873334263533361341943485644472649872187441565488571618262598652528727441496834661631445584357599461115934526863726659218533372297287689139615877433243995232341968627629578945788893982594516512453994849744392181388526767416442632916989418516533364839559293365355853783632184419792646555769195679857199217537496658213668577144918528437179619254964221168771252913644441311225511932838585691789853286326227777861932781249118983291822432119774767836849749537757828852161938294976459423376941612496592574493779324256472956927945593649978135956462898183564258617961746649134768847645892216966542615268172347121774353453948592643158855979671758172416611458513727592988944919616746497422273443172279153543393876514246253495693729624757977253793295621959428679531915612226586795366249181858791881231451188657163686684668347325337362479224821177625972695425748465581492773779431927186428982738277216483641583565363714692764471191628982939275682862211386524622663451642458915182292129779922187312366499199697695817783775773594629149148916666247715171647877237131935626372985656162124792414117299762287376731337538817147458957922931756339361114884687322126797899865587323422899258879971541328215653284525694618395382235156976332559881351691439858852365953584637525548518541415299236711867211862315245988928337339798775485561589994472162994626475352689125172971298315593753481815172874471567587417747922369339736824241386844474257749764687649239443452945372685348324672436248272517691927176619421787819433249399958951757226258316997839154972877662646257861672362844758935212878931555131287213387661453974159842775287286916234899844131335397375883512183516974868261292622348826166364414991377183191352385166662287527816943541749765882388854962513283875129182958336554338624774983259651648743565929432283659147252127161833279571412531776679384484291282489436366517584941868297516623751673219659487789775575235675849917216171898667533979582859333224824531419365817194942237159461752184134858348138433644258985958246559733566469212356761568853667391263428945864988554598364538257163494287563861616964881133848544762181736922172567845838122855132329382883979225897461272347748871699776974884364998915139693579538494992368674964764366125361214833332456214691866382793228338522745789489848825443512732645596579946884758549973233315559888544447925381133921244473917896631864655173965367371627717587149125479965162678294365936674376287624511915252871297788445673271942382282686773892569393668976869187195264831119256175349127712691319725186197812417831732492651671541949638327356148111349385332374467319131756458257371298631668984715526672117822549558312466254525975533633394447281921156652913489832193322655374365478934924353235344665729345662188979471795928341787268172646755443478548128852928535332485949483639573273158249181413541135974335273498693416395345679672178481897936885235744266634571677494473975653165528845596753711541867164519824356128568143412345321926376258472984829622853976417599126721467644935787972369898547548919944698981458255361241184737527311769557582496822845833216867587553597235264745928492692277725479618322847211692422581797379715665486568178237369327476913973338866312228932658578296895183325182712823715779525345724322442859821192363748588911482613747921792891926289827718746916279851731811892419381941814494911975957147126356174277257687887765269963654278775982686345122698124819164472147535784227718877578858763189193845492723474241997782547855664737266436663977167744988652127489195527273579166739117871173719699251867194919683484969166236276991176776166923259556451174582189175643148649753797342438786774771244337181965234867999767334691614946655639152537126182724164134417972335238471172671641147348689365498821657655792765769482259175625385449294664749315133357244616135567577724186916428744447816418855692273572262713676821689229115654779926143312569959918831839384649542145365511396276968952869224267361787226255863468243338239655272249852466732167871992725768185218183229792888565455537193891411228529488567493848381878268298328969997653372555283261976795516392281956173327735951858426956675794878385516279653648488974432989377215555262926371118896237336253962316722824542442321734555161446476147238661614725797142657672118712424268239591169763937673683454585992714663668435716363631975224712873228465297577213454549962331517729555965511121455689674897947617552837488498424882648128691361195287815653574741815795554679668177767212358623712171535873738525371982126778948236377755837688296385486963755568176851243811621348676251325871667243365544695629375981913488454257472825365815642229229348182597233315731291664876776791418648252582954874948314882541571435349387473758141862348391357371714633368434336312425244267995964426542373695225456868284983488819463489749361686262981368616386312459424238297793899926776394823957988291919677867847414934315511288916816763458232862365685145154844525181435247423548916428823397648147178592234467257897578898552355853792993239954522279167812936419689778182976427645441121293734791567475562984747282282292474733788525961259514231248457494756935766252266117439342177715271763238844859359982814111681187264465348524557446426827875883688925448289534257789261847334483374617335277682359274247868217334674316633471494311625382211834292622283319248668631258268341559611718937851617478473278113147917968761535595242967285984288988685459483832344431148536845633489824743925148462464217892254492483856947351287223643412427767884958553287285716978398431195773168912228737297784513346355712928697898572271859299424948419691359138876994977986837211941899824716684172368956538238233212183453192317533327969872695814112356556575327548335113371752152385829476797452374775992966161288761697366911936493882887493492276235841431433962239417156496412924488421552747868789594922553753182723767832517385335626871935232294561343483111642193668652964273638553789991953252418372468775938872159948943348469185321198581267462355257562298116527526364389925141664399428127669311837255146659696834765666322252335849453928867449725371793826938423347537323957828335495586288929234886517881472384833372788689692979521288334363635942129887745932973881713138381785986864647139215494453765584462759335788491291739974339767914188912479297227288175597454154451141177987697315922551285598833837943632381991592647566915896168763924143133162226961452739436392483885187283494889924196928647775962569177417694686884586349917393538345165635183569827542522151483126612274562628619442584598536737387484749891659584722971723386894643996884848886358445516734224676855343636495929753293755176433998432683323724589897963569293482224383514874222291996142951288391628779255576785664377462479398259935849386844319645361317236851743226144728159812338459162655628839433894688568792526423487938729552739287933892844576693386156811973881573742934371829148643223219487434618781216288182945257367295838397966876575283465779495224686316191687325643868445374784143773262239852324591333741118522877194216292223562574757858599677375786384495651717172756696553188657285525989859557722372816925888487848325219254825942223614191939612334744758949444645716214217156278452617511443796167666976572289123284834867226832488184741759651868331626337819148735299263117182815867389979962635244969369868149515233939825978482777692677581531844236116613441517176344981823916228629378412442959672969942331742613429251385488355431435546521661912926945373116659681134775731631713485813124678536538894357328398437917319676428862649155786495347948668525146832985881347987311185749591984676755233257945664672146985973439994417622215662937139738126347346676238347884876588441252685497954575398176353991734757825254948384794581124313286552233646939758237476377697915559672736438484295833458197797342298471813641959542675575253976185811881244239173339776281577265556644547951966289156664629426771423677363458966851417768789466497754488613418973124798567494933697945886126823124383238977469629312779372853153482614411235176916172998174368617768197919517197584773579815655421129829759458997354511381746276278158913847747353692728783319926619511783446161329482359579459919959827251756787615739676511592485376981956513374746693243272319745334427968275548197322538659623245467253971534234864915771641844381896182135547724123681643527845734333534977749949317351591284655977229596369244163787637744998585216255781684989248819574863722232747214262659564244291477748852125634151294149453762818572456457711214123525551826916753887422192112323564118981679234312954153253384548838626672585815199495619737179953894462698988497436886758465459629965115893532265743317143567528314793172425541814134747984625545724122353786776179342139381734295595619887443949763876794665974424875642466669525812471746333664941414539985747337464447159225618648971968443174899343937858317262957954888984374386489164884611785589757556973292748654933382341787653417884193177821223331464332197227796195491972972295341754853564334742271268366586918974358594917389486593329767258954278137328935863523734699314199427328951833329569742299129529461182985857179934716815717759685682779245952744224895365949897255422336721894294573819382261876416439881869279616985823938116545168955942858718297678961771223729425917182852661427294159171342263653362335581522231525321354571825141273722673784726157272637519113129381446714975589216358197817918836869429726264183518497187777559136867738445743993723429186741642228899733215494565716615277231352122984293723178647297514227241442531858129336171699341752466419642527328341938996838893929559413554285918192891473252544498338573881372171359386592556785526453632658756762789338463141491936388343228894862784521724753845463286417286451628861831395577914322852558184945731713732178868288462516495788261232594591487196931171619188894815954294331949523529471477145526919338551653585735672618322763354376131185433896462523344528844161664772214484929261395635599894861236246674955871998452991871256268872428724299398243333218223748515647428738667579781811722185846499921894549285154243294312674323215283527435941353563892969471571187339173566582747926212248296185827724959597561362862174783482762432717667313338425412789118174326587142862295925465533433249552188692878977358884236468771615713562648434969837159796552513974119373115511473287146681722927338155444884831138833581553554385288523911382384277415551715142641492681617746242882236296698853782951911684288465587296855639918182962939358184541251724286275973178272196993246351233641156644841667765255567183194357263826299255722235671378577883517787397311672785241267914783822691329948915273596593393669742992922715585912341991129375249337428598947546661548459366789513345283987621275329164981557597632139427978996517513899754494256358279877775316957327292639144659467444919531925637355318291556482125495347447891515134744899437547976419142821861272646125848481277727619782767774937538912749756417177145121887279832522686551181787481782769577559699858482381458186165141977722571455273411445333737239237888935968486526669272454177979648441826754316962879914319116971714785459789366533333653564159129477812878715347579735179374275913693869739143888762157174482882251326287292361235249846374351575496114723849851374357874199245674275656839614739154821129143591817371743713175978449442344683564391464734931437361395428776133451487748132274798717248815517641678243156253421392916797247892957661975479622649831599123782866532628155915168151989889967244696857562142657451349228124727185661315419554277211223824186884449369799654962672783963372859273218177132436584651857273257165374171764995544818873598723418735232118497941221998256916246119613724552145157147751452865575525787922235631434118133129476918485177281643675875767978825395943538347399457943399986766185688841755375318913222121596214662435499736257146348451498917353485824796311113637452382171886135516975515495756481628635794395846332762312676214375138697836499831116236494995321823673355785767767371998297629692947163649996661488378997657516599396458437892921746546219851418428862615384576449992492475315237913162681827551459688624254657247543691773326341288958463817532275434492633256274869794975717823456895847162667154833339619481635294687383349144435657417345396825273891224137371825565288527188595785896289825796242659591399958537896515385865478633572581386137727367775361786549786824852454135859437953921664532114487622925481332927218164417516854596796235158359859765196747321761238832346161954929428183694669671554677283277668599486546912768814262879186742571319963542627597813181889562599631426579731479269558547372522464516153926963867813556283334471819415695191375165329836957394365395665264291795315187772499825345891216434493823311177226297611181981533862143273269871488248346235376553656862188175113816739341668313477144252157557738381215361172328113337532276847775786211218339131253885911585262738249259981873997276776715221283116932828816295892568238641669869552643422921411556358122177963818861982274214248763665772466747522529636945458224461837873436178228171674218919446418295447944645543699918799733364273696288552185344134993865281596745363126125639942441627135174748253455956518413435596298694967662996591941889923562161921416163263692796773765919225216236733939298367834181481383892514177479279915787186133161251381788424332233511219612817931868937758282384543554414585276261153728536554917251572928326942146317159695185799846836758342434954658617915564337829495327359744298948648174317988836256971854262956719417837526297821598473698873443483165895315985135862139917242479675944574963465849152932645773638123368764899473377469523981242954171945334351576212143441445638945949562886734343447671714377152555491569242465719367438854549694234289192238788723456239674643946364252463141893147648696959244768964191493472675349198683616862657856985222369783682549799475431226794195321299456699678595137948596816338347183732697436838621361941663387994257326869542393328313369587175591313797631758979899125963671219231398952926714683684279536546448377162243723161238546487921544371976199461667679433969751715231228726652518255196383257227629731593246395119519226332152724686635848376865815617349345516864426899625392771331954877337813254733685214271393378665387167272645993313739858176841369965582735124355526581387751876752218372773217558295224998965539749556532843487196617916793254117953515778816515276865334647947743972549339871376752284547232994182325246123931516624957669758965197511192395334885279836792597996655645773295674189163633772462925388755965422729725877144278351788553958489452312899513829644712457541378213244313353523487746771424441251554785928259588152739759184117143412712617655458511375383673386526696856411845685613949297414966515181631693151612994823554849581988949919214274364745988372229216191981892218624898285912223134623721798829661949856356467769122373242123878873747372818573575692725825192889953678869616953392462843342429324571467227711929155329553684596943168688358359365777621778228621816565499234158526267335147787868514943845149999625337731399175716299563977776627259822851757328736683869537298713783778842564337884169912521481658834617753275753158948199128173766226881187463767561369272979344845423422167223969985812918732295637858963685961758238328189289742427213461746721533454252269944164775991874545597732945142134341717296283537175847841445547871831449967219726389963197441127191135921631513231136425158159758751142194154366278799294989954728732832236552167737745244129481253335447982187861434937448276271512845633741525467751473289796746939473656687122786722939899463955982146693394452833125194849133522724272491736828931529712725966127444674746318111953833183579171714269423144835828991298445342312717758952334695484494237651881862626419542891448887289845924999252682546625758535344338729118924172335786252994418729581392282598611188792881222883821959958296957955723991993981262246141859444938491679769956863187581565488781629677543337924221878824352139281247972214996227394975399512329333921131429931649936455395426359531544574565539532156686916631583636883249682533628275776429377529296399367419662488854486394955764493318947893931616143663957413652962755524796866379545639361634619883225695161687631193939971342219431888294253915914385273296396238216926341531939348756965495917837518943985966999755351771161743374277366752349215639697583656884292927492515525178837585741427736838456597958546337866339362135696432989574427949626258174266536258255293534327189684491816457963767376429731547386635696232926282899431313356175646195618799317586439459674172424133583352372919651475432647779172339464689671525562984146814719732676925881832487564878458719682748439728711837574851685455313477219171849823669854823357876914723529594484631624995229896496758919858286659529927339318757421111994713457218998721651424155156245624759568457139283224639234637979454298934636544755117929272979714233926378822387888569377574353655956573353472149876793359664938422868173419412488868183949332163247945365115333228926229942157261963389699223424216727622725431327555413324555855327177248671792446786197441736357963767423482526194684227399824519865497735976574833244863744184969599262569116587791177341658943993898944854392161166791754547745925719184493598594163136471143534194891241489238545647374377639939318332369272125588215542284176986728744761852399119553751166655226189354339568468313578574138658246972484228964884132768171824727324352664468747238294912183555267592757183956568477877865219625274338146321976724489176686547953485288721897358796514251614419747264934994638497146362323753515321622112464293897513634898958479431531765264553293456726511347378332397794248456781342892725442265383153366291757772949121554779196492626246219877861763726173982621662384894872446523684381578639696624182468593153322541677439388949348474124318638683649373219983997634934365127985248155364253442994487712123891213918334759883983411171281551461651583847735924353241258392237282228493264665889292216935147765876616822288565574695387782456833493965272837475835354121156629857244651734571953476767762433317931376448685689826583268382412194229754621178969517823631661779181955315393298158728972937914812716226655864678349136228819388368861436893258973875485275184918894846526649536613241668166466235528159513555126321365172627139671474334668178691536123274986843781113459266125976678886264747994114349254765162618496813275875274597413867372432261751868355762212842928744887193167134868334544527618472759457653466732564897248898625791635471616289434714426296157526488925976693525995237846341172629311817366698186598272795793854784754588138837376193363632816273448895797569197617823984164671825694253998818657239337733181261639145234113768572414175483399462366678178354191231438955285111235792499223522634777463979471594962191922273336792348434362319596795787895238697829552987117165535193882384153634578666466162524833211238634886243919545131282674873895757135548737572174192257425793377961424286933121428432274644851656687995497789621462677932297261728598847515357393449241351866847776449289624343577489594589162828363272133556793431371628524795622848941285755977194155817276727891584692165553252556935542114773732989196632746799372835935293455553463914178557574656138656792246571662168822459824427162741854591557653434568549871487651625964118663895252995872829673645131431396476881989476557514767261294322859447335362826556823638657878153886627233314868441682446932736915475288398784536475618291463963481817737595836574833643668863292281953693176622984356422298517625799158355726815229769888638389758653578949529932896774546364239995232925967758827585848464877756279371756329112841423268545311828745729331241335266562225745627582852665789812227763875358728556531687255935257723191534394148689757453856369941249282521824682656381566992875898897847938376449168194683771258938623414232764658468726983897799551681983948414249921599788457492448347532362675456415273917646771513255271327862392728918662238278492918939695724885575331553371919198981839491769226649684911811811597671618675586139998287277347296844794659297799698317133745554147417662671341399139731995549843673249396429448341223313646631787991831561394228239549794256324923914941978481293146995429832234423817794631649753342862754877218577156519553437661736811388997745441179925258824887576614313167499496497893675953591241559845584434162842298693851865819894243685181274283133326392773652976244643658976368481919186342448952315468255761619781698222455259371716631196265134183814939553478449991181696198596776268913241184872971838547286754368168463469657743626559377942268173819146911663934579416189296993273977576533725162892589399789196493239783944559638776695563373811224182375628572248797254581751672179196657583696476189426492458545554118646916632139962691835688124424287876338532526676668126928259576153775526668235789692273887724438685937583315783732748936698931888272831151627789964756415198176983264268229897882356885484291698894221931719497522198627936985865276268238267828926767559148424831536257154744535191845748589972915428224676918327482764623598698949851117798538367432883943781584468468247999825457635839197146472228922611682927789261169763391521312372439522288214319285524455465592725666785595825733274698145583744291768117489852177427239578842251316127854648755486197155728843854455148413277615324917478252436672175915232782393592339233365732938328829897927266497391527189272913775664365971529238289888895885141517832329369273999877546934338487169281296114213279834425748476272198198799128335327548111858455554464233935767277822523696432876292514797272888679721879412588298348627233412267128196146284993727478281521536327236739348638998735553585546168771444476249837791245483836532498443769372265934147575667219339163338156362653956683148758682587719525141195489847141915672731491342744644262955659549196368397322385748155239784546345962781512549923827339288432966552531562626626887511429352447992144299351712481231252986111799814222146216344356362468968147927238441952666992517543347141742554287371447126166711945648612757264882925626232782775247998272786164356617229487564977677474542157572132844673428895562298543647474586751127367937474683435798426673248241755557394542785244964531845648624978697142318622818351433787439735584287317258348163185463116177526943663377191815114649748346897481736853551539139483366279668395368952186949932871195792558477713586685288171367366635871517377426174582298325931593169929736476973312431251743682886778641277864184126942195364342918762778545843345847937452784865641796559923336629412946224588952822465357689241171264875124917287233658415328225232617298588286817273993524435857827526375174763461558891233697378131757154429755619578489659387188144858189953393351978943961678582756554437767972968762157194841915558992667454459335339138322411756645891535869792324226946177242615284127684562673884578174677747354656415659797185421128585268982347876231219717249259988413292425112624544514227932821652961983483644986336647229411474469468595758136748392924754781136961729284186569489579854222233739889817195751688436419821133314273153652215373115545436528847345548713724341541195446187761584827788161484447556889487153191472241946974217852439366961269296321294771182775827633329234244774883151259237697351671594917384652956952953623257214363652379643737432527878993613929173319263446178229786584745135833263268412198829788336718111684898195944134814872515174884832221121413796286554713191487771981973823292799354714914952528616794875194263197558848123374134783161578885193837611422648942319616642529838112761793965749879639384325397297273243427982859822848279698398924337467256441213385292141969651973618432965986214613716782655652813755941428938388669138293656837191683615497335171973682856438137175335865486983961239313855656354786353689378674686426781155689956571739767413862413961955323217864926881431617846132237668788563855423456526299793895551437163437968294845354222412865887593746422242525949352581667145784158689713845347252311456969437842581461745167773993937623465238487323387793561759942584739243169781119688924878763811383196391279361227998386152342359569978184911921711638244366472327124913393294364427221435172293894294414634969399911944451569849257578932227945936131355419274187845627638333726317243762678887551112664486658278991166223192755745811258813621411426937336391864444458238589519441933555184279593837659386326269253318716222172253817644256872776117877388584598878531956532719418985624561818695348433985165886784344571551429943676864468947415738275211152145392887222915546127833444448542862139649839483884665988322265351343116198936314678167888994418332643132935545782686374962393135288592673927494543269566685996414263219491949483719655123692233647757687681528788552953212324568232991658689558292486616737173786974928777722432669229782487765252643429181233377289146284949454517859656768985793617215597443773556322987775335585196445277454688219316873486834233777283827375186815592821392725982589871588986476925197926277775824899858636273864263853471136518887772525242417733918245248888567233375879818672852765188866612334561137827764858915312297767789135147738494778568999199854522425828589328585432221138994355486777625537485817929822711146464149799243879359841732893995432636695628894718683665733922454426975436214674533687151443577828415837447794136285989914251741579852596264566284673663977941188973232747293711167324519294293989291365164233249972222232551748667683279592816712823835189953718576683522692262343535923826295932688831981196239472864145663265323195284183614549636939485691122439837146496749782374212762773895887581929682559576996252337597964622624562516563152656788537124484645881941576889945513355956394647134228265653546186321726244698291612427872134623344314726175995945986763864226438658131547126611117673948361794559441495196556466223597332399754587617926662217728968579697562918769459995216786672428388933123878813793323891447679496288589767547717947225258815744362119165729381973684199979444768968865336264251418818795638994789566197514927957837586848737995952549399571375946785378949739334377286144269554123539333216137355974677872836247481393513125849345683261432945673692843153527459997212145349896955238442784428317927132554433937331273331752572263965911343634367363595561797923298798733975491936375721791471681358221317747731367838897834883727628658422295121792572354633713475239161279681659816921383454781293999917864819689271387523971889278968654135883798826567745733749536391684171341122777542925378311849886293226337484248438754565548436946266887626939762536972426149742367846597289155297774996519383518372739447442859637917466384634351524467191375337828443172534868991446145163585366911217369645434467961466624131631742367239663998684629281683654617643364219418266527445384649899553688199938745296939568812681636893592385249667261295885943996665914131545391116926413896285741229522566996996687126415123597428459616295693241852582984333874719668277636849835164252574861221986793464947819325639777163264152721866258839859313279884189495555549955837622642859747145975319853857231881954238182794381621516879492471565877686654163135184652699736763239896451857169467723762633399423392936192616643323478542861712831923513663226346674438594664756747197344565288845287837383646121829444798217971587279798953553625568748648246284891878563618969415378132945444733718644815511541968679753296558628572842392435421168133351896667314588627749271277979294383947666924765448355373969879216399946546913446379896183169961698673226717151576556254359255294952263633338375929534858763382666781944266993375237512378416563931114429118336748479696436171273273425415236899637476928526533731971412734313365983684424976238336356328748973462511952348861773398829684471716867751875751827146828886224284769343429785767451942729331648823757978955421256248311233287968333939734275179784594527844531364455317634131188348688363715621965485247549647461129945194566552199514257111746737631139486139228169364954137599262364211614615421356642144684599625936185346787711464567825375236718317831498168194441231747268739569242271976776228131295811663528432648646392724516625195952313155398951571641182643143538657862372176222276375428732974639415531537148266782124896173444374626769564389858949338735959376747313358676559344257938524541114634969716361274598181842176285448833693228235574373355563961514286545856768215643766392597537845498973538449882967687735477241678365617541318514361834371875832667127761791532847938246134516673385949928952146727532144494152278673663457551122864967395689796553718944798799766152789247217763933726984754729214382215926682764134632116366287615725316863949232685784311927677248658234428431599867287279936649594317649472519495193821712355294623386222273211611982851176574735954565681882852849924919456828314659196175259233923324258739651814793399794626718138443315361249519738797158729533377687113127166849698493365296422971771883578262121869284594136323481467624439531426424863175696834869521853895946577843149418171355396371661145682365568497215249758486432435794919365115824336292129652795264545472871352665284485341498924468895872897154561789212252942378257733822536861839749845949266871434715856433425378253745551137171442826548688215929273737731336368341884652451943859222974816432365333597633626792712889279712846359618271422991161349255136298834783618641641646678574986596378546796641713667123961358887314157726389241516218494438196737142813431344393894643975784457959229342476794183446633111454158959884921589886129773974817312116984384332219721778175455276375873291523733613671476812428945522731671943282358485966117891441513479453661885534119529299223363518534799868329611562489392527776529898764595456492549468618376916895662919434973126962622547928597953133976462654249391344136885579773969595659173993926329896344211497336891797975267788567281411449973542611297714371127725865899885138378298958285396967454932818322238957743651179676411694764595796591264418515562982951327665934673687117868394483586518264666924281882666495743971631437692373691679734363736923975998657785944191863389662153449838683352755964941358114217541324172497462856359265975395938969466495139225838744241668151757673222623535917672985941835811457678621963454111219592564144989636597484638938938887824327714667116744215986879656348669339675385758167655222187611476388245663137833587199296847883412126671884556813512421994673912924561557793474623854743219489479726761549666927282665865793749612377211266667475431917376549599616426323888536178168786348386246767489677429925811587111828442118637593335225695653453425267457221878282594163527741173497233843938837986372523186284422134327518471169675637835443785987218968785881748291883436594972792586355743795515593624363661738877592965245776224475792957911887446623135593914341821924614683335886189538729154224115465824136424112954735531842242687268451992282387649293176289357962797896994231875784981598424129278957437748725394682721563863789564217971652269537688733829286133452148192118969627581861677361595697486597382254992967834651689948767316135258647734315761628622488118612936879532863338399141278879739721398342426558476371487264136997126841873527444971819525827416117681777928643938929869342972572241317898652844644639553749776998818597351335699151994268235624594243857981349244233658351613951365631427342255578723647697882826379311935141586357421179858849466486477871728344185193167852787425952749721645943441646421588229614877637781174317371892849551421787341918115335152231315259281257882883682114618721831255164988766944191391652433496411916314189673173182246488527167157677975842238347562189831546231887673156259183827836718751354342898193628535797579959723748962131839991842392948833714967762975847746729949133815175562237413887561141834846116522967179711978534537529882483833128726776674415657418287325517818688246792133687318236867317988755568247248497228931516236824588945748552382913795746458939378171543387516596764348782664599296249466216655232556223379627537241186687352764818439656527379884872549164339629452326956574541838862867381242966297772338672653449525232245331949596638485548862713225338751834783335963425392562673295971944311534131261691836982211787871111263555461438411998928197775775879924451494334414315114689156434424869898229551862352629624266597963752563516593617779639144673359634771921669829686458352719934786243134199971829554477448321688392695994989962816243876697566385534923391386467961247897442169513993223241866562475244887994935125436659626162318722299988362763296759611317437218326314239216424988858878512213833564876776217616571357197318492737913579281959597511221942671744334682599674432172194276334317639187136974326423532848562792544342945522943474736819555624667181285546621866139798653295461259357611252137748518462662116221136786711813576436162327327827929597167147484837442554275756548487283896524916639774191465117856454733273653215173461417816671125587695951261767994944624361363811569953969934614916367683619889735629815797147547163722982859732273263721424168863145232426298316522674616122797111524755363183725983243744823523564848364571843331554727198359515889695951134367392663363186935514463758851386816962297396997448774848634652232628737567945789546831773147259321184639334791645326294387191822929372294473536858476795494575556573683931274857683263681937482939387671596771539844993996733836754512452138161945434634196487152392446547344347769233442979665794837461185417173185238415361739112858756186883171583223658722623787551168646943992214578348599767423418363866155265512236175841662812728894498814364476963445492582643523853534858195681825454492654995169323697496864855389638883262668698848488174458876847615821976745519357953387174647417779776349888714417636333797426293969692471341589342875943575275472322548462411334599993359767293425459295425357597587711687395526952751282617456194664721341892587563579649364863228589624583731386422485391686887635686935297224666813423379957621177661169781257736967295271932838684589467461133727546953935228976335369816918179823417791212198531156135525323313443212233323174179662113543763116227439651857354119211364649839551192956131746156967982445327362361565167232635221828152573298335369666377439851933637785184826252226743575359432595263562843366476149376811733982487644617843471974981462435632851614864547774661959986228571765715181434111567561469971717773143631564974921666692488458126329582637824315269828957692583125863915795116431413397155294494979269637128661711838533942381677583445157813872765517819937984632955369949127382842432423111562657173857867496561612743153198252849234791548185155228422621434627431711853651155566298459383744476456339585678125633468485559987422944981348149592846565129997548632119144847785859496897786449292483286669237611551139687321249377586242954614757759518331344279738331435885259914965787691916879612643122536427793161729729497357411711753483153357328299237752472353427655941265886796518283329554785449833837225874324141272227584937819182694181493815823934682984663561621937967236728812269347694948999182887591161852866791559743642541628357353347422991935817162215265981626848588777661142847858364753614287934781446549623417123597658965657925868513464583385633397173537228614545679138356718937635976787646981347349164534436288585943796384318932827379622239967361639157477261342969821132918644786699337953966152943145335198457826838532718313515718221739554244817669729451691261983944798112472137198933882997884168446246384396184877165244833338162686394623122588174697971293999266675136337475283541338247436442999492934651978111224847571214383132224569665365477761417427746958269516461897324989929651425929725676212299712119982956987477249696297225275285174268756383196956556176673991598713578115214818353869316615644424652452963243167242163723176427872916183316592225322583791331927118617936486687128167335358339938799373819578269975697121834637596413693649345342681392374636385725975228153566625653669132549911597128832978531874139932275266126618489677428496718611727334836496234181622552123972154776158697298597568713925193397674269137646585231811282582711466773576238777289369377425585511267424937794412328255875324773879621993773122244957345876242429479459736927149525348634237478315349312882595536941713126752572995824892151593287157458823971961542822926975373988623495682687621892883489997385946265633781453432511857646365757373746115149371421485149665131757121621924851892828433288681565267228219594573654576794542687213824634684939283541198452511221592854212584393645644578628649688763272321648713266613465228186862167388242123338988225536434828934742566766898795596958582873665928274731329978527212959225481763488742762569312932126838455422648412477623544635836498142573627458595256599752333863666813154788537942581456588864229798814271924797755779327193414264143551642812575953874673893328632976831121158652847294473594357544226226322976149758185445779513725335856934537493211634119951222544128711153783893856257241263315617487471649827212726349445665225753488532324125286829743198599974312254485777295775639849588585816819247715424889443315164912482862785456887265198419825215342428696931617233642462343753286317156658519222574529643817125745441984845766793244197477178541974963347612282584893431137879967353566235343482751993114681666389436858472619774774863332487996849433361421387655939363389179653494711751779434826842969877823952423387343286458132327214885279391528153471915627638359637134953985889926117567229153915618992299668669261816528433623173853161937782697667318941212419784979963639898555275169979229987475361524482236653148145846845572817857286398853165868443936464443127835355239426892635826552786987669194516438817979451194253752497415755378969645589588993277216836391827614467915862642957676249878858698944634918273358914637514297157841392683598724514767428736432125133381439392632118749412135245548756798728881191754683896298742526186857645633718177446855738979577162724386556343176662133821756453524842485929227772774166931665896278226617628285452857359315685283193664425243778743577487845364464639961474631314651388962598833185972917361282645564351498362579156146862879833478713752677615518123698875647984654828974735175985255821375962327798494867264653267657675971292852599975682945352896663959177343393388747831445535979264169784112339293865899331627533849717927259167333812734785548712783484187894626897168436989751828156455234585174679422199165156851485898246633991831931937332716743223935588777759752734456426999392584933899564437599834576154184322624793748971629513858454761973144422775562523473656481746843957397465911152397562189163637931649385774679818553652667939513666594861238218854129175766717964513887911719674875783257838514754932631582558835393527299139494687748887841514143474193895825183756524297257569787176364835333516958468973728686384828292714954648474171342199628889718778263617345751764873835712583359174434167521587964356617864988895237532273331927332892567854744255898915236327841128164749213427896687199629494495399674583724413961669631579818238276433794134331397348295265186884326685177411438942851377864542773431838567598493566593178412579722794549288116263892118948286967135579387188614883973766664258862497235833683969267532987393278218821412761856861413611331447357948878134929585636875997841665358935838329167528286575257193627421992713628378277623238837298831828189341167975646958642459332213199923839626971575337362293314494485677538126152574211318647977316672423325839967286216979766587953185495878864481992578555183776185425992766913182248974482548247688978134624812925822251395218765652353614995187568772611112787242357527916314159727976176344857172733513943347327914512235529227399539724957578268619632173984613564436712458265936898895283443677929689724531934512391798932289881847718262254593723781574782678553323238343692954222277446583447678771615864857259366199547872528395354821115829755344197874925745278649641132986429728415796261676431394396585115987726385891748472411739366767255826444823986723753835651326931412955326615387452734278219793733936468928446181342658568437599783329121854452375431266997647615836737711945162685511999753413985557128221635874223322297437725269861573644111332653761413964578465522674975997153328467554892637179235532922636757583337715878575488829122264738486619279756593941623523638982729379286152691883844186337136297124132647796883167554177789298819213376945412727462758327245925845171664115276812177818522914486893958358865345542221862152391879163887654287531733727913231217123391956364116179242942244255845265269685985672596598613127412928423381678135375724584775425526257574531233749112468726257797222868291224477487423284799469279355965975213941672889359284992925419817337621686674699517916997438418941591558115564314183673415236919969914814359581888145475887378364254434859797775478995472199824248571944813678926716232332214527364267658815796266678791912353979385959728278794251121122236432241735596413272586688688692234447419858498695743399958817929353892867695454928237232891583397585762321765246958561649787926674249262247641235171144913695251654579583255367755758147397612766113962275681466931634463134198798983199558694176238664866175834632839875633949542487663269742994986963325518452571246552326594892487618158893949153697729358637765425239918212196455126832684461891314214823932555956539697934813934243634726861355917867649838221444686966542567957642385278978923361865418654238892921527325195322296736471894663764716426725347466938655534981156516947528942677168824476654668298683334127374971752278843298918866188499136423498515378597487153652482283725153794321279997513867995223584898267598595484145321919429758147853591451788291512512443318212786946161148857897946179411211378863468472256836539137166166193969116933147631272175789386875271179673866539445543919836414731837783169592544987178951682964935714199959192479276971938124426987276171869917925592594396646324832538615414285545685914467998471523274614922566924314741348266217523873274419891231594536332831472668865115985897856298731813941116872472779268842441224293487586974112267182765999119329656395872281297995272659551582346975443451579368765829764793826522946381337253928389266634726467569188121735126845861423794431977975776758249634218149328651657343711464278149449244265928982516885721237831874777283575462613181552555237213481289446762922228264318829531877786618285277388193434195157924782342259666384183425725118898276391414479997395536997417286983622562987876595937526156753352513747846512259643384889454678737192765315519473681178813161933522797127558495654641531725727968938631485224688942974846416182984757675196353146334526947535624987635944667862485635329963524812564967313989226688199995246536563868697886616254154143556187744831578356816431735129364963736128965899579912974576412797951651457826763663759217647716491355489152627882157966711479928953471385446124327924684522422226464381724425647427765117238348874212273514966518374774486219986396413753949681417774112722619338978233536575425981492563634545433255416143464763881946297442975199549132368725994986594237414824866668893664154442889213843324618274852117512745823733917249599395678889529793274456747451289129576464326285482836499123232934871416836444882963592313615897185125697332619795144264435815622124673315555424928334776166517629976316741383664487753458998759536156629646813251835251948722755459891764444668649164148828193528418474717163826732145826724155784522882597778342344735496791279621799847595427552823443922137988967739589821665646971261354942837519556447494856453569684977169618553276824299744189847225821689434642232531514812785596977835866329332584635914173522197781366897729867311699996247346124931619281265986835734347162572965926834759336828282515311456642143616989813483311461879894558652912581471618838954931919354128218456383343235911293274198511321154772916328719737145345185117122488589291971732535959457867569597454364349322454858783468195953588913337247372656434758558944292983214717535691222587432326635733933314157515626864416528171543836946451992454928359991716659822326941939964265199989848594575695289262158464863769643593839388716612826643939294157396478386165626687252433242647376813641246797356969112236479195675837841598134729519732268157594986769718611871721773897693343739394164814881851838197867181353172577857236212393113887575599796953728542953162361438185534494997359113296383318452258691149438253253451989211844948797711543368563897885795787162832582645869626894573941417114286345388765626394649833862673981513831796257676931912298454532572763732437193786786985639183238395566688397655333812363262474293548217136792313483518734951379533334935594723942282964359475317639823362632926125222545372883535415632684775376887831366445587927571739196533191773799443891581338381189631829896266989267215337155953715796775381878684414937622116387765423759737596936318979171698464815289152891483814689686656482672279183252278468736685249676844941747951168884656214627584256441413997192881345855117755169693532832431518521985595269665515667848979931772769328734689221585169965856823989899663929832888485269753335622492447549523599447754628831482521665428359518442116467259277328383713438488312413948652469182719161313159879199283947282978258955976289157965964248755953768663159767662367852256932526782557752717373598263487971122681744418579296345152388176187346218558384294637142179976574287798642451879222725831616354672442195231396218389662632356614747845467477987795661723848518782365891527226885431412776425273498877829531117541681767398825145832513455366111158134763534938429568794238838844736192255547378224984316978762224714838281898629917336834618729181562379469129811533116475247245181317242143923865176612235848357377989273465652168628832315149766364372697161266927789911313268794231281785812494273153972388167469477555925263469563751868773419346989572877214169323318165395229727754842542847669888775314825686341624767849515493369689951429943914371854713251466334329351244433859744114227354886316131245577742614115435259537956668662127772842342673188141735489146246814888912269567261233551554967647936726732667373275439475671424126677259316132359882717274215426174788728211345213373181481932639997759579693913239437566558621519375121169359572515242787547697425925922847884933456425178827569841432516384577892543849611366239262322839286856989263924958562478518782719374763767969365191248988756816633999165851876376388276841411863162868443429146564371843884861165252185335228774292175453728734249347769272957466573917289951365288854871866512158448146849966375161437513162276919794276261888493435976272398877856173688666495637224741859647311916265131661933644917182945676757473765821812166465963156513278895162543522718243728933573898577174127278438152423215353522478174466172715619641951474636752558984581662212975969116467942276874322367477663169968594376384969481516253719915892649967685981918959554834834393466262911317397182947428789229445161242172891588681312171981925421435541618667425445653541623254287531692457188532975338399694923565624658356197195628447397788944485749464954663224958687254938365738665958425536811568382774499862627113844385876832649796234121272973156475851533686565168468385461665393687731888523918645372717773393552213192842123976413473141478614724124116316594134359664691561842254464983632135369335685641613737162459722915341263621174144425112356227397721846996114396737247262873493264258647347666329943647834163379784557289855567451625296692838797943751534171715756175634816674377542585882862336933386666233551213342631816948539858314825161279593565535128861734555936432348277423876376253125569952585617524256443869564675132925163533264578112397144411812893317549745183883812515844835994233987841448626816956439811291613999584628379958544186856975946226273524252245979386852558941563169321645748346263848973765811116938992464287893175852138518518291988134542212427883185745494223122923455566618476675148487888299289325871421268725218155643543342273758791716586917793266519744851925784754393982742967518472746748216579898297362457296933197669371827817725341485193686985551577558139719234362779138625979126751563433455772847759592198899464419742986354438112149259927862383357534269492212216229912686814139662967997117227728628777356658524629498197618371932888513178818178117797557383375454284599271987776435171618926459878227134922788332828887669215172972674976134866846725472371688766823321723198682343761798755521113324395694552575841899574925125456675135469526999979835227728253718312647699277175956478141844124944118757574371866512215289591885284959516943118548768267116284592887747239531384159865565173411599253875717735148924468865195244958224785468751543878654252665961772249565439583761534749915591568671637169997263116589479838974621783477467173383841777769445717774812647344572655633387321692457848892624951115677896517675629483172232626537184863394851312249456568629272879245465759879884738364134941137841376641517486758575877161263845762435465213687425892417423586962193539949296937417536267415999188331223133725454197613343741739452473776847363662323556728772617853129613339695627862523481451225317377499448899684635954897998439155794626316254626112389169712596164326955561821511548544313463968381874439391352395238468794189917884315335369488991646515813883471881314739677456421161551729966945965348294939671576519672567251647161888372139175626573627332375971959886987884345793865686824212387164551339643112497755435755873578833854818927247712345719286533315681851651475154267638555197327865851826842346653316959559289966542612185318862193587543351356889941149569355453611444668673261144947893618153412544899767872876261959319924254398778634311587114198918891215643519363682631441749539428349792933968116378392466428341273142335529221746576712342156172375597837859712357828942147653869298981654424659431225238882157977655729152526348451762549644332997367363394937662637861735247245972687926398964936792664178692277436927637523815364539837685612443835687228497824366348897357381663111633561242567289968683319366566538674688744442438276497424969513379646499842974782321952247197223176716689776245367352355964685982552199166678294718733329576974928226123679488748621843681287587289881248976851692675933852588316294318196671539786279553691322949369169626668437143887147168142967873724379112615884576282986272868131456357317885143751947555641443477882522399692866951685258182417196347475335419915153557365495115639365687128127522767483713323665599958558451991157784154375542989874539454443547215519836371457444886632965128828269142768793546814466452863634449343319179322892237672867111454368699597328486599266342133177493252191722469199915548732827457771879941176174865317179252997574549444531937423844559455644279434466619792332616959895247565497634394263385545231118622367886559878294532976477488248464242696574383535612258987699535739997544962214574777575135977459439184488589745193749342748472315394522469234634817721794621751379722746769922492164142493467494455428194995925121424453798448763215924392784285225561739662338639129438696815327762745681722675476318168648171746819467338575812542437181996869459475997744235368491198187773626644133717238655494394292858229873266536138982429758967143854729935676269868999954759553637919792248755739528523788733896675545659433795647488767628817464817362294463926664439181861596986612721156448994447334319369857597578673217915348872393238113753419256477157571457577788588753982896532237884927754322159824113282734947524915679991296187487695767151612182548547556154792459826511561669814647482186354487368828865831611174612719334662497279955427488475745815727173312928822454292829482972444151361563245378677769616783826221246272594821778344294862153654667285323694761495714189284348614322633983348487747145163377146476548726951777542255649877572117769541136992646759214181837848593545647137291766675174956639378622265878586542198696889543479221437813561214314263641584721632764444688618939335588547818771947369638588461284732575246822915631583449266283545682296687877329467691415933277736935493179791636475326817124796379717925774646363793373184353979841531188352878147365553887985867819818633791594219665834532816687656418788637158913485737826474148669447319994784932494165793195851894523523781173222526186385679659912342619617838889587296653628417649781741413191958757313564314858726889811129124878698743162446228795666668578756615469676711422291756313158734383829766347278277342963157831268449315738435252975151365947863685515986718233321725741234818276616194774575817877349362542458918517764221611387822847981215895645322623673691283465964174653916547598855114222367753159494695338987752242654779554768687946479256822146291567412767525219855661342344863898548614455875759215249263648928762532866344818829332247412193878832917631921782514728458568734525626378369427578849684429292644214639454286933797654985895148348612536954555824478765345748663512665251415976323197622195759199255769718296627926787876252251165531491318771452928785399424419962899921886721813671199931371366355346324885866122122125943158683116627895471883174275768964722132773462898876273499865751132234392627796583191339225681683815233274834472781713614272239419822248522859936985356653766616587689331426317796329964231699147795638778388967488475687737549319762537266141789426873635388318274326132535693544121374792513339641244397855197418536894145377232345673347756486248727119546248262628843517246768439939983696422674356596219675427329217466996243477125636584824634454179669373411111653212483745271577543451681681746145183356863919652886844813875368776119585765621817472861947473249738687154615585232397481126449293151854214653164293921933556575779655955419525934214396549186553417892343193585895225768756391631211424633971458868345199637781791642994272325181914314276834884956155372493891882212438919498674279616745924913113254854873721146886569941349541745139525787789367813797831683757259982458125142823992674632895611598634434837119398465818997547496258572864564483218698478122751375213287634971282149767567643769369487139326334436413958722996813641333365898139759955716895464737669985464176142935495964411763438416941248842844272768188965296837411434298371597653452157556237867818218935973638953166722324991681582384771132727924574696995952911938495397568359517957446932112114832361116821871555388779971971264499419992167122541217294282117537377275272963116137846145255997625331847824224735599114538927778199274865177449988798949832598397214578985629517375178152199829538876674236975683188983182963815783341743239797895793981186366833156239342211881358556554979462767288213422491325259794181926183699521651871912426285583574272442482456433423544162519756163216343477919241493798948713419629142488178983821298982762981743646774571369451569457512699673736393649676529556489231381236419938382358889845473375314217856659567682561344761988517738413976822671816739195284925687327614285442312984883411782241872522749363393481868188156269237268342267396644629518313838731456271386815467728768479651424357854872451896677433261125156472157544578667214846263254558285281934271936746139645749295914432314622623286789642115124514845965416478786454217418829259543837378925783227547277858764796889625425983295748545229895255734685126513822396139432422835398656157617989117699543674756285139644494172981641585652925443935799137435512665614968151593876345257899249485745131934883269684299778682529993495387754969927336113972913812141567333738611344944329421681794851563826586618983214245214282556512774321879768989383713121365714981313289254932759938231246626915925133956338313316137141693372774277461184815134536339487525771998723622191414866488316957435533385557646785161698438124766197436889534911516656387297553963785273116415464919547156899285454879971511946346271984564462896273269219393825443431765192281717913833753125558789655255353333924216471672927775649144668982273483931987177745198192457235352571772669366938446246361173497635592667573975728432957944383935375539177365835667742436653835463795791436819364948261634927542622171212783618112718872262896166153974242492282463248265444939535821245374483527732557981473325697719236564615477522229246467726496328855215552294315128654325865475351661115224535945791121695943558524524945487862331232371873128869211594941616738752778745146822733762154114777552528483986567639896999499857512563491579125777766255293268817963281338239696262876294491281875193914725674199376885225343319698899361718217135612134557767637416341391112714164366719466238769282312411571876112671617221986714934964911977588554694415393962254649931928765521779129658745959414316297873414482383246919584414643253838278596634837537376616169474667473213864247989615175762698944571791967481167838434918968841298267253882887679313692487261278974699877956613533772819516523429779756341891142399588429172213279944577555469688536478465575782585832576122871623258974422889937529665356442393517395736814716457323736369577838547821582853487117389895753524368148196271419129736726181342567352269776716617579141639652618233248215775336973975938883133756969888346878365552955732135299795572486863688123326679871481369716934519768579781458345474488267751192167814782716531157385111875874979659927997651646264663749126594459431129775738344691963864423757689682658931843213288464715979737684649442415725933769938436388836399132273635926383275116535417937838145317799426643134776126898471375694463295867159427828486234251719245465849554575256995616921891794229613566814329917367859837896217168393882214984719495376955565351179368577766236266583287633167164181726593115611258457199316992499471929219679793538138157646786623723734681559892593397162639282452725173226184233463267329237262434739941559862187312924836542773146939974858967676877259613771165667654927623471857652511877773248783174844171956619751737495717486683965463566926981853693164792369546182237729417493751946325341384882114775624353527521131564582861969336787122364914916862399586462394863565681971361856975913549667942298656643578542149538873628322531285748184748842895661823654796724287985467352529866847292462832349948473296437323897596742825948932668888511232591251724995387269336193753855994918989267695311323822996361659949737554313732854935224639784788641495735998173464875237115463227255617196793838216639328765176682232831599783593155876753248716928191149198356542137793816786367166278168893456649428598176691496813729498742386217957754223343933194943715934543338993314638811129412673164427641438668921791792632788885325179992757549618678732819788218794584767421361238811189957667327775949779896918797795779434166634137994974564432292668599985557849448734181333533587335324767442365148547468711859572193368112238632574111879855712811236936148891947447424399769858862454966736731463194414471344129154449122784629928468685618919824268968136487388115874334125916322128829557285186463795186586217317998934752249685754253791311931628512866879847312727986826818869619786363355975147736316986662522599126339726229882412988654695844745267138649637656655499867331695129722585437192757295971794764255126365697496552269567626192316717434782521166162127788377497978699868119115511792479285834521379366177967327396423332713165293218715491122741372614774979587698478827828183121271536823762421357148728627818934976558824865981684344215886678964619471766353212535845423979665125852828433743896379712187953354738829753937295622692699384618972863728819428971139287115565362438789478429296298116716342766919778524445365874774355868945635582244577113598965289765468821368572738548687562989845382263298956229162828464642526154169379263774578659585949181675971917823189437392239623421577975165646844886414526467718745532937492875253693943589359134467658387364768938212569374376512267985621186878688724752267628834532982979566334285559666337999441549737673214523167923444143177121983539758189385866111414711412499741515413331726426466637667716569611941364334966581153718478814875768884116513149155324251832397663442851591685698921324396335182235319448496844736757987528116239758692432125587153641391212725589458581682929723987896926187545469217355447397685465955563316741651375819448116542937483613276231268648663462926198736996294726832695541667847356229718327588161328663628393936648518329177883914868929749942595355177174752941326118173866125448845542817991922622428694284637421955134723713864985755163425156151543724983368766132526757352755789961358574349841992567282356825711736473795789677733542555237697669216385843611472725769372932697697236799969996167444362454522271983542438317923646972926357474572715747568258413998188614342777748222868673423612519479714862645456531388438678729745615981144568111138871746618472942439433888678571366439971727899933974242898645771393389261849732917311481253621649868783755627796537566471742795772459625277856488244671654723371514476873467995719266221582718659185653788487857752363212383146944588757595278744951371498612216544419158555328613631669519738272612616451873633885851792654571631871414481644832426475641977948916945383447738769497851837429311794332665336193932695688329339299533788199799991151528348351371233381289159857943983725631647659977996882675379576647289243897785574152219635572145762666955633279474684556194218573749225686884632971335925224172344256613271643631653243555852874389849967121383337431786251247666549435937964287839787313326983536568962657876558527147378866218654548694489934765479186862473136479348665668824469457934162264719733588133724159985767173188458429658361632136924471186384229941986621672784364612719337748533621173131297534983153976749692843848132951683871275573146885968242135238287564481937221719215927121423341887225217828888798199889822155132643163745623482299168941135547791996179632878987983786789133881871488331497285873251728621898874912733763571958362433185154941331413778925891726858166452755777817174864344316881676222385662432238414848269846893494423887929132952445251934512831263449242953247471785776127218225368361364568394363749432942853287914948485115531794637731896123893195833334785754916688657168437627219532799354655323967773414276886639798624188598785443683999667211189852248997755398445744689311318292316185759278922575834754675573693291675583373429992366633961221539486933159491379495956242263116945637742769686525919523639839524876548525482143533464725717649827451312749933174411772242986877512532785677875316273486575951611753921487274684191439876372331316597635242598918932827344566576935678181249138822892535961418181557356369352133211453848988686641365881795817927152445223971624648127186656357962185695892753196997515251775461578927497471671369919425482918954836566213259175165995433523328689235745941858254643276427638386398861355429143486692233985723343128252673475614373485674144368471274331568938455582139343768514411733878572396743846669835674815877255191221784967633515961432728532931843919316858297693626697441523616886715481111859112671414366515294664192192176987144174499851369715923122228816419816246131165926417617739599149919514916911593122773544483285275115515916144246422656983292718218648249632156587643339549699319164976829125663436558481341171986372954855312644287826941956144562656131562515822694297181684141214897752892373423732431588882811371955134251593755897845623683719794296419467633112785245514774643941581436178488556961421877231425473514112849684379211177891833268417817981858365275283961943168998778566541356863282466469665354121855598533118426552187143577888764313155355186632739524661338114434529144542295377318675697498639181894237456772583448897537399188277589224799947271951793421439146775686955959655741718931952865542889575959823486356238124319653831788274964382826528331649614887845662857285366898621685545812686942227835351831692649183564622315426199524597556611518854125236777376226566219779721595896419875692194751261247298247627256933571781944958962761564226939523771747731936821177123445926868235198761853444432133375767343955544221395428851864189644357552995416335766631626924886211856945465996463925177677856465549143479968694785373839694131674576614699357625131423372785632978649888723364776827154312775961725693464681967448242562648924184444679937913656369515667458757281546539211475992842317142816524467118929956445438557351439971217817798783227768423236269255366836615464775441281484198913428912672296473996813842241931273163229239865145734928232224241446757669545959512813625826249273747594447931772952213674398295578227441123199284414572981691137747571472771599839375453412314187734761828977968886321551781978741216298196772659261215273261145945664353828974889891317623716119556889972869247136155616977566522999986162984676281731337974524713692297385753279343465151492862121229758222439362586881829996196118173793935751898577558557966566353523825489369126652416192747372633794322348148614753252225942193373793827522372545859971564653989158428261397352736734779135323236968874983717781452628521942263758545823184852877948799783898154896378586861947631599466635439719426164659543315344278832373243964561825769981414712584699713117444524981978818388437676656756589731228216197834665332777342889752773684384856211643819533611476653911338614125267357299441587152242365224534941665374317356941264389611154436492838358973567673992861954296735827632427674331539515581898572142784836674897948887345325161255324785432621215183725236641756177345768931151448619122686641248862347231234268929821168632645432665466389794586476463225389821865291828686945571116328856626693222282941543989981622497957617827936211164453352392531136877668441952857382516536789881468123847831825543783336893781726517781463554996264587967334315846623559884172798235722444773257619963932239498291773717273488148943325348277987853223739967762555867491217896581692854859525769255873884563111168254538379736559137315662862867672923851723477379989555631717475576751822958764663517169139766213786757752628874225721613588199367833618769546848329371528427343935286851894488118935877617321413839415484723533416893453163213395335763235576817386531627847265697274486833493131672624397913462277415188228529585747156747184191741338251892848312917571278577551583386376459369369917934771425463592227762777694594286553684121378381156122871129446182249559567495319821986998941549653497444164493374362851634686632779513818157363698774846294856824764934848565824681954663947638993396679424816173168524628379958377825655136532847678949755649566248693295646721477169134588534957716824378949875582574823765161721312637412289746874266421926988917979711829693371695137228726696382352333181417365878489251711238453475683713448815643657617631454691158327541329784837688341375744838569313335392575324957974447729564374697125362773177665188659694132492992427494792356754529478862899998129768237262736278114871861859652527431945127724424891986959815956688673183865296685573168148634282948246422831488835141844696894997712343435453235638622171559948618722954498611974734832975868728581665994755741114596683179931678635224589953153413951257239187858351798682897237322445158956541475345294463165697621235811564691134532868154613374477867813262373526791516866182519195876983118469929179655252493311777365574391391188953367596726893429966485314413296332962543222453359877296537746477564527828964277144764426981527262623394289496199566998687538254395534832761279235824662314118448981263339347268749195225526359147254485219825688577178529254157763981411482749596393144148444119397337365339288716119414336647466289715338247827417457671334969577356878683363914637384425692638363859616822112474193533182145952235995677777814314456744857333445934481157836267512165549273316797225231793418157263697514734293824426395525339846215855127537728249777329742725335799219853523337214825787858462732542527668991612993461155972954217268824614764753989984472576886511383743919363561459786833421959987251341266512646424196337323211825848854495658299598221842152242536411749114824763584557552666718348493312683959296541285442822645474694762966865418415938929173619969235329895235965458349255515591322843713235711255869785334773714976347468829834321388611178347535259784666559879898658645469921535313768293179967722576992793844364438348545431112248748717971316648462315738738852625385172192755581711274946721972319617815971428488495797368346476445925512544382121488215938565997488939162599691638548942777176814696593641691653496389357953534893442616755619759466489974317786839179634195969886333329751429991898842359645624255466331362161248823937791352555982614731735838619892579585739237388641523985746635771739291913731484445644227769246319228228489428851315535292115725546356184126892923364772872344797231828329999989216573759974333854846756645533543189264251564648931596269722956254178583548893595644259121225631937885237916266619935825736388281868379169765325317698262781517583429325381622132789595564513352582414832882885152991456895111158298571548636931221254734234239948874738581183193918471783196998766238876875174364191168368756622235113681187413812716533317969172572731728458538618352571266153219371343178821669495531646231551377491697488445373636778392337463192151898622959311887716949565774979157819913733811681264111486874668457237519881847853354492179345178892542429492187422741737759167936179221959257887951934688583376783684589515183786878135984291768927375316613781466169556966932824549159521778814519364959542622866862792878568818734127951112298664744812666446218519394414613378742123177622232172992231682818772862178739842949128341397478144321416388263455356969989736439851781419134459873469468339863757726756657982868215241863849123875359715493578488792777952752139644524953319137896964768744955899241545764756546132398251444924737881246622155667896591634915388165178529735199767327379669288884372133996394371991627583589368685887286625832921982629868894553931638289672853742992878656191283355164939195478557735499989998312718199919545289953571367367977257957847781198192239366981678374967742419418227439445843999827123887927848668391335819198961671859649224989718831291111896764857692524811771644664764644319583342483764731785142417661972739153282546819877371411965152225928236379959836554583489874175576488915899773427666913899297644283964433411632487876145154818225511854283146174761464779158879211394592895312686612988883659679689148217747715475572351614462438323934797467993449674533969111923225484229717151998259546445537648176378248853952667511144676331146663477353536682342345793426338885231954197655788811371511923711224197516262629418435475466746847157816432583323255781236718382987667198346567772239252712539727363962785331897111124384337398924221388719798598489818331969751162189859728558496376198185858955952836897642371897497295679464859941619363489468217826373218583376436352581427246917534744583729352877134166679269823286534715721917519995563478359567129598169151899789134351186843554493397213172939842357456948183512632441756748721946671163971112374318372955626719467462759761987318135228581262197623898774652382985586444459447119388945319427524863596832775475382285514446287564823485452887326433984336835682853171524513333765143365947495579777728177489655158384677425762639299916734688183719176816472544453342824262171351367847564617942166346763969883898681327677361475898554748626996753764432947983571315678439928573749172275763999938576328219156321237334799999881738341261155686697329689688565647462477363731389111169927764227853979715886824714711792467877551748698187657937397366482967612675435334888571399824443638389436978591778525544436769922849763369198165816351782368258332398423432238628234292326931853873614846968719433742873465431626777161656526459523698934467418975681645286821673832624868688376835898326888844126277462311237721189811588262563279924145947718615696533349585712583985489159829468919244173552699887435339219236837841247482541438161583492315897471484122366397993931361581968795633144269688487671796734639588852245542518345193172634996934717932475525449949235287685277547331476937351244157575133549383916933524349262677313725868785975568721235951216726986463241736273943955349449821427153276148755948243765689561511216512925789274997253721657618727258459717634823547718874633384118933794445837181759536888226415397566811382879754796364185636255891372388575349627344652113627996123241988422473186541551792591193316495145273471115968137277276496135548955192281586478185693232735367153551679716343142611724985412117363328178612915165935324844944679781588448528124416947221515962749886529372163314987618658244218976637654651881268918672475885582144898163159165846513748227665869247854157153636276459372937494316991495199342868494411493132352959988478393477315646684777813996984821549676397751298675355555143413466324842527547214628274576717943574757998742452723639976536221476741449213337318669445188599536199133942365895651694182941874473375578794183647586784976954381428865623939274931499886471698639425967259277469518476913973846776262977884529469217797184367835451537215546473373952659185767281243853387934352546691518963672694977296899213367927966762929167464273753674818681276741841747473789955212591348256831814977713982976496535558364946935323873261257886437882628893394815192318333912534212452232469849348468381571613932966279214177191846664712663855951556566873573656211471535711194958694271427661182228171639539834673989922678775876573534576459796184975232898375922164511245924612919512691536927123572676976326426367426358949651816954459982523248889314298143123618143941173487164984393987287557341644651889584863381479197743576529884862819185313351259923169611688974145853473697622513898759717594998473518868529669848514474133422149399285126973856696933235456661489397818496679238721942577923961881551399756658439414569252547625669677653227158889244158392153528476221442136824737942862967218955567599513174546249415512222816252812752968292794725364376455961249324499227297558974391846422345367796517336871768287259792824341991551273759734543257126217629619655762846818162476167577248289145512585156861987683331943852765295353748233222879213215481655174598852574775952872982538574981439114251527923198287348175473496395619651342449368971677214453862322267291335369947914625158244365571289213637521212662167771216653771682744495524661766543453917364333396644185541516158394594319632751323722164215619529877297159135145416423832491333129728424435738368919282219333634615356679951876666574694527771221654312116273748495764195773684648168278686959798263563131298542257164832427385191346448557282415121493643351861874527362979911512541714938913981323957135124155299268541441628641735547938433742657591434586349323755457279543617346479726339251336869576521779493139891524449461946994634691541853732773125852844424775235289163336493694177251693859462979785118537896192716855149966243211729463141649829495817893417627678524727772753783162741971632489139512277352519715878876939167969899927642792663149936518314899879751515673738132925665476865741616656113385177268624162646919161535125443749565327633776376282244645178343288619372538166773885249745578687447364416212777956568423959727452177418929986779335166442424257354984776574152964479113344558264562938686979175412323636961876132324971557454884114366862849542653959995648937338764349423277332527417761663385951374316523245386126683738856342377786237441868459928271966588515383895538624459349957943571331848127571331665599484177335356331133779692757395233441162586118111388157223842355587594733333243251964575769884232981353475678883988336891778281278294449997785972795384359158275994337226874271459876281196993391613325883218253938557666345564524854333453257451315969573929361655168313628453472867715196833987473293564388425619371779362558286516741158891341367335269324132672245251131154179793218128421688783317418414791679889682323371149378818647917164951897938256351177847711491196481369151975581586279859889797425351266253791649357231298977798234348853112176991623723519269182314188379476964925286436353249269667484321826397725347861174199945583715775315975498175172579454992262548169555984781397344378666763725622466854233242975282847513874335369844255469556964147798965477814786181627561156459128813341121387886957593687122923714938938956645239987235846937397681473377832344232844327929748417454669352476788962483174948868413758763818475261388695988755584758515695522937966814492166524978629187439622417987416522163459312219751712833429151692817142171171954125297448443413583286283299384785114636561791838146654873881258657921666625717421176362541655329121176738298938935562614668289199296879588362164699661926744653663339277994198548593485157411757978785474783536375512117646792488266793162214841291481154724751667225522633926934973977338612767469911164354747233439961721985722612697922495918241936997996457617676468586186881973572262616357914549398995573561627833883517217551479259616942813584772922532376322337176661751998464545796723354475972648713612446791269739954371677849691751894463467249234552529382242116185531656479392646786695717818527958813549367531198648128818648233914267994745734598299979623545826231939292664113822717579722394717719728774273455524361143353724493354122448674134449553786947276499892934792183425361537121747376256349717715847473326926999626331854625485867594725326915866488574844362657486767189768145784429793138383812577385141955313755635746653843871597911995435681932314969242528478268167699146149279655578629566372186735548242158913551211147663769333776599694495738747742597762795952591469798261934798847514762256315241119825817277959691876172681114124895365173667627513298257257658946472969125787437546452177732425962258159627359993637634396438923947742694428318551223542974755159723882323943787888922128384899661849951254421198981272911388244227913927368476254272352288182413213394929855561866882999797848147366766541177152749829698472176792267812818523676648597444541991116786767597764428167891143232222799364914789112726585598799912171815396764663734383831611691798788218774139383729993153112281957768535837766837836132322438322187941323177661432934155287928237911842148814836938433742533455135128222991373775597871934158552963764863779156515272274668423417674948326121769287494759581821588872693314271298828193131212269847995225643651432241343454558432131642116359391494437761196849942185295711638767191765765248142138658927879746545591167579373365221812698662114544648285112448949839987734843387541358868892675557455238412739463497262951127663387819551722548777593687698343462242296156291977517764423136372586584288697784424998438632368516954363122789922311243194221961555871162231131151164274585671524912917129112127224531887444476876855666566768479731728452888454949495941616444225376921197833226255648699333544151653652344665271635584397649944198254377633249392639968622515913828255827139849893798559691191463176556358233122281945995993838146791414227328546539928316589393851882313835677211192722379298473551671843219929929282217126853187234218438329329327337948613821624834666487328239863555415576637921276814535347332486826473926616634214556978692838429155347817468669914491359332263957471251786642433872786628843138875871848492644811989551234536312889853693756137225169171333853931815164338841552947844866241434424829243925159144817293796848261441464555949953224742922585492445469724216181393677868927456578825775195793823178754445979527498866374742923121985428825765485161687942242543541862642118646142119893817951293278243453296711991871251745754162985138348817897974889852336632619121933623493189467442563125375285268539859966813546682983499817333276252957537771247224454334966373877862624371294716241573878585772468518935943324847874169718385421171863456687161737124195823344252236562138724795597787377492816939474576348616155834551288369852698145568428923495839857774647715518963784675824387362147382962412396565822393622358441168364413523268649768121255888894621949299416268945846851239917468362271211627529893477589379996732848959911552532867595432432994177862751795957123873315447635942628783863356858134354797459853113872256471155767182452186971281467672218293668377512621218326363919119828185922652822942853468557458331148538594784877952387932777499414156916274651345554245393942872187676284547571124437966169336344911638873631532855541245167792182153729171923187541454861628726821183989979278823857342314174754753941837844625811535644851325799983955538991571512966441452711697983445234179121216749764845814583825337644635645219184478858286567888642914468979766113886615241838783872217983759358547296519682459625735524787613556166615664717659222663939689935649199566835681512668759628511963863827399858897943618679438315699871599585263957327974896727185952112941366561282867247899497993192386213657676752465245975764863181799855611264311714291667143251319184654569979149459425118333343152416751747532467398799522746841979544597351487115875616779353249283433246384885451822488314627525767871598965391461518338771421886574523318736663713634492333421167418538292866127389719841171177817759578544256883744537634732421975822666881467632983745118239136617763251276848936389789593515165731144151634426944813852192597969863366319652345625899199248823718924644518532183462451363154324116461711552649885929155259689199635694659793572174867483259258921579923783149236423251356371162117989266361263814128144669665666465279894811181472375632687144678985964445443489517969117821277965551884228456396991892474571167592679181825345933913138485482942197995976411883173386123551744743442939668647744952554718763147379563318171754249385665431635352296327924197492329674126278583512233935234963984742232748597756868252663958247529542716455129795518675959874426368538963464323764611195162312927769555791132487647747334463644319255724626854527271814239483713737289651125456264143456383554835534487488823438833177695959222765993632423755537635373757778933423775725979522283519885552343675743213619651658819887342464721284315565529575355243866883254362782348778635951473649327442767936148816658253188453373926182763366246712515724568885175673659975699259491862128986394751925713261186114181293982511764765326543551942441559647688655139541185339424557512565323177469314422844786932571725246443178998331494761253311473877519797597428358624748968985263712772439951786547919795584199269437568553522975655524172471486329955798941137693145341587515136922471374376136229643681331833433569586823516127971348361254486632679259599192789712528532869422577592442341518468519462647579536364498532672417268193247983836342781543699739536244458146327952929963322284137649985678211995186182394412714466454822632722238737866296377513237598661833835796472972598247359119865957139498135322352975691619586961663512215735961967426475323818864114324697172267898335846136812392623182699894573216681392762892943349497387724944512429586664758871811537199583722854791267623419479532249177348424783717568698536368581387122843121491136984736363992129621815126144146634197722921113974843344846231794183744835835122415639813526674982155537911522642214185345783179284635436366331549847361638836754117639256778732695321384167631131683687164836995527545851514596563822517881588131774257297557993284235913841743619915724558257465786167351425674565936272987632999616231262639175558166354816915865487494556362896611236616216771218857293628797357479921449997198772581743512237954835878766355223261324564686279653139795339731156978324672288143335394625588683279991366564276598817278726684781679615151467117988515377935393369219623759458147897324196426742653514878623536294835235776439484635812673925535817328795336264536927274565917388929878311927378879586832321958738616436517234921879452572566439389832472175476453387334479913931813949247684227436968415215487567742655392693435931751279618353127172491561783276241257217933234831961125183419823836546338541813818819316446327499143665418489668448358881412252144399739457223155871668697892895223285221841145522577246826995426734245128222674729434924613944516829321233389661693894244447788368299312539485444623936369147764683514666694138588662387381957394545899458751587354572388273892255625569334373117354462389568783245681513841941665111228175843157615656839823788178181987461764425879452224481288996883528585936413437548786895675263525353744474617351138616274689731264438866216821833683399547429335777652272654635883192955787629997641857812374652861855423164963526691382497853838823343559845187646664713578651442666829892291853529889926781724769359228447333664541443919971347172184827649895259372462358363978177467121199514331566682497695592237738838768191255813943792151252834615472282196675958228322236317678115323422887363274995297738485285615847926641867246666427165574934597288643727542296737343888172522249913274837946598332419326458562362579943636285997137858592238364529593656163552254838568789516866795959556691715187934612653137787182126685655163856215369572231948949597152667841451887833945828612562266422994139226798972454215451466987185488489958755881211535572168766394132917782258278322768874749359652842419535341152228814277182947911241183515521633412738526619311325423653194166396567319869881812343488697983422168788674552532644883541239571676344991355497551928262174122168682181114644297378195292592697355552463817235853652161119268794338473654266741195189181996775187825179595968957456464353839327198416345731625351886119381313992832365837788314281782629749938111246728486315624772843696588388312872619249791967131389837666486464624527496572283192985639257893254595344982998398586857763442656116549927115844672256823256311811364345835428775989571685116197232455828459226694632789299717311454945771681259513562481359171125497964822826767124151975883884324119481562237838132229518795117417345381493165867968929797398838552989828214689386277946765448393379261961339248755458913457175392316293325338193537327652268688717336647179868119742485691458217848493299176776749787236371971654493792698165738696329846822887336496654461833682294176657736458987542877859117227424968741385173735823596596228869256931957455627297357887497283197789684328871588213881531248448196153484251198918286337449284993487734148147848666288823831219447119593397181746354245427437361161921241947921545847378921637734734757741432485868696376448212473747419442479855693239773573629873513457684578947251136374634422763917655993796591593239471812876266721211478927867278996186272878449451387278954669559957564749563597536143938284228123768242286436168771954672993785961773881423928684779145234592898765933163254912379272774123391276668854178568685692779171399395861646142786655124271177186926492455849928564974481487186777316431824715652847185214822378998442522892246321937547828834734577518687791423324168648432884231881748418441661157729653631954931993823556592596267223476471773762943386836986692313549977944219213521194691259379513499183483213444544713827643583722621849169294647828189753991362423396292111465156854728917923954282711812947452946317197788984291472452555279273783492169747167284339363781686865993187161776384697522789748414712111716862499847489656539269649739799275314288916772215239183955925932452769549226336748545749231622767933877788411964727382214265331923299868698684955773783198611693821897566324618175442651512551642722367888258966489654684738882953179858662567196959317679457642849723589635334828758495438283376148487359772153827756188987214818746451227322613277775674494774537162273715855171758215544811253868966346621127192911455645659835732245796797516685711174538512163176545125755223774781143882887294757258624144311689683862159858122836687981311468336522615589391472941627757773595256216645674611793765439196445959569134589731719165597316949424361363512584654559989619393234559676836873238572461322241453797755327714126763997139143176355129532212513178278861774971495996848958988385193878845222261651234127826744353439213625731786698999771234558782612863335393762651517629964832882167389718984137178749635997185282899869657959757429472761569977166932887571545286113288335123837411598146289688388696428821983624663466874843569419951832821271546662259622767718792674855763715461686437613373132298564149328845813346986213515535372684515379768183571192343885211368618136911898156156278457767883643555945925729424841675342839183337721392663595877834348339237451121939296345721584828659662316397481389823294333523377333463981629738591728131382527231465653623676436396299127378981926472743918432969569461187874976514668867711795741776684461857317764449218176551516974399465294861294914711455395892331267676962971371642676195684716722478974961187151227727375645127254941346345948959731448882383817391224847231136987931799837117736758121734736324916975857658429984685767139651131537122776597486745219812765758892512569218846419829719875458328367524425298748619579356789691436287519837682441488213889739861479128891658683621441618571456574485364329277349473433288324861288614125923656574717834744129138887379661835473744326799191993881498354436863246577136935924212242966398875188644336828399729933928558345844596828491239111984174839663136475956786788697776983466321533969454122581259917595722243285571415796854967848496857961289536656935529815689327992788887649284877327217665486275442319872789266978687343782318633854631818724311168783159269132216579449211441446214418335227336873716627651584115546377688321816276827572531931484891659371351867549186238222258528682599535611344252763573688439187326268638642956132368636458356888494255919194695822574118823411249544134934493864121332113343466319712215444621913144244468614234115214757119191293516943793116315635189899698517867441619991431883482351219969645288248138969157385411522416359777671483188973711251282332856833579517725513783796615737822493649581351611878947698161642771924873887846823726475289233398381776954538219472918416329559487444138471291248338268791645472116517245244356189884753696144243773496921345843829274544147361638877369392886956963396791326469246862691868352847267825756472385872131216831124731312786314542828122131614616178998266687939211813814964424821629436984686597578758153474756817749338676225862636331567843513276217965576962124636673466517724334919456142242515163398758329642142876469573624238348123844717811998434371643844767568843213884962715942185378644491274485763969228622729156991339346774141445356197278183772715738385699533166756472279446625177886345398494968694721655115512279713332151347186456412922462579449751845878567993643733969916948724787274929729872144331121614475743451741712578672114916866313776911884943199857146536121742917517596989288162775328819883974724473951868564641252933829116477714989954711263378371542452988667156842321336554379224358446292996579599523277594515849582191271727665617725563713276134342369239875336117443723939532755871793671193593247418592444618285254319319568772412352394665464878218228965831171296225671127493214925821293381418929476486125435627198117446365257185622323745296915716349875489976437558722142731391725611137935468113874987149168239599593275621422617995689595498347386593154196246925474332751584213652947355857449876118373321641895989613997631598117834156128298686436625387326137899294815724462914556964695317977896267627963153497894253772368947653225819194343933248495531425179379759558973354477226668699995822787642538654181792367126925586654316457213611679695316796135691911545365416463323833411914573454498723353989219483622622158283612383627994714742884155259976127356517296566939118413718684296821571179635217227956326275583175212218161482283786227724362568978188984932131318839681916163951758546939232152944893883597771736688372274488563741838176744727384292327645582655747635298569187597527371819964446289598343252881531367438224556164814626931128171286728531875571869221814825622729392253121667553554634915466628547652953818663717169561996557391155249439275445251195185539368263677519526969475473871324239955312952893488426852138169562365885971159497227691893618454689158645549478179848927377122569474227661617425399171887697733569971637777418836744723361132487375247914544426999269486488617334756336789912591525353882732364638251729629768719244522575712153868838789655416438879126585581856548416379811344129911558917173636376892873995216186232131638981416995272372871488992994167855785475882118185123913913417172559186574685482883263364594281346344872148576654969285534843876489866969826471666675126491787325292788658386342898311849917637247214979897321399228192182754566177464433964893794614712776112718454877163441729169329595115175929386192326286283215154654161642579187299727435545148493698653699696216177819263656486644418667426947544224139384922586926762513116751262564482783921491867917327782817853281458641671766457177756725419537652525473447973579243715245196762913559673469516521782216615381471724782817867598567587147566513674931222897447384841644289749986388489568292829193255564446335852699645354445345559916339962347415458872325749383272715781714444889666787251178395574933993437725561148864862581136428627859529866978845219467369892653327278154651534844871596584649861578383547589873359318855218185232859113751547763683456877675288352152326459225372517283859357972276417932843369418227381325922138668252344579419311849861452455391126139575525445428314449483813824327274615138571391624563742923444961421814651679741186359451684189111181455422285383728643612918919817842383591928288143313393283154647864194185913717936366573778143727127425896175668383831297191261963594174679146755147956656551546785183448342817321915568194157725323456371451971961415215419289591835551475472467497897348155195187521558185221958638452256655153694759657178953826741855321824184558413918813184657623154925433768588788668977332983376668199365114883747524235333459116714741249528781433656278413412882344257298966199364771521741828952367176762461376653694757839634759456933268285751928384157119384219891117925371471299514394122542431431111548575585444753165219341374364418255613945429525134868874211542255516719231182585959647157999124564234157145183678531136725726161464867462879126868971542912418544821667643645221917961941171824396341814268679651345339346327736469451756513467581913746477151686619784335471228199473919614572133981313739749658596776746193295473413675549594432888452151378715946212755594826995849944861632125645799348629228692586862935136681968983755665424672258359853491496375449895446693897632595734762489823692134783862524663135412638518777771237414555812114544696437394969982723967447547882249763482777665726921754497275288155493559315786277232662377786591938273183441157671847864632181173879176311316163947622974972978255152672612297581153338636713537123389448558296311423375745197798927859794413932163271654153822613287146486678874182947331612762171784321978755153245878839994292269491578343646969536317116525722569617331494179922442142783255399351873822228119353456524828257262248429531332155391832213926642755576529642647265247367659213377725466218373989394129863873111772117617444731569861646923323389498149784146182957922613844953981794753155554648441491763268356325689884339683527566433638353974333219643511852598929282826293626746781841914252844852943542893466934927818323596862955218287523116487277898237714899219137778978517224892615485754664566233118869571851121558923379735346547423369345245379162398361784448969395218621158155284999977399296914435177271165574863759387396877219526133239666943217936754332942893395517564157266968424846849918246797433737452947878253635525338916538891435628395119251712135825467247279631351759675636838419755558275127242217964536919649514149755356961161866299689552592786761285771787763462329274314482848865432511175221443348769196271956499538536956189223198887513598237989723327826737925713344682494182953274855437119589812261319697682918483814525453333538558517166267184375615151373525461219916631229555916311337578994814895558551494984414435262952441729355999138325656998414599633714739139922653218797646986948219562474355428649428971668152862718845269692455286973138833917288952467317542169656858631821638313448278812927962646497478431261515412193283878932562299142167216636645863141844981219914119729363837322626799997997987288148165347979239788687476154772565462984772584452321856552828975412599866124459579464198371167497546433933357213158557274179828463195287512231445279886293164919228536277379412839716326521912812664281897748911781492854843924169477467139911988918182366656163991735348339326117825141596192381253776499331932592995145643762676843583314396345544946491665713396534754183617161354973848419547191456863124718742139312143886695631216416777532643564666945593965966516172815877223588162522817383734339421817527676472523693312584717748618369926463614863183222581265926841743387548813111322461486987459523749482163364385522668257882823986924129355684135191915683765954544846761317521138129677843338572955429441193294115852644866523697148172182392681166119594245414198895192221279274785634147487885565964275382117576938322969647283588895314413259632454559513222469257778918323276492656686897934847614393225441969134682262954237887316628962856759226333427639327137679455549225126649879542463165722767112133423177855798834239612768578671712119784163845357317484239986946957825239523847667495717695189783365776527891566295665325723681916464924784739348793224695952952688978347619533392513872455559796473296956789918159446572125984522731424993883688421167158546887951973461648896637733438371957643749865828617269832264881875639882767239188794677883262257629697763486373242699377574599351299865193528833972898646984718738613122364245443532274762143824675875192315848989997464677868215793292332795593592328574358179548657779948497556668424749646579344911895634378834676949882539353754733185423295641133922154188444715913544653916128311425813746916496631994185786526656137391892439983873381758418853556265354386374662789763593377612237742969685941919875223449119212876862729313394181592736635646723318481399529836875947699153624845772792643514291674332136397772258427471622139187419612231817922752488449542459289249443432123287425358292336354257281313524742464888717831454868576596648921256534294876721287944674237838843486786162533642335683895678452688267753915258472839917565298357163747937443379452352188417332948191883436753688623812542264347156235477933282142332376581815529122548241558642764981439518949741885697653497673161114844728692681141814153719915194477749498657651539835284984573811564513367813865838247534882151197447664444729383996648125129229863529753234143331895696297219984336211433736859938487996697595837448469643226129847546296845326959786659861561445199798272693287156629595541574983842558617835549191949583531828192346117779233132135963214386185218717464486689771277596924412822683339756314271287735317646828976218973693819927689228783365153672458617997778536437395539935192337997775353994637356798792299322829687192399663487947725835656847795494424488615489951433998472149478829156825354348372661496419346217122693226559477533553182125526236475687243278821265363554915537154613336532323439754998388831445895137671712133998286115887821391893659528629998717427795577696665829771432421381923791247896452933899842974913914262285865499583771645632122211526744329758686852916378479591542194435389248624893511357286229229651188982743932283296925437448394392288353546654873554896531359788886711153628914248637261295163841411496657446659412238147644727867886442964529569572375138419174752386572834768625842335175963437664191272547318881914499886928673973889134753532621959938539375662759642827268319315397149866421685548539244955974394987873324363715556579865362791989667897234394849586473897956954819588311649913851497575361955336275995157838123152797324317839356854348922724927187819128791625299612493664855554233135894855364224364628983548761953422716233543979221119443227211453512135277563475375119219929954294497714469787114524444426322639169729165933644984328741371333347199195586741147558223131263485284184532295297733653866872919427825167275674357511896463553584165672388746171721799434578817223669797562168139198839367258758915874539535336235827844647313214781134886317921511194547267477735837214635325265374617333178741223832274696221637987619796569581752979338839892571239198655592566743665447326564466376239578625388555989721356692229631576438856699288959175624736687544267952519527312218659932581233648333473424144354219912259262426348575617919344745644859765997521457717418331614167432397786437451132862694654959682721488921566568745894248544313473492284228775638116421264583629858166378145498298739755183445339125653446885595367241639873385386751985664212538343385162489818472371726936278182221626755625452688549141647355556427882344878925679472526251686327115238594386843789821535594125724226976494977244126169518819389692279717195617919525475256174132259129728278878739265779376568783684556353141893728275193749517764119634837917268975585758698365775637929799415293742216864691167511311161991519883884469728734585494491491341328516832794576813241671719643665514186255582171394441411365629161467873321417436871819835387383327194225355998584453345763481512311622947446274628852327656516626687672425933284967199844393844393168291574792997715577796169599695593451719819478925694291239188528863933894641531989398311228959845127296569412598427348358154127528138774613753494227943746147788481147598764114315999264757425253366196861371691289994369199425641341827943891818898234933974437561433136215395165877279566818543676767388896413899516442911755122578316186716885744377368444834982712318869448711227953686969366336556233165746857442799485221843488911296779354997966994525589826525535182816395892481721278949681132531719339818845827934737675677728778792571455835527889556912684551411467591874426194948548796151171116655732263772176829789383289289844316423689886367246154373281164385926274142678391916233439445874254862165332951949553784727393517984199613717899844912474292343141558598678257221421557857982294248977833557259381445221719828232928692845559578512914174955768859718883347375924214512816362157117895118735126436887956583797488167577339741373859645293562299996642364237264549583912146365154717743256861313252341455161475735418722217237432565699194132594944815926737461527176875377327711971572934769821518185511232792789736828295176226914364367446614567248857465975566982417959699146659334179457812489629323283276621643959884464613554476783818469424697585831279435762331419236177436174556563495871982823745353984581836373622288176358531155253591663291451468275789443548952119176385219255961429463616492692518126546461846888714864414553613494947573656134894271529864124253547284449952339647698574965379624342675568681545393948335762623846992448396359767162974449592775365518237753538334311745674741267517329185247169499462929284299848571568981577425359541458667652597543331488929444487522388143182735957974765619147778816699897868463159426976879547337887766553377571513118685538159848424868185732773873721263167131762147845227474761932947233836992296789399937493485568172465854174541569563192428865762818284679933979815223255141496676494652534722712123437839868435154527569931192292434196983714228559314297396415547947434715135871699198627248782466118568961557496415266989747873384121816951681129635223186764181592482966934835786397515182479429567753235528186615455853181922766429743294992462986472569451536168133342521666654382337272323928721935276333887225447954175456326329636358436157571275582926638369122746478173821747285476939744655618355152424497114541234987351811635139361588299443545834467547591993818866765617951333669412251249439215771121816848295135249253185994469462542135944347751665873372617554717819393716471337713938289834294983722182519642212494222195414782962169311263374494724933353731726923943868276525796278413675746437621815723364743351981257711244785876446562936151248163833836214681114759942556469375446629339587687953847182526442875447358216865559744432474917184636242161646181964416443733441684318493466165251581133396638797936666912516912159152371834593384849438578269363258386458717825218141987794628943761285155637146948937616157749195223628179683377279738434116916427778485343669265247861379769391967794227474389893679595561381385155576293531419556414841978997412847457599628474914487474263813976621361311157437875493717197385855889791894537294643824523241616193161149483293556837289312463861167262119329564136735664799984181795794636571873546892261159448417877349775752986574679673517346824556514978177613169927367881473726357545351922217288724482437788324967492583612211171329461129849236874912162372378399335435329232798297394421547466389621233154224922642982135751279939153356778951225322423878984787693816573267279591642927715273931122658864682531594685354861143245218985353496454712247512616819321218644863417777989549799479391312164451591267855818786614532553658974932147623192869519752997351148341534286494579429494584198292935868376715252194932469679588671266873443857946347564432368126131618842126719442288529645537149189864865445379486237281634437334211495839456293815524585818531941888471295714984535783263915999967793822373671914472697887375362941212438685786223272759576992985114247915573174391474312881988387792491847235564599829988986725584523696319755993974763659221667928278797663161248624769672737428235994659855878729186852925666478857323217684455344829111565112887628737475711243614515551151228879642488859873123573927122124891854882776642844191382972284563547925182636811298236334541776139711217361939849662394637715317277187723795779645863325976485193719471641217979455676263691199479316469371177112458964334343368179615642538138373969471613828735686139383195711117945185366138686289197316676777469868384886555262162782348926652637455733488793998166289989535787422874292879258864473269213661312487797784798574991126146293322351111788156894382394897526637862963831636325544752131771434929295378341852315769863848861252161698322396436892778862757763878936857887521199267942116773969742427216847846742546636213498363594313886569134376738458686323562881168615526844326251998539775964969729261834255768858692469954248129936118413889653512557443766676678167818277142392447271446993558354134941555663816532556145389114427712755121392843187692129929451111275686615788987646747637662663678237697165953527279833589655812715364969455715323395644597967137564951885365786915477717494116762156145451938519946717446647323428922567448289182643376831452783684629263172888142369842886955212563487684852665781664742346756792839696962127595651825948513172265124611622461715897382931338344846286257483464942669662774518882391915644879164329275443893661899781343629526857764318486643613689593754796371846255993656827174924297566183966572171335896593884113859456642298385316796446624934398133687786524954523156697998328129478947588872332537187775597398234837575252374426124771239849652944681295322663264532644528462556824823244499615967921462197342822293416736686262862797897511682889139693259756943212881532498677578447662637211421598542681437175928673825546476435278325256964454221493845582124539252777463698118147232668769193127185811179779673494461335345536344615793671526756282114636179792162522778719484882982454951718914165232993739127216349734714684999413582754665386819772141489778727865131487814485352354483341121796397436925353667792138453454422841664264677844413425359584715999956261628282533774398136596175869485435254496573881694343741216154586911439987266235648811732326665255297285891413856736797929575971499116585535791363832623479867996796354796266381563625861747326886421881495824961322616769392979511588527918484425575232269256216154895584333664211623629545254748137575898253474434796759164537339976555269416757237891695148779656291517447912724483453946622677295345988678749177312496956224823346734581365262882921526237598812475624748254333434476978537418534996268173495636163651413143785275781686825377973237268461739245613661332759446658465119273186546891924288922576493713729917562941131438339476915284446336963166959192824742242748273794389595189989169524547611528687196954542539346277532292143899599193437569483911654763876155984983224861798998943218594988586864174558438227912233871369916573771216948759449552638654553291476477171746688623775549984392248875672645193944212665653863185873339483872975386342796183391767989716184279618331391918127283871752459767736447577567369878156131155921673216952697424392997588693184151461846114845254453911759957361396471879363778913394267163789828355332257415114423648444622583427749944684194436791524985144464947922289687131688539927321746938719937776577535288268898852354134916774231864481197765641665167467924247323642649216769736322947638151673836981811476447869953715419566849436326353987662467627166923695428151674863528665327824525663215999867342484348659342683138449838713437664988743767724826759632491743499786459615387669243185124286516373828788316952764973483791441967147824634337394791927395229295819591864276995364266875386395776615681917597924438916344863339989348338177768191971494879111989823655541217925912951338138226196362714825417887182214816637236852922393843522138248628271893478551679762913115738689387466693447415371461761343981829546215349188615641616739926118952553977884634287348811692392186232429996468766481262232341359961992781426272829935137161285971979238168676767749342847965452447451166824488163975169644188223856742433761566653158993399212386861992258395758153843173973191677666771589864769944141337536584249717766642197981394326168627941812566139228827846277763625327396453954866747421947694855366896539724189653475467126392718387849799118974312647348966946865448317327115435488922817491986529339951751183511312381121118659563567522539679799738828938783639774426568436394367148839698941817258794526944479974855825599579284953394888225222496887436273281575794182893494543129752378676624173371468698932233118234982533831167993852644756955767265317589575274458513768463939655165723669176411359536262455318715176331237867782734348473913764271793726492169332655593783148455325686125231254498857125328244574932534956159389273874315118556858991394889727724911339849775258958977455326187477419383249664458255879311818535265284397253588492879798767619236634852566824553738597363123126587863919581935197946573864176624499681548521139723479556962524843791744575478349677631216366651829772129656481358899911436189161937238284812746525415447945841933755453724996447977311114587581744288451649373161782682131777741157883846674969948296219276849944711895562858641551169876468342612681125219974918814891436251419667669279166456246535667272112956612629426959564115561277386472933283124518544754381317934661753962162592336619138968741196161346352581624274176873636545242266781938999296613379533975588694163254944864423641583779327976383487881266487651698765686364892931618523142615764439897524992174134875979139595948836576755862365632238132971565247884359745969532544446533678983669984768164915158483935373171336115582387587982839912439636658259696725552259332222355297752466325896232446458468693113777822444912534677393148888197365845178369591868577771658358173456853578517693341917952876573817481647477137459449935211657837565538265977512534436835898571326778474971639673915588977725846412349545687554744382169742225655779632171725198416692476577942318251358339628468928164691383323227343965835662452257596634955266889976458814148253893455749245723629243134437242522756129933595655579773215828968923634527866222778655755226923725967429195616663426991413983254541271979439985237726846933348693618615647435958629293686928677838687231973577329138296777544326183796683939641543361838582823311679246539392346662735473563884741654397225449985257584749127382456775485828717212869223124852876443872363132833898829121494572915282216428691871551453572839929438549179839916851894242323214246989896868648233222535656866371768746213177789199143696282897874637147454123922935183692769536788493236528718881298547613556134763975527387265374126877122614988375736454171587799466967128526343715349735764433358854665396828298621583958381516382646176658556317355551388337856929526171926636352816834555331711652268359793327396968213725796761977882759872619395116288747222399877833829979888489116771491511497189262158936775565232269229348956862965758425871393399229143837323418983724291221539341254427157398176348767878711644657199794533329854628495166129485184143484715689851789285777615123326554924473368336334712453864186631123448765596229589535719218661671814689139741778639211119865832792269162145112865874775752233393398214317717873358736181292321541369681359937243114513532653596631688513495218319759891855215666715555794194934889768753264629379634193412794262128883298659477338637967946451563342551316243875637413917632686999154184698874347977377829976566451867226993325912638218296752387363874553684265316936845319437152339674832247557159733263985699812668951164718423485699888457237383287283564315533991889615326955362971326545987387364324646232558745665219617424151462825426662334799299169891394339419851417539898728724593522835875741781433312183845294444527914467436468688786969488712264943388922657316174661618478585868197998942753369726766593341727535214916272397259735364598561212622913619838543315732261916826178367438391144464836953933525112737579298311647929525797148458421268176786859442483763456281132246834513286139268434678296218322814355453165971714161879488211391715251446743813127184122842861841344378753933233841233316482464488896771853165349461672229255682552928193398823657715825639186342334133351142497167437999818522744946161264482987531219288931184377873889216395156266174867965382968346156775189686283678264683788592996564171838447614429877144884973529825997732482733619313689976237198598369498559619439687574297787645369398933794736684441748427962597415297466748396629693544249288828337164637556118978111534451232154869212857458334945977322434549814824198643465758256877121353243424813667892377181767368393596847328564144361968935769588747311931776181416492284658686448169962928636667186214557315849735631723575131839348573293787649112273329831713636473791169623522638851834814956593663769529772933626799168464913377444396262345516285971716197213956376891924565172568638248758153671159251686982248981884569363629634438486874196884952297133373335668496983282858244453255382614169788366684768582826132569629914882618266533381552155391241922419459365817135179384693796798827762678158752258176435695264945712867663538653468992551965258618684449792556682579613599914864632866735879536584535874674959392487959446389926369747113487317456241174711693239293792131851495999917467526747646725917983121411211856487951795375765462753794725688326921971317774228383652113471393874872791477789516769859196225393688657794552392877762762362792959724573836946123798864989258234114542623226718987763159165887296531673894465363839144949437145787745123459875157852245177779347991493738695189674888285762674373412574333622589856665149297524854191413775823798355758676327513992943219691869785251817538388468662872731715773287268811638575231317479349816124839511572419832852587311281792174125971292174268215946154133239531826936944449168552146548751512584166769183899744757481146296353569235124393265539267272771295551362863283398731656354421439975991186385615378442966297239227717714442892329943238757471482142622945224255148351125761788872943136637951465279382656623491584786259944978496414479831268327785318182488226847173966972893461879678726527191897193689758983961928788231839918617765739537723713572394376265926782255196878958395324642157658327432831417292921452715921685395838122152771852996175556514133526416411487562652148693253544786216856884538783876636959184562983666244496363551214797616142248394917456862226326685455957252171461295781892423182526821625822958967424413545752893473345725991786527757112575654981224586185954595261871926472858879217815319568174159151787763548559221651596393698512661336578324236279228747916756911844481212534141952725415979551543871882943246231393832228264126493462555877489318571692517818546773828284921842688657896577311977258876366349398163741397927924629416822444463278342371962653114844525658985282125231227482573866217762541969959562574291358634143728952947842786934244368911324585389473156224816238555356377736253191495117477989834359775547952351399789436224296621488831625741761649571183381941988761723386352315151248377361457314374581126236531644472196121752177416597129663616952151663636732563123713678729314518463726288435625775932793634965711973581332674141633793964349719716944965133425467637722245126185579975476617234986568672284772229115551191713282837594721178299999444543423731813552832939648648581825956327397543625818773536273354758279897641892472248492927342697414282946924161274913193726965615914117588974991381689951556995496785444331639667715691645335863442875398369236896455419732197331427947763776264899339291219833874667344511126595328127137111386743466726717445877578282881719473629279641475951588315473453381641548412448822861582128353579443587326459239416454555379517451698329964876817442696222163717867689574952541165334745941229985644491876838935546829223243932585824811483285639292213425727865347727755962424343444685156823456117772278419733977335748321455955632848577549736458811742676161533695453985968593374347414911153213746935422269596821541831935155417911542558497187132914996391732521554799538126728828217837719851995364216118679461269842522496385819229729577592518592643772219689611572328968119848992168279147987133355151861735524739546449148651966461446428769222965699583448444869984434211212217656614938651846835256575676685359818282947931492827464832379895775584677368398489116497535415872421677313223969961411253683978291167897999295281221135383679489585254853862379481383829177914942456841126354272219371378978463497172273897294214242368954771129735842131739159464588383761752524197199262167913351168443497449837646552648347563568392629364146791435588313158213133293118423191933362292397118411528829752859842278377416226856887779634698671697415155666241739585446716463521262775222735897655179639275427533698211382652315713665582933665835644562727847318554912193459732385639711484114758148246462343461724783731131394297911547671896976244516528456766546599156125613236666217842527161519523125575797343964647788484544475776222689424698853622459792237585996265185445229581526495498246536241558182614542583221659352915429473379439763821122177992282623559666697573755855962642859911255111661418773157543785861651665175131261837232864943517573438835338444436147124597657384536328842575897491112542296925366888662618287827837979188569886575321489288968651246134989878434856894812598443465968457333176559929398448372517112836568774318211139963689739329593148814334153156142299271193142244934356651965559578574584777791283517263357713658496744912671688848555679448594333996386444492285921487311269583682399843272489871898539645684841961743958176952942784647284468454427611528913295463736434771515846586637337546173445977343393776325877698453959274659384513878381776436361654561725633183259188165717233286622692265553667566363733545663225463588923289944571833976432753189436228536339776848945688753952883515257879847322114662436721799139454241115736846292344815974876722144144516981599622913399686357341644994583542394584714571196829874272629753881238599845944525482698859725913116864648232573111271945727216597972445157295485592585966676215811944458256695144282776344854324417852567215529937915537821232573246392992543326915468149153318523141229364586187623426221341292494496433872469121352854987815944473924382327228243328596286769196296625756466261491241767324213832584957583299147252116847166349587862529729532345346821426158997672724685647761385876898312291758929387741517525191761481698773464282954984535134181138277954379697782289543945453355163756174923682699633726259474879144751143391469212583987825292195561563783618538665863634144242797743999361913768244516811235313166366371372547362611382383622928544962187332857926944152313414357543649363457938521926147386699344587514747429272363756574942965322163335967974999364892295381612817139525212691536815114433494663275127536686637216717149388645862363915563924744314197926768254279469796997352771179761327231558483352841665633649514546248383921245328275637981721173686514796719331157429297268276434184464934856849682591216913446843278461755338387336335916159732948785758271188629232613227179373149515222328171982253464151977271221642764561568763817213299917937971246593538484574374593583175862985534775514861288537775873468456898265715189117759426894139864344169529937837691532111423388712927958741533172224225265493263363948812954152263584899448554878262933126521637885273197852227944227438181144721237526299312115326958756769931952694213224324736331186752535538677997298529893425523976139672438227736678556796237334936883926827589146891469972614196774964554193996575511418567766434621855363552199648679325181723164948474628727662538469767827933327254524485142284928784566157479984334662275384674452887482229927341695823331586831929757858759472441922134182654755529285969896839821923321476841482319695474166147938359397881828939789335532134727553472159149923891623266268639374411615419482669631936453115932362421951789846797881425625117243364458426399868546587948458162378612444953849683231825558355382142375669844791813984339244663766873337312661652849271174439685272395124261225499225212654513929258559965987417337748883343534547272167655486917672461673835267975172745363853529655512784319197584567983266427371722881219118757193782817558265336415325325289789157247881797128759171612919977772495173141653517424364464451128257754857922253793129455799891515279454234259318619554913882842248183486819639489234615783856878777915484346374395646124297784642222669994621849494884213971334546612512752846785973483671694947697847922286654159477633783986645327998116661965992544793999543964653453918194473526896985948234588623814613949292761369753465813664844214497315571697562717287543836345664394751799445615432176247861317636181161913474795992515282212874573578578715984562613221331426764921767527924371431642665596262552637389871397331383548988484649882419395424146964317294843386265395234755959545865575858287793222544898493257643289675472151253395684414638381598555993987192232679121462199248983472661269372328239255353267155381547463388321132947363678373692745471599339332525251317133393465992932764695837342263875193338717991176334897521736813312534495294181723183734696376697659189497796776975237596223763437325254824599986598247758925257879394676924822352165731632945622541897488768884189553514597168212381928784672988824964423128838167159728975263944339572873556451146917614129213525573658894438532913673163883145672836626157891981257444622834382464934529317295319943394387615749132573483112531425644172641115127264593713765896359656729719211827265436611178693558228199919981517149588585355691412291982979929613561319833393222431439525416367523643526745956288222172612248889243584167552151973978229343231934373677322337433529322256368351767825547678392542554778393928185776318875714747993268187378976442953849398663353568366974779313488771689545869125841537714633962628786639216117581433192464749812689232232833571513812947312292459272395477614664845938668788813729858385946392675167822689469631615434827457523829599658693556517939312946587868617673521765314997727992558134994652783768288567347927963765254519688844662418931723418685181441387962327348149211442218797639658444555289983993937147716468422155491817796175367952531166887193532422281786293887839846424214456486414363972369943825467777112649389626813938812194629296817969978748318591281378541441131736613376296945853871733877869831491537937639194381253529116978118259843415415732747189988576385981965314734295368866754592128527522842213523137823488646748689241423533884976658987741324172194935378545843597385158971487476868385139522772499994782828556122849233183259398276555525469852935848946352279886532982437412494967769385582479922111242963111497163991538566466666589665865894699888832777223868416273758247495374256234844111941557722545173611126738111412415349912155562812813475165296326759741845389451641967473892513987951934352286249335863251382479264246572589114926492616624862777172627766665957496655116482568255425281647232761225725364418134565163236738995826377894334137473778179652441722358948459752388555242196228391425328942996133867382481993722752272876155757134652889888959924231426831395987353431298193984396338912939437243584594293491721443342324266989127556976214376311524645951548548284879489816425466721114268922631916845814346772443354761441613593285555878546788813377222372521728162659413962742967688715846716523778617893966953729589963433174241982671857442613551446678975397386442537262212556589946734253882425567372493448976979542847124256612338466611397983836911511926476599335885714592864365325495933571493889361699766292532961444681531717733782658268219395439678721681352529785589319338661627378247353414362719749652427478196818534763189251123978129756445126878234542346347535336389834336912725267392815667189617589922512674189897978434132982649439679826234913799533836923166818764756359659819852135617913594369734348292173967268529229458684656969779887163778539431465133486973851827434689441463498891249736129982624863715742971851963745336124375651821394481465351623145656963427589527855872316367571924619951599449134692732347994995356241299133934383465479277556981584512494586815149587394149637785134263512282585434253556418176569875125232471823137473914719446324635246363345556273463642575217479873599723158776812166213723559345674545741497976182693874119942498732215254842449698775275168217971181596879923862648156552362957956995572353537791695249375469154644199225477247186581526951966421628539965768376934875451545175936778664131867458835469394899381867614926812445338764684963782776537929499633255821279455633718351142971733148611627563925285111114191173365126187623814422712712112117334736333185365795766945146245857231652869475744211794216728394916862956884457767637856518437727494599177491967729314964696468296445442971176738658854223748557191534731627399145938448623467166118479542279974566399159375982572328253469466692322125152549686717633857774333465566961123972652413597364677822367854865153327347595221578359585261545959261884543964911736763289133527443412765959251222688996898959693934218583597518776665245939888272471239478139896441955446234131268179916718587139214547169561676374265836674276286631345182237854369743289616124665599197119784221273382232843199648547248127437444673886968367321165778579212946312579966882593599866722632726245482487854984243128589742913536854982665154477668426479569811496784849455781536377815751631669347622655132265782462836888853877628683284489758884167645439716457126223552536415819464895765399991512766828448828755143419838727657734414148829785178418381152717479719113994862458288996191169896756567756131276983762361266246712456122634641238514629745458839854455517961973713164838462234118353712497484654849222957169469284353583221584767778864459494392636975186934399866741175814333585262659342561455828816497629977382537451496431911792331191878415648273312844835814946934112742315911242315787177561953453517636127239259718425261255499759313913626641611343757763292956886185447889848963347923223328897494926515488375598289591822612351532272719536875792551633773718759877937879466736971143319688353339923699535197795699818776591823714863715324183442322178627688847233314625922265385492153812586388617979361586995434648927975593353139164112711254418189885334568862658168237232572371268781246122276962774497544772786554667358465952228557211477545199545369185581582336936974727136879396294742798712414991453154642561989453421392432731855149593659647572713831964135919514452716769316486678754956446386531791366397836582256541285613266225251889452999914668675135351863487455389588479735582984429415642386625653399262719818359181443652122666785611761641555552485749851815574934119163118542681154939829466858148944354998256259642422367833736631945344148652515647863656738371465787291856195559335581153879815384983167566111944581586664543961468664329821814252398865198394421375696687668973192966366194536444994551116893292288814424866419788122133711121338919441626156133735937217318221912846818424815288672382911813813986556296576984742869168139328516152669216795277354158852782523136282292762277993397272349482694112321587595384423229343282339741862899549968318521545863885758834814867753573333487853132516389669945519757171417192295345863738622172145642573362479814389652413518613266323547575455783647777938888194626869616152528773448241818617169655415999142918142854935785582346775265168269862956348716345468135442848643538713245115538175867391384958399151363763225111576215133436244159165239541941987587989232746249145557491485472229818829984416418853592639177288279951938278798684833985983511328212294921889737119317886146167767977367345218818738497199695372968674318718588351191799748266251928337918757572572559414329734825647247123678736771792912984256699323114271132617687788865381849761972477471532289966642251243199185222859892111896569684596885694195379268358447873732179657115524952856682425112475472336947478772847586627137364689723316943719993742393994619868839159653824723187115285644531213127973364635833423941394647757967755879233614846139158422177663437714726886261753667498585231474143494171696762926655593916142345685982151616797462891281694828375763857917586122399227276657484868244735463975984995722367995371184465891196495783355371869477375521991999648126431767752779496857956946899691223287853918848533226819498346358575349449234166287868797522246884397239151457975741519251354941261864779814699174124138154456562547925894254259461863768993648792592861275481426491656456619478527683611148179619775318868715645394664668466325282523318289643272527873619241659891939836789996137624875778632511513586154142645395673248912242282531935339583913579683462565674725718241188389525473528665123584955878877694536153314169579727113588365924367862182487234295816144869351677253359477199519188682868883841555679627336276174832116884267112569429252767365656756324739439675426429585392655219741294146884424955992512675186959968351848181475874125261778353248964958755783278579886842567872567852526184291156823517653329475259312911311314886145799122157563582572692512881494862774868514642799857997276216582658925654128288272872678298736881571946337256953239386194857435382475897613298491318827293925354579968618827656667547257438963219186946727472947682496939835145943526297725918676715318279672175337835617197863334853561438535156639289788464796171327348991485957875743578847443464987776815499976549787661395621928695385614692144923668687149121889217756115119519665523126927995915569169571411377719929412191571927824869899826577467488496444435116383362252799434163893437779271798835149318141546835158724631691483876796599654235639492754723751937516956911324686626882152426419258754344455723384852967189629534398622957417645129315814765616145886971612465876787276542892594973569521657123791318942121369646983835798491659789573674691555243416784523577346283541898844356577945386633366873227195988293848532168611845423733332719538712554559429593924396538799641491556911841789972381942611555685738228392369256375367437583141493224933258963581926758417699629941433748434682663337266825877769713966799166233454169751127784754958628523146371786649652439894188841682995423581945991932891219983842931472718792289182352271269443445572552311428325541767863696839377411642673415958124689848432457188242298548833733191974716951658462571424116369667664135621664499646577976512467223515165922351214761448998233944285672174298218573617496219582888446443652562218468117616464643566119364399329955754425959413659248264584414319674115519449793527423769199521377678128851829172793967867818846593394189169156125312188778442991211428323317829348446193846135136177797918788612445144338939432938698398966826151454876568492684554362168548243187565911849918352568763427331647373773766656461526372523256298925283557122658618226377692111912421666367532282113631389489479621676213944152252513532569417468425946129424539579832868898525457841442373726663554638418359784477312448719256491763693338397644474497276182621676936268988641976396924621672748322836734578675384985236283357178262743171837356734245753168765572554852844568131343727124771326569744927363156979351942328249786759249965361757771774885798775349253248654628285252549818665288193316271523441845998888644243842263788721944927516374146541724831197868852154893411724466438612611397172386565895866281713573633652268375831298775293264511664939934761243262929448754995151443235691615829122954729128523556767227377657549643915715457792378989616361915767157537172732857546415922922498193734441594778423963455556685374647879928385127313648182549166319896888617228938282989133938559438916776387169877864766948783525496962689285163849324818666927456943291118514898618198964546382775974964724192762551346789316473869256527816172227241719548165341255796466953164778847691495829934413137533839117881638677259943372565327599399987841786581484612857378927947835518486134162423587225196878552913641233648779918628928485331421674687749527596458249987419551597855538489138764577465116159199673125963865629966692282696685442653148323784679338447596153677742945676934391323147695299546219384759342762782176645264118727645999833998176264838234644395158547521799695222694327669999594247977847787398447767434333261574161843412131864431253574789727132295445548523865769117375356969967492845686862348239867482977764593687945622745568455173269935275522125676741185929426632524942383584152714623214245798849243361628923174545745258627481313638679571787931485789559188218361137175943734662131884881792427539226618872236338326614662894555466926713825447268727283463717233735396466899526497295439799413665284629318261698317749728768924432674694319369199763744499389511678927457374174939292541358319475266899626922315134387421131167573162922614835236544274387384929126227376658171625932359177368369871417162968929422557443179895772722427513385225368913399188554626766316535946463252572478224675141762424717443547694831632989482557588857589634384665727825754898546322159122449715277867422791554275269269294264671255986956199417723729748144491426894598197127698879743646986926595845544245895572555798386777416891344566145593747216924591222799724169663122475986677826947915976372137447565962519292775465863578681324169565715633691126512649596518814759129662839831481554392943723188999845928899937963481584855143832725116895887683712759134537811862473951439186357522424766447534551746778677291852984351984735979143529376986161357683582844331245375211899495319167225399623625153473543462793689419838789941436672836161131397137919878761894351533937139968661461337994173497441633326211967892825614921251984846257768754333524975375479578761365122895127368756182628555331366778747359975749337399245668674259124637524996818648551916764177178331972271751614557448114411118822828135119178424267957397496288269962552368198513298837556264989885129246855785195876631346544422813735419877386664225238872312383564194962698354675987874985213458857244382117464962647835335571344966385586222417569343765322245539157685197237873816973594616958953611119733419688286335684379164314424376416365272715262589384615946453893528935294521658586836431856245486379688129183731424946131544982597465266964346476761264318595645379785381614349896821331981344772641168128331311791714892834311364379169893924874954324516826842167964853233621814346675256829836622916127488368781457861443326777866478116942619644329452683359845573383765936899121965122347221757985152644312214198699823544498286581754965265574333315557897715363427823229666998218664342922446678348559415893624479894885917675398144973452722169937225515352781585882127277473266886445861138186563653371918224711334819812618253418735835547816939211181241156396168631985664257267265279263792497251357613127633348855761149268874797558748592634429885987883761149884557497461891788176854229123191445964719689647555949342253452586982342399254888272196121465513911135353268537344434945962513892914338644486919442644239381461551874636164654488441854862817842828182787133461214288664744427518316584276423332651416871112752682229537268381555585152152227264486438944872826363767962174791138651454831912537714498695954856611745126116158827157915399674244218699399894774589169588355668988847776656813351246185829476364147893367948263287885475212838231811236829636944522948468541253323435915868442784878614468483625857337822656714292843378916267651364845199769978242468258764427544728226273179883928644519841674955766463661448739693943826872266632367513556338386478759347552115139861115637445982857779315514916993893464198587661348269619199688977213692359916138754524414373169879129154144546312762293539845612514327711154784759968222284554794934694799157433328131139484743146494762657388519322225152436629168434578295146966187582613365261992258178572967564211472697113112227924861956512833868918629929141732117183643725911892653444447418528227371642133912167319643273114915643696799989185615668874185466829177756644542913558336734269742558313856219399544366839254218353173448967886639156638453864698896121715383955749213157334582361852722259544817837131744991126192264388231511193895869267269868975293915156165434829724549425392611811415811343624595858889398469459379769793145494878755575391235153938916291539916671226645667162355144644696577144955518974689615118471731387981386736522979739231877939968655684255717984856878755458435198557862332119385961836461194493347933264365183579552278187436551252467772381536472589396928573487623389427458186244963664411658319538378924723436732987327473292145872663844176548636357984293396883938223529273935651458667887464667578729646848383327173761416762427389252734552774471646676252284912726877332598735789437952169449529987619758521988922595591435365263823897748747528667126157564879262459113966526372872476222619515648558745295813988126638777537172836699127697775677239887648236418967867516273731442321974887427213977627244416539661656135766375563225837366819774638221687114669871363989569535987898866567723699615893749691179758634269831199941421684633649514366582465563367497365618772712137675611157372811637287963124225973333447165245398815691992213799933365961474894584143132332511483617293239619957461662675825753994613934885789425369536996471769931223691169999435377856494459452563632738526459865541288524468694757838789424291654673534878627193686543464774749196239615576265533186323689944842465324759466818916637894787162217538983928599381842521798594513256143334163991974215284943393617192423729118915426835227456596215246527428228748332632476825435958519341152716637791937527961444384117212383735414496937712756164474273399463813251743414578184329627846773952166239569716513845796479147332537958884854394677156683687318452956834298437885588257415126951154626835677446794618247759234347688261637462931381194768582914662587549274357375374639487567733971624431856573989452389136718985936378363711198833941843413282684391925385384176351344674882958368358787394699225148416784878693328195725164175689439998375134366175645941358896738637354757273789232636751448112854588863661747659713277221121295643428674647292263488191191129463795461724444558786675574664511779296277621865622289626172422488488915766642113221182678811158886787253716816238236483374278957625338598288799593931247664348999423352168747787868983647962751781896993866433129817279855939987166655721364665445152137518496283747229354691944548531382139738892513436875878221174982983956735885127714379992987476674868431818211879297286284922578954686755576443452169677178225919278833369914248354212898611191127888125995319143443623574583583252862452872775128381527776913318394539615882374191142718298529458711662959276575589649469121156825862965872419866721647458553934519696173214988659614339184276516465953173461224274497395612252787273478615636133472291541654722438664524976488725924977832283335181432819357227699886568687819317349419343854694572136784564394917848762155495653755433769187487162837921561925289621886884522237319991145236655516594163315527156945958572236576216592732264878473878714826472183532614721187824191761142779867119268539538319617684686744729329236978932653522269527291452373385783565729861176927626651778196663729372257164655316862938646382563589685389643173748741584223359516465883747944217971939439555395949417671364574262164996841371664594251177525841946335819926983322636643374657651263753634321453596168386641315331595657979124363868686241361883822387185175311686555179115173355473169467988147782187187484798334541576365958516613312149329132475431947332272643973167998882938461563295392465652867546334417253198417826143516572226658178783992632323817156794825588286145334596527797413973353792518213636974625385915292426685744555817384745262663172293651924468857566839345491696796962163399973638211134573432112697693922728981781783128362472621389571643549517475686523668719747684748881731368725466521382355113476254216232994439171118233733969574994496696938725735547819185932329659217699472944497277175568698644655324361444773589196643311164529841265299576815723375595591941824849359115776137453892342235316689514423989583116485628731252829769191378336437165436388413473349257285996548235677296935273496321927527179882458157549155294724716457154842965761424219738199471915718182277743774195967757683683943851157731197596981656224562665859845527536274763817328664721394288639472888353524255819272299528389316484218561865255272382334951971419821655632155562688711196182123993958412415851918888987485696786162893832417498286164812379957544622714945574482998368384388923274445737284513792517245652453661194576384745914944566112255422432867486749138422766467572113255221958513325156232867514714927439423264485881313588229589871614535751288567597745656415381351684168166922562345681239558672631136832323578582139952915653825817481522777636728623712367448938657718774536987759928144777669424174951493972646536339516252194492786824292265797319369885183422599179489594963694521597895236285282239978465713264193772275793211423319254625829229486683163383314545358718281291937586882129331573918778586585588336815916838776165932789327774596267667249916512194161983659118624269883773314413718816162961722248126382613933214173679665736848641278338632851246513478841425278286929771855868518755537668176893584351435712653426878624431811258573595976121261747598831921834671821416918924987636428319482848931861541233631273713543471555436322456469521537718952398352785426549176928961721416534359416846381396888573535575127432363855574492971736979425825568684778315535732794371223794241198464284746218477715716975498387233541814424362931492988437255967111181532857958987176827532917617525577652246934631212864854614356793447561253526626782976336741319543299294454995563669382755775628937856299489835191118283659112814479187925917315416133387378469816695396776417838431757575321291851288755475967799664492832841816824688116512171946376468642722214653453994119194621266919171399755889189389388659665256953172136414322348167911875379973161262793234257953534529947833138145314516731525677928912673885678189449112953318999881847125682479223113297337236295178789236364385476695337949649946724626243559997465887579423227788141653888777423891546478789457251125493279891279222858526552267379618934813829731995755481616222272864244536397376751388247769866152466817337154638646459225191585731299933538881645379289678636118128111463142215532449397158658569269285588518951284113618573328234142581331124132532782438659463666814837748251382459583447373549229592266979888123961295822976887736943548536237524533914111689352746988731453184437628127175889163561432456664195756458154543439684616842386685159684489842184842392874993659155123461235333726845122412656662964299323755926519191321385831126345266449731371278191127619612325731363235353269177178738688811274219522946253958755527485155162472223426921125779321858452858186197337829711387218294838114813423145825696624334233526426796836139499968429852264525156625196699538514355229335677171522921689532372595116928475161123315472225431588188669516813924345661882224272969726666356447861226295317713899761326841475169161789318978157923945528565961877844864649554246428861516192178663948313246659182968128617825571764584717362279375166827697944129457728444561497893474133736937853524258694533122348642813594279432745685137347462325315445753784767315618332167287616241525873158869339252257855515228269646941626548453576241691112828772365427871715842566534535716583618149736795379425957319879317577371243721347277663393269281836464477558672388155373598517481125453297954272976313552482139939574674468665752382545664776658595862297964549657719365532287136422531326668514183999452569252792953975539361777167891957862831925392653679645431929913579651752272335592455878768759916872946153266625858236912876667343437931347898373285784862426151472974987667484692961435577172299385773338967326421354812627627445992235932543284219599549391944524647229273481791649492422415846319822638967935989728869991474995975137923615294166941739776166662165866127636832416589455952517614178671333826967595439825965625122979892273777316758639125586176164953151226857421273284632239834229325345921561677884357359342743575817489335493981495139943117354733561493823929958561455655278542688626997298193938963317735668736497986695493685479611373638581129727266696844381349366428267369239855414998315338354886712438249125555943674197922391769993625626171565821229711839895875945496984138519422382374254622114643342635375316544671984346346798923265592923565823829343767246137242681772927498779593879582184696865742933663431378545383481641315887979235477384248756884957988467144167584223535291788173851696299595243553786115172778164112639579882236494994411588374684747684672775224694935172819267632399656813323772175573653679232349294765986154351797963218931954963338717311736716591691593597783924885525588158786756786834613793272523161875533218766358617776194255341327761179845471229897596899324355921927882427339318957436458873365365154284997737613255899677983328722139529281742167445312881122883186926734898994738267346456434741222794283982344158783317851314335495712199123527385515199119442771251459351692329669179979813981995939855894925971878764645922911494487857249635712567821212493432769544268939598645326236365597764697922613642415825547973422297456147216461699172525311543651395888518254213219351771725171118597347251461689514571542948947886529224151227967314368452255823453365669671375196421246459731175481757613639138679683217189985524588248512494261118338936933464722536475415739731553355836163544576113644116979925249621327559817427761161767659163834945681669311976973948793699781165533478418495182375945194962968519657587326624842325733127223853828566287749122244696717517883264899417172873196446825565352568846767475553641373764111634879552228855399564472746156918475329431315744678816179574264991422355466838285176562428825214255369796278986573138269942452665281259776574221423239123247314722736692348669691922833137858121183742875631691671863266841542559713889452329367442657221375429381668584624449273246958175517435489327689923929243847734284726264196743644836741133796194466971368843196588153954312711146633659533722469263367677748751493667618781827724148785468143263438278146937717911778224137333674372265767337936994714126749996333439896418191689169471944833455786565116816865862697781173318766423822511986553522389396626481823294243342876128246965515134125335647961147648442947497981392735187774877532465569297976916267665443628371397852761448937543289713864681721394569693395137356116382741713842287147275768483983512585665838946739456922759937278336781264956529554935199983599231788715199741685187486474623535593373772655613191848365736968528846113266636935998735286782523396786992654246636398726373535764332821176489142661432959392766178251357886788844976172981156664478593281749534921517695699265592342658723675955996554913828467581645596753247626161559842677224378627372485147643687561727338756518225463866529788433594227181639442887963615572214553863472533457524321479827847383478725757982644155982963647374512372746444696881378554797435874892965617866544561315775517884262358718484137473413869498977383417377216417145475551488276894144761462912615141476414321819113578514694754257294744165246956393134483757163672956352854458866279418574379547631165259574461166116863289233786782395152577474173649866779946515634147285922238572457134827477821134741333344191326127499146816819283294437746767459188992472152869178412264749474373161197393387384224349793539855951169779916735947369228462356841845713612364747372384139154637611261429536899536745946951323982987128172542594158442947168255353155951114252547381484188814337542937937341595223251558338652495587279813852363577623555319439976584373647763129671825345287165613949293969159926997422848544994297115392296996686427492345535954554163263661338851689793355741284591817163994879738697933485494743724319618185967627418547176549719131181777362924644597194648518522518486112393657895585958798541671528928146491979538922781524482422214927555652584275342474722843163444998442681998322558821914219443731575622622453598479369678512674729282443586735562487244174242523431564711484839957661978472423666522992129391385842747565617862413592593521538112274931389874115344482534677487585977995781291624952195453989737225794273381242536645279377241942322638756869913575172998612685716868543228219456943132892951421996759971881715398592679755787777342237326396725563739694162737462585315834394751923972277341975133554925345719712988115829727328563853476846816894594165936658414588725398878557816113595141872239991329116742521131279784761773672693594177218221237295461538794843193499119811833643178221889364673912812883775128325137115141496676756924199592333735445838877535919681989839952233565158825567968825813786662784921434316742437129698966622688171912432985938748517393755914719619833921513276136755138628888758732923863271773257559412278154825896281497355568324344361255435815523542376732643967282296638218648883929581745929647756328138782671862698762254916772483284962227283352227323523299327545839152869184385897258367199742235239314112529919524331948812133545355665796785646969853733735168693168538196658244128482763269828123875674228942354182246442324934221677199773917216328963174477898856554432711432953848145472151935578821981133128482176523626619157837826827227956953694755424328992672263865558144383568999421319367483757192996225471261192113148675849648737348775881799791994769243187959783559928177855855111133431136984237138826492985486497631622311523314186636713252779431493513564774173734295518566418437678833299596768277617552182934672463672621296913674229427518856192458511629219555876797346132631766516567477232718367892594766732472927655266336152741889154736853934688194527122284262166448112315652451713414423738935577377497852977156386728991783121757585269357962589152841897219183829335169856985999972962662578751763278252749138925121276323287253479285359361253664671213411126363372796622626971338348579571216543512173234731843667424261372815165251464745718164785911138219514129965427798693952552654364214695491832591251545599644968389638167249398413357716679966783645442145164895229899455442829272625729225694915884738352433249311772693143543921393917241454374359418722955157265465278214531756796577652266783218625525877943493949715912588789551983468241481685555945183859785783828633661728173566954138197465646498654725523767353654454199553192856317858924648793237636472779765485259951414284495158694852736174579464584892232646414778831336784618857346458522951426289223879221115728262913197137745666843754655216922122321934686142625889353763355566677778927521672961775151475829577243134775822917985498435816753466768134596686475723455944429644219911451928656917252735275929349241365366229619334496892484328331257673273144965313893931452163288845953355542152331533567674982765259373836821944187333889277343757664846537532928532829736449524271554196848839783863626351211627672181664447315489742266287247994992147571292539594721338842631129223969177139978348361154116117928214192713619533348233643154745655964134383235459363525711184539825327746967491326457928135467458781554949589619355847649185711677612195943814727292855762222178849138523893164884868423545743636529371659746224518341684157411952888842716427667571538843573567645517687218873611653336683838592842599211996347382524172344194286435356344967686736134368667975597931554751518171774118764441881472427892741538595784569993971998149718872814663132587465653642454324191282556759996532187331375686986914957632411153269773719267756345648391442436642518878694368883336255398331894945712572897774817423932754733226687834823581871511884958331642298872353591576536514999622675784671685944881434974362334481858295264557835967264581713141126935542785478864579827888181183674127386823597945826595282399557958676348587381752399628847881586332856694422477416477252831877499685244665712442878693775852591558952318767891178847124588637671465584351838936619319557311966993449853836718368287232862746445677551734394129837541625699333779424595735236198742793361283459382531113514124898166283219544462515595755256534339957267211546795145518932585817791416227251639133574365593973642673373978949743989324764162324572717895778651859761146542663919961758126879854711623267323592598463364751735196967384914254494149355629672279776483874288527721545916873889855494661878629481345735412589564982347325185114146598938276132319544365663262475915817625327457391635192297443834325176597132851813392511154437768365713516699779918949154477152878357698147114984877672199614882525364177777176444119219169557597124422189876429629649546382139841272369257687549592445163176158165291115663416266399815122716512929939485626342772642152213753845737665226749825979173384558832293869471954835332247555891673893188826991384616728563953929288495385865883143615442735826834573981565944246515849912493966422619555158362892485375413519141281145549365445564181521761664772675127943575932339272257313561637148832179661783799813524861732446317414261237596486727994177229739569885817557174646445743453315242129518253851324757239464684187289139944229231515238164422721547441344655567517919714945116949774716161416255846696198598193161431926967562144514113953762967989972576213216656956241496682281267294724935579264686726365482387117488879217123471142668996225834551337248949175279335934636918363385918782589196928429763253878216596363512521112843719934221931571196357597598661841723134225272262796545274849824985297599925231311843351644625913322961852274383267482344795275417513577694912327855189448866396936273932322444128636551445964656264456667792193865311443948393828252718577677842472315587496587482662318965657785814353172639368523543438784561941264572645461111465687456792785692148381727736861329964643691269363181153625381493388642891816832121225476994134342195384364846157168515115496631839357673146552247187486816478451485142346999993791348928555389417811144622622771795585339867798489483843995272242581113979758585434517896313326464464552416155697937716336567194439874915511968651422845571279511487868318314979199282538545386433119839649945844753894747376798998889833637219574753226842412211888862124634681855156649779988967842942395643637233786753541435118282419864126737915461625646146855885861263745534969129464178753241527644817349745546573779644847898663933667521974521897741115794659833198641737188156729621199454327626488452958643314276374128449192639354559213423849456766581488631566819739962245179645284132985132522483378483878833342554732224375413738576663536859813285317634164337274748182566347554163725122554251525422468181744949312723966372413744989787741145165146422957198363651527382385889283825929627543797659477596974882174664535178447112948687274563678934366673315925128887594749996878294752882483874752391674663249949324492538726272311367623836811632179213174681891826567858329373388399686843822893449923844772998836675158339429643543737294283155711216948979734177458968386581941161655542424622347232869417492417562895846387421934218139779818553633226844575478788582557347182445665239666212979737862595284437883496252762868822598647255497264494818975159932981743458987593932322118613696693666991778437621841841581748297454953821753423386369318372291846221412576697934559571497516699311351386946538973839869529178987912149733276164356231182988787577571532758354778281388376244781337389465389646464573319923281224842887396249784121342233452463856934752275133444557669994949225727973189683826372137927321332793499717565747374467148779792852981941696269896232836692651735833827976583561163245614859832315596273721975962376736191984194553969232217614839493992988397632827839941719171911288377195857839512495465353442451277766352933874923547963296322337914627719197377432237436968989789131792689317159251894488186154956925183123626532611848656241536136435726877539679663426931174575118579147798656512843545433768378924828597352912975317759836642533924663477577664184749622285327518874192857493799263125233545385162472445175353268469862226534949166391718132448384379471833225121741619522644463688515587798291274135975128455513362711461379396798184586421771896166113939868327125464995862851466966259245865667194473768843878473188981475832532769944728994731138736753335488554357727416878871644218532968714137798528195872926246187184953255934765554931223646234832226441932398643135147491913485596139222331194395819548538766215817728941941269741584335982512172653536519525488336658257397494557791341182521443997712531169424283297114364397587256399415345654863473898326964579218157571136322568747558145493313117754865477532394149844273493693367653289832961463347563793852187742959822817832256811171355452125328281269953267736844768293315735643559553668322884251971192564137383126482213382697673682748931657869486596835984641999162854718583422972643142495574371555835673914219264476515943479425897364554865871127766351587418887514959335712723388913162782579329693426886956284175479438685515364696274778385783128952611241576934541717635192293197358362228612165245888386596715531246457217213626294812452121463486821521241493911382526517653771462414527567767895937477232518434674815551226885387824637777519866245781792461787478821596147932545994972998967693375314827518652241537736522372598128419158823936988641293319368159891784565746334277187427343158136994359623344752469981614818511191424385419874118996956437176176916434875761952841536267765462852584879345449523565171845272367415793716148971226722686214429969428698192998911573641251582467319167867956746882945869827954773579355839513172265642623426684931855247187475581955117359816219184697395931579564965788579279986245864256394239636984841648526139524849567871843422794767599112853336172759822164223588338137213524931116177373584743555457167398791799496114362535789214829558316375114715121273552563744677498825335795297294558693766123852633155624232841286835211612885947352794916281298882292252349843567726127635655423541746878851197758361912467817951925492376375931755756982562346347776713338812986459937173197721388867199971958693585382592263281976774661555314553962111336454542117453417936471567667689333677666412632333951196652311233588145575638669954943597628541777562118671446231524752514266233988989746868382333697748163686863661444119947159218973678935412768712193196781692578745437977144714913192579528665429762549253533712912269921776297173317131374443634848731796326923244856973216478853726684315897111485972282738514774233663232742879266374447286453876131334417584499926368976612998481514845483712614139936687665514444727165346486798691248714353587959656178627176945149729143491175131537388895588973754557886983485437155744383169344688376855983525229793922227149498235791298449951919211323927956767237146989764855775786976561136749553149916481746315792347349924768961862499474184443677311382656342437565492799943389929937983526668413852911814132122815694745411141435525595997999178627881422325457798258637336243185773894835459128823576297829918464644925469351242489918679679316769952596322335463353111966887463357496127249685911311286875519735464966779647127247156733274146572877344397919712527279476789226314936464165835175683621187999629822457863255642119261268867719691824619823477677593618384155924815365245482238776136964369651839445869397599376978465871745736661245964714539217952339383755312325729171433333137359277442962984454362394537738443351184381478792227356797469293428536844881559652486945771699832673267635678644782376843792775831257818276121488525187467534897922692528221157989497123755245736785826626632319358949225627189667158511262293216891812264872737431271186395525193273389666737468475573193444843249477332795531368816125368642856783416584937954725325651494587146466914316911373784348387545348874455785474311578892529372796572817485822232289967128144313851942778159363481276987781221595588555469385523639237885896844373136662599951214115783262755261373829167952862262731945199525633815712596672787859733343383745126595634181359933816139357531933572924333356349538132156698791937238562796311253955149619488481184838988527633827322373219937935417316957729891622848968952644274884479141929981154858743796112589827829812799794188943112622761742523493562432738613723873149123255384639753835676847923327218424852294269442898572174314925756139248455498587424521849231696297192946475233853394267271339748548632369772855174481296228982835587693561545152499398919718971438287433385779717647438497275228826558766343224976618457255755545989856469771156626459155421853451245861747632393838833365241565587964127781998271853288611557995791192859758556442649499544233692691766639475118262111954256525674549282938439145245229544285632984883186918812434846799196559647126233724485526999468377822775366889159498859538475182864931467145951889663496342648725117143747332319265495828882753353967231854873879317899686751966351974948335613443122978532628244231525238788812223218952293116428461973651532633843637847147768594582745787849123376968652327177525588956639631948543488519226757295989552514418242471321122795514193947278517332468389391479829318592218159872918735665691672493342362257133224986451811857886119235439943344533176246131719229122564567871234449954565625546458514868536648982977322774328853693977631284972168789956488163412698352379666762539425953767888947763888754329562594988143832625381568333653598546935728919151587534355419649593185557246242289831256785749688896342854568575457561938582441228832926361117542277269917241261944935562551294312127817521626729112656691729249249931582534195895959528489493216298246388687977562313251989391819623242919717443573787775695675536741841819544779147824273631273747831819753121124684111373381554236216271482373739139155373327649361778715832995997812329542215131197867351559938617739674784387285962585529412253935992368786314899836478318434617985221989519987871597337969329918419497357235822862573368299181922751475198678753719136835744725889836245992766136138711384555824885419897862575967647755198581857498267853999496159723223969945763478153342371875647858154136493639544867975941514299884287725188942316914398447756645153624222995125594924657422984379431832931323772253418159336653595568659772848953384188811565715251125172266959278676466592963488488885991585513269714444541768586274763791239456326648982958796312678846759683394768656742491121388961635493712178822486635526654338481839199396188226678139784115953826735654242964421123191392875166648992416591722834133962139545118987236665647819393598692644154742344919363142972221971125528792925315241445632742749731172941142662175127479534616579576671673839936337974936386933771437394677559172778161688261437479288445181996153858896612644279278923522429125319178748783219126927268499391639547491269379281772486226145197149768784511428485514235638236831797565825856684134447899623385255999479755422724167836787995421711648614945296511274743442874944896657851361711827282324511884174729594429499479287329759737934416245687426363271992856728522751364812553979385274358929751835852333476763581197432213187269645667894459616616447557764469423888567893753413846589255692533711555135319539824352377735867937172684924766737162298861347149746884276551124739848624648342314882398734745197982752216948958325443316689188886861971553346168512833489386254739625651874489339312549467182554325871847285196936271927614858278664637356655256854854415779486241694428984317972346686144972595654985873193789814471964251299744132518817976956383378574692556959119779575169677993751118354748638415352757615394668668584856718548963236897227684439277562922764551753442152718942858584685741194169393497557449524472628183182497435554218842774119262169268498139585894677745155171366283913815662232588262566962998616797978433545683387544131338178657354987332688917651953875662427251657461427328973957334799942666639456498228914298822281175221783727256967657965837954149462539689314889553148621215519555797555576854688992744854313257615369896462739529793977317622363897776493575517375573282953979248925454611251777324543727923836627153422435483124476638339512162767998131579769116678591341356421211913868635636283932946969412532512787658191629991194581421463693761324134284964953399331365525781712125432727913232164281632298269479813974675887983391452562477314285361728196795934859994131852269596667466945436712511823998194153528255749262831862953242841345585499853778851837922235219242779317283459224397897999421233391311838264975415973773624636965975966863161699186354514876462859345922226186875519751136662836659141153741337667632534281373838842855128959726467521829955138811874376161931566316298182584264341767363265121732452259397723146193729935546518743757776357552261432334777338192366934558394311342465742564362488989334154474397534997143359587375387682928247988388872216954689998656747551349256844943638986975749323977181896488773935822319783615891618788325182383755875843293573542499121629648913489873172429563612514665528319547434631762718968219455897727652493756622892787497332722394158277542914283351989622893132336134767957365689577438527819931533718494129577424167918687471523793533834871412827417275923864222374657933864945676483864159452688933514899192669297563877712859642782262979234243878155825999854122236324245548626431892382365567689391595849781332312549565111768676725319177299329454218718784551122633549257179194324184862125236489533447243143465854238349862489332566279572817282595428383431353599126964134652891222949272215555456942344619777898892799829455899483516966743523391571552486865692932428982333553699544672247616798839637769914253915463576325783666627393283698898444589912479735387116424574354176334333469342869669291647972369882214441464541596315369965171168269513548883722443878764261265162913256124396331626483798713218498613215624257298836995765975824684893344758468241749295693164422719934418145748712721178485625785788917821394165137235963324882459241921848344756459834165443677689561444368732476259554887255793747882227981916521355744448817971758869656536177193556789669357232197952594191791955424379283815914689639938117982534769678867348717679472262961214478335111845514272127234429438654576976849299696616428759582347784369844763722382823677525648316542426782953279251417158412233875926584679875881821525266478655246774131917576447488814441295698265667656394837475355698717257173538183712184732255723583198796948746917116477492964391511379872646236947474123318537576694571634356849586786116768595165493466881465293672372856686281531776344369878935162146794313364431844279146849345457917337563985979396289773696131831554299488874793322289538142923967477395972351561788542334425521357876354487434493246378691253288874598827668198312939787813129796144926572479291483251821223182595887444479489327541622724922251748362618536468911972254534759713539698441866667654778122476346588337151247893667935836973597144876672685275421214687273412916492959117523164975433939371461991175875535721117659742758684772679156597968969723697752521787854858386182977748197762894871565839667255342915714471651836972454318923357447927354219182778824244935361894484199528327484365577969585464792111952773421737283879826453622833716984225297816293974698769932213791113521299619895364939923133491481542552512381816217199211439568412565596634695214923842875711641796255717167477779152238699653632235616412958635629732591456717811471891985857398252411345915685621611697182719635765799379636288248297814985847323891617579287891611371758142863142293748657336485312377172257459559732687228656276392199114748794566724436299815444643554828686943524856464334867321555837695288449624268582967678624217755374216178384232326174836255731356667254972495526213595111482417152767163293544154314814852181776841446755898294533813286373341725758422792511753133241758182252526358527667632845247223821935276799531187749933336147428411727376328337999973215719531361432158579312191988298679512437559655492431539528427283133266811865394526579529252869162387877843371613359291115282197224999784912171396225225734842564854811291217336847368831295449724195224244866549265157267591563861362785179633549944759398344429546614929972225228574493215456389741142138249751696834945479197151164366979855794486788235124629725132638513183321898799212563434837889649837158136896725862184466245997871675478147528193292537149539226273619393954753162224827869771377537467762137233354624499366484236762437538252475637166992541843429561213126153616223712854848168824834135529871382553637911616587869272634691628774925616675224899815967326478254535986532953332223628451877692944532975269583695856681567236321663869475322672146695641462183149235962483648742311664699887282994589628773647766722271958756854293154921185751321447433297772181385677775149172114846945622719738285953466363464747342782962844553147273898234597221389474657112215932111823262883711657193712821393413473599667847991791869952979219446784651344933193179163259179113671145268451759955851276183983149153658483447332817824422618812725979717942654725416737797677749336296888943395734317176623496228627396178317771219996468797298968687275914671782771415374984789547354744111278244275682179446299825277588485298615274371294823713129858696925875292518527788958359335984576953571611453121815741553941497882138198133343334786742935964632834534336469771258722814398661744296519955823837698687917763746144784688961254893551351926278683942499386419688834967857465323416646563984851634829694339741981645181479753815285945466329328471889825679961568163497129141767845726284288125821169752644611494866474772583164161925178448478843588856914319714696114847684368516381882291961431929383959376226744722831836857859667862798499864236317389764547494279348268154467887595479823462778793419213548127776223285431516365515325668579147657866497347973522843399135138783478998632338661754963875367235462242915246981955241328755457982196397699287272686627581836534644353912919637785346995178621983318498688631298733312618469457677426173936156927337488224158715336844236641222943682494797668182775277742753847194232592356165231548311465638237649889814511822875685631284116751638417858738924563934943332886859681465147938375567951173261845793728132714541186671688893876345516318479733731386444123319934374914641514775794238529859742269559822971348897128871756729945771552748763541253139193565447814969124889932156347247593836626913814282975278712516255337898578768986274582351512116639328275931738445693738778987531452168552624457817179745533375219315269321645435132916558665285925532453417848341539165831438839372415645229143184981562495367294334777387191389786722961476185516874493191238996667753881488838495744843854653218983261298861699163446621975385172387395172131146361832928447744952571187189293729791782525387562629617325333594454432582899646816767488811268593836973253127696263881671686435726413628829577193372247385837318838288961817515633855564957686468276962942682243426853358815441357853146294228459135359929563576252455164484229211645436361518224257554991311112265697224364975381135323333443559198729245532159142562785918353253923847489584387433691991726931223595133862298741181178159643544873275561569343441348242115368736854388345268392435139248664525119437359675414636248952818251659583318275725268762665645559424463683399879375952297551195935351619847714731235443987986488813963756526879892324623311848638824187629216186116458687651423193592253153659159795552216337447785799195259265234577786419142719378377782617119455123752565735642469937287798634125389435897451676578276855617918436368757372429966874468828418241766539267399294762998778528332397841856575384741949616566389418292366813441614697558993619551378584154387447797442241491455381139434852585354888992831855372474225591557162449338411395722959371729773569612535455483955139956926982238178329754292575978863363942253951762636145282688454681983998282257329824332598334772651859667772492483725863784142316381135713752989259645813317446954857437692789595557937267891485771512261238177532225839598436913844958161778521542924963716395579864669737568621712197367886442217573535181932993191727495838958795948455538727825986636118993763256991433384876464126625514769875363315534911546857397846293171516837388679613197827499119316366748477334184392163612522443958532367981397526713163213245431273418196124764345531832144586594724533923399732274346349798456728961163481254479694328288833483269375513627854712234932713952378195535787462732953344515788815523966533168132226348778147927567853395692594514247915728419955721159528658818312992362192997468463313257838758837964962251786522842146738514386962367472459911174268742581729415541278312312218615477636697548971986726837956617145797356999786775436918693353956425151649617175697297957262456996591454315121471289974689635124773718147447585592478626588999456626439153811249376138786585529181713517888892728329278736267964124374142722883524522283888484785211415676654795246354533361639139178536189467871585937253215198815747255182877826318913333633413976691298275956486277488651892198647666483868515923652417475574337984521717547148383333861417731438871849494297825146333263936878745728667166646941663888981567332693568154797491457625322468181341475288658386311962493647445468416734678395826823962324958493232794142861353944249351645473695764268244269553866781745272531916321934451294479948112518651641261253578496833827527768513566572596743572264545296861592747484433916364479733242817756931668992292728155127339419975577523313432693397898422341348685426757988147366145786919932799332787485288815498875355247426337516234642422851637142555286628478971345476551512296352761432367955178525169919228743728759765569177829414394316189352126193658644335255675195593527529137282145567972428726375516257959677879326993935816523962477162139716737216418888529615842558751521283714454232973833316451325276284554797199286368598143155573189425793493391927776578773238437379647975215386953499367589312138892588118426911359265813643745525674374125615638535915369533184441866177537988832332847681888232298714556245936249333992968881999779113726128733654843948626615561372643344926271554747698258694632785998389896859323971786645997175464282161645565753731374764469896223328372717383455472848264253664875612763581725262335942245519777237393541513828941434458988864577216451491572375397731528214551261796634682717146699641451615711771342781849553112165199268639616638886761715925922521436298958529488963934414915957981488283943872657859281572167754783511894979235819828875972555923174242449452832714589987132523829122355189262432689677279421692493628136942175243199716647686735176878562668162271141614363835431918743898684712715765191373695785558737576947117573973998168536161843589184774431727996811653259233472468746977958737216262575497633669533929723576196713841379932288149332213541158728982918781899693535644897792562251439298377237489833211879135251274193929623269233344331333846754953243295421323647869881165739935248557987127361146824929482384696442149741566569141543461587855498692555491846759893938976551188847972411395969748941727372479263761999939415488172143869997893278157158988416322335511599177385199714592333754976426465362989489248597629894272813448863952879784542294272599569713678973959828262481688736582462629495699572287425463146785821971821369226235875312615273664651632768669283678298458865921375447593348366423231166832433359883531765571213336421994127451339461546193113335866866368883814841884482682814371866582261451823892239387566884879526631576556835947866411189376217871927462953447913554552478989755647364457781471625979116714679233758184741787749326216686133945319127492458232152663239733926437338966992794798954266237439952675461959938497282597199732617874299294186825533783381263314881219128516187639897124149451748757658518927769648339732577541315971711611276139943815152895725312283233249852746836432512973413611833147913185668291342338568728781984675763327137162174839691468456713288419292897915386346371916687814634543633322641354771872439199442785147368532546823999931931774842445162913156637917819891977251485991181385947648228217283918947436434552935797428228936326919642184338422882532354135657247191298631452521662696999453167876885646671823869928517352668234822375832812177978719444691323684819372353569255125958398328587867884119355168661144973795642327894285199695561474761149494515383611121879325352528621559719238489571457478793954615741621632469497432258938233582956927979215145677772665566615799399986887491866533799134785264983981678297273825194996474878266554599429136217716196632918734379627558341961732331884964737163824667582587559771658935497993374639478526279936191893223812138482427269776768468346657747849677719425492867684417862535227274844786214389947277863926437145537895415823716334118398832525977645176556717349649478251393798452958513164897651587312332419354349278585755419457977191131155478396133517937863559267261364782521923262855631875782597412871921122338423786753321469991187278279393123481965186212991198616423342453781776274885983173843464798833112977685963351657839166535398598695353748964928691616258687436286591764661852691661275932664271821887142125175131147628675192273151854955552963966617475864981284268553998983379838676152459367673527616413731522478964198923671923574913386246463258458149496577734935253765392616441254184631393785219575194243687782189342461649958885384688956614713646763815619597925474267738199352938219679538228746963734542467569279136987798563258321673819555471373961739575789512558847771217234518671527885734879642328338951392158188777258535489511342136255259157924538372819758772974587993717588832667747512479475724514783431293268923673811657228568727858868275166223512566277122884478265972468981239385893594562999824322458146168976465593949149811333377171676564198557832724615627853559516152451295877849298661334478429924268167534328137982914252172974278184747168871458547953959246564452825521397342195889185998644868949481511144342629627125878155849786837839163325276787363967452321893666671882399976682988722744833188635723843749486574336411772981733194478641488136557197965242214413841594532335879678263687796137391249582723289136852219877579218232989259458451945155822679579371477372227852844448831976823741887595626391484817688686278433519158519937965436984842357291341245986887573116694967193792824838326893551851499796594674756927758227462457586355883349693195878781537661218734122444484694181948982637747419621764282652968953841993656386258223432587783587769759914533147858282349917265731716696948142716624658638354727886436938731892454717551374655233866468131228453633377394759272457983685696522873999628173981124711969538179246434395182471372742838681497391744262661898825989162829858577641856113982874362167247223868523586187486553778874588289465226464162789434511487725543478888424711888711251278841293539217148528516375471386251179422332935686525152679596212218138251344711353756893643343454256971994364398552142414638963278765753169487143336476828615821687151457386999232768341191482541245379987577488644467467415658662188977624361125561297836281136144831583818819256255747456549152343481561331356862344988523417549867812845969545669966796936679556236419895648194888558142798543155675545918818195949733891544757215659148939648122984263316681491755569342394116194421642299228293658572691981599831973983894513756494553541589471558755924274449188434687634572517271763271613412334682244671631347324541581831853291414762724748579822761732726935966432494877524495561533694287674296345613464883338361639947795114647217342521743669621524383674937656361511585741692543951118491145771712858322371433618627455469746716882613749771942794429955937597175126499266369537878663144882588189629545271123798554668146283992853716322323672427882675183482566646377488746788465513912348585159675424277855589139339454292796752193519284632644566491719777443642892718962214559187148925768113171241136246671578283975449249446469462975532679496683126939863499344422974131968626827518485724546888976378374125796436374745989667553171716118577229637999497353898295265866524225287886726542821548145621263684182768439173145997792263288435634719653549744233792827124866329789644888751153333414125392932881744223896892215445736365357536419811989677877311773399725467917777875632418139196426397633313989657129359151951581199761872278133743558552546593583457535542453516861696641388537761514958973334918958523542394969198493281422692587349683622916816545863794862111744793954134615268634713198398372739914317667973835216425244961132923343188786968577218622917899981224423281686424233984965634533534866164232774186364768222554716192798111277574191365276311682299458259256893391227743254311338353166972451679691364578819732546742448574631599615953732794858423556392644693654948291471745585631358413772926318238264228666237143972358449861763578889655257861167382925819876124893756262948944652754333211721198363979952756111275597817779778593771675848348465814584351327966243299663496233723171415426112626834781928541612827957378988149623981872726786866651377165879739928915176654239785713518985858741539936592813782252493281666428362364993173451465694711776217144169468775999945494664639259943259195761241133562827289294178483382767872875121311928827234962379554231317719738831622234529546571882813583556439479491843787234212483741985516444373456625237557695959946596139556771442855489157642546175687532299233397635641394447944412155364376595267622641174667198313647964493819679632639995794415677462712973739772844732291532888514674771953711884156365417585336684959944214282596122542299722281675569889396445146279388249367424869657465199692118136851886418774638374873632732534118185726493855573969331493546955753234762947595681512641885478844156422515253612652715794121914318749991315665711881349551649969743721651116576564577433485461234586551451998643881523759275297645289224313166445496652579187751268179491616241778344389188853978776725766389256179487395279476253624291628543248167795393239844195423474237449145824333556529739269587799323337717231474926898713641419342564343945973464943793167987921977289584969215598867154752433438957894181191559435121485428659544223531539584515917835376131973385528669517748338112548231127445886642682366188988931744755488867329578613121898781854127556432164111762962942718784175831363478768733938123183951367731757883658532724625833227142895869557723565635897378599293373768513374429862452178827736153227968284624591635722513275678879676383554993155427577774239997965474537926311752498175477477262688949641251226365162499146641799583445559562176472521324877946794938473337425953193134491175654147773995646132341542872979534837413793256768871835112298942324854223437992779861251461254385669971214994161846961986112438885882893281587572166155655787575143222348477124119614268726372875187299947637938797123875513688296815718461144823535822352521328818477293297578711281315355377167893512712457238146156682118724593643823958769573178636737418847912393496253198395157621459134834843172696895735239891926739212575873832519172584463545928837985353534685681739255518991774551985248697154126942381269147583471984733437739212349356269896143121393625387197321345859648331633761912439148769783257121853926171172314197873641956657642923439536556855532895789245987179322364828393746914381214683399221346617435699299517636995123133256816448918826667311998419513837597131912783447178168998859141789481562549774471276966649653619557584646593849857542916851112155714168618991875528718383383387757243814683671221881698826954738432621979336247324374145749211943915192914528238565868442353336636134235576379134521443558771323816327774382394634667922689611982513279598626879335926184944933272479439171667571972569863355462519441238394931926163958364799751673796425716718494787514962846794153595855534354623372658732311696954438871395757874128892921971474816593622185762963742833829766246794945143518614877951232217721398683276436375652457469579231259916124655273638862497344256261151652817424576252392125438945948194383824262787916917341235528428636827332499179669393496757578231822444573589346374593966614536518642999246161677926122772124765428616529135272763364442532997448288739631148214439772825914646545327271374184437394474865228863393121138347769498625111523299437738822555221159812321453773625476258313725829619731866142383629335255416887747729785398516777789294635292876546315834564239898797168568646288718381546948827696381247191517377215158532313962591613312251878578173835966253392252572576664421218381876481511625762899555786786524599237177238683772616174553194443345851573322598758356619818142366751797129267932856316376171116671759351266768933562189676676243296221237712595741839796353866275886898568718281274143666853461839517353124933858252418183418481222846257641724639779576796524445518134776757111977823473925458898691967632332328999246537962641511495147279392182814457142315445374887584423511691145658777311637995654184345294397751427146298888243541954374792356498991519488212455539867235361989788838767577722165151764188277954827683339882986399455663561164536183395383482811845381536532974472711229556736719137189643628966135256191663233136833786958844456871469435646958432699394978413989826858322997738898827214934312193667398577251939719329612933932387927764478469339251111293595623424989336972984898998827267618759247969656744123992784588249913817512566149351549617855758647928679826419433476236929484158749616586927849276788279197592275126673263846753211938837686693295651876159725845927711357816136571467953824396798468494174676223268853144464133868686193351853267942245571972268936524858833157731944481478674366827383175278851844272318965491872699887314188162488518314742839987855576974779828558387651743629394851347614585331958614786847776251284944491813798568737311886591618893231292572317189799787246386266477587543654361221178792338844471119663926232254251129152926352452327418112236451442455537952297428157857959584537661214818127657452135829768111766776157857513356448811885686642317813586247561985866744391764884664822435161268545128448313781936316549955851614115838668835828558283177562622121594349932513356265363918169151299524426565791497932222817722621563893359817856439541611471543588767992862546288931992929963312967755822165562465544736622842847512983188445671234586148112295745834132975443444782485395494877469771868391534893941469899286811787862581543813216232111937418575241499442632932654754646386133636765598661853998363616234745998654194869844233848119623986574449738114997298583482343442189412385175464183942169383535723564681188524922395312139371843188356354195486596925127944917325149663963589149531133725116737331286472611613456558729329892623529167217267512956827648628679821826437143783877457111963618599671214827176252886586672832671538648928715239318865422594752793547338299692632397848987452521864487395154216336129816552693668916535139558971562452196165322222775277112817954987277883315316573888589569244642358125445776213491248285918353487298722288618947961768268983232849591727577361156132847635947129979849687313317711884536929622697581548378589359346679171141199847991717555571394842858762761655433494158586525798864638794758281521834672223691567829588953761712784151361529565236184879155226384697614755691214712288182593121489159424873783153261869918311337242173449628823238214114723746469665899751433645444743125389834779358323465637962345645164955333247979295646433466938425729241355131859394836161663494865778713296279299473878934262657124883292718727555732525731985685974283354114768121261644631989566783997317563374389352615692558115414123769896215149389758893693133424691689191694422386165214515757126263172121452578174585845419121636832934858995892141523944844896479561856545124227168462645124641497561124524835632466529111575513159151492884247373834735871221535431569747151777858231517618669282238181795663447151219861625634747546614161394998917883844496779413863379297597387165348688254284479796525373991596139987612929356325866383572532133921781863797318884413669712814915172148316937726146492261331631237331151744315829458464596569662294288342772253177823263817663872299914189294582163468648394671788679977886324429556419128575553419496183614146992421433271624854794382552945534675697924875351538966911195557714274855231646799474164164498178484778189254713659845341689477224581399394564638612935973921522959987897244515455457855245186172969658462712246681376779277784871735462532645212328884612478754727263315467886998677146273848219825145461138738675379985267977868362787791563328746624131826513337495175121332215766169142782824553159569583694169675678636726971275221168327624471837789251847864375471292953381372831855829595831358366441679686768753235164445568284828775633299973285681925361269641417878278965383731821356463236366842759656173356238352898921536121385249746151773498687477521931948453336831898237995622363455458283515987976798486948174318742559799287775343181675372691364598457276842466665623949998134374118735317443188549733623415632932794124866164927879131361623796875176462956357924726741713173568965591585219882263636796994148834474331842719725187667245548431667981163134195513267882335157222819825127327866182769882386997177958559282957555639618636225823626451467552296658618461883453513158175729838484344179266492643837644195978716149446362881144327989499886656159983518685698921599548316761476363513362739529669513334819845461611927988839895845167447329856815816594377256731236869582567948527166493217779882467496642244986682139349817875919749394497884443444466456934423487415735423756991327861554785923653235666841538551145289657959215437973655598444457865729514435866553617166999234811471222554831465725432921943423349451595987833485816817991121254289238726397635126696485486512818732583923776277736464812542523374533724972598171616986138279417848129417557253292799493219148823625645388893112382321432235116456729338127328546667598611121556137958759371924669228179172126638223176914914451372269955156617439535225415748775879675271822653495917447722587174931456428563692272896476525221524547289824183391471817569861911465963955253573518579125899891825322516931267416354256545524595127276768784515139544987438877379886452239561963816294836693329298733844789776856565757417749648412685953929594141525345917862693661256347287689631164654331589645759373191648592517851384331385759786975938878838524542874991476333928412288962813257333623759382473314431325415629453614879787934254495527967529453613999858541856294636422263997356545529364347856228761765955669223665681815671181957822416753664838377457714613787467597163338521447163642112379815654351573433466163326426543323877392348571817313544266629951226845168815874615868275736619622295681362759219786583865426367476834961945845712369446876413139612187979564935959993671199413362459157913385788687834944873998234139738955534381973257534723535848719414946363359674226588731215964794287613838784295743525635112479788548722599918473624276777714772525386435315242414631387857224365794335856351471643669355166483842274748363391345511535931568752879243168397322661714216252927113825112929541797668178683764474554964155198168735622378545971235521834423328991442467312788899351433754176874817853673842621545667942449926395971347629771734281874117988417915838588555626935112491288829619192849684245837346376474365226125399257561834646273719135646247656472126119454969331233586281845582572183926313234337575184966494541758859579681113849248533273527682465212179271354267919237477125242662859766781916796728354966579635811676245134614264189485921964444492994317767173571418718795138467457887552158395326286864467393937715349554483814423918443162355924448383621992333523346541766257582319671659782933257692757362919241997153921212516274349975166179167773863873123629944931446134841696782169369622515897741334617666244341266127267646418431782437141564479171686349869692779722425452798685742465241191267148379815873542915132655754869563489369737189289683746111476422651586459157174932286785723354519557182986673975183651223456796741358436184371678844846979648292336969667974941814197584547367478174829616891981289837171896443248531482161958965848455535158362214152247233827492246787282118329633746559642461584152771972893654837582445572638934291297365439892549682149182984483492118549429554322525434431769998297842883638968119532874849738537322498552347148992288551534367188117952176779478495341384529216916691797365212159664783933853543912171896225421376634727181335534732611332863788441623212344686158328341326683426577798722189683494227358716957595264934132989229531245915599258663965467556477229234624163987743848464198635256268429735923687869596995757262668419363753111886745335798495662312337593713771434866235154429549662391569737859135757242583536482511556539294116562275323475194244288831749148685692123368868262581362326218967426436662547354482316538938735565918573725431767788431233915341831686856488455133865867167681663521115733467969245622337974831272271644889676578931153631123131247391689645182974967231332525448267325179586663969782894146489285926514351827223181359544181999489131456437147355369224422411448441384927612335841752193134167882928419959172556621729932237925916736631638774335486388491173672245797869636867486913843849195218767343395781528218582656565975741474683259211921858113657145497444712917936917981682946639169893172363854545233291384946843621938154338672174383411614378448521214537384481819141119436159919931473192449419423323265879659641677976118859771912326692557411578264755639596586617366529151296811375738687236786412842857866446553926874486154684777862647171725927694832336685951746989695677168727189222778273245734573139745515114935192998212775132424397647257559958247158334636768177741466119994726422244595272968633667267967327969173332848834786852668363975671667791965648117681746462559925962741726271971539683229375265662825796424491543391622548844418571941571811845964925167841271927111957137911496797294977983984674678371961911669378555243441718165982988977933751516921244223138417594482973247387788792113415155713132128442169837516616836231791113224958964935575934627249218199411795481773221613963686586395325383832887118158355513151679112539812889699494329769874932831973854133181929349316182475457544838242339321254164562799134778252955288919114511856125127394118393691499391641536237538256557375534564583536588182644358993521163528765918656555698933632974879121886286132675135827179267444445413831434581983464272986639964484676629857845182587576139934363629379155848345484221734515841293928923496329747958921362845853945846164684558243134959133517891274771138573286489775687837596623188181837145773641197789449192299987979673149314314962815894813891497354558487796183263642923282331854399136715313528872964172285268697591269689942718914219428735693352366224196277866277228981359574689299519117893421132729843789157956995915685836738999773942845539119619157539193772657951134576387336141883872959115899792249767389993871247442342822681793769486375562576219243314472451626545162516654254177498735869829463768819563788285724586853744669845635572848557928365851123479354816252435279852677961162498323683117238655629676273377516337585785418363724672388525255777424982432247318675793545959436167456587691322278657891386228824458116665787795558337356867647973882547995774138841565152615413689733423989282965112595665195354226566644663667267217664163587819355918464619334135781196354934858359184445366758127137652943438353159483818573465176721824146861165113392149275782352333636223228628847149857214339462724335557318173765749461783627788121565294192268632557525776445246382691189295856991643119734256764833839849223713875175947242717181272246167438514192494218368976984217613345986386424733459346824343993315794332773145488312784116395515185418575788125945114414133574972492238597218793292543935372668796999859468237456619892319474143723796533456289739619831666979242491153287785768729592557134157287282499168633395134387981385993611741646498726228456134243642983956819448119622455967462635714197578422222173217692347498879168826657767975285845168698574581361926692378786269666425273521555536175212179686552183581632776238736246343191744743171943111723485999422731793266364358668729968448288351229535251575241112187812539344465217622559973982279851813736162672233477375462578454433615229276488625342767824658992152462488926767291367947293972185222359149716525549223942138236736861774633284537558731843645327893858312629972525388371535946624819639871666817436252294688249621472359325885627232241699512463499534555833484296329479311446676537862355583992623559479513961413289323762969222476312242536466775596863959961986516611752488165513298584368467817567442571376736945883229954634371993159177648233629831625187414493797694356179231292264762492741991669984681593522737193233395484558446784744984156855176395643177911588762159454939336946419716397335111215249442373956497267887519919921324268394579218834513152143134166473292559469242492616819192597934344487224927265326895794833635948366176378983515184563955397681517114632529879267523716236883833632994936992818561722333822195357535838417698533595528899998333175567388956799948471261149872178523341926684576314329223291396147351353821268888319231539558153878993174288966686598531475379456245442869645292841683639256191694938113865375458416668674272222625425511137453393958715122343395726275277922141425395617729158421937544235349361879249922826657649393795127843921934825885541195124373774467657749929598152959551867145462936699581531224328363339933468441119857899821252166379262316231332126895776799796313239358961973183662928688666187319134819897284538631588344942663564854733449773545683317799845981365647872748182639861538412899936488265237136288165917747827718347163576278786582182654346816731436674291968526615869392772454486833241227867437713632818833369752954976743385965327497379496361456852416635131653482118147663698283423975388343582682585341599317548835353187345512669183143173726588924312846387433431734839189638539851134752394536589861769733665558451816945387835711777749985331174255647155747317384958746369365679132637292813531925698324149596517679379569712713263885388248678435362127877147443631149852618441857957644347971334338213373116181786449774461593825635842243741818441317743682862425997191275355988128771938924254534333459865353144811893685198442765999865399594874863221529453528817884313251638923224265188331229888218333476267477773282114125984694436664289816584892892282661939463138346327964253432549616618544656579991577992233377137687431795242131188767789996797455187156571673669436293193652386785591146193348272891288343471138487499998222949127925759185198836564553264467358951534523932714359694919345971765627168359311635495875798284251612217132962934563849317125449489519213318491846929749532174993853863183822816497369323319618883159467649728457183915236195973278213866747573361652974573969277988264837584729864862217493411199725288846226183567587226565555436844628228826163691422867413845438879682363868227158234964148589367216232428239835657133437275299829432563274157422214456263573453375421638134874884328834271425652173244957333611932724131163626734847333954295287368671776838591774516692922339155822888562311377727477467588484874952718738755536262798347265452836916878654186682851684291744827527194947455823197155574437828559257452177557756461997331912756561395591156721465454276366331886915445548128955598895421944932621155498389283522311842836238379384734543449692622694877498216235696849174133194364642379191693962546543845144559713839838778174337871154557882863144926794611923591694848527693896288858217398557496879722471659267942753362216955542513549693519113377513714419853983247986337237463913374713576864168766388891536726954213469135532298727496548119783914248142674783454183636345294484798591658926161568721244753181451199254145642587448462737944178978994396851818533477541243549437327545229288941276831934286239841484895714597514297279486198872829289669899658957565493192888969878834713566452917547746723628596278538774499599233886468628568174816784213952864143679439386973454922322526692914361113131627843243375426875975392392513564248353669191677164682722862116528453599498466261429681766867428253492432277683734583568145776489738852969627989438573487843381243137223285873615452799464692626828539847324585921288115564535116868743364711192118819355697197573436662933941142832755214813569712468652745848831995516887143122358192165549332431871558153354478167373737659682678613518733968765472643397255212162392964168925452415734448968154274469674566992241693947722637844361226573172275335617289431924349342887294211633174782624616938852841649159122318676737187671464556511515395425272845543291136479131269589122548622155364376823734739577569513373578914321812173435381927867194332122443423528861278378955653175277321553615479497124917472779286817942212649578289571226374292872466576739676494431331957276443577135697554192434556542358882139742291746244386531274398166269143242225629158719626945842557459764775337231991852544127262917963348761473473466519812527797373596463499736872422492552211947176712849812488529657791822994612272355235363124979657739838188216421844269461857622475256164864416578783729794445582915511987426863631912861295642632282279822487649639795614168321438556436465128981849311616337461214747473875563546556516148774794268895161526769314854448325693198787284244711631914358169528737585393516987939929444351283954792221561168752643677892928114472584539645411574831529591491737976329283723769142982941961143729441267539785777876969156958239154178829697165842337232637549445642513562176641673385557291134497537874981634681718363962963392955732228271538699424611715925121574694492553312244515574166666624862392346667871229576962428979355565688353829721777352494381124659128732114975152667816234135599591264463661264411192594916455393318655821735256165215595139458689534115977473988598848341375142884374661318517446139853879373461787244364124858451335512438664641464771282556381313754996652925959337445589117148312691255346742774497846747431261329333757439587836699263795791821654928551519281749655835214375439611466426324288242624944359873833868419132549353425727952938191377127128162977317778372554353379981681496583213979716951266594382348477825136423483876993532859882719489892433661847546778754631891639518742187172814372146498477439389153242847827344347777514246164968282366956679994661319623128415233449834591589845866827238969481724617955193977453925636423269232581175574751495786248771995817955952418774723271784552431929615289339296567774843276329311371779511429965642915132754674791658518549445888979471546793162227866611544922718555689269474575261829864255225969527343171537943913989293514919842565872814496796975894144444426463848128468926614292585838258885978779514315856264313774588466843529459888364869189366615449914264119976892277175191661184874281599387966973779268234323619138176114799386553469282594854766553153412339874119127277542826461665895938815225226833566547272137617199979491812494539273879982642351247177267395657564732729773997911618323933497133595556433622313473214496635348476822565726846174294533284727455935172543126624133485593953687171577529722483685922362556814411467119171118276657873827598838863573461469286741427619447131917264599435443916848617532344344959397141574764358918751874297481311113151426849541414482791348457357652684157112141479537451285911664713227727822857781435443933888269462143724888567599933215583298224226586765691258142451888118739141688363713737631665743644315219266981352514266122685839369789694283216357763274432915731618458875985629385592833133515665499276674235152592574767826471711717274576171218356712494839919961676933639549474945164347346232399883144998825227523957571183312389583871753154896199736745975183942228382586866464447991497995287299917165642387721419349937546355246851315433194123157859693227631115135567766168363147816227779879383728494189825129719311977954871953672971852453322242348923289373631738613748978183215886214241584546316679377275484863484786834277898356382888326693939297789116885511138216947596778687356366833473375186678327894653478913575821148646194826514968295885923493586341849222662967765253654983232845828739886972557162326623935198681553422918162867989541742232989134466567362457246279142355453464781235751985717215118244578713261183657645115815324227574344561668823577977467877399946469724879652898495149727546439965936213267347986478459193735621993624848561268795628537781241231482764419535393745697366379382231386737678917262621247864683714723385843732548699723388746825377495989152285954816144897478985634122927946429799393672318187549949132724366146155212442149783767779751266669264675717719677854512365471146853219679339397172432557994987652872837651679377419454143541286373445299366283924768273425434969393712627244526882698839361657475736887411852439588261186231877349828557532564512338336949915639629355117254593725557131922584335361761375624985539132213251674188944971442621154965166481347636529817849192917393799337359112653534227116317836216138763563727969379871581273784285942197477153979966915922389597182192737533719795376677884734533632694346526375793358837399642794953376718345614938792421474453747164724458828299979999147472644358621155835645531421423959914438399494776339772793734928919352161919286799765835197498399214311299216786652235635474393213424442453121574776248574983213454686832122168426931786175475519878559541756688271148744272622597342296269727435448292618679728443541157927751283992143819761694747842434298296485599789655514887662794113812441991777632183461225384674755989968945697795941941578825281688574368726486888872828799217264811326177626283969251829839545835955553213721916831911784737118584938349599691273263241614214153454278928987184399523673983388523839721518196416368535723942773964935165874515141883353556624729212617984434827895129364826287187248945377658337739755236743442156748366931753425298791254588694166983574638879288157152491259555243399652428447231846175198943447666529751584196279686185877211876427383339649347214812298999975526344467431255865335344233121562285522253277653266598812123168366617632948692898458238449555371932694786655635569372115969586588747915668121466383484868716354126726262963918536864241811535736497913118398241726139911963426165755955884688768362362257599994578963459798574499415629368257594489523593339667618169885619348577528677911776526223211661594452983859549525156778988945894328326691544394799367155837317647469918143361739655368642473136761651444571543497833786832124699554578934877117788857528621178923371163549249896781423174261853289285428232222788811927434319636544976889999158848831553884735388675263142957739521475653926434299595899884557497444818288721138988457345681221954343952822825613547171628739624947333314585954388994855718679163776916363757265853338719566452629229645829525919333192947573645545499789632132144243446284446789319286259251444768892519743311231148643667681956735885657978881994767113662766339627282868547536892592758814326287894971724576155293367247579197766163135562966376612325952859536232443879165682242253747822764277419696482859153278353924181517137977525719795912745937334374176764425974743233496998521947334791222518872294434912753745457836838988876985326627882954599272855654421998439189657841381296372735176965797695551234343253879842458844412171625538843157234128242926257453414956739935546847669742467992332636298272525118863747873672694856474272323734619973668716974459885212334597847634871751247673449869183542125787165138142799933928817162262739444747641819691872753458573636468832595575434521696731577729465257395742285536585158114785612126736391427959697192791178638829393912852637586275354469111983821192285448985593927352263242523523649273861411691415629844976227481396662612671791253245433945673591147217363322446648272365821969964673219531664226124158529525312668988821876188679874625566185141848619676383931827288733231735718568436144436327135787199163543388239724146677479747546442695833645516891557184957691345494776938478968193711286856878498775377115811619878997572158888655162762252223191988634739697351757824948149348226878359299735899571964778682494972715715587866814889255924153441411871428114684963778268663885735712742542899374551275131299672132295348438345681617298118974177286719541365824873573483271576284744687623185472718846243199797962429171479825975868472682541346377384331122518994722988132155673391623624764552933921713928475694665826282547629821891182928378633114613855517589577585766584346656117282742479316963439177411965555273246363293788129837566552997494626253362628431393857582682222673297433575396335419257416537574883424662191614154168798331887355596963961921335531499233229845375869155947969521441453564537954341344738324265299324579913597921954426257563982813259149388961965396899445732813137929847734729237716751123393585176169723183996666222233452799216812863961269825437559894863773453439625641522165728587973241475617469923865961321279866279116575212193388774716823718416326853473572698475845427686427848523759897156893476897556187861611876864558148364953598296882833919484839632358633882692278349441368631592627479657727823647689596459388559286942713484647484444868886641548143113242594243665851629272326228338642792114369753795623744245177831189291526579859311583896494186175984945473366287235424153451957446829267382999692133437761656499861775413513463565817563627266942818448788834171559195357162555645577445227524468467883578633186443276688339565411179327179477811127674496342872888719426343923934681829454531718478419933225317666647582844795643374265477817563127774847326869996222758538283484159534155731521241315158766993496439744297248262372776452941389813876285718534641717352455463444521129499353696666481524959374535627565489658125643684188915356697334872737637191369668457872441164441512265864978834667444577573916866172557744536892625962618999584181225899152639881287457136874371383862666738796723447159747964182368334895665236571274238733222337169349884397854851253934336468164987766285968234149332755289184473157665251162376298363671578916221877382377414924848216253943554631358476225516799698213517752124238176587937595565375625389399613419967659318854361733241979939379265819738613948992315212194121925596369229413392322732839339232761387218238358589653645657669735853562375299937982155619365138593858174583476154268618533945785858755183438944458218951354721296961568692584818638513537818818315351119357538389131473142923753177187992644462364391594775958255854443696932267586544892286191675828178561676325868347455165922593399155112743228942676162664792922725326498619393559165311569751722254873523552715612221277142214237595756911161531642658452553875625989579675638672745569715881343731778635287954927474443721855127184846354938429965389561635136634917542934655559168923975468839221864956312756762553749275958978955358879144518754926843437214999424219994354129429994246946445275585485719111842842244747361687135663933833827999114476193251753229512685975665664912619824889211151228615272537826977867246156951962723329462943629294918513197194265587312416667586977727936634859498128358814652348891582244638667367182862216338118156161522368984592678788311111916422463588367625782559481389371912146393129771258393231148175165268787988955969798919124721226633591299975471359149941312323986235344222557672575458478599787319633944989746882427164894773483456559847721319432236416872111345888663334453495497147625825848326273416741979529223974455837658265314977965816737924357639384289528895681961633223647398236545486266724619762984236855767311758364845215271458661356723543597224516826322457214237798832181793242723354479189312971754852831935196321757666575772646112294287696128183847485851925516524932691291898183711286276636177561618627717515875883491852468214264116875524991568798773928738944455932473762728587455536398293537928156423583349964427946765917699513944182325292532236892382142982165473593913166388967185188366462819158358664382166865372287624883788423278596693368694713463841118849156815464771438799945227327182986576112378311271974395126825923569159276197194192521921683974238134131639339648781672639826238831334386328271148195158139642435548777387114117915411293156397732517236845345836365485579199762722524116629113648165523422387458519799451451614429979111238864693573317342413634529431443338588736167682811164415456391512359132627275254251581925553594628621872489794228266258612951212163939177947358975689348433553658842847631356152599434277411775558632385318814953985291832897342184211641521715983412585664387576896859991951558789936382719366735428317392436114996624785519283523443972295715193764922472489531864262371731231495887834162824891395332394416455824516712892371291632652982615186436916184311329472546634685183625215813133253181234786144542713223683895119498411778372625786996254444844873523581318478847445959484767144396644665391185727212159325938347891256566674936747842774365199878882538184487941525782927417494172324221558242293662752493232448569861826739849195361419622765511487479931815724149271142217667785422315475847151167151371836594935154472855569565371387379828111616944138674529947965782664474524928329176528422127575641876217517249246777618718356719786396946769572158898668584163832462955529476689569325253559742968953494442998834765279524387573377517841938722186492443762429645376961954824823463686963994856374869864135515859117783981355872267143445895369279957245351647753566799268685611515228744616381636295191869219369889544894432574982582467477393171133312743781187225361887617814715136299577566277793672442912382884493358984512261537669761998176496539417867964916663648627424154595546212897288854197968691994344896416586294987386972822721245513143681291587215891183153167517711968188946656946133338643374843849638422966568972393156363657931893734711357254273467994258841839281552686391617934632946811783692656724243212895156251821899159124674997227386782496378456362163539829639358826864482227733848181162924838611195533734396579387284474767527425867128358995823642869345876417882584328116598862947861246877455694835626375151254829843529254713984556173576581873756897712172369614212368997974257637317414439481791725614392526368888538861888857737288618768385263915699777442915733584358176582673142198732923484643967865593669863152835927256628714489828974959254336828533983853391263959344158481152714982276584699775618993741745824213329867226184544333596571141469671567388887249563722478372317375421947835448485657783429631356787781453986723278836177139954632289335423894211983581292187548757669111488718797155964262925799455365384253122726223638721288124548966371573744355618478397297541347964921284518959686525333987911586887885236931799441864242742799477155567958137961945349423491437932477172874569653176117356378172117715982347182399899614242137147817395418127346125175589582284965583134834456968564192849858344792983365619215949449513598322681778994564484877891751919722878846636971417785564538538599586361823429451129675828661491448164954275129222177558314354387183377784295216393147868283521118344893321731358542236945276276981379591654588422444136543168757774623777934756899192745841725473744991793257746744818482463899962462531636318863243871115284271426557521131825139326225743241272636476489461873785296778173281353889426343438686116583489617622788639253485243844482621579232399252176314717199428561627631759564761371641349371136188741795651125142996129936948646319379644635148337737721313156686694556719213936698369389584152719955625646838388114122879273443446898352833651461653749666989323882516798944978934217973661672859111678462748632142749994152236936182737891754858932812295218811399571351326791493573583993873812658773794373492548786186364434599466646973392455334821336568927754317814123257668949161527317183412191492617374177963125645442572672611862578885462752125558695862822996144822357312423867636212393483976356472192233518271871999336433957694693815156863951949863485681349597877372767951944829148596529468246853838533625916919658399245849414696448599198679544363267759581948573322229167811235552116965158895126236232813925569669265659438838351863154235671536432995838611435421725937494445178167549291343775746238777211697493257176189356819323299819858597692418916741311333542321296934794824614377317329564795693296655936396613432164921378748956412894433982224411891717671465195184436624735175244115772797297615946687961477771172658628437987489138724751427434578349972779316318179545576118555378365331252761678612157757413839655177283269325186189845675868732328137253174572189153521185756978872486583931137933283282657334219247894287188772188396461194394228996215912789877797343231661971659279769937814673395517673559614631696487157415634284939285955418456994799439892299482481885335959648996749718827655883762283688542232815766547292671846954312144167347723256875922895489719893318943594728395886975393363243463246495767596964551989296519735958587153792287532629548178842436275871949158711852895692475617325792795699469455524873121479282669827376312246676964354291118274245873483595153758963472383298513989127477873146732968186295945333135862548742314591288818211733946412465338358787616576296267559181236648463131781348757373927925927671496518677791454182383973465121151591456125951458476663898289284243277867362397143599778597515737843629345565178437394153883255948399224651166997627931298423916724746111116695446949948789179551924524624383727419394962879723824165526833214745754141326187458664115688988362625938951547283158358817696421483875768713421614438319877398446733287967288258681412287917851422531326935749587637745536291233374395987351398861625167676788815244622356366251323629476843624137489514241756677947764347697999638588882857424996673995645444397144823198738128664862426851268872253451222813779955276841857634748873974265422225732316381842294982268574916137581692128112232628634581871462119269272973185146918356433468668665472677766379769674226452218155592657323849815773174628748443882946677951832398696956739463741834481175257386936522293949214286624521125752345887986278298416867228111574797275863479388118585215915852229936312648565356215524114588519593133276922556166417717255995845946253744889574215885599178662956569744232178589867416323168264711684196193942726467978364189358426615225597569114791527835669589141552892648557837869442896745748884873936672443139153143725189767144336983127428214317677976841644965553743375185426163859343386572137391637135566252437352569227329958991693148653785499546557179953852812916871158587531175782667942222212779774632275272749815498598629787655896124541615475824673534412957447148482432768341696848277373926529456579654478436991718545725376399847792238861459421163534161589572241343128153994891143439488334537561762557745224127459487119443197163317979482793447365965898997692733411459528751477963442331881153394327178843889665819921998914222454251924312258637529618497719943347348658863525276137766536429644366121897139556247824466997851176768847441294617489725314988995552335969878249978839259647426871984578346269145728633597338815993349173687572153815164876555145258165423261264445959326771365789695125431356789184115672717175834344777792371287577934994682174387754534669667325997496763769298874225571537257557276752137937724134571613227971688253364957627929376336548235282997222617278859867388932754162351972223728613589328911175579695681792964835173994684691148186554524619172489678937386389187622973333231368224916635253151713898121233159861251814328523592662562664878754779848161812259325361416884558934798614694798619244274852196978448198447616477271698172179777591398132792429946115792818775524443345414646449949418587364694147362892155698592332278784253646362439544984832963169847342596122244187585767953358132845983583597916754139814238831114492741189789343655536938621721951234222179893257611294864826821823134332321526286284469841422413616838958991517125551335466515766348133932872582127159575136591925727991177134335939877478818999369959956659872455332967848526553447321975862886318415188839474618239336791789319239637419446796529441818876715628581319243613253186166943524975723642655816122428924497648935487651714394885916796245889681129773644162341731489982561338339296558754976848976865992924856755299974461944731416815896279635154951286269632653232629236299693187294721763838932192115634493781499851826198882991291553892151989865846546334423432586865959958734227752283614856984568954738591812576695955338827363157429268249496956441863755471675216113836765469993978344671637157758941516953952248962329471975749523574268352455251472317395768611856253987122536674783523978738714428617218461827285435722585456777537247973963672114584733157625377981676762128229466838133794221727875549642453298881594764276257833466411456766543682967374788469796327351926469627713439616443491932656647283153824146816551681773837482198392672976567191268145318155144873129396951561566478899593197584685615289225271817686546845672849489717629246116874427891347531469349991814414881223892826568694526525584825213224383464119768119641288561161271518745145111811765763627514521661444847446326483868119859211357391675317849586651462337257273881958368142981545671784498124293387914827116959426485724415724132732113713397238766237567947231212392562781412278789436128831849179126394234441229162562344428425226844247572672477533756997729241714228775723959612966566236149191413289651845794989534146649649778896651624194482444837491364222199664626925352484767316331742832786147638954282547277818872955123736488373681734441112887982484656284911158219544554623329557812429718714634578822273494448129259231912453798479586835259151975888877812161998856537843747825392979668864844538161854136897227415269145528862667642955533344974399213654538685359434776191487727737981334282716657934533461231794482515833983447139461797698777125256537715159751686755315182773388741511915878847413933431517826588548538925798438521753813575924666418389758582333216476623915371812729584333446665283854154561551513462893936672189365678115169219455524725372489415862672167987822354526953189131615763969546226352693187386287247613888642354878927234853462975645823686811287969682156372478742224582161177753521515133261944165492598495169411461952268161465815154874289121155941256862898478872258557568453746852437515243919133978614448623387421162684775777964814148819228859754891277644339691115794615371255635642414736695695164324851775328672623175544193588811195262683441591697242549787668666172249474423482295248915762428125238265496634633946746212342944456371791352515798262772895198334859819924974553269435415924736129999881277631846678219799973574474352279821994551462331337563998323339221319665791824835482761582725636656521188151432869835973144496962522529424446522414999293543238279439361694245375663673836148865787613673185412858226388991675234894251458777963764392971147559838343377145749815235322415159142866283886241239642273323728623798316584218131195212433694545714534173574276375685716174428789141547885292727266546232664432244397166575655461824336581714927445131668923458529742388468851474986943734977629583621456339257645238411797567425566611122947682194834893649379836475477671327337719199453379251788224761792525286195838246951127729295374525933532913727312314186915532872265517687858578799996587928196212661218883639499298846538427848883814682845874693476128759533319499758831397756993584268291312351235917836682271437852551672896818398981648756677452516563742322142738782656214838187634887917211274142215626898695357626315125122426525985674433857518148648941182524922577819184745538282176184235527664343341694147855162568861323877292525574877453857992768798975784726272548373467156322189887455826333487215451154575774751385766478626336671565823399754682156774645157724761343561435782896574927423283567582737668137226862263884112347195157622425236712826195495628327712473524925485567965594855676447573724995543178773313696253886433794193546643519721888594762494663962295768918879867716182222466752862338927815781451948168295879946969851531898833927632542927911416272224314186367131274364955984612722141449975767674918494782241213417441348694462761599878882913243776898668984258297174952152264431929874673877786493788882997331332218564742411949227195284817939948794268398282292811418899582365243548267175195374415274122147551794529217726152472898291284847917358269731335463542359367651331955651534546882135151986731653647193244597975167672669222176449149353692488895552697518616159143868126245924368417167718423316692493916497733553357127868989548767967687368413647439114913856622316155671422774396216695879331452956524554511831451919486428454448188433773856881871718438263496295947213488956942812734549789488882492739525918298362615683522488538691652153963788848496647765517377332536721898682421974639271817529762234213962112298551558547189145367677963164373927153715514317833598384581896997793872313643425573381739619218866953273336567913232394144154739435642875411199422441754159522454817983424324354588553966797842212791132453886335979254723585616875878923282714291115576724383861347237446416634624162633151435369162895435897359654627812745361166335768247762626977657731346252875441254821871577243824847453531963978469446494197477751585748744132776599247547274738886259912314472931854598214587354869759979496498562829639976692176952748668216842133175973632638323496242862556647845432584556478696111396449913777229357612347197697627251149317927843513626325884645359254274765538787839561948312726741957323756524116952936765827491484215479921321825917572164693531831468359271262652398593852114986112836744768834944882166256554154236891156948233691715329864269682262267759572622582912998414362577683257295356494495684334669716464688487713442771138452716576111469396177319377478314373921521666486183693638376285422713654719347845195257184582933194468738662345834359946395498716933795459583866379174793132891483752287234421837834293415584532885114615156938612931159518859938528778282765625617713763447331182859666732384754415671813536533617463946254428869215195447981339966268864216972892382825422434429935892211718877915177528659881884353464433211811427958614682678893239562882852883677447686752542853699876951148295928587152215389658436111223932413351955276693657589991891273323547543148698853682571568576797942794897757532789846772528296981159438113755824697365426135623717559459633195463289511213673944697523365674121327378278446629868629856213514535252968892453448199973583742185499685474419632542347586759957396345771912965197131778442236854478744844821329922998722944428846528992384295186275946929462145696576693821329836218811836849319846395576697469889761833416446319847394843579467433326457999521494922416653498122432977675526645946175721868669712898655116661153669121196862732821665276731635871782771467529711766373746797375342429444186956922538712281917431562495893487968192972199989622677716285422217817194193982852918678286737847527226514712886167825644296879421231782151338924616151479946788611767762893675934639565448127876743418586843445687634177979546229451118782915573335632318162773597616474575821243685725521787846596132579859963221582933981664223625872757633845993284472438839191587642495678977275511744526435473236465823618325675748181622268371816377537359626181888859956783672289933757628336225999974452518736729984646558179568455789849522173979433967764611445893677537735832763959625975918488755396169542617912863251741477243562256119351949125338393339152297323832747731731164982114818128739811185757621616114294683484255946134499259221731131478626831433926465271283254256274944527558741385783791916231838121563217872718367546636247231132177376863143769413965569281273379997583885151882187524431358675555213371775753861512745778635279678795763337513553626993854251116975542674414669821419685999919696139295536972863893851249139988482481933421596784969973875853689737811152912579964851946522681552332325524552547723826567526661792824364728863435716251912458537699825386162314664389389424355914896314919149515923749781916517985526727729661151325383383833522964644216152155287695832224455451794114628724232772264464799233293592853724136294319655114826245384469639923542863726227598112539955828829163148319922661479631526997678674877617698654681542573163839585973533282146494437683879152999585747956148688921578854668768796279963457324995152727283968828444328554275674168231858143815657968714229567872785668563844297983864165122698865429355439748446621136537696382823848371245979641633375845462543715532656932885748965448774926387739973476555138814347123415132695583829474876656879471791193352799971817275739215242211319545694581659377739549954164275227676924879895657591594711227638385976353331786435475854865528445732466689757399737212587137761234379837792421483183241833697611937728487528566765977959318167151621568219956522918614524329114165221931925477667436878218218515925117189637283835412232142882273772471424132314755966159236343519755787171311775262765687392552426894512532619125181648468413644223563616855656154118834665727237484644229674188578361716177689428771183939347984718778365933964639747931854542812678493886172334316998973226496654383661167281511199886116646289627862877585526436394794458976727593571328851392822381625413974622868999675694785813854394572743939728674133491789155574821984277247894396536513497955326324732345924243875325664358779391764777268682868391757261947866832219835683768687552268251927511521484742126965519725438521251212231415425191551411733684798797891942383772735765838285554323112196223591663147519327763175374583194344219492153974649956383739939453773592715992356141668842733768924274343832957551516499462637428736149422516152112741676748379242645576617222332485342815642656619155716327548677111391754817458262633255898756356364448728453268331545914778393829252923758863776828318786515685491681945631917478219967618966515452546998987625545441281976527862996595383145587939947134676351449999327521868551544256613237261249972712797542586881449553258262158128387131277855789744158754869672389981998673251923416282567424542331339186391482723421565216549663685593122169221443388719452318666115417512514547675555388519264775314954184337994448866795522897327611929442241583358728369459271732832865968915231992838764661644636811386176598588759535881844286666685372821669424377754736135692258575756712533861525886489947953719165634777153194472119993787847753215672367676913113992358943617826373519265746956245369253413985622852766341725448764677917295656621797411372695471746426245689252229951876136473546188781249154275169946659286428936794718612129525428973881333225794973733925865397184352484686155441613994371898597832959427911355425695922992741323528348939954584943344534597538769493275179428713936467627359125954252658598459651287848564464969374438287132876873566312648925842264973665752429675295447349712828315662135267123531975798569751671136129535236489576945791775722714326268571218955548827974544715146652318418293646527225468739333777816646466629252862397279182269959413147698594579698495314421315254457226155493352282612144974478823543147676811128278372677815686839143791371371187814851641198681574754771697684364759622611568516971356315864291665435686632472979883513198317363714252725742948826267465286912361685756329323294619345763353469427982414444643914936492626862793472512855298588772411463148117335576659969827784714859153953685122777673553221682166171366424825183648893114262376863988429891498542321531946972648836577466494238369223297793946719257892439843678699818477661231256735867751917755645472237148254625192765855521973421633237132393892867441872878229161484186326594581114291377178984121338949589836947256372978666167199982939723496121547634499194694672764735855466519173412311778926182444829365815811141262137927525659941867346726819835827518251715698684317978549421912643467447887655976562316258237482527361947683289635855469261899841666559328535477852487393372366312767778429967542669388515739351435183824719363528446287641564596994265645572713546154818864213892218662217368412926397173482652771537746462193384913619847993968121674319528647127377251839235936183414345118719337832824736218616946371771531553246327788389159553179155197153466886565473268223429225724438564143787125431142364285646989735138417198531534759967422118972485224733576528884771412413399428731113459992768145166216435466149248374362348141647257689916628523459675787591644359927827479222446392771429574988889461296128252771946977724113981736846447253339212789561862248221783327932144163242987172176886854276877982377681778474662259834242727415532288256982448453325748719549992299114512635569792255936869768768768117371726785899481967833619375175813773342731769854537787614292682758182245211974427294855365312586383497897794236845321645166215743971551239642236647719216726279376421443397418973634544115732558289213432263169312666967438574471482634749944965121696338285411539683966858334644693226933363425474568154967231689891473618839466623526812523579468596655538354926166646688945881629265726542833448982651444922983919369993986228917252295677765954879769957578367973182548324618176142936673398175383336266526423926198755974672199232737488821221721575162428518439512239122932113151546787528369199323223315515719663221863577587498529859489851625926812159797437288162999975835437917112971693211116285172554985675375473433753743451858893389846364811143216589614798588696589215484487718346216675522372838738376723373296626283634651734696313885112421862489742195268428959336636856843981954154669491195916469944517814998393557587585976512495745435724534787535273659119238513145515857235877475649549463223415855331942538266528463497627748223745639872697158884122763436158313775652792495283474541773486217474737996945443661124981228848565747437929553719712999112885632195737438373543493583383561822919483915741984323561798934824194932332694682994258227919381689973184243511689915815595533581477675979328387376657196538776712568165887714432986686338195576711516995665996293752273982538999149738175473173447554642885774677539336774172215859313481858115757671247544655938859288263963437184918651115498373282897193335933333287286735542858948647861362694792311873326391285147724749797265385262484923121424286541329934452978116596788739247692624415859946756484953725628386448678262266739378762922484212845513328434996833598779927236311769982634924516854522493215835791788851243482956417556656129599566331353582686316961525236175821544477626884315899842353848331364591363831261649624647821643567827843225141294145398179133377158742842455554967487283185392196869953288633927755372579999198684577785547748413938175975865734971748392965795977884389866427624578397483952448117444328841692159768515799833733357688562522615482131689462734949797433684734271284341387459743612345513876283311534651385259419534984261779919852215244658688432728135193973767878482757515347418221629917182869797851592824554475447436945229178663713795248676119641344765653428798976371237748692634199554785554349876989552391362762696174539853748327271391436581651157599474546478985924946594548554292139582118817497782229663417736839676876666385153165922262934516463949515234628824426532625965592886736248491382723364416892341328882495245162233448778357472493372312714211322545412136862892217247228638659793233435812999191724535386141829132454744843741812254673266258159385668942214295399756863587383211666558669978417473958296814235189745691597337953257956547959357331689537359944257843597271916727785647351244558343581298288759427979585698953876934142851624656243291549445612214627792752216739938983926476587837516572682353336125395832571153893549597733946557876448585498777922861623816461946571328766523314389452532257252898729675236556965819961166789869631587999544221699585581168134887834524467778738675923927721218881321666344196863354554326335912934981614814478593847278781279463869828298446384568274942869896172953862715333768586869954934541635912171583759597174967469793664245252399675624329516341299466869284422468739941981514533568935853294321283185174125566712595971288629637835342743288758898385394154916688111375583357236854483687978546346453791925637213531788576228743377547648991711954922858379253479234876775745739121195922745183984272738393765666675157331838917433515325581946693287819882672295544965413396955164734712868986421816346676251655937398464162713773395952457411993622457863833198338822956596685946182756938237151832927666133617214367869672486368349816417768387694489336463189713782222877615365593526152459228396597684444859317549144168971619259917339625445288972387265234957838551312745243949267964366769443278218272686878784469885341384691391127265752529865744367385743763763489854115181563888516979345521847733132439474652413881824275249813115247174439658947919335838628828322937461236928619532814765546268469186118589458391481846389895631638138876711539677541268148591553355132692644591244359154793746969462512574933936361355524798374329451416797981515439882351977399124164643431372824892926993721633928282514541531899991599761712994822952395347326326364239191398678664793326847568983496315234991856235356839576274513133545833817429853526473891349553786267458181974316733121944997156563387295182511174276261658353917326835443573571886413466192381992684127374411498148365873991891148539265516546439255632821819893656661119644276181542623712582746391391354561168112253523661744363392317763678467673724971944468687618263531266923394782774919857527244576492993322679646946811552364512149328649696569163643797813263365387141999546451614873554779895414117196149574625982337593572113313922525471732221443992338528758939171517578679613712834676331233129161616564424784867224747759152957917453784153548159424189173178757393661965218123954362169455221959115192622422616923138963574668568967128168328911224821167423268965757462393283395675571222537313767414542759178525862983134855932752196271177928494593795169452536626233131722652199357663698741412925237298353342257922371144175265676386919234448929247242657163521138638551775676671394358954294297859614781247785714138823241651335284562575353623925797929963196414851997321672863343824821219651134114645792878182373644744517511911274734899517635888253614453344359622992852613982816156481794929989968232383571761365893853344121826738856114168184573757861163154626592911417295641815572587792152692691621339673653191338897192269328379492258424622645325924139161787626732562824977499781184978957718361417688865694472479777561239855995542327776113241227754665651149582614381982316316981256791794532693131928248669146251721778132291483474286942746451422398211329356683881584758294126344155175819457745893257965376791285592163917672259365951477146155513719989656752777163119813418758138917871546613218428398637513314295771815465585427146918748878387654734269627157662252916792529284557754715419165381371859981998343918378898715322449323312381214314141819589922245977397436537757151232189961164661379921454238834746853648644198126997142354126499973246891398111689383427638267144357846765675533552783454269973497971556113465791868913428215434231275776912572557246567388722133141517196144387811447274835837231281771384612382225721114686398316363292551667789159269527246965572791745892569374389241853459896165149518754572991814889234923618912862626173252231599421891152852937189677782884934875844958122214911967545723115483876269961282562557219761871418685291186193249384114179166185943452441958263192582788683391784918142946842152289367935154211592316599264378487314886491712869199637544871699429697247217283282944788264233164924647457164472476744459773978461833466163589636289525591688534496732337586447955897236394146486959172829343127696219848133761254961232965266926446319122397413619623828235726369871682729541811762853765237752629588659693673648723997411164225262826785943286158347977972284699872559942251855577264751968337295349233347312758474748724546266688512735455621457729582836442899749823257718743414362533176365229999325885768998433576872388898698629216662361293549115334923773543543198224233376276799189466629854152763276513128687585521161145349414722262362221768298214218631661933147163374349169888299952917119414129345669555332252947147747676877799355291734938123726381947534293128647628891793963681574335544746599151941999286345393615148422161974158147956589917167562313317493888583277735525221876896126764133871188751212624691288771445757124132896916957316333111944498199492589179565286798198981331141961117114959467947736524657659546556355641576278841493856512565919524187134641425563647398435935887284886249371726179798531814482191378992728789375244996176414594431229381157884498796293834273425526344348916445294724195493643285718131921554974444643263337545915617789624119343795992224877357626374146445369637137348625338979416819343878631432955716147925855435359536387319415985598388774216731583991722762259698316272583155112392363329434382112628866961471699825147989227228379255742778748518913691592223951874337415287838728978128239415481614444861653425312113726756274244578845898229549649811474972474831795184886839793773628915142425573981378752629877938828322453799187114877838826528381111356535433133411194785335154964178629153455685674942373888283599341255481747295589726984712959974998425488217565435924383577464652484923633388711212649876512865193385447774445355497375834811491638171737161585925742224694533586382344949188571844155414866114531744147135773756151592866466628772185778255429925964149675246994191678493735726122325273686286485542372544895416536143391718356891116261459888432935154235968547448154188866798781296618993836579374662458127896925474263446983928375429212981572918424668156347255686517695632632453898513236931488938696949111255424274486978917791558153153167598915343839628388333136231536174864487569429247169363984936433828257893734658454479557949573854578257439895638965829593441526973787439318669555936876299259846194737656423367759336845661643242515169781926781613286752616828968475354344812862279744984575361297622856336412518571779125441459291485896437587225293193537571481428918541288891429528762398437478268922929819839671445565398935841641733613485442484831459242636688752912259684722214149154215774648739944892254364777662972558791472356634758175342197185228987934258692166873396495193515393185499369455842259699297458887175524339265647743712521356123729361793618172746915167282684865782659811616779351866563632997465429419369937853837373635624349881721656648323485123465826241128289254797528756367683164578579487382652393277712551746292958876694759888996775829884493587363832286274973539929898327564289452471186572624595584316952369385432439975146586934465959185912445588474877515118444838735226469717543839571971714195868371895875429692548545416714389117186663285954297939479838366366864421729213532124142134869475961392373174326426839923397245739759875272413944636517737559812776564169219393645385857593462549285479489328572189574323458612529946875895651758585916252911151145633912455511369749463463467561924123257798634597434758984649721932247916778127849114883255127119223894469161834634113327717427239528744659632184394615276916629469234699442649178328845325877813725274127171177819673193581261443859141857854633571781938944978142155931625977325282274967344957242745795183814222337623357642366439798316575897919761995658764316285815452949631416585849715135743133568652694644372766636248692794159724874336664749392714653833326297674897453835653824287461672291847327962233697978286932879989973795479583742427236727995883779947375213475617339899698986253137863274429869593472431127732935619827158144193239252263924917367349945748146348363477559959685318292565368892617754599484242672482547953732883467816634958115343386981354432767347811285985428637335359582747462941159548988752564998836999734737822676353137264452235614576859621876391693328653664125453137888865584544765538784285739832529395643187454715664872335127268187659848583953418685898318915723477451218483613472862571472844179715825653914341327464411695982962444799189493534159599647936222355634532461512827756719493114238791133268318588254614643743165834737953773512325676839983288661933527794145166523184183411256258499268462957518717115345341854673589434529268939638142575449786945867318224125976881926451328922417137949242638395486121933735864666351264325944472972165337613158672697918313748835931553293317155223894634787661153996296435129431719252539376271369978491812744714729761777393327215934193266547797674541368481219612992228851439286449555384394355544565239362379822766395624149472827249275382263348956427722568749454369688894136822542213358922856272149829222793737947373153148655757739641819183766583678981735111873737797614871428666453325835712184653323799739586921333725285383648869937889848438541713231658912787679468442274928189291266946124881727649667148736555669264776144224878833437289745292216563177488754546778496461878988645741469235487154892437414293945428555367715419788821551969254695449866546975844735679765661828352338862468942393659516972853687819686722514623888829325599767446495965115467644536467895761414942337736363936477993672148289463596267883176512291558653469395555961647845485514558313548556191486359133562992356187339965664682225218453653767355976862438786897317143397563298585272413161649361164384939138877383423619662688685192474387275793133284951218965464511938644113294513816726623159418491254553762213394875526621549378383526892992322518949511544571387539218217429569264194158494422275174884635561485685189738269366672951312758786354652624439455812196125381157662936277529443823831543951966611894411152985267459593688773244333653658646262886835183761964286531796559974243715214478475882425483947844347518938365192589722151443235549389172897497545595519544755318136134212941594944484337713223825527737921969462899222882183375726398989876721999811987186313674213181178541528498585184715871281588485339281929757366636913122169917439347348213828479879162268158881794437237418246123138355968736816247851589394996218922427291761474259197126426926618849557534571874673385925497957731675328665642198326617247832594551172847299288111671384866915359346429128147936983911396887311234864766669352949239348936556557843228874798772783717599134678352672448817684752133771663139854991244924672146348425382673557856869251516629233964381448583267842646587247159345763796554869433497155668464397754924567933866115719365291428283574829512888498857784283233931288569419687325191777185317691618464394251772282268866486146916742161465542759854641367962452934139265528783767131156741876967479285747414569362367839926413149156519259516532647239212652864868518312362894947669571635622196836667882961355911756719361379942598176362386866741311237253246396913637755422895825837543756375875126881322491772264918273719375677245366596464679969676846763229844359988534889765631214679991874218187839116962423523881878746255853525325821152313571557431835319552973465459679736882523585925869967314748685468145176435725311397926279938574367865397678298327918536428165481257686353162984574315847653181116664388583671127347732485784784348677425772664497179217665143457323954421676815512521286589825436631952918587947989196744525168619615895544237935834498758244894764233586819492974214877781169536748196665615781211488156152984568367834385764763891595989277623449122359714971359397895713554787689723673971896635494975119577334215562849738399729216626563376796231315286914886796257712129687299221647228695265879551643499129131984715564989566491455584495387386655191587424153277524853382999554964812643947245887362589689524818198262455269547363412359119481389294348854618224554679489327445255678443892623968314342173796311867691779931226946259367536166132671757548551244668685327823424582646289144146412379792483624972125644557761491628587635876262374727152737776837685336714221446717513575342825462984554975928589229376789969396494658146437364165993561456476815379263714339736315462496133512939834914336398928453573974324516399789122641332255593688921351879748548713634748287446336361348312955825987349167891334959973793887358645369266945967351257435693337181616633126512137142674224355954115667858498511393351662185579979335811649388498633699687145121953534487325245987246195718199194446774494827316931639189888897231697137418247828771678557436239288971612325187863821764496918836623774895394878269226555145827478645124554831546557912416887525388781235417469914695735423164583342354685321319668142573667125349564832362283257951187253854377214586521729833627725339614941652991641723514766436759719993957256219271311786327993853742147852362267298366797586672955158633848865684411971628376369765626981777225565552413231756732274762739541976429561883857519636882164997185526562538713453314883198487175536173125985121351749938766574926622723211723746719692468115486947119321491554134983238938467952651573511556958346658431266841995143282347821644398921145628618192321443135178417399292654413323445388681188837646455619951372595933681688471924568129924949188571838797623625962764654956855691773552214464959925379663347697663927137463667658175932355914671962564381456211927419534925482467523832877386378827869152688625465648725453169759424439586358774337118543747612543975823546323546246989263833976264754998618963476954969242338944329617568443589175361373415299621471236969217114549456795395366214325911721439772616275695121631861441323254121361877336738781666799729944445362348961633391456825896789124548662467429759784275743222133375132277919974732158613934125252754871561457731845696887279684668145291236999973442918626674849644142264743639862953713359732685898913377539495599879195958116685375691443373731717616191899447874233266484756726576974954887655967273812166647274771155442186582298579576939646913817341459197216153189582544124315938963772483987286144277588899392187354582689416898296854744562661385644792532211921595877124389318761139272482373323699411738668435437354583618839299139193957779113747285435227236138146221997898173799222643355857651262251839737815726871194579234239454447418987458135934372294527541885414393936849322759867297852929359579763345266331116726599671596553328553968672572144683649697233454297492348485598867931999693838157896929758318175777855814987792471162936746443829594865263842977973254628253434473858264556544339644195829962298473289634287511353753234921148975384135442192137281583884896783291494937136227946984272641218427466749452964658245562616626457183757581687941644288349811344943317856813595559867781661594998318983474723257144712868816316925714149311516229581766546166667138532562513134972147581296751564216442481693989183731749415449769383431381578476648792642176941968292329275911564434597684277252161283998488444776115773971595792799988727461837538894292242619679667338975957689379788992942918755586474767425342219998193272147585112477917441641539347554748475886912513245299243176711273821389779939244652565652223238419537415416329564719374386589438372912441161916476393621369291127228241255246762481642767577677378983996519285333386453219856583471579129938459777322433427865992948959942676643364416638313613896581574631174399639392112372552199146388396625688516617835988988881519348899357298858521918816694634557436461279855796687577125487842565199297281641218855456884566612111921538671682565899477733384373465426174232367756684445762999335766463765891556223546913191922497833199577532933377867177159387969267115866968285871567262989674581381656152959346382917995852219327272886961895433412211785715737444622218386628958979137696278892254363982643427225137687383253377693981244375197588257784989226875173176413811659454921429331817314511249329463318691731564543264524526457384694462325469623939279522166784144378589936886268185126232799993328277168656152869462173232931353168764528134329255342554647662857632983785915828353596859415579232338586987479394433117957484397529377955682519843134827556985636462156594655527731992747335677122326976431773554554616438776587628296737694848282543274941578239159522271664472526732925163886781622648793939271643845331528286247212171363171233417848999717311121116133449353683367156935655646747359583417676882497989443916561285123354919488637325168458993911523747248187849552166791581872732996798597179835129788735713874973543482979861263121984464632127372599787653678881878114366457285244212867124882878667983428237641951936637916182847636967888543527529171772471564325812488323573225122298325371582952189912158469862879792228266351558338444268144231191212926541576398142457251654663573664216254784586522346382647884149361975342581243366895968557842867864277435448775354749593286353838345978423388614167826234858141865452183391161457147659934727792227334643658684277932824275855967588953397155472154235543116413161854163768295391713266367917193176582757576995856262687276976273721885632221715211278985473979241228672883853353378267693789693715572659824159376182641928877257594649631926843441515586474187726189942934427751791348775173744353346538779544593527483799963387629262138971329561289557443772333248331136957993921856691856178393926937623412693677226211898627819491142262322578299719789541229158152378491648456336394247158953856973822875599133651954568343537225496572911923186171536351513314653288389362478175217632682812177384112938164861372935293373579196517719415782818992311537875674324874714282362152372233819356687154425842958162279291571596963668119483677473481398446476972237846864131766115134866594981183875562855731439732918657944953221765849223245126327971665969371247629649854364876573538134852965525478463787265712855757131126577915741918723284378634337337874564137928689997323176498921717163555146814792433631269952922736971475965335556728625629722874369497872394749399262633583679996834592532994734741892131386285757197359339511964843946154672146846461484333329793985571847141615359286419731598777224217819979384392943815854632344654344231159479662842317679793958472784788726582755885642519614541597976747375449827369311261513553359723531864845462472587437673896767911986369814842981613379458924624623258928412699559876719492863223428229969118952947597547523734165777653553348541271923664937333818464729853686713694959442164344189441325572942192496339436748156888899236439638677389232695581977857771412365122741653711358355121697627733234497362433557472863832583266478718424665721456532794853267694464216462843877418687972177836263563918281468998756543648331936272461278394193768412566397481896132948868367533363429848676555247342127843586812142926683137542265367941398868962154612824677783128813731517493517767858215974184855127167796946622497217794991485887483152655116345865525724752329967363417827449925476847312433428144375856599482927491221354676479796381838766857696617721188626495813984861455193562324331172611191389665689188344456777785845944962827285274896342719587971454749911638135425148328166852876251141183895437839642447812189794696615884325997951984675783742992651128441939514513979447591799744755679651592952148961729787752126573438478653766553523481265456893235863617883427568817833257746148525775353595241911683887561263915363887936438428486665321335635151339821454186824471891824475871882763896295786933111193439916894961148748315717817996238128697983897679381751549239742554313181469936954938872774657792121328455347822225192269533292393325248672354565954179922231358689994859174439814311292324249197997472369691582892991132545344143669896645793872162164297731134389268732381477672777187758751189915777886833488666254829794792781257835318637482917379247417575681363893646284474911915645382749766144298817254453533887316579455859378158762216457736466814738313138843628727363135551141513233345229579242967158613626656779912523458463567173834275631297196137362117242959231637189999597211827936658833655697396385144753635326879653917476295714216581853274859725994641359729921568643868134194494867882752643699444628521729158434111174238586439781522593497231421537849598139918958197336148989922795744456446231948751464162153222786929564176979845779285279492659241186494981854231158565493557351359997285251564567223653886512636425143648694931542895183533676227731984733125278247745187355875547544817118525439193591125593956719199889641163962291312851155614522391254359545765785869853323655874898222166532998374269489744222592223427861959886292939814315555665886573567445854947936266711166634272427151634938611236895891454761812416568959711733391779894261341481936712772643863848728234357385367847994167444517489112426134451144723137851212839739861553898892264366151161243215191136415294398625229335347647146148579987226177589411834578372886733522242749487327499756564741393445567721558371899764419673783137582243297124194969399256425616355368677377786161999794434884418844591328995582571449773151581364613545423869917951916212159275526778111395385989869589695512954421221249677255932988847377561792724738695319613781574391846916177559218638688767723133116696294848758611468144714996397866465758523274219912383662392876412976728145355345563639847834464551112815349763318471344916342685696776219175384131954445967136685263673579997411415838224836574999256493282932861334146537175563477916235316492534737379976422769448951472911154435252149671846669464591682686827422635573565112157516555523114846988536681292397936682932341624223855414523543235783785998951462656286538872195563739329213259323831572359448793966987887193933215252376229978374753431241433633147274894882698174216228241413616334712289338134535155959999241763133239163966398793287265279255358661675851481248366962578483917674621295333236162657894621811557828748359573988152621173963117778553287224423226387475579679347182319922443553172898245292135744864754888133438418332642843416781965332244377217921284267486855949473575992522314311527265849233151397877938158469419925488311515535213915719545465466895624764127647837396149575911578931296617361932751354291791637531449991635628773898227276249982935935886457125395126734346235327611998623324754355727141663184845743695826281515176669635833315688937317825774361727678161371737629341923598815977544349465437289193193332112588242574319732541349448659851999793849368331464497331185951949819183918731767215746844339323293992293155121631113776118921331621648843335397397664164956978929883666989317136772287472968641538875473293986563661317493366218186422631828465521641279485916794245498379215555518625563953522935464281991445885747292486637821356655753687266539247365838599524179444712417969874699272831862269113462512298175434332423499515414631779888695137459582721579999353329217965468192149291157945871982891596133742845745849433918917187146738812184466841763163943642344817697785131713689874177331354734483152453413671458754476411783112316442783948974748175615672973993637695788576841647197463641849182741328166649682282836289173871144174871433372499573189985162166463859783191149186284272678875411785753843756654262577745422762829384667832585892958712142227499227573255293773867737731852571383939244652928215867531514751889972875139322231616358418784752757835247268272232866586353637692464887513429432498946571843592638915656886728968752298261519672362826394975759424534351491357484665394779145176528844773797545792229586489897437312578848672152153911649627261981146829577763878157921863578566468959916663848534234211357294639534424989262914426746771579733765196484399499721483959986968244643362581428399328622511197919362688737778597429181339338828844892764329168781687519533324288677643174169937986747689821329176749945442334122675333324236133596499834156357515948358561163313852834228752493886519356362673867941353117346525964998523671856549554655379829326695446783777421356621258948969517952519786426442893827699484334128169137577212381571139978391783499482948758776733725723542599847676869634391863135695848898762437914955275359553821395264849972761956573898834924143559832739886881446625398699194348139392161558582244673433432646458476572526374478645877919263797424161113729256899276976771141872167276447252731648135512615683688496939655726861674134295643811641223287758434381782199554634697629836592225553511729755927467938812549761115356327273563399992772836681781295736434689728717874956513571681252885144925775463856396543591615773276566134569634263715864815361578123725261124528687253643969116828189594595746594318552747557238926765214676225445381445199791682157467734445987315449747627565661315988322799438863737488235591421928849818732627889527331688631721494373146296883734466323185156185411715224892154588111428722319751811322691796234934954635756729691723872849353644939491865336395256433496422685177916182515123547278427159117615395882943344687294935738648488827285478612951669962334296925795524951819914951756878286787256698883873752236211787496974789338127313486599211268898594762694395815142781691716585334619858276766261437497457996428877742459924629553381116695336912676711612953817145135594917497664234274379559243645184474123778181597714668573735334672983259957987767123869133645993189394287886542352447449594183281129337125668773826549499887996197829521986843133677616484273663353315393775978334974521938285319649259335833644832283365183513476481212793857231458775172323559188197267531254287955462683847745435249883997216911446584667439973397276465185676618257524357344562278615122578138844695829633878185846347493395188447837671957755348762499618916749422278154738242827946996797462492518324686491472175664342977117347178536165113211566889186787512227961565165474321899797476126137823768364682123293172729329832513788614962174373479542463345485664523829926233579534659873322877227488388892248289545422643729431168885774788686539961125396328224913568846684147124925353864785166221994542855646938463658926513924112465649113686522676577117319511746281189348881947684274994754717335223147935827575783272656926648151355947439265644761825496158854889382925721275541422851465341528446636998915558591576511134176819461851651185833871331443741311137222286194577754777719974984987798817425862546893572567755253823793434999142622767824688193473632974253156217374964333231367521617832126635353648971173298851811483584146571734622638847622792739887272727791252295987758717971868565637316311421728582352158223869423142663694666314538634334621551744899258624144487339563923967942321235976489826449485676963656687591187625595239967414999254691451458119558161856586976889258283228918853548533261767235149867178868743987749945911733236112718594457645318113693655976476657495831574914813962326713359894543924971351639836957627942832266467753778749723316177751842848565139396151931242748414487679416918847553444468531361698265295786559193327653394421469285694162716624936679798238165174532938917667151518587299115612964147836582387327166775775245329524297855972694489957424837347399628393788857275261782164787517568386555238946442329425784534269987532144836451582433991344659537389384666211349482671794958892621548794323447375443392786566627562241562796423856184242798349996918955124655849457752939854742233126528874466391865168833396418529261848274793788374266475916667673557475653932658964692183658495751386751933187874233441594334788626389381598276689723862384653415933751898725363244319437782112584768747617933346767699377477526872645286987312877537454181831418562979578388364116641948932151886984831648364765328313194298377865246199826271693423622931758423827436317934983225375468442273555287728391688999426953796813147645327946994794625391569148353117527129729298458888734637562652313825877885511488251514359415534825482969529557263313538577819299628825755719536747999635316334195865249799631294783546176588896263786656518427895248745383151777935599931872551873736154359326819357241227362248511215539451942855679591326449289299632666768734382339351884892719663728483156583696531598787848794975794118556895447477344828687173652842685265617345858349997685948132279696955667152874874532915797825863357723538694172323513972664138364936277937434455695883147431265648154646388523171459762485419953658912538279476521377525865841194784936753689239357899474867756134536191358261275965882266832445876585519335342737216322994146524262612533856939749261359654395611761813287781644468583337666126182262379147192336264497952664262467584497285218724153858113338454192532249649411825189989211946445587599454384366774652672664288635273217536852537783938995413155662982635229352939322221559754211497651961986178899199155929339478134139227614594413317799633469361563464135575814143713754898614769116418754234546816972449119585475815671982444924511645555482938417865753987477737881335663855585379745133669443111123578753292637592995369213314425663448757899659738255164493734281424187766721584498714243595813854152837599547877656959399779864268349188832518263758677544428735568465347497213577244887228182536372786415934362865352864772714431598138531845932346533888158481449232974956449672235313197836868772868253896644855286485258645412588213472146422949477972645175213823269354884967714481653958459741946871149546226554598783627581574959164917527152481168329957895298294483233838957962782676466775673922234516292786955121756223679851163413923991685186151662828713798929212411368857461416587356525426337466492287822853411135786227759485925232893987218221678389954982483896976273984695752481475654782162558966354523977215142616874179224121545886173884387337824321223634677155763141358182772194116367614329884177113811878176487893564895673171781859847643279959296575142349297271164828945939949687179293113729725295198581573331138947257438399618217155993335327112736458277248958653242364896597668314111634318262475591879528175985286347677384519168145986783271699113769597848843646133691817876786952899574247591113462333129686171259296429168158373516727665272276186726633447255416976633258376885347998132757286784446642567145558147941125623399633396442244688493187187559778631859482595844772971587232198851836764892375643839867579678453545911489517971253138776743577719219347378974989181857321567238158181798574862771845676522235949747716453838195978435176288772635395848132931437369776384241393723296998181223948815542756785156265854653674758548972146623116633197453698973727414597169469922121765925612963692942657572463475441821481577737712875512747975418399437574246717993444597393724454486143445126795938477196368793942645887488958449277865492352655798176814797422438114652776722281998578856587621421765832594612692448122679442473449832982242391335226383336463696579666778817839351878199636885532397864754437361347937998577911138715278592216339922612567158151921437276396818711962997711514596528235754424394379368949989437988791275597926343279863751683371158254614296729926811975933251244959419838381282662769251465479764783665493392556621434561816772941386634963997648572918988555658566138424622365222493191856399956658489749765386516614787397292746574447314741371741118837646791357771412675693665675557221771615372312568827184659195895763723241379526317115368267736212483696724675195784111835688197346594266512921478788661128828651291516157347375143898999882646654795219833658952241921888952517965485257411396428419488273432917545961689728249978816623755846688174933993717694464925399774332138431719989538874175694661883995747797685538215612161316394573156715463925736286472413142488683253799999563989527747941178846152321218155352292866651556449144266376181415524711365229842756261677175215665925951461455529135172788298654145549685619161963369437247991395749696156842836162994617296334788537131625798393473733543964443285887758317946373556789985419617195761681384811155613511941882581166924142422425876117119198247243734146267299765476987985798422585877493212178515113711379191257545374584681431932191126926931774291548896837821921922613294361581534394876657749639779989315463415834121675448391278266186621852334635682135855861576274645621643196454666139526563171333885958257782156759781236522553742137842529633398266288739865237349824866828257863371143919322146116592974777454781874175996118519249345623357624512817397896657661585145261822372362181769435181138422938921147263261337168566468291483274177783999112626462918737665862378946244135186722812575239726944837349742259711991157561443126398932896111971969173828752964583385464974961957854135991185333559985472667753437739228217631875773399565249482153964874546424889129166579497593888265598949238238244782721469537443872776698311224681651686548273459526165895816264228376819635759691297676957562974799389333717677676333937574762141967981251816474916388945312415391198912982528727436229649761289188788865127997729239293969968866643339839428189993811117993779233565337368175955245255844111823168581216124618122536918318291516255275867217917151741551379421935451837547137842715759786717689133115758451135294569446916574576677231976168467724756247793139786319485981737518863576244456325845783261342982766124527852573956434649653852927627968654799884426778634818119761446211579557898455227518397363397917963817576392723463281826145736412691337857828154462443956528148197229894585399625758943584377186797677925554495779664822249857426283874318747323269551763647378895162492165786193947813256873751257386592969577751431655243497522149788875721495438483995235875988955732283122664412619123599996781353462764829149319219459448916939365432792716636546589314294685612253223393954487946975375542193217529657832371163549966419628828569434116232237572477117858739675597896418539377493992786458316765435966717724354653711446276641263668138899235579858873388851867122834613635173946823152836912623794164426923117688993976565637897312754335436185873279626287866486641963495994481598569967742389843838168557886834679475149357231423219964642225572428822736448579791686949141698748529683237164943991594417557221162129342938322512669898643364251352275367188339375264927342657572688125733444462777278882946684741643994147574651467245338986251314594898555819845458989777493523863242996566341885573541279511786999187534157135571724741681569148147798113715152234597555511424228787598767372485834478838869369148787463181328792138811685592594362997216347116218888846486434859148867382981481268152571123387382957774763811826611766767885513698365741821892453328983662211571286651632619745876563829839876885558421561544929576848631617286531362318451732778352914963672224259389115177345168259535893814328345346644367753667511989279591324747492726482747388476383232353636464445173136864691228331455618244466952365741298399933167527229565151276659558477478675325837873378384958814649276133554136714931759243823266283795949342822214278283473789397556141874154264572489526884722467961936331636973211153522893138634726348311898118113455533725586847462382461261871114556738265848675692837732718718254715532926863232313975255135939291643733219522652838353854336155119373593435588562297561884487888724963285623367586122219538216976462579942167816317426469189776492559443558229658389936834699229464497632443217146137619868881725164727741951664266926892689652156527291286242557147617775639735386185993616661364924681244126543131531779436461752229323524157451413481323758824934854196412137167394324598379663937437866968565373594952788644826568144739585892151445513466758393116579427797892945596622296826226864695364144246675237346827449915363798182395962464197779412392627885684824429555864521451569631329887269499334719251285132174295162778526448728634542154251569955223854498261123476561775729614225591839634636772318385756617938566438382755321342268533184875521244973246557681697439647924465488676878524272331974736527854381237724655973185972243885668986999661916593699176299578833712291266267796864862471317198459579675191751335721857876585429367214723797631191176753489821855566838197858957954428657539413949621329994888573825778421351554415527426884641822288929945989329662312871233394512313296684695462581767779918449569778346685231378345912891725571547261738249256979369548511957991616678491315812738772522516216266724552582962145812954195715321882226364459664134237546926447325536152496351554866529211733465897492632256292577128938191236726466617722341398199782581692273818358921244263862739888748954334158859853278454527495268853375661455331656471723461877661887444377811754481463618675331318142369149194433467617564987927729846759659982336987634122692362356821784583695383146346486612736317374631899328621143772233496926534996175996756751127349478951514893499789344829819434469255295574793671585865645687823837357794163329467753217675457639464133438761685241559326751323268561713567525149994916462583797544513668499992781271726854923766116371119989167173145619911277777393494482297894297557557564132861199428546325624279823669972147156197741462824242133388274478184682456472553967169297114432249587612158313589185914694937149987638733542791598998357749443339983845989257297985729483426649637712399113723491962919249813655334454353634864951131954824189612145369622917381284278661977727921456318498925134441216292973665698327156747349674693213319656114745539193626463723133363227618171523513663299562653879179838546676826182491346312697494377119667258755874898438586135542253118723486863333174722423967972272933161746968265537667943649845948344217893798351816699862736328142362149419224194652647719432225451563483395615968223892724836362396634863323618529687868231666785348623835185835683468272237795238988371688152629855761874553965653479547432484467823811254539995242184827866281963243156599578882989351946464548753968617454322419335328764117872167827552773813736257933322918224994649716186359865566778878589977331281898423298644311988846632444453432263482245555654336888122447681685832146481946478966657882559517998182731734351945699388333274863661734897222125565572414519985251323691392314759216437687675988199258377596771699323881547944743668485235793752763151994688952327164466935291276472579937722832437873455965873518565447118271313989325791277418253697386993933231152529526266972231848348631953856997949555232453337151914997182671465318622756978783773953669826852272143217795453718914168941525641734153712246416397693486438992964367547642282799459687339118295531374937144324258125748758557918926327922343657358833686442123923544335469524358139388821133224567881416367682484313183176396642329369986633761189388576194667898725612154331438355112592857645496847953384316941539678754317846429115242663165297164929359933564555878134239749435715649532776222518311633596428789343395362963224933175324856625658766292488798199397838213774128894423551321919949622432699191879322566576577561422554724533619531676123761416457592963225475328374875242273616356542852278711536823436542792437881955273953986476718352522655433427733136225752422246387552184226798189711276396411948793881291779587447454974515599257546455423369993747134474823647482916556672661935626963344597345425869526782764226623945285927448934875543618919671754372853497389667191359151916981427583822448495993838833824422553219482536354744135817989331475576513754289653855325124945972438978344751695981312812296782734621344628776254285354464931193545577848595229536952397681698833281953812223166651789447396278596481762872278734792634463969817445411587794467736888323519479113643591351596268756467617545345498757763721227181626476218532971845511781713491562998598441548522173149119348273372922745889542737831732654372699781864442395358931994158576735514589813131556358447642479941382748519722857382115868896889918981722692867585694169958537418215376445621369638945829763493113428962413538382184576541661869992898948281119227463125172167167247139847847759495786382487182615217281864638576845363582289359769476562825652245561818826651517544179352716829376347118772732365763697758449465898489267328455821189864697423912751665286122493511486745477668732697215616845186134697244899653721429881465864365735337725561733664632767143478839253823468341515878933637874546562743879794743229913365942285831984371249493714594729213321614613929933872133482743653875935284486378555757975159315681174682929556399754441756786135231478661524143998343326973475778826663694997286919141627954532413868228417136716629671366718838125736566368839481358484944726617179535251134962986723117477938636688193915491488959251888679443981781979418447232256144781724912169957987722434539132491571861967962559231363625527667614789674451414336452593155711461738696122961382826176361641777748596188173111393898424587454117866464262471591689431768412613389835241377427475397263113363581473886822543279699325415721979996275755818226176986437818985884511876355266854342974564352731171256681296871194381635958232237233699729296295614666262963175888947819727237797943558644842428292973844567135729164828212443252448513858561942847328948162385428369545381374457978772578596137862615133159384171847194743346922182684879817215388987461685176383442829799429848746462421837355679751521462455118644775657381847793744889923433277644999636718577642931822153479124424275746583347439419524841841182498962518732574324265649533639769555615488525856363626578731797533982539371655362432978741798552641782799764179222317171151894847825175841248158278975969938322193499983995699415292687679482582729517795354284613761437455593565515173697995254521452185635869311727166855369611555553115591521492297662187148182637837286238366466132239943641893575394825532277769883765128997245754934577584251138214795584317762953311159464567287556994223889885214318254581298744343664943829349659464813922676998253647729632597533824194162651465718389243382144225515819965911462399314432525845486766752242277316226468619194521187762875882612134778528436777876443519997247349515357189756423166317195719533383816625479122426947545126867186376937465366387971525926492219836327163479917694635137677796769291986333224882235747493962528447446967279456568932651856918833466952768593248131286259859532767362427275489371388793778621797422553269697515533312678331319849984299169799243373521344373255243552566336231566697722947163666922166788311256825677761566633324318877787711382848414459123233564359928788716879629965955278525759651517378866726721116623454728682633449125596267367728144315264336551452892517133713597838445776421455534675377646996678313779319345787153589233722368299467396319778373621524694831649575193723791517777719278559413351759921289239716586583237267492466258375277257685223545152799825449266663377136448682186165946579474931167759284952949555958595333715711485393677762726311159581752232269697855622792323326274339342557426291553612833964669193927263893412456717881175332331622337416646771341128125557679621733573136694637638339763438381454681992542814557388165316235268537526661841285894618128741147989731395369376866226128791715582364473999737412924515384363792836353543415155235586993237587568184447676271593132521843671237145379836553591883845838275297981527391855113272566957765273871822641625934342587962747244331411564636128442689375448152484424569822423266213141564377416657183164196411922325362587318872469576975415496517933971691577594559136567195546338525585421279524436973672925547388636167174915347944189182526253915512218598923615912911252665856397427256958118617797712867442861512216792512353922682868592677736847516656871163231426265223794487937592168264487427123545715152845493598324742473174427888293466715964795168295413834622432667248624193598318848922472515651474235534873693477268395456812847259692188347574281919444124197792652868672339647636571861269738884169826948891462119985191974762257128622391337547446834831287392994845974996649272654135254874972256632922574391555868373748935159612893849378214798425689573986756935219235846214945493449538212794314115698118592942275228838997327628177977627819927428111899629372978765426196187629438428261287385151682282789541483314139147855268117335392246274494795798464878788419848153669817277745572858717456421314569348165638284368128653394224561484389753569886697553781293558587815878124113561226484592736475155532433823978189527856919655151413635716993699541225615571165116368638327485438549819465462852577249952598141884775619245331467171166115919977453713727159185792797397887775499779941545453822989619386953483349233276721992971931867453789914826134695683771773658493651651933535884352529486759578743797889142521835976823477335198367145148279262658139456187586322925428236941195897733339187618799221923526525114766989887647495316498649282671946534412164613233862625643699574136567664933246512663116375322625361826328522173229429955466627944135646498584715647541977538322633187625364633186721826558371332649281626968376847827363289223366284245632458133794439637548764272595967191783952384247881656964293587286365559777992779734328648887595221675531339486358571444322971483348782724653277935168489465394527486556821138739335953889317668385739319413185917592769591265974555486426624123652838777783271535152583944446611783549327535576962219513936486453697527369627313423353545174528777419235296716957273416813154939661582981562156763984574788969836873962917112687876113471277259625912213714871657157385492995767358558639926971685413742822497122876739521116163693866938168761846518459359865213588182987663647286922846732242581387475131374983674657239344482321156658686974332686318332669799684347196592924972692313468337296529328778959246395425761574293744655531316221759181556693913275539973992623587596641299589696138136224475633461924833769738322123544971432668649932297269981183346642674738583484513328116215338872937391258376736948757368781568661481395222884477142867645682346475413725893139833119673221255871411672159252135434382593626914934981184919123555974123374854146544442832743197584786992367772224557649723912659936424541218218664327298589644425157591419331286527236184846377673322363275273724536934316834681822146254661833275767198781148139223837383375583149758516519322234416135351817192976726367397419759352677747456544115641469919964897154728453115316779715695581861665936762961581158937586833919864446922997946149733479952342137452142332835428481527492515626451454667758289917168797847218733667123687495386182951624434297463164312942479877162923455764399695925119237124729821155611949897388898812424775665768219193982719698478618976441816726636834994854689459337772842512165547845319768612535311384325521974666186953713855384492733175162427926611871165593822984382687728429861837734373454633969118789519595578351677821274469369137178127675398356137154589425337924736572811745347942381221642334616254423485818612739641695827277791933362853693765728787268875544546861845194369741518313189433785351444843269133172883171924292726751134449342448627724896115376831843276289234184755135536943526519726435348646999513954547799349221652276839439379564818677681591566673365287124979469326875824969527743262963359295216794285561422186411486622632142691827364315523943171741993996146137742263513797914178267555159661334431681861549957752397892647668192159144198182747875554618364254369263552358513189643992727133357262417432373571344533794497622337577219346573516868126465127141686397231777927592384828329923981519312278968618836218939832128978988916892653434954747728721616494284763917251635918679551411139457833124838982472228173113295149722123495282228431236436635138919192331838949772884436979482382289222285989856934355853781817826847955442326818134617976846637211795248451141743293879464926736796229945937911229497443734395865575469852642653693336598827413848475269423577846158617478118382219625556793475971739356156873983844488957295672743578182769967252681465284541615852668824718534681516934377338723867659119862218259741167889552736481381266386991865961548593566294222338856554539915868617963472883925791344686576952723518755834115685597865412996277417171663863331661455885984591221838875259372448373851338677788861647142179212937313334192669435599194391111394124237635882735364172591411539739143714283355771187326366298271284354762986454451162697227824831365541639364619616774474166459465718869696946896363799296739564145722771374853488657557929875379731716723117345199835436413828682651322522345744627158688759627683694745868333684388147822864521769924511333692929713493567818884776126948297488259488734514382658249744563389215952814264682746559523879186197481562976324587942884261968567286341337858387179368674569415123646669354273879796552898637139384859783181367346791971643445363557425623749364933121983225642996746297462487771171958279733822385884629667325331326233195376594873235199722244365777976493932428631139999124439816493133235466127139928829252131769962374799312823815795619712877762889249269251531899359329396153241145949864816985829642569265378472776741931618989952118123459376343896898959647533732422666672216485973857722564727858115553763381787172753897358933832276442661649336419587312194365472916162114937466214834932357795885489581773498929313695729588975394342328558449369528989837613242576586341284119151848722472675822461984912312316479231277335725841849138258478995818924657928313376278993739428818681944636555682299988251183863722615167693161269257963172367528688184753958164979766863888639387185461654359746692176365916935643278123456411869176712113786248454356481122117894454563731245978493941942141719155491663687174813986178272243147576532789485766954561377471684331983151979454939374391947986318485681678522814631951943641172991459416257337789884867122137316341272786518276163438131243862485593669291917593744647659735964392657566456196469723377341835165211955691299725687923657628223643637275284955514195459191812165327934342737277586921829891196517319632884412148641622691598159769522699938143816757816866669526477536428312581166746332887848376928558379518514178619887569386778423359289149446195163698635292944267986989712311796955727335528835632219178299279765335967598379732842748668574459872367926643615799853728455781667883564137487855639881635293169747194385924697159138189599895769458786177436241134732772651236161828434167679763145212277388784765587993669635728248465173952326775464631582154878613111385496963499862728814281941231268688374623599669549867841854868637454715964829754648323487664436161432926217272545375594351583287329312822548773198447762711828631561742884641859683358428499243197251229683657615839671428422631345356214468129492368298131383316731339666456396522331133251472943866822457185627639742146183166452923167765325988852845542747372464669335756235128293546711547673137969434956457256511181924681774568492785429134675562664922987234162138659553819356411892879692817911765719889724354333511469649339296666644525849262312446381222231696251682165971111134762784886854468427522198118211587744922586832663224414213924151724925263836992212642852243457419719225597986996159234338672312372283642438927621543876723853979287441483273835978255717892187995739776984365752566937626714414976852541856321466968729371621817592644629151177672333359291182731884334248145793935149959157228217421824637296488872776571393292742734186795332119377724832141114375673242674884811472755858758276634947994482861797962446221137689974764192277256942275796798465451717126234847441557926575222755726427138313945189789327849814385926539369553851828739524384621193635551314589669423363682943941214649678936883724959317491684614167914796464635939858588646995291881269796158541325263916516915983917876472224256662853592183571761537164276689146221379466613678711426723379263675611447196363924954626733758126566519218734135331772355529429965515425288679112988214655496381732372789546547644554799338756829846114857591153497876788553234117627992542545875551128853276466217896959183561915916792198543254834537436682573173633732475791174415238696734949383555682151957387891658232525454587945149134662441485397449873111794397291566788737157771666866845265874828477349943529565151734349626997734447332583439933896329279669441775598545887769158579586452386453882546114779675432371895132556724777367645683135252232633867439795322985444546961173235321943712344542975338824821134554548729933376463885666958149484847517491717354532998692385124597157887858673835115863882484832436214888645737327693981129382534954343185658279939327328246289675917216662478362183693417135972462273748874689797967397998496532748922697165134719438127956498563453413118699979812513297737584618947248997884764914233985543794696391199777143434855134587766914634642697211544738321779444935398641791511665946677733567959487232311352296681146719155659577299219223342889893463367621568267178999323411489625949612756572379969889129158919493453527163379375252244158848787913264851187915418523826691567257463747745435875626897546483197733997772224581151629353991288861141716716165278231165464362246241211782398795617514138455567271282268386166515366577413767575583698436131672198644375441286635985626229365475229645179187641137588299126653964727324322876887535335336771977458181491588165717249653239227851649578526322781394358469472155118855715327384423748474411515915799269779398639882638978928528987892668687449337389277968718496174349187731543269277863643473178591499152196322339925377514612441579584684215347248655495865998945873231652175787543172456945738215438572667936789976121795266986438265321114682478171149456144677483724725173229917921955558815544714176572683574265151595385728197495942198346553156996323795595343726726651115399888421689149462724486959858378157988146149884956495888763689494982784378266551289566332689529717875312227761769614346484444214892321332997964925338867191511889892935124828299622598298148216296498718971889742881781593224834363132938996861958917966377659875276258947633628418994611364241656372166727978718617957873287253878974545242112861546323542256433138472885885969993525769874426629466534922417496758224192433994839482783923643227838237451558832769846227472683375197722775658634516228854993229637299465821682842543226516728671389125615553645778981649212168177888247782944511399362362367265733556224416856875711826953767241484995336811587857849544799413451749363832871665358291561491635618425617884749264973928958911551393663431715639927228913713858877933375335687678389179359534311894239642191756564571486438758737149983193967614969918539384156751648947133884169968712731135699553446148416723618578531433881846178673413973343189832874152246742598749947351458331417813126588647499492917952784625395596944887437366556341399761289638222591233857412125244119126978789838851935776876381581472969738721585587154521149186224419383943992449244585598416927367274378677611514953312142533248855372138798758134353457618923717125327185758552886221879651929631953652136971168679656621692554648993994682696453417957926161534233522871838463613387868475418639861148121967216444121867488159945159851745555177378353882687581185869743277674392225494662319396683645852528847858488753864684351615189221914778527371657825251291697519519866717344488169574593552392142927588221558455312642886114297399947768713547967131218718127737632396167312197699718578269932584512227857956695565412227191258599711485288758294734855555678427388336744618427779264629175917636367931381222899795166964454116542234362373543422937623857258781814338456791842934784978783451531863718268252354622998875999942928387293997932383563348638622823559259449241368414638481143324568464317111126866328156269372726553873584585161682487182129281736112359597994142289777989787769351484423122415633599387156821745782124335476727966874588961935583794126554125719387635531534862141442185487857776539972113399582535732261934511244149131469217469823147929379473776779795626352244337138955882168625585947561774117818694973278939477971527684994564313719816618555342473131529864384564434995749273411613654439758294527926489316546596741982966765127698236167611259824722917674164734536232893817788269369936432794157769847128796512437338861131435999974684444983236858744746679178155323756945357833695968536433228748994597913584743337279612923776575814594642925347954914996254719271529873975487282572871485755662613489786125724861147185649116256495462962444731825422966876471811346442676147918351546123649739754386443936627452495996351233188526159332984627757246662774183723327149337578334958514779968238451164176733555859689866853665419415713375529914863757442698147967438666117997374458192241944628452226716495122367265279262414358569121649152276883419324455789635526479374589967297118353822783225662598846742541252985356535736382442225798852966963498131413121355376846529715292431333374575589927589131181519652674881236675665314227226266131287576587244519121432253677271277823362175434335368472637345452933359465897339656483544376891893237263643354228656719246715795916721164299591355835737317776276746743251111925497861581367774448821126125116546221279315971314985186687287731353469389766885283681258856528552787694561148556714729594146881957797143146881451822662975553557317811214782726818175161616759479159169447519189885491441925852747653685335333121549672663157312966323645268469424271437641361466978343748574495722854417433467155867941786226687762292834279884351854722432989765864957354231546631892935232998564968683895959591579663165264919495152341734673619676873388578417812944916362513569145374922751421524814538679835629245536591533674963296953945416319862491443611986216892184423954828968982352241861341338769964346131829144367332355277944938351853844747163775999316999382926181374758553729298128617535626225251526461532531342193845496918332483918961114136345428958548361417798573574776489721615358174214983621967334852734884319126437824175171793178241527848749383854151558526723537488262836854138344397939619842571396478163356279598281141924252171627422656253112811823995329427478919163788978268159439759681317917824181878584488329185143163753534741828566994635543947243328562834816552142495857241945275921193573138323462846549543959331431787179891135219664516889722855813519388381881756995564334518979228146874942996594931253613499311214881175355783275291451699529529917914339618835444479447398351239929343292884427755689328142154956978188365696461838759543657132528436153622248229984837182875937768363524637348346618326494886541366517969673496956768317684238254714499457586279846675244656461722151985543159134571193456892954158147581795687934934259847932337231889857326818391616579272395917985769589169888858496322441831527994841846725519338769993975816695978942623153175859848134525284661465525831138423487298541157414448881363364115343852795619448672451577613994437712882251173939264212861261593164232256253445442752846952991396618723437571115179154737836845495377499256246652556829591175513939668573196651795487236334684886742699897452432869672295453731314453322966198274231439874946966311423597296924336359235529215634675934643335657373194646556829376668122444718425634876421912728385185219578211762959681771853779177687525345211495363339325571487145887212632661197418449787825528116817879936144674518385156518327988674567161527967695181639462158825362976927793452851714758864645262358849698743817888163948392717732615455237518286992276195266848897433744485283781997497993476364997279517926184274823593749355655261291992699916397646729635288613633612671552289834414367665425776937284249356329668874531971447949757171895516562348681668793486461967945496941965722887747985511696299738331426797874658345795745364335967188657445699524982366782195691398953776145976363499166266715634428685287684219558344958529872213961388147547492215599332228338525552346189728738387211332144984347562169931794512122143257535868624729612771222232446752495871642913864941942965297862881267321311686979964159568144212138759879727414399595441244555667441318179719239279522536871336968188796666688685436679165188674472341796264922444992897315262597722791317697732231211831256386157225245795567669579553676294798419832499746483339275431941311141922951924652784792134227347341331536537872151418421722445969192134786374568489339491534931928131588125461299922852994496488281238139565574476651749178696424436328264619956511664561329961493915731982975525572826858854973253625612718341797779464248535649892362533346325883737142883337225341583797328816988682878991613246283553274944531399366164225438946281397771934153979485896249923542461238231534712659138741532874911923734776246291213976929296697688751227742261361656248148586234919911674798724677381175833446836636683952714179887895276511172545292487557754723391717356244486785923567242693832882525238576155536782415564736725865368225728161639771225588159535162773343148292178179527422364769746958353152258955816448554929882487392597612417877529275556434671389438189218886526533878521776894736623434111563295583223391868341883214525579789237458767654476445565996543511433967734589725449794293736966198384156484265688648966238825424252656385611177922717328191531856819537987883674735466266218383773725413181447719245851362189357527947345379949953428554652576127822646263155949382126471527139711864379475967984286822864556526613928865361168576147322677129779861657173278925418129375977744629784481798588128731747235998269238466426173964746719422822637539465917414599963533475656717451476866586745739982328772352185923698146621984981212188213311792151854414413719739926747966136231195436877136918991663268851363373815482984684573538734698534861941579677945373524487647499865768795552355872933451924763538994763218433719992247238594646535891111944224194227729668832574943154146457747247728775456613996281494138813426287144489139218727856168948189687381738639449211896312284181949677631382226237215744843241234281833861972484114576941255277584567733721848258595298214611267613474755629534383783413763789448676149511454771139379555713656313816656792978171998842312466987367822582577375364948268393881416198246383918444746442361548479178782319411333617251366419247244812942872895154779714334257852343435523692196564333756169855868192642811911655877232637612188986941221211265642354397156255933636648658663226341679374998372534287842618818532498425794632774182875825615548586327887249316514679262632165823544232735655215573588649655236379681864228738285323176941444969838794125877585916213895838224286965366743492891321599962873289776212875114173113161167135343211829986395693814128214895328548521499937596776977786176587432373212195743418915564169627461487698897261491379826123975711748517286993931958939532828398352992618398581576367321381219934133283912749886322943971182974365574774857625246341526624619936574741125775399932873534884886523796797275694596583825313681221581958765224463119282712979981128923789391746846864925121999882673951871834427183584985964952919294372354584283421727223597787716133147496814146117727966635285786991748328733333994789343762239728682423376418697965989255257139887928256787545242739633148749617418223881445957919863265938888528439697742235935811127519377238962922684797188667768318246858745726985453962717573493216791554936524857233394941279579148294586937322144363657663521524333671374995197423677334675536948215322611929751118741988549124844365525527582672445443277178452787227778336474516949356863797865576333165691942535459936395971427941246694787839463366885372213897811368746428345661248755876255735652535166999355379234611225597153295791399235651563824835384188217766785696951916388662298497227873542991585675392158157985616283426515564921341545459958598126368818454635668622146931789581116797522774239991184687555493493161612788192179978435179518647843893171779876773414912852615388568864841727285524815988949467223818381443169422892289172818621819638753968899988996893983845835788553758537325224684983365647215851225867688298656945169624345839841236985794549123538481714186158179667236579472623461431738234131997618355182243478421473295517696267971479683811641678898348987692288335373464527575343166855514732564172326767494837233727167439575782823477217589192452157781637115285432242789588733838686558358666198292369328171362211655571336746555772593491326436482838841423177545684822843474923115879812297841318581664991393592978859969643753511576856975224411294171833198348484978575886216224611684892635463859686173683214565524793955491575423931279589835286566742371326758951967895778395842425432353918712717487845563147278611745825686865583266522835642492454845414878337544185266729758873356876164986638937453914987675989576172468932723458558836694183848555582474445761524317956354448382839976328885736245831456789516789666196965346959423566135975554499998684917592544779463859494732632389671339582759685869799962214332399213159334282657536431641964272293387219627772434876939925343442679391242829942327819792226451517436441521414446216175287722762394737788618142542148666337393522795552322115169274139642371613882226447548955761163926143294471583136779554839935225839148485424625282147429412823485389126558819428631252182263481828629274954886637752849955283164925831235524976741824618135442723295218758955618689941852485456665175749644115863757832159595151658132975375749925696782631135179772968485769651919677739832339296392121675449541397161843155965483684632175927146743636831326764122465662953756421673254276651151287532737992534589784192656651658312475253495644611819964529575315441856285749989179965416263683126212611274963969755285791958359958119126422698562978558544377253954965496645381588433177493117312586135588127155787994633832551619292649549235613381643824168228937191843855325444498679965866658368341626147571899556453938584328153295717554534489124216845276969278548394635973864174767174671698552371633228415722177885242191834951913215934414512379683782865269359459842373722749697975242557471326289416678751511296711855581512129951518362323243893876325466577552592238449663733929631166693348587699534488652952725722471614442111144372147232492873811971314424417734937541778866246133143473723494777531587473986587782938189338794447485122299747516588396328987421148559668533273822641262959691794638484246553734786893897856825367996429965236515284472157627144744375362673234632967162623427881117633699912364469165236467146157799968858984319215636363175579249135719596917727271715893448352255634473164735543412991235159365626953268631174313392415718635986672997749646956385426896747145692771544398983412953421975788157334367795484633718958946415129632967626154425786462355985486359444195691931598935159537974689523822371363492194498341147495336426553679998197446379363992425855519766556465118524549639759235775641295721221861314376152154622175184656656643654971684699941146545899364916262668517865658652395765699989515751491287552416534111469367297672611618363483946335362286796462523673499637821444968177757383533781929882574416793699363981134492494362517847416665581788871129148464414197738394743719587688592238569867541369742913951618456668414389933958722912196266899455385513595781552641751356845789297658997565429573647562145592511266954591931876139775877337477484978427319386989956434155782429726557377314982776318613171223174637345164552629249989296296494755579975329571384173981598138493849736347184211517695544457285378352865473682723472835269877314227294631987148376457864731451873581843821535342876552834869945194166348392725892447528994777386582216934195573726367247525333861179562862318568295897658161347234289365485231139528263968982595814738166578672523348435323462951213928665312564787629941377461561751596937273649281284292746772747786479185249257265675647224387154582491814738334881254955383978336465456727559837941346655842574211644226761743436548114586643153916427992856187632541779443637837469147233742595538696439672354188873695968297558498839786822218186355841659314233926995586695494938412476485698899579826475824216946282611271958995776314884295798496565683576465742462649157426355791357494139592637781585236741329334973374313466234272695269389213499635956382794211369775693593742694288716886285211177536676848197415376953461972968611277761561291727312547623719561587353398327389819963625986833871595713534352232126478856338516545816258573784785421296828677222691216964221589921149622477188257268853164113195197968195894518323987283593792191886696264415335524232571639738817565979429733374696732795778557193581421494619869432511966712511759781719169145878138135794844818785756641544132824625194567857624288743785287369621118445939771188841128636342193293937439486394278278931654763863164817635254562378271225581877982452914429765791597618156123719954144575341629768328234745896899293439953823778511322584164642551893777958125966887944349683746726182765577963451134466325599261667724361957191193448969518324389952477363962969293188128841268253389915111296215412214977993718835716226335846376587774464634315886497129594121758326662924345723362863812222176998463664188551776862242243459139875121528462329814117232366368245646697422654444835556683197912366825557611144426761427637318434916461111115447913945688318141342876867857491181264732452246279356933528256344369632865988696431123263887512736689666253913545456662951681664323278773963297631286372339394625831598894914666674291323242512974134992292557913333353567616814226596625759459781914269821481713442913467312178159575546485564697786913623739634571915554991359926517769931783231332675165989779429186878956359282348735223199932829495389894712835618119498289371221638517878151519321159877795896759499186882732742656532391779344283181677649714868421641527441758956913766636912753716647371346139729985458148213473936754687289152131474277187335527183351958953956883391918621152759974978753147536856745616692776653849714197651325897357816163536721681971645657935769359845297778736823775331834489313297716473244726893415486825645955715341555826495535974645198592963485428999538971578832232171366494846725667554681363486584518138422973348973421457775223662575315482615492733767435855992147658175245575646892534918598512355953466923376955297687436277312796142642869463863532364971591661264317583329695957972359497563578899647978838312919144973738975764527314176796997791287459245621962682979458947626624358362723798966943888671332883227132113372167651849695627896127619829146252916988847399189579338219114727717315278918896652474384274546216746354133813467514921348672273856471773144388138329443391528783328294598726628458472611642499622342771653213947874934187217268391468532732935612995483193698337473125377451819918446646896628355655172717788689423166545197832376774844512369111317861469932158735198349566375495979995998993775364197933569988576466855644812237635328564562398845429874354475927548394649768652183169393729212865674147814758866963891162172157625917698963748444523637634839671161829516871513854115767259196192173124692542836136613426216825912323672624796318877117728299681712968129498928795414265185943114198889728619488728144642944234443321383934862634447899883395647878985287663625968637625734188865663171736177573335876348656433778175156643489613298612476919286983387842278248357217345944762459687362388282126736461944328454311136164972173645281265586421641644349636733186594619146677631783217961643831371631434982643612813697551724751793745232385544634773527588752822195497525868321797949687452633822352894389222179863629354425687812192421331348323484319641219889988129143166877125445418428316294916819115682383736366187816526916585386654763144569267747488978527145619975278534439213841738588282542439947698142842135197845643895937812571463457559958731185464856637773719934677562424432957342795462721524871536658991186899978413675626194155611419427995893633878341941245615645576275753915283126999122472835382898364553162354853744981163591661585831236352636899288284533597546127939654616285293821363412265666457392663169679862787917123587112832976182149914182773484632431513691298492392688756984346478438687686436445592466955377715536393942574117567793486714573936554748985395832591738397645936571844722149633772744463236628364248519613575642615941254624438842682542778231381785799951484266424468635357476444812716744159792137889324959483773853426721689782471382576424682955286767724693828847994535992186495969642999381154743195584672311796659758666661935133679836947926571456291657649952218281784475922966474539293987217825883311693887325776576874584264742952911288811376924599746162435521612629419436937367242847978521482544474217798524246229817768796849266587265917321832823588357931856494119599321313483742466168943672972822733752881253379875668825122292265539628643969937384175576685712244216968254247775171537175655668978555361574241647788485841486283938544481894857516454836855362654397636725981731264446921446591828572232631583598922523546195176924136288236485376437682381787468661277989538845587344462439966822739427359933482195439562557938189921645647885974427373417198897798653116884471793328557256936695468678245572531662417122714363618454268624656713853553522838187833139779145795879114264447236817119877889359736636942375197576276254741755627379863981388946553268631516157774559848766658213328171129625383646511385841651882778681642169324964882466429596564422485581512897375411942781446778815363314483119649623791834391179685826244455317259427589728725774254768112522237977716587458816229695495536648335996644387268679548177519173886384848166772639582378928925294821294991577628566694485276785166275565512164919578816333792387894449779986276223894515884992581914782668276787975326794974231111488544351828514935584871284284221965399372122514952349456675886973412328329559754877791467855432672793534478343639319344817441598567711146961224234167457272329965635638225335658944687395415311873335146579134827275894335866742964578125926317814394737192666762198889281891581811172789846411511288216285233314221388362792742759561177581719129257962131214368313319968128839843538732851286897226222914696589822685659666246867479551828565457615161126741216952897789636269829335326888719314574352214619581423934493373293659974274545393434515945272392546433751184423645996489996134378791964963413667155593583184499379375672912157863311658756196123948496585691365484548324814324697447995344378717241971352582932665363687913863577563597645838985499666357523869415754427998777126971685347523553918359848715327893862485136371662386361931561141426555167674639656372365319322343888383949293258785991322242365654372556574789557946177189326869286432877346281775272879719375283725893525234281617785665682119469849191592821882659125563572498472371321592578534535872127257985112134173229172415882882617496896999216426233453732718979798276766676118739955227398284954761447985585366251663372989474749873561818334948993111318235598474519599322715594815724536976793153192833112651929492844431991115414587786942922962935468367367797245813496588773765292926741411923583722269825191629619374414315543815922793312352223249669981345625116275394429649853718787621271689186525956719784954712373289347246796271851719183454572899722346814421495465373618155135185228798131161516133483287588987597366158164124626854252719618356973578484785147722147217267992587745473741244815918628334913162835362536459739239981693193299372897939474447359236295485614549618312248673397111728246617869729648753619738537499214754339219263947197979612441359534857778674977676363233377292153538284842227884499712938656751193712186298775124975167831595694854862471248548946342923962522996372418522376158572773178229318825866617734338986142358169178851436996668971778373396111998672694283758536692327657156246913162581755597157178833637149639836973958497181698471622335387269767951678476446272144356875472447132198835569176389623389737861564664446883689218968386268844989335658247395314111828443236514545991614343763263145877291731984463523847913228332719528581578823255438128339162233273811867747953486276919914236433614699363156473881479479781414664933858163691879927844722742197499774469728715696379541514614432388735616477836452396456716148367131581137711344463997576971816518457468138152488677224892882421256891793586524371981369447478584962121258719236224259173829677963164179959852363677685866722417693919794778894962628993663893553743622979758254215914369538884156317494368173483883298251929323842582817713142238547352453264548786776336639742595229354569913779346868432495533854878135916282295771613742274458735636127635744211372535642177859312913565138459565627179276861689769125417242178449135943527585451442872595593345247641872538964986164214763886498153131272177475171391766844473376468486584329727856812495723948675413152363234898488516187272938467762778192471218969567384486132887964863891912696653271597299277973358537527586239446495194922698723565216863366319848348731889661716326891237647629544396274139118621311322976637671991597819718571699511617279826814763534393251218259129825797277653984214438538343153134513239874962473825567372587889149451447644879152596234462949843787711574751755893525751944837195775812176141521752236221593292677247355858999954166677526735892515231615493288685231883454824963585545964282949453431665946342579933419727891835157923415129266157386267857839325925255746563967786391175667687279684158793988656276273648296993862265934313167774281453262861146262754274471147454598715889983519664179416319944473253632529879635822862581475812136488431416368751835973119581683221953882418373355842142979937238223311559376591974166263945758561781735652392387684198492956792669632196225243881299938224773848791899421834122132924835192385144233254146547749741223522649143545751164717362245246498652555798363268538255378883431275221689416622565381716485726734246294234695841367338875236898212621934394787723535322834414323475468887145725968481562992223559995663476747344282147326547782679136263836559867961693336993158951566748494379966924147635921725861435353679665156569123694565841883397654599114651642882247622698838584833723287231319332183243924863144315624237357278486681981466568899451673397915843411398324879669694569889579953274213935412467236573551387381698828111541677379925169998626775566366329375993784389178841498843469881718297366674581464394977313381361169795253592526856154784193227224182697955987671276553862164775183353836325981198644829126483881215386818495594347638539966245254683263192549854516268154778283641766965917983324848654829627871756442841628759234987267129816872314487449123136314939641512197228557281192494814197159291318121865473472511781181785795725515582928355495463562539989351811459451375724248585537425351321355181217688892741172724247279284692712459138392399561775581419678838164866794714648625963184959833637824472843186948433732926999252842378452659243965348331929823916233977132956242755577478359549253548251444857112558195829764779823737659144745888787377244512382664229224597885653479184534562726137939388966331657565817153223826619537322744898444814518731111662624245328687521891342124924979121433854722463333455456747934935978363624759183227652325928391787592754127915126781812213931918658723124724325783853963155245919771973344664142415592897311799667763977333636756315484125184949525813534887463983522823222516466847999477293391631812123263718482181827626845817887989216575424511692253837217986674594142572722871885168787465933271675622693878847343921757138355412863932218182716997863576391731816118328926287776552798227279251759571472979556111369181798723788735752959893493428326396966244996561565334663895627336732255544171226758114393754467849153517814835481271519874119793687947527891437355385263463431589272834623645379797393449662721637729171334759628348571447598661432348351624576499256291841695627841765726173713617225318268628313368739247516667488798614365285391164177627384812781541876374894819296868685975943187163699169341369846593179573871576745731665671564113411257545581154536683141285585715631464712717268837931948476746319345615886482363966949765349969782253639268484778263147562457326421583598337685592694451584214736884133855523963123456394624187656858234685871272396935396684248634436783279276415998426964377248482959266283613212842437765468396481497814265475568691357893523151189669985512857626652321562767664621528958224874449461416573249591531335147424848673614361565423376388782432816563834258395626952561348471651286468772592953547783717554597526152818157243496153224868217857461542446159387772193389199775419464587182919676775112912777217253592299381248625215496464183898147256174277847368887423721199893427134432115749528258421421499631443674674248188894746777716668682858224628337216578136696262931115835387119629366168638243345245627244845896623228961774987511173676159528189399175943432182177335739672479297194698831838944766148995123843642991773755548814416315896289333532497762396285426945415923846178227892112619151654175576659257869447648718694657955492156861655489144713673938633162266642795333237597764956719915121684753365577227992496967757358216579895342964662789485969674484841829344431685853771276132571855736759182149534891928431666632913667465679531899881522586249248485232588439319287349396999823651163211943873781414333822893958965375367544712843275456635839735151566211571654761395757239191495441142188954339349714426315444887982181885217141919232862395774463551538948642631643629747314651895847541395457422783646477731799274826956482122288433979642611527897582928121238162257199269391981727819721623427443953968987865836617567439669494787883661457739489935677533472831427764799462399392858591747819951627186823942861935774757437321482979651844829823389643376917135232176151533424542496723223825338446139973314557686158369651173716319216526769438132857612618889428348779355297999174735875764514427294129547136923394672247597839538929873575166275642756595286248821896143548165538783242751353245124737961776128986319464498592913375961938539336846773191959148355741832575397879555755739532467832893141569257181665127971216878967261216229728874375172281768454179199691672449676263261326961477365235282325282797913925422457174686994926535583274454995939646984673964625963371625993496468956393499749245562413993332767652362592465488834964254466643296422561516945726113527853597726358594553246517126367953293764489238572885436938554248547623151963621888311993747161815566762757918986826816178874844399966939721528189659265932325634628121182133929875691273314767138839847949122999557555775241843626689373274472317951538832915266725642757184314899941724814439999453427226646925898879241472361316557368821412771657562599626745289715586627784849485534595968486357795356924388136589927414241865435869452868672229191831144219653938963147915125824996999399354546232445225516987476965884898143666898419859447174668157426239495964894778613391656461992514442838327674423643688233222372616889619355696859128731143369439918777693152746736618612928861741417176371344826467337419274248389885413536826463174725632146763641172224795439537997359553927371387399667199942641365119311128145774631449334486412912841742546913375319132468918198272245388879117626539555456145862166594371289852494348873477962168517834853736965298165213998984845527892174659277164684873661144475265362637544341698965231225563977483545288512551357768879236432159413829769914848514371293624839659841716687979729147255426887743737696354942923826431872451224486144769163245426968945178181337831396292526847333126623411444126235854884568291392953183236536249613992346155174258466677139744585774898492898214939586388242599876255885964774167815523337486353977455851227523113554867515139335961544456996216459736466978791396339765264874518479925592471499133997423799938866767317444584476574315473376252717447161418645192512859275791861494119239883392442627435994979929328221119338462523255655931733653465564486222263577931314485641876322659251376623216247674138115536699425452993313836583875676938578529954143374556283479826428365117992395622866474611581223147647246275726793338699657668963516328835386856978847791356242382813684113697285967635661364382562631132389997384946592527746891963965983871619983543584358726821116595672731619852199323185765755414762744894678777597816261736266531614872249916765435952114529163123491623423178519194184445442643873734974162822711299543975139297469666172253323333376463964884419375881184326458765392497874114932428427737372147666696382683186117947511337441187757274431639238822572585228237882418741894617478635863374186874894667757196644495762188487953343718472172545974449547365951285445282479532118352284911495513946354581343444367375775714254448962391434667873511977547752285871119142497175425421154738946423424337467264615937131413396838159481136733182675278318537199995743854527725962479399942642631194278639391786934842745819961951467228257125717981245634529514541262966777247935948411652511855769866522245828312242117246331796682223446827738841151765386355823934267757529214318274612237629891227882524533854562831133883673784462514857232578569663832287555881941425127164918865947165799277271212693318698464768563933848545555624945793539915751933115859315775258627769759123115315881721296712553238983984294633112273283752896998797975384746957253462536695394154741268632326822267411879497612876882644775467563292188918777854443697974499246355553353111895338597373623527941486611912881314953769122263945983542622719729124389272296571977222473542424335653579699236112833959293434655219456315226727999284293525789318234764174745535343662893372291124489686168592136372461787896897135994598357551978124272851531144433772696441337948255339372376628885944578582385991433369486947725218555393421829852176915597268768524153284375259356846385119776637822149566971715488817397374825616619556143122559338968574866315976921534735879712687344719249746237271443929888956679941954818421247179262231934582375471751483485192927129113551687214187135363762863574574728676377674387612878153298545996764391958476936213817236989569235463567384886497577288787633445971225844212641397916873435577954966558859924832631197439785571875429395276568511621344211758645275294511156817967991212276938456954314418987563342462478951896371619949727473617733978764842369329392264892152635822687961285115945142421616778259227813811212794387338389866661582262442452521849662491275831978984126251313386232369377658636424836341461587181226233798661213575117143191899711213583248358495895689797866737747985398113852339888667443915678377786586662785663528142341798614272729485553917249853176145895213383221765965769554851455734344562783849334791644828943425758184352646458826871262955377651568774936572253838844937455119144822115742766948731124768258152532742115271775547648913628433575638748255331774337126378111358791574299722788111722348248263943981318269347148218242145852146333353168192795415227331815928559774979878137467878511479871614581886873565211887636664551591959937514759269257828564928968953846676852868772363118499376169354812485551317544744583518915939219256692723565739976326196589419225884945181653559162762319158971447741258213557464539541454259184757761571826641873827751166174448114251241795773944518625211654454758763831397592832693213267592776642725844483565734834259788854427689153491556118492716784569899666452681645236176245713158938793437586539953659163633837721488729458911895159955117499951189859895585564967843352871875964857737275629926789824191187574747529126577577136127416414152325165967515261864565286727211242556143783298284639237698219324478173341658576938831589419332568465588443388861643581522443588325763516634511554713744867126837394544196446481741914381182674493646945578915179169487485432769934526953753259955982529953128929259855121436221618851755957648564538148969582541316371775438173426218814751984925543519942748979671469734723114647897681754541498433386657867122711468433776725457776431117728888814746914675111677119211881768558812592858448316925926914869713484623797521241731223893178148386747916667662644655934142845663336826571237391655147441523988292783439442261235628362393599318475616559666767228854963123942778249883748215826781177488572649453429694423793462569287943197931253112443622967214122715113695619921144395491292493553853293664564568878427525565719984294449785131918648379735294182491734782293273946754736134543672754123231447639385656159593769824135437472144153617112151336218521153889983297447147243354874725739197984293746439153278655127598497185494667219293329284676225954742271537256156488385752253757121248282895411138866329445611312435233413852864549262114655675726339551636712265161179535183453176921983553679165172134542876264665753887244941458452814979576842496685499684627453443729677341579237656424875511654924881414552454118651926477441622199249574698119854856482115176285187934384194168442871161568175474166595893199923219116252849376682221799917889191991594587494963274243133812811798748195735231437851154343414473256144416937951635631963293531745348679362157111572657875238292624561587671371237483169672499469816854511537659377483349469494374859299242885823451784639558975341259963241632876934295249935459355251455416693185494917889334258663597148697715244633292223547384544347196667971423542654997536979293891446243174328583872623298127397341945251573321516568777678417931934537585716646292958626456138131474111569234652737697132725537564864721724177251919711862324959335715777174798787648615836221143413879477856624477147621132125466653691264726242855516518621256711169984356859934574124976999661655443877452355792113589188934889424692436651921229468366158546478637759325396318344161665427944616472393632362175571427757542893449658721845942579521185748928152816687771275412253361733624428519178734842272387513475736167817893565948155283934161532137717487634227123641833239271374953781353765465619691813719737932389324679926576325495675637339457388746726272794334689143766681329172654151339642991993368827858656819324235298487477683465139893484294626245873699367593896786924344585288674834759598778355857279527135782265549478246961555152813595964289533469274769893388478636122429372517423798667986723464965296123273714173849537188434621239831946216614887741349271533555427521232783262834768664616861382132144313417581866612963657676678871291431177254614789954691267944963995812616876245139498414187483673252323899423825854684983731987282393582422613278526814976953661781948189338546287757244639985953947744657591117773485848626121425188442192182768995478239742762269913212219275165591413385552568558758867885381631661997442597443117883671188252118187822971714814593758767662771679352448329799149314188745812959874128859618612433731613183278155456229989841973246196394511426859452451333311524123752113133617542776687918959251514614826276731887446946721645586947328835586575299693364227765369981763221857466334641852628144843817128113648361623698769564857937739648793628679939715651824526289132912263931922772226318659376269459555757638815937557312338954778623278941621213857587619483759521838522582582667315965792166927199742888936192712397676772473162935993785483664673439896932337421718187625872248461359942265886867665426893897633657641856235891466887367646398464127182513973118776412965585429729428477764154822351557894335217237974659144425559683272615224726523877772213567515732891392674325591368468724364837925144391622161287923785111483173576995956262369959237637774972228717312717732617639392958445556326945115788949692521615448894425819319877651429551522154934364844773541395235281142146549855238584748766179677682686348212635463736592119957614772395915267693865494614598158434553943569218494844283532337278522726161872729983311663785492243314818985956844165131398836949279569447832424821322341924617624668493184126496427541632993654911749946447976417261333422677966139933455243774489412643799585187968213726993332251425584432839526435697395627733863211553535576918567186647499675886839182528118854552226855712388762778821631415751862446826934711877558521541915991135616399769646381242386377865968438957723676314337445972547123955849411767278519243638683494688152982946654314227479338466814517796789445775186723745481952312961537562847345816161597682711716749586668382762468427165135294878625281118384429251746358658135886314314121552466449153828611299729148451484629252146427388386256151795733185999113645363171685371358619928317217569995283139557563233214843552298277685897852597711821114368577484142521294443113974184319166784198231159573762969357788683152541453367113389376312868627932976111326937254272711776646329426825847539144462432599152773514195478211114449582639434582732229667576477811868811843281464475432978615295269149123341465613155241992429835638631854871432535958937968841313264249525557691184877563356386491814665219969177544191416934472542897417414399943442472154391444624364194413395639776761191934386611918349468922889546654556873434524447384175362116661915583835276699327635141152616616145327733383214966461465425175688119773199321696142278519997464154121229231281794899549439164468759771673781849128961814799935799667633782765666353443791693161127669938913559285428587546842943598482171436344765413266749723962799897839462737178474946727113272141733658721436264547128719926139192357129162776129721691472973863186898694751362223272128315582781469227583518629937948758316374419211957298969942645419249665995996881619495488542983896752251741338398337764618715994669684758761688491967428187677932991364139188818914635433181783962877279277867556918341658626791987594412186741439253117958437425264614693376297213422117859691115555925232641461682792586445455891371784948883942121368782226695531619983771163165189948959619952111998165161366763657343282186187266172577593168323947255354961676173229868155986269784318584541247457443248625132998338167421424168792914855268458381177717759155824824398825649366474935719713385666884765218144761153523482699155533918328212587583734961129924467766587498555283455759851742188753391929774282437782656729827681721812867286327185251723694353333312478296727425939992249664786116344953634364746646749695964654277573734149423176641598884239547283455669599817469398276588433142367832682551296225931579322616632315462517536147421577417557129149575625467969692548278823514427465726242837887149846627868319934495929191888482365926692422214643135844822749775365735966186439733115596669437864435821417941813113542197149725147537567142222331575585378358743385139743845866913459767581345673965938211697276411487936151516793386995153761311438131525565145363752366623642674476327864367783968183745199246683124789126785971689952451264723913382372951447495381425441811912331368552574214632663196177277481396949177488741897116793418237266649647385159139748327558462976531584212716699573384138864861523551871931691546765967743138178314389473343375941336991392217938367285427644137259759779888672487194545198591315278156944899937537981498248157575369952231114866544582485289936462347568459734388635864272255791814559284156575346812238342712782136154358995339918921755925993196681825615246926827972563953352711782153566167648336461666871941918214359855519341877843428412492213547413864797864557788528647867111742926386962396965715569245845819891528194234819379725748221691571531431852133959821374195154292144176151353557428446745248556651967562586632352185658962816461366112259812835144598284364899835335449229392795244953278567439862395225144223726191328164716572711122624935397797728624883441592593563955574242723665842265314454518783249543724978452567198332671549763697867264998255844665832865731191766472771575968214786873446444319846113159535356624211444968398372872176939444896215258444363979166364855689177688183736152349255861146513311157865238733956871246359819239135729242115289766789414383285188551563663171957524455762981588432378524732826457882357456414235462214576546181868984738267571195115452915613687585946652498487797242332783942698172646875514383916238316691659456529286636154243756665223278123663571233727941314761272579271436672685857559671145162298114146594752237881857851445565364758317772795573557131175521946312142618888225459163268619693224327587354166581486592441499621932688393798247275734768887748731998818978892519971355124787569648319116895945833756358627363326147958527929483666292143779999614397149739768824542646814694553872575447313194448591171449684961127642272561994643641774633138939784899946935388642628972263965943312214797225988238835132327719921949318921417221912594625385277259289989111722721859212639136742659557447418579654665627539184258182835565322276622183734633856755726263794822372581763224418163445152431793739987843154483389533938169229392279964257596714665857753664593799695811658229575168723978337587456936881792658154825213935684327829497477532326616126418767199789638465296338788388929896495363234169489191868696577466994429632928857756833581148773262693565765641225787846941717124283439714358378746529113172774981324383527434297748648846113411442751911733143726589463964394347512591564867138676622918237551292351396671484252793984616452571695524181219523683872241776723861223511631572731127139296777944164425477434696597399229786571775126654385644393922823889337295715468777239558848931199132751121556423936971754546545447512422457998271768723276629253893934278867674659311537178994273576782667325679511562259147364619177243965422371315331235761211118831926468584515137149524525535398399836564924426929961312755273993875431722143644628649814229517684126277481644885749529839869537938445263226514968728591576439212954461662113598259119256688598683917964274423238237142711459297488284591842154866569629663572119827267151255531275137882229238211916621635988994596274386218918998551593191789238745962572373162726866175133855618115252378574655221727221495955755171397244618129281712741236691197937641989782799769833845494494185658647625683558431614143472679234987648986232873923226453528421718551359863949231453987137969938774898783867679723992614499383159538395681348228517568917835141983712268283993743588278849442439699715623712175312129893736869827798249529636946247936288774644413126968819393827419927783146577767453133953323963854522625361827552753146278564747189141566557292376571297943317994918854498117234781799473693293673456785586298565434451621839196232718357866692234468521583482995165899574133346682433472629817394782649952365823965282253133853131373167284664861377493695869161187394113368745662411669145952141879271496379636775732635139224299116946552514172653796218121439339923568618115159429938631663595485622382272676517499262227366793365483499556297927833145772331666185233188696488161354821844998586898296966594298224586679858696286994571128447358516263148797315794241243975589349945348127747216629633719268293186511311173783345397578484384482142972978347661189726563982321424511617431186184956512799922963394354895993582986536696698773993327696195354432185544293969158479129637152595682945353539443279272934639778136339654986739156152244516483196627571779453346841955395833242793349426341474947143462945267326549571195931435127363446862593146983183485427929644888464512725424722859491182935313258499561192353437366274466896291139976184218342168685829498927929816414724557653491872812692292172712173537271521697778837955162332447789596558597364946631146269413179118653412128512164177783623829719565895996747844259928379549419456945325988672886877695538479325997429718564652338986439267197486218988733197218917649665264993613311174472193983556492927326566785793129227496649289362992647215684884795423977995831929963673131428887228516215676667553729123143912532373882349885531791691895276237365643765644196966825914322824658112378832231826398797128219564354581263474546165835637346392726164279425859455838382815544515219517447913837319148228652912322362995696879591593214959148171296485944429478328538823737543462998583835752672435296469912257346284466842898139549264955279993591836418487399243248644969847187169599447166189384146433416214829667611396894623935678899319671546385425184356548195885614561524142563961495949838316675922163466512797836339293924579971176312852132795328137338666562568188263465534146758481246681727635441676128522985823736483555217641697298141147519782439664174737787416311214965934965821327689457198728748234627913484495163997795576449352712382529859355554223779313137297425577452376621133388318512231852399934952613615833643594515679799681975145394767922169429867836794782285613178759865796771364833211428788875748624183549665957267288956743296958366599466851666274178542741435269719755339386894299143126149555515479892828498617691812495359781227116277926776436595634158126148747355146623254693255559352954638453846487592861175521456549912636819458187163169512446998978142633466154861166116241649526311462696212587593183797759691332367327936174734931289755715638744475967675136328436492861434198445741497919531363793888929229952425464154985192272459241252246377724127396895923157979984198625486686426895386581178965474226564222643232659397395992527939585896151372447356175664626498346635331256389924521967327857672344766671397188439525247822589792168624543341173925438119156125122863215438435626158858764355866142242775526977672446211545931633647814365851618642263326719761925695921494545218334654224189171639129149583993734978499797514666567561328418671978716675435781336972884734591587267734266624646233312783933171786458864436789392533582884181158684479713361389432681768967973732157136353261193361326123729981996697222438447653784385656434424983694736569235483729263896248535685967594415844124839219833565123518357688163363646666637874485636461128825141313868421118446999435535327619549825747756599178121554964635578459814577136944834969255616154888778126727329693178884354958236983785356987946133821235428331829288513111715317589612153875957965716926186516354113298484878564935526224665289579888637814741133585986452858696585336925378382528826451535385733265647274912953744478429837419634188785175179453778419483913964362241738245179245975814915391527739783595882695281771161488541113971319796866374339446373226316412423392976493836769386516227767999128316846237783522163675341929821741225736585846932298622613594667578941688961654663524575824279826711768663628974224562144359241822887633993789912457651875888869148712999267257392956943422317311972169175681419595187328448258154359246614644683981722454259964377282741214563859822855361355583391465476822117177163689593951289324851442532138735183833128145966452484537638512898181372986583117245587259181261177115314851952765113836744751757457877251255212523795368733796431117722836446598767283866925567658339512145694459968343744188844666517612169495389993265573347794344195191949456355672127442112445734234136862596152263886886929492715927694652257362531129611649619191759115229844976187838882752751725625136829226714576265439494455817319881793462619235756595839419149927976212362284659397781611514395183513628746191919687748797136525664726688287278247811678371922378758216924742545134182918999237891711392564618121428618498311898858878134585385426187917637695481266968317635267864453115765212238714644217623398543843318728839691953363925243987161491152744794688813115527716412439434517876234815224665445865917831271857469841261626159436926698615781326391215267862714295754523982113632543169745815124598731137227589733139992462863212185987618366238531319435512723821318869784396148168992542624995825791668988582387186139391589971439485273921149747359378326212245973588781784657272198819439633939378135114467173272962894857149966769369595292528694884258852757423348277596647486764179765939661974781439983621396683568951715793169193191262379837173857837316613613712627734615312597279918568718977139793153674723439329265935722425394497764936378319224696258389628858614117544354264524238946896672442833586829235676888672351918141224562943954512299965178168763874221324599859858743141956722998319339689554538393697581163252983816863717151978227866872177364444929281995883794571156253868213694612791287456793797322597317565826175183827496765486535255891381888376568297762389832246626633512329974683268486359473933575835856743199425152777593785842314789453663684998265815274656887255179326574863677157665838496211617539177452699495252543471982932683681224484314828861198186288346594515942272543429418226634546995345728946189429351162724967656279642524933764789795857252996523476517999266644513987692692342477928617624277517715455524637664454224874271832592135577838485739131427744716866858494986815376279211773144729214833339811438945746714926388198482714794836611274745946655464312472752223883791165568123468788836991112389648554989691837715677176276294258993382249332881458955561271584364592515527696639424869976823349588738279738382213598475956279237989696578486597645472857574486175144789528966621157342878216723226674625312973977681778599171481948398828915192851816756552589574492174954463547627382746885732961267462718851593221384862334529535262422215245556575951182434366882924934547182538913811143479157248439773469523324593617744637442184941376238448798947622884627724918126747571439124875863224885385187651387329331618184415782229626271299821752812619849318528379987915987861941191974894646562461961448924917926123493856392537424457259559342842181355883935666891615469483456653677956347794383333778515851395553356879548966199466226781729264488964818694214941652229181117436222693463872175129231249338172674744978146253754666679693598646819296911524779145692452689534224133623574942745283437585447749142493649934116434767515938791515645988862273724299748232892942415883669685947345228121399483522999246113687222632433452281432521534934272983956187422631662723755147464653846355185347283363627921657111284817215628346553814696661261388569379742564219389748395329347182919872927338266939758278212719999876967689495997762578489469357224721478317695471537455281114726288215946695923974719227227589218819412951543649199911612469478169899185929382182973933168896691688676978896914111382587366835883741237197597816835173818482859223245844674264746244414241326247441823369685159572913327339842475447663611196953242363176859995539174435434929124258555941839372278611953334346551396888861897815655758172395949968447333313983448822719748232117842574894182326116266131842942736773251558679278785497372555626294398353119936814242868914355964393127327219789193378258584979397598229949716625853566415691611359162945826577142296846395355379284378768225829939612231645263971497264964455448398319464961258387993388734257976695642137142869559777649854542191655657341326362128862756299298353697322443968161847812411231954214745967154861843524653575669889263648443627611842297544999886792855678849699773881525814782349434781574533498676728287655678511878835377517463935643498855715782674192742467759114353146517875132531613648314314548742482978469513562735555876228983119215842882138299745221633429621531114292484293166568621852813755766174112532737473245229391566941438748979142778983494412458941974747635538695593632962196981986351994356296634897883192681678314384627326789258847137395253162389642264731756539233852365551688633658132996549462536662197154917172965154797533676231329835314821126512779522779382493375795286287737814755923859878116476873582154734299682755743533279657995989361671537592164327624588266655581646688338444855527855671236773646284917859125575259626628285448966457931833289694554216814457243768351333541499754264745179873149864896141171954359633131917121996385888995871395257459339142931568946824412331744578311395496443335717247369233671499529957681713274986612534889738779564323382619898458512879752518564895123273252986736723688738574853253479774853436996354126762237352698555931172761285577153256982149795288294359467814518733311314373891519834858549789641872811337596545437792635412366343433445285648171749882323458972224457966429236299188291435232342676362813815425422241273694728975592681861393634747764924385962421669545664836211865356684179129276129476758367444878436734645651242188652477291687421992265611624732586623333381122911235776737199147798821249251331252728372971874442234247251174297358275262348662784117721738136762568984117963931431191263865431577364665259543475585581876327254879235759683839367726683214838195128583449522448219678878261971562329552493636546493279895992847978823962324867496614593971155842632837949326155714163459544938981253947868363734248473317788485591684271997369683518748417245675743168158785642883656476189657921226129787241328573219628563164265666645458479336436487134348654121683916754765218846648963637139186387961327746511164941212925813441135146729469375669571761142474376771441277194659597573476594931496439546245519459996333873264293745679384833777765387574689988251727545828194659277824272969785746481852561825732513829815873247884859916987469698771751337541227613593171626565342397329962974623872168129665197327848634711172458554356212512323896758938934168813337847187129398853545348645425647412119711638414657169823364737457557437489319663269152476747583237868595425362678583529283831233818557198623771528759577858861132886585437613654319266841626628615353886446691932846329371832592126394927677569543264189153211312942333179826679885284178398328512643849822478466973279998739581643937898945771266474464236185148339919794269265712238542159543275275234459466846948793797532758275777122947529114873141794868686954654858589481867161149415264768133497246183169755757688114379272412235632938793257916616933941981292554746515729419969663847845844199462912463413218154448932596715631721856287497213546337477857311373367965614324567189826691321358563258619939386983855414445479116321281974891487653284427953854386294289578415271388729394587996524733678528125953723643891679121574749582373777848293462438339387641698625981675583728951774612366325975564629977358933111459676116514959412398123825125259217617357552572711592773383798697458172827974134173241558727576211927289776287585717853524351772753561448846695165738979394471555791724698256552925713542967823481452711525161351632774861631768793964915511535587664958992176845231429969912459195599289476961563414381371415415853871697283228567986922962493888155224842264819688379464593882585197471475765732449375635992951558285223687249382218661969255111927338496211138339185181195515586129868577578482299698697247685196972738375114222271139743481998586657474884115332324287335414162717443722132443665974615236531791334695797841286673943455918967999467835418526174357582972777467393965515356953278826913978714433528169694278585265766953823355516312261578216632197683864188528258354391921683682449625823765578394634635672749874635217563919829283534972245232584913559849821727171467472994132432786661442424219146883962374497564229244275485399867153289629364685588816354873659365672543459816365134667935299125472524759539144447893685995896333474848781584926696853343722335472845693559842591175318578691938211661815898948845456113862965665732792271964757282782967252627189259266362636455522628323584272186912437691225666727648886293382872924773694159631475242751179256448795964368329355769834831745478248633959771595169142435498835747499785542591996999132561343797345394647785885463375421445714347855119888456883118549684953476951562449164742842796654848265659695728634197171348994376183547515977731138646769547874463626356852514415378734687354791951576941282521147811268883362246392786894846848628635424738843352539298572955817669299462245571533432378464944511411346459896847179297933326675615628163141515311321813134689149692497791851271383362564722736785724483357474492617754136198656138455681327656616461763362126727453911933686246772756963974636379651653712314862946522728161687542596875896383476826988783742486635212771398525115793472745884336856824833674975545882955433766439829293451858392688774225481913894894148112732889656966414494772142445255327496359856486725282385439834355884428493841513931959582453788267598337612652854847875821277884533365926972255448216586593372525849242748853485186643183499541925938912886124632175483622575566159749926528761976415656792347841725595245912997538893572686369339787292782971623412657796333254113831899986948278433292634948438511591577162788519729881274896746895733528696447318176182361833512984125975518138835444579562893999312899339941724357514448638826746824747641622136785939883563246837382845915117665267135381594175884978368767414928622249179587166453278844585876737841747795382826133817255643215888853521149131623993618271371858634874878879842132392997134919862149526394377469587576378678544757598237445181928676383159884258817619453751653518937332219524483154977243116356258871881742179464861565764399793579557522537574848894251678448794649481434189454243468425269938382228362668594897143974599482219322146291949429133329657585694616619138222243946166922769128579121922743846139646337392393249941832996179773735258778997291995977266774642794317284873573571967683259612682893619986233471567125341289356536686674296533568271793612545288756213532274439356315675628127882492653761193916647184555357135165229584483684337825269793395791222969418565887568974744963532442547567213691436223576873116159313948659828841553791476677172111395159141824969238265822439628647942945935321223938399543384247742826217738741123753785924327982273683456328319584663254576274381557683214935873348452799325633677445655847425548383452483845191724278661383746563718836119517679976642771844489659533132973738626179345329657522464666753914765362385816662323458614279469845361478859595636851621137963846352399273113575259121123818972516745552853918413324315585373432115549623713653874294652189313413866717878243419738184371292433517277865677817779677984913936287894671146737413369958457741358938385378941671896781524387392195722249133199178557688926735934395429322521327261829629282665995446367517538145116168965132521955569299942745255841527138289373619639523676991464416117825741192954794952541487737337918482581565834338473411183795495222369226789212948289387547875387493424982992186813721354131558298549847926235714975119593547456191973764376745942442381533268868765931368823425659687641946732597981116798939474432194988551699487487957648586828128525379338276814699254992573374116532454271851399214592649875286838963379354372283522676553971542238565488715823964222756153997229965393263644849351325821229741636155361534927932854435446319372776312364654336522754298729645623343467622144685751268941993454677893654758127582597391379514961649894359169617746475592343738683562886783542315852381414776534881858537681891376493444711453739715557225284312741975355379642512166876385614777765398625678739735392929379646422731592149811783212313238992623784743837727875986125328226377546918291862548137547178879496259639547524667451114719597536141913856598853598598868816559253134497947732971739524394948742954374167741938919741179453126312649836698581361235231264465986248921461318434356769776293691194884931952774118774641259318318596988973141349216469574395114964561348532564485131966485795272426549283339677278164792271677728362381514561277973333539586257173219268515621227549793631255853163178839371482145994246351735131327219136165257756961685657159171771773378684347944892356959866933999226974218982371496981776458538459136456244351381879855579432277979514127552671558433881712918515465766421567522355532482662523958314944981642675127266323553747477761249293259761465986132394941616719539834699635233625855247317768621593752615127489854467976643494442616866477194988314811575724157218784319928396116496543913397927685915895635234873416696826517274665145617929395536185677227734289684133735644296795252863535853811113484848247827232317551934214214542915728591112242986889319518963143515444354567646333143994888191342876219556219722926225484282315383892747356237329831369678797335495567283784425497533371959761391756464533874313944361265241361234869312598828912428443856962884379399438128718949684878554743168978892512482265224519354638823719589549776883414655661132723983832785651239478743288281352549722781245267194978175994818952823991915421129516214792172876957246346866778628238597795882576289723389966637549398957435572189951278254625358277962794341438323348144415841768454533856878619733637968542526441893976654414376638324168128743722927663992338871692916718572752732588778919787847846597354427581738515295163736329868483724463325175673188352862657595865291333829286574398474449197563172114386114649179796231938684881981399818163159138631524372669757876655562676568321362789955729487953588545181911847116181562489175333176584565658367855799838825447544291647992826592871852544178723932195784865594681665819215976268367635911468716772243953459166972544934969739395519795148944532674166452324243693673966769112268554188299514763938215789689795659957767697964355166534593462816711465925711135539182431665746416342843314216559566697563936566181264583894458394743588781446144949397666992711184333211144656941868625314375373616827821285768754516126454861232713374492858623173563218484516575793231316167364429721467797354633945865461986327388224994618961255632267265796314235524884679783346352957436966478921397663531855478564316791437338257813265249586342661241274995721391597111968592657662688867438366316816992742896662719595228953573163642814894448519467978652899194357438826251812747423288457266682324995519598762394622347963511632921552311276494745878564714675857992923948567842427153433788364943235427264857987683835112937232434865572856544292474884966779722197654738472782938326622388251369924286922181274994456574488314296414995214211599934471798528947477766366686635517754723574357984659286743395745419871126542238584593965384757397274275838852718247343859324943559866349123293916739824736228474359983785913293766746129631566782679848247557733396897659796263331314938673345464142716675281424433826573896232536616362861912255526173242855198667183368448553894491624899298945553777612557736175137416224197543628478523175662274713324734478638476227424871187357688941377939866487128395394918566359387961945474274993421612448963981686661217414783924184237923212278824833664132323721133724135242923316661853975345447628111535626946492577874297741592393344786279818955533953636765883116475992772566129394555122591781327717873139631559995496545413545295782174935981869399854393636155533639823429516425318537889474926278169392341773392144732669141558364384417483592796177243146282917336566294444593299813116724815628274783236575783763864535915467274653764391779934329662152587293657723142227919341296399448957392874177188769692619238152857566643949647424372443445351424971524817771423739963296612643929972342818948112197216876838111117132221994715894425991582393483185195285555925467757795923241448957565929511946691279551865919784539821661753393419364349739618941822887851279491335659622571464445533126123153976439381447484727259461962366653186114148875246851886872998563761371674451954447525192282937293228285521515858689188315316925236953514444938786785416846537831334674817299167625265638369853975332623331337998514176893878165587737961984773523839517785481848511387384651893164114882329393153161798143231327728285316235439635794697799831512319749252784556115464142824874984847862929374874319513684169448732397589496783193942319615648311539186916574773977197168521241383191781338795982792497147252279589557588347746915144757552669597342989713486976589843577733573316495266594191648522768532778999527943573882945686752693771559412294441638811278853912378334264374528579441367152342568392617924376132856983687721867786756447764267452941398959135794268792467883537621648334326785191761916684835486339263584153552628518156437866599515653166311553213918549336875625181295724859179379923945512963462489859335222138938223663859186233117938539633325246492676575986286888621584715228747813441947555234995933413823697287531414268771969452683754124732473424738695681535773857347621756988351219668611167252885646592288914823778628525248337889439447327518775637469773695272214157778427394847672448698125336639396946775249795939798519922474484988554968747339299858759895334611465742525257157932796784216466492856197423116619878445755391938924523353464134892634198536419311652876212513873935435266816737682768478538715997439846416179647713549382152542374247778374237897152179274327444758416242655234937134932344987352183696751263565366758883161895992252625641887393967744841929318512674137224854158712196187817668815228839215418378577965745399281591364284624349185772245675573522648866327541458925939596943284338124645378323194697556939257671372635152974284643287879783539566728223419626979297873741184938499312432394979998675948946338166996148267555443391784588199816585297913658992312379736535416155453144498286397334296848388873217421758467186618127692428295315946111846454925816665797516835439929913547848328865434174666288179969213886716493725931477885682677597876446974345647774452811967615483826422846399976411691586356775966517771399287727766624238795291749417436444915771333645424934997837669293583159273335666158346129675584732926823156522216948541597855327429891295656767351195143627149871661779234719324333726988782667623689592862784125386973651716467625564649717928447934287358885547182446326127851542869685363825414647178779454488664522957128669923629496329668424665858561326216567416937983723189654499421931576326818586767974828257299182138769339177642337729434143142153928841647392524385128532834839229983956775827235747581563934956845138615287889453991957259534197591269786365399589573287138337167984851576885843689886488222816615889925494887235114741562643392679452991477191581755819153363439363362399198947122411316622754569896124923827428548677238393659638141442612354197854657375631583386228378593792485839567928966284795533372541679161117799595112472834141294261976176745574174221312696516821826424986544832143262331879451332973271715197292328431417442464552768748258857977711641374419855912785599274961532695521851835226384733551937889939489454536847575737972974652545472327659243978342149135489534871182656568846679763666194157334432486922894452326673182585227449587178256682624262569517917752519216921689749165291942643497556477168126988883413496659799334971666467966745174223768637559746892438124677174585762424268143611854545912618156612753259952213376631121181885455529834628837955616698695684227568451712684478738487247615926673416467434752524262976636127774813549281656797123219762363131311555563527187787997863988381211365791953649217916581778617636652221214468389978426594364926571692612138865641573222547828466435685787454927164365528299946587945492247538134551992711793241933463576218111556545694654977959286432953743798331689155542136154586772935213936885898233344948295863845465757245615537651945854338523158524246796138783786161483235529379673242745513771386325547889725673986168518785714435768545326874961476316984554886362915536213498445955654198476892992444954273125529184374191679678711196313594955942379578535482252351879929413896123879622259364487465366297476977254125221145484129645145762458172473874778316716759363638753559785973449279849415331483268413371767991827881711233261476216433499198279857928931346373883526754663479254935637649266555785361616942866248691254161615174598558142227741689694999161566815661554666348387246435432377858413358624137845559182524641325956381942344927462359491754876372898972115397933257197263639266245122322741434658456163215229643954275348382545471176296598452656962475212356882879487936769724319447966171668735573364731712932976551257293976433648111169263358713716526813455698498395319544314575226796131489329958478331641197599169662618631425252973836835674569436586437369783869943635981336368816448175933218112264653675312972525312795815715839274342751858998429589978338811636159224397986837776562495265137732643962751333119555785282793476439624888711811744221739799126568429886657637512822974943844388129898553316855946134527781128921819664874459842454795453454146225189467793676611189514748241652159185754991562559319664477432546544817397353497337383519253395738119839553792534242593416625197998779625984135439567616268667356123174562854386233883598254977489776122297536247425764589766513479962281832446177643182957597744729747729953451214412586246798161934614588732732163212814373278252621958831984299499479717133948199193964953262191938889592776575373668143368466557336365442888315661464688325979612227651638559815949398231627476587342394258938423341254295742389924144457258181223327636199227118492737342239259571223833744443273345169172996833945316571814122455841658746329623943688569761895379244917648498673739676552641158172373926655513784652216368364161386477943483562925935541476782791447131359514684286631677245325347941166825273681344391993434857542546118435783796125115447722475427117751327587189581913685712153843527538376183932823279641744927278832559957349421647511475767574356591485929851814654581167614147686615216981169425863879549834581141551149945976453638471454711715758853655142666828665791969129584468533937183764629189185986835361223424123288641648646134626943944384786814777631574167338922226534992572947511656843565356477921319467552392255838985419135836846772425545659223829359263634228785826369835636817732647911422278661387268621299763937626656664529548263915913989262824488953395258864254545832748829258843272685461775138521684475389164369337764742344175932468886781117949715977191497899125894372473165825323131169747639228445672867359771973878842514416249716872596464441737512662182616575942291836271233973137245385832336544515122144321424237655138269713154555757179211523277679495465668913477273174135332999938554929799936743141342864164955791182851853416619642628123397866854948923353813766928628858424118413294427787154734495379111411241469691468163426765382292222336362221166872214871489597618832446458564141269646664423173855988623478762787631186527724998486238574249497159158698361759588191947351299884889549374348397996989694623591979723541973882571168927478627794575838825293349346137773635494741233114424737561254739183422875998187427781345351514513754731319917659427442965126566639192933923677518252357758385857846148239496147853877642471755539133846664367931227772818882225126399755171763774541621498521912541495892867235578531669411592544584953148841398242117148977132479765867742871674774477265877914869356921196163539766582868567944858448458964396272739825669452637372296991321738999889345269433159268758679751431317239756787982897763529384426346169933492288368933275193344967663545785814729412728218441736572726385764935866136747571552199261788265556933535118756791899725784598133636878378253612692463939388182344811637531792859995288295993135415478121289264262789489968269689226827935852266334361157763722633215887261376997323427993364426636914631656246967298887123545187777141195529194613492212445854512314314764663924362482515189341552882257593795931257217716649675752767416665167163773543196153428583223788375981258492611216557295517775682979974714865885429148588245593781678148424892334137975689148416463166898387411713499868662482927323892611349321559424281328428131429571595425459391719639462374314252191532177887967829755873192597616658855434239791665232341579249785579112324372347751984931845814259149179597621295373655748128333337144184744753279425888679412635338626998453669511988756675738259922611445792553641414962544258151391323773936189129426468774677696627885188686688619154931288948599287685443119851855247365149789797455798898783857261886489267126751129718675759465443969975586251152922779344279613818886344857962963239952369229419388793277963157369264489392232148927135711915621546874883915119881693163143595658234423613113972931236429679134837267527736924116128661527429712337168631223622223968129852732764459312333575695982783768821185431351573711259747816171862861482315362522546499261777763958977917533674737366373249915389986676328575848564181313394713619265687545929776174194313673733738386848431296693192322578851113831424346455824113243399164265356487629255725136349568475871295733384318679272885732568945854326554874631647725397444127593924467744296141722241873384934125451235534238299423489717199411844956418721631561799759467387272656296967911166935819644453179234743437138124627187951485682594867181793584845543147166523663158646615852226578871587939386589242812376477934792848541559996821119226753445714887649685575156955866432775145524187145673167762257781846351882298812358565221434293175799688896666792557858981391487957925793349819953637435444482187778147451331135388929463782989656458984997198517218143422619464199896296885625345259491541486786565273751213646242189134262849395712966176231845843845151224153533628225847812294467863974388529772682164844853288964152478221287246342625991219995499547468476199614775273284283622675311147756616973499727125377424945848513173669998859661186728212696455651817795671425424195816164598153233793258291642931511916355259453622837746699782723823457952886148321983542421592873917711989483215293457588537714915675663591712221365113765525825372646886866967193583758299662298352839524929738976242969826945769843674975946643356342334727382156313619183646861473615976694897328578475638214152411887346615446283929472383787826885627278612238419356475743324892263879731843664588235588829189394582454536683132834383163161889238363525272475557885291487465387214454762998353941549577194632231666932122845138171127626879981146528629793296813914665252948142693454424634114394659164167869129364784147447666911827124798711536794297821686277357957227176137717925617656262787472182789392952653213867374552188286354364369413724999626961177885429836162992353651412117994673213176572679795848889178778135345633279236195679456354211123446998116118626172916631841842185764463974635321421963156139246593939125577898939935228821633282575475823511383284696467431748985412884134152369727254995968747377555757152377158864254649523141785369865172786652167331272485453877863251327872968581697745271457222447457144239987836688995139631774498113425392183641549932884851291189329648746199132925113487416314135989753352255446745973693223525114979194329652326712961382533133419329731694815375462499542744984816778727198525151299143116494774341293812663158166969271819286518628799854158855441466447355895645524398792576919946679294674138478897566623293296654663929312957837574934344542117462744574668432168461685939239765939375731563678495463955767644235952415361516446882175641413725311541865926559138144518538899438372357839483476178528471241174999234816734161567428255368465655567846529725862592416832668233778353994865341391531194269971247963362648162281142241457344468155271433148257261464498122557242668582894618424349578479534237384142211661491725672419341654372665785731761832378427342495632887364737792674792433166286658725441713472539999122327935489252785765892144132833955637265189257613192315598671855428125523526286486515154829815336137578721338866426821282162684286834596518385825486494699767166748186636564945474823373247843416224777322694131422637841525854356623345314717747791573634998424885299538888462241287539837759146656517386232244262894886552455111559377889993317496774428554953917825692581812541227558384677867658917155225269271824653919695349149754255761687569933213972585488363678144111757648848145273612537775488788863415299993399569692369797575349569988877196941911146916652975922919785484978969963653216213784884642278456351147292411921389656929126962575579298328329347293784685271327774683495225149858926484792823589847186498992767658286565636964848555184883968513421865427923496231638916291842172167599289317921173864483466564568317115945746734199347573217563384984488841523713645392412158475673111794735994258667897992739286486455727226631496976765826745373827288999451481186552834597825196724494349476364919992349921421992231653479115486385317399422411433476714694232759188898741961992249719268471645543423186173163286156962618763395535844349546754247733993868987441814247281754158732921296985627618922639793198961152162658111861653725674974759755951915825889955115562958314288563564835313396796343437258566412757139461678357871193827573193257761785653477164164444179489685369238783121725121354761788647164186754155126527643827985749435733397611913654397487265748671943372922922266485223848312168163379472662778226638912642737643869896952128931492273345528162357337821122914843159373824629754586267268348622726743924275151497993718432384455929291627122151851112753971215796616666368563537538693889919468928574219955318941791987877714595243443438747632692589266846275698843165849492641698525197615953835931414243316366116595255559832315355759988513123663177522413633957323221961362426724375516757143775985981996147719135685249843911489776776478948742399612575775894671357784677551661439677953522789714482748473439452317992243422382629793529762796716495519841958129988231216365845464924896781582479282292727291646127496964112348257266346956928529258845255268163689222727417158173946352767564732644724444258855249763839475646899261494819684297973345172645224139168558416725411634921174586898795549379841481433635742299677446879617671618641994466564431264731799347417169258485131563578842811735574279184932443488535419589552998316224416539857619149888624813622132472924898459353329182362423625753835223157972214192316358618173366776971668777986197732482388514179756713588376875557695713563969934595743669136681348729974269142481955211193662674546333647641788773382282557615148561634377345122431558792441845581642979693195338273842976169518572658617826238145239317812853688644593274795589111841422696754518757165443971872854995143618168843549173269346312699993363159833186973299232753723723947332215323929239142316687847121634855276567489383312869532234297561887534161988218493245458676313391133347335146864187613569999338222454286689266663433669468371193136444191817474695952787515614716359649739467626211378839389659184138991936687297215987815761777189878862429238847236916472348956832627758661334157658276319284666837412357389785448256786694159623363387925973526339817465769722938166767254396828817533118979152767422936466957627461661547453527369452197681343878944878523664379224323871984172855242873148465276687874863279355668746138765382841627993219234589462865731159332283862181993441276342814828731847224222319543549274354645496471181492523565718625959312731468375314565799161832426346418545361691946414421413545167718542857827821461882822175489248983267849539555534696793221245133337112853887449618288499423815137738712181714774572321251432834685366463544991348468573615688946573927261649563398235484843547183373198142997226129457841184792837226939118739322256849847217288991682583356288383876758467976875823972316724442628283937725292674861979551894956765856627146394688576531599994569845416219738987834476425414759623252653634421113349882322775537843118269592692835713843199553336426231179338311781874273928241772394391224954913998315596429386315634745139421621331889411249858221685178819969893761612724599419368765446442319676645716255985911786231754874732475745351858348496927172358731857322856839663492993691725687672384568142997235423672553111767885232926115727349596642841996674185286787258962811564548547184482899566181976156183546378976314473338836813417925167685573992339651333924244845341198546634757611744925338712235335177639914674647139452232353765171833713169522214158251384641956138388594336557751576584947832443252111444978643688237421294346642752775162825973886537436759314487555951133529788339962537467695449834926167136758654897522282735697188585287742516875427644797166764623139794944419952514964569245585797666959391374424819255159518967632227245263494774688284134829572793317813152428787595818289237386627386481623581131512429332959511129766828155257217338251345385287153733428833543166871994412839533785936719953258746724154236168436829588463677451922336659355187768516442699445436659223157555229179723982825357823724828573184981862148218644324576867615813292276371992854274411986746236444652278267241557898877341953586831947764367412989867481466614286371945361982188964792738388696213295621729817694962134852691211331772843722472667771154214215346313486547774831617513822243666187424968735127267817199222567175616113875386193873562473528326786487675192611877124351412333891448185593654641343657786819178122939369634987929174742413321122294229972361852858121362582493513824721757642716528544682721961243594668331482943785933215291213353718431569552729223532941951285445187133987958879122114298115649148741838633419219321638439882876549622374614424455417249137315768711847287529954484117199821395165148765597492729238838899728324727592142779752653536315286997268917119167132297549969476165681471171186778797442346274879337364461458125894638652378645567393748774575154415161286941586215477255582886226722749433381882429134673651362833997939257245466468714979185267557149954566992627498784683199744437231585275327956624182381164387998955453874568131427555641978568453997275521323454218653658594238537243675717942441296361199413254868235695378413423947945886291686398757375115256339133511929167686541258668172615416757758644312855961626423664913668332996326411885956497742933389992292713353232716255828111248137246217532743713438818699523425138749491455735166737687538779272945875829382776358916659425242335812394122179793584248969583614295413613721581838252947985145553183344625663556369454242656911318532883248583128163567622113132874953176925126832278739939133319694791482784256462245127929259118478515574898434637938621534344162812359538379733325276128552966947262115742715946443955798784476182383666845228853956415273519218335582974586261354984591652562283722828356771795184424587634742923294827584544151483642414777878187378116469764893157296463149737554253799665133448147672975856582816175941342576469926213697345425922515448684211193613872585925326556998757167257497774722314744379978742356962692358639751923451337199335829978193746711693936959669672953859648922592651743437373229215481354235385338492643359562581929853275782225953116431387325326292428886197492693235343964495914156724323952111333756943461852355727158443554576649334469444559132635468792158522535869714258151213758428512363596972852266969981245975735869219696779885572568462868321715626574151948575611557622454524175521926928665226261723956316693154244636581992417488673294753957361723262242482129875285569755479442656871818991887496831895222166231797787577565214786765267472974943711357984413761346652388574767127152851179446469824942677154766461555452385821712985153757122658692936265646515794288363164227967269764228777247546471666877674288154465232955698124261657495612416742255448787698995959788148288842966398177735524919877581287962958577384955496796663229338124298956574858497966523743755655965758395679498284835117382736222796525982832749122522259312933293643222214377278339444364367666739132251578286917859166592258639533548694513993677683333437299142385954494683859518739962661565692286525873167117789675842976335443184561777477145112474562285528826162148775488787935471488831512117311188416284866393431214264264985972613229516145478488694919387764935146187699136854523924841417789394892451353938488669843973651671948173197381127873756953217364267953262981881567742436656363688372688775753719472515168785954679838614179449366525821789363521514263669512338869451437344696635841217147379155989822635994546131259854571475862844816395648342355349686623189363643272546361595918965626924759194311464899837337124575167442441651786964946669469717213845978943921526891456383253963237624517697647327362981215481693354584353916747462661679117166271538944245718444691656556243759812796119579324773636271784968848117528566486643895512479774558348198734372836125566693569823547436318635817428863422668538883525145817487118894225471233111243746236854555443855392414594628972594279524857222651771131482189338634476759462526583695534641552415752226253295854193555817763994458578173483876166319881556854279826733961247852363351395868375167639835938512738952861347265679333215688547699494681724421786718128487121871719176147568445925727664364341221127729365189681153717934457468469131956554412525675467791537363265251695146186653189869992627823337387781398953361145935186668991738396425119326328822329886565446355985495326848718839617253596121598937468141812784644358597918147849586388468536789215845544338912951588414247725634118451874664758787536931593954354188255521885754396987936112546844658989167522851338121732774357693481386138212334135197274587357486414926626848242541356595328156687977538123925979983543164868527114867667857453332684779256996597763338113746168127584488986525392524324587284984643971657319727969381628436625177264338958721415332494126787275891313187969811333551863439156535555864659539553798763986781444888364518551415664339628287229588213664319448894227177785596435155419841674543864561239678212526156939895349435871784641551611216798787211142629696961996956166646494114218458218793782376872435964265664399219879147264751983468884259678578465458165439427764532856892649485821717241182756199273753916844425484198996169768685949139613955482782672187143799273186147241678846993199693863771187672285251135514714762947214122768877392394854235489584285586662349968187362674192158467815461594388177813979379464298889415365682589261456383118338215236751128266262117634835667377889455446262768878629992457174752687122636793589341239464161535683385357926275188192937233265733141575266872369169252873189561655692127684719726631716115949915455555224583565127188788273263697143553712157558256114731936296989145425528273987587869962561167162492853669858495281165222227823953936373157796393399821922694988171787893571991329299382541738535594283429428449358376319382135674992343264917833658289217411867257379585875657713639659389366979596444931484155398252279195582432965357284698127842949938486628615131848116918681885677515966826438392112792559638984644149522244174274342586548227571883844958344651875133766677424413785979793147235536812458198528676162941245757219788824522453211726899913478188957828278314614574264253589388273755462392542999315618957875771946482511654853682143827514969154681741786161237431612463648643991963132637648472442676739583772767169222775612645782364392568644331242317868931499625935271934456471599266958197957551867959395832769786481281885629694389217789856734361478446817666984914662546118434561394873438935314671623323156492321697939722353618669981286724756714497368483642498385394854238718247864692755884611139425848617422296545521997348451373765425156266899359348962796824989419925649219134147744813474861612614966876767162834215452728888939324891466262234654188359127919732129145741764138436251242833795815719274349552474887812974144533184919234288314583373459854115413793725132752219435671545756377555717218274373325762725399827461932641557785195572644162953788681844899666966513666972176335193176555391986437693279477999498515259679667299768986924514553394717665421139996894475735979298569235565667566145473845423331186998444891545249675758389412511198823212155668525189716646886885677897913468219698577232629397754432122357267227863675636555339672873917623324819266629274686543518798469572862776438345693256497276192958145211844557117331851566166151953464536782583294278225629334218544786465592712228931482413724567845579939299391184132153414751543981873881611719112225456732765154941328388358249251786357524928222233151874788694661285837218939252456433791659815833415136828733877419778734614286416918481253439278145816166484114694432346588485288669376723114463815949587435844791616187298534814317256788272641592181818551931359955633449493431649518354346361265617842879123175934858281717722282875952854151452737644614376485572855939435369543296656973512157133634667993936255799397647642445598944642845459828857491264397736531884968583473247886892219873426493787546762976654322533419732261448181656843417649872122984989934732796471712565342543539828821284353899869915449683835826597614939218194984427364546917466235527537236624955682135616353865315958671222526975186536151336756241997819151748135677383315769473452143847891614152778998464291526731814692553957924813648967119661551798954148839211454249939785739818793915887797732155148917479359119319876656228423736626254188998729597251652484755217732139718688537141296344718339891992873531474177297721181813782671867129246453252723721891168236311922826369663745926195199822532523683229175439739338647527779721978399285728581414266828684565453272181542399428745416264519154271479323452383155596192452347663799621955974389727436459683249498369345742158811542187935358197823736218293174127324997322121712974573393519911532821643834814981338568718698651721884157346724847783453313156928186471915586969637862282476977766394485843438291976284232717584213451725958876863472784764423823157138523219775912179445786166352954795914882372489423792487912186455845333459597328697725325424159543955281138869528381712353647581775293295171932749711834187735793212421926998272943825323985554664796876475272474565975364798165443921458974999355732368638434867259383971358383756972633465731445263549464383567254217542915948464716553982337842352895984478224484149437548232347426824342163491813646389292326167647962176416386649267176298714367144352871519953879676276845279974398575516411787533159643251157485321762392359893217169374377895426481591635515715421346773452883422562523964434755779345571658989135286561893277744556193157845848365812871197759115613818592166781361357447122922473662412517186112145879479569786851182132739339432819656691559934132234317238162343116754799792994116536248944267378843312279368678211635428835552235555573598345256227668439875987433989127752366777432264241639361558449224339816558564887931756719544555878758393248535327283753616942427283921224966487194468628213244953244255642269878314256176281675898212655872648578982577996944423132397764838674351598396789111313423988369926442481218775586695837135852853476514524381747397879483967142378828261588552271848776972675682463388336169287261938524661929155373194589517213295946482383298725815363312923132525154372581361842257577658861922415732871915978293831585361351382754941931527236518446872886824989382374325938577322998287758256974211532124761591681497153767464763825826182131298137732818543819179559168271279183755845677757554599595391418316579153419275938378226645676597144948278195577314125678245784488772589397735465776334947515853629767687359886353864267818493653528377911878513688994785513667928856535523353521411878217474156949473824259419549516237964369853788971386135179928531226553437596483522934521322264376829153793331663664995126242558139134393535572646136528131286998911331472939982685246958867566256268115397186244647231126752376882682212719233687219311876912589647847928841199728639716295443417192884676675445318178697231461169237484141584914711568261216312225863157194494764729636645355466942146746175341712663136542188662775348835468438584785348446292368691474811643471759273116625741591637917169297361287488941423573435925622631466374111895736163395796267321346873273352624339559917633254377753951275346669614594346561897462767774117763534763186633611457523271489246478643842514664798541656595597935798172212578957781655394644346716512723961655323477887259584254615876173126547775354967925329689157563765398165499786476888755741496662192797336394731419284647676232331419132751123253151325172694827857759823824239434455862121491166641523894317149485969152189286748799979389184931426422529337992751756575473666796338469392189255119766183248816438264183271175685449137252933575481787995913451894887693685941368336126516841839297757925418534356858398973954864538229659492816491321118382678929832786625716354465565274449131113371733313846162617124457369379587569789963568639431765482318356993861755992754576551188228943532618683262337684138126947832173334191396339976477189674446453775164183725513139847894138663849235534895444547521299512368641443995384717961713622562797459494683111462267136487433582336265523723858865667295848197319825465646721696252769334142761642968422193152666742764967133187373114123327464947913499292499926317618838675867557896794834634365925798564951796474834326689994495964719293253791183414961861318794264284488657554884289265184953368775114868524792199994413797134799399685525895193883214482175354374141583171561747158496693127445658697893848822537365825126849214963743927897941666247548112131437681872451244199692355966168281758726959853262122346733237146121882476452777878993655768562163151377723979646445699165812917212329999276141774233138618798419532429347949917428631571349179922953876669651282144171194192973177464119965973175373383671768975611991886273361897124382357244694583551176413382993421545258517764119926655873963294247652492177577368823399695815238893133338965692473693662242654343554766543992247417663767912245489855498698712441296462942165693567995754524657655381385581849185874348688134698116244672665664941365123926275976588855112668952176578759366753391286796751554552197962887352572681158614657192191797875591758716819761925624824883578137183863443498489741222519657558256333575794532495417656612356961694749298559699249894554667163232585315158127139918352518324635664294598391993983617857678939585794244174973261439115762554492971374571867962914913379525854949967424499986276465792643127422317148467364862417887141342173193795531156543662459953176273372551183197741997132935333839166229218417271269862964476658565165185836533548334419747313247554152524166311132572456166379924427569766396298336469966572474695441216825343266611696134361639154173745177484853992615849992896293457864581874264224696685774383628393542628934344513251626944296835278231922236686891852446766347754567567681238717782826491925679126661428441211868959488478935846312433276376352247985722515978517741957574199313991462612918768522426264673512781737877977742684736342689838997169747434997245517141298181879585448971379183634336346153131167591387424212455677392815126123762781521832966434154134544236312489431413599242547841283696236264115135485218453136145494816412721324743262195218792221511942222233596612791221999111151145267278417978238358237147132246741457297993616431244947659873346472991679949562685178723699833459559516491356414891663822713938982721351374814294149431491673369532566573753262575498436393638662626254439745882411153672833788849564896759248368363531523871764619987652575282117358319496363722511365511939139653564592236397547463813996797653918357569188733467757137616461562376112819781827592394944579524652342333281363821939323669511864988211418334615597528774625791287998838669919468111987338717716585277933833868778766499258938576984676859935891667295921793539237574268962441596215595665927739477883578792641251619256647419456124371141295118277183646376211892228322322632538236481916627696717538769822964676314214856494164626482363448715336745229668954315944168393162695168568434228548133328157353411917653485795547349552366972222312956293553915738764899577689719994413758857438285573421178848737167333127649567915345253937899595328528273128718133656959728677198849766868738542795391252918617491456142814757827456361451211948184587767932613337863787718792689847594295356579354523283952111174624933558115939371588873973961432725969761152177926793989386219271667533547634336995293121721548695257499253585974574684745787547961619613861357684951224693347943912863237251799185196554878472761846958663633641951595962617884867442397469723726755142393179355988118754616987552965275472316794683457818485149235653189218787145379959788282215668866786554258685579548366465732597165621135793249283918445917156753324316875198995385138629234898128449916425215634236987919287188823713343754215428926695414212973243466721939362253622263463469674818571454481585755851997232299579315449777635289665663286495342262695573234733799155373812435432582847261534783597124214446868197289995846215464165475718294994612581174785221426863334133431692849756224625657232464657899958933817418778323936261536124118811299831596428622226259869268148967938988521471482917872787682477169948798726753853439697455672377362939892367652884853687945272797899879915569747233471174571659337314294641524226452468815869792512921364315625161395176551539669759776296558153973579134166932797773382936632938274167474955135682919192753746552958674858351718998717762146589773531915739611488248925128566533876865328277215939711312967511887353874581391783664674869529597233598747866834279447723663522134362236812494792635296542783995321423993132411563981434692781112153343645774721898942489558567551885148495866855758777722457213389683422818493856633485531259468335567658476651313549883896833665211864512166186249227496179234744621161377765387299938535348712273289316862399119882735259829126344254739868858746898314285276899224576451345197787596724321819721167612625124871531112434493473478138289681878821729942382428744537244193189869841725843974747281795194392177151132415692955562631939359465151143182551635181243235269984598583792856718217321533947846275124383467937757379322615377995496734161744418245966236744443863444849893143846343954518842127261644523736121654848388962163889832274457848813286895699885253935242566251131348938396274689771385449165258172954673289547324442785789284892176433732675396731818375284572589122474441871533493239637175232133269614699632871183955742264366573442792654631739934497613929567711979934386359252591249532477146933915333958863922935877914617219581813298874165357743444793514452332542337633158722955323564798932175197751155826111523768247929226625491315886385337514316897819461899829398826348178397887657493472353372953586384913781456176222457664769927545845114137735245379935391271724286695998669974592483822729791129677267913919369497668841711812777583264454389127883765746726772438735169487299977133697268635777649145964683578282442157819375939932338686833631764868448266758631763521192454421786539355829673749981889125555534167981461327581478456467793344739317343364912148874419188312575595229454755948726256953773929368779615978563324838423699871817673633938864186468299558436515163325516392681226944999723363768999439867126138633131992128383172914998791393246337336536254552651959728746959573395756462717862846717582176933242716342491976159621358456957161321744873868474325459184668364385368645821757978414322678494612147981453527114935366413141492614482527657358741276696719849818247477142867622537186756731519334961664739582544152726478339352637693165914146451522148871895958628834414627252294398185265659511283523873588717925833339694444463614881229988681253476325669914264542564352299215441863428328735178214547657567991986228949892397918462226762441448149833722831632466566133376318113986256339282337873476692232932221635357266387964291751962155266138553268897473892867753956462964718934713441529785361564199395665458717941983862387333642551915549229913191276315936299334324767689579778885415717425258671945694541417286637117848352118992551914844553215715477293313112257247521965275645182782112321435148788775282645143311492423454857526483892945557767797838963447298635995998443199867549446678387149639138862171956619643199927621584575362467353923975274156717765912537654388579766273687157713213455919337275159766824627388618932332255963376332823164883642324556761156372884965271558612744187654658285353659966911672845243897263979495659655245312485898178784979898463327739251387766562341537517342564336351277834489612664214747994317821747539858727964284557345666347311852847618485793157771246758479464648417146595799466489954882737281811623162542467996989367439937917968265417544343721646468361952746563892646868121283619535529683338527662256158955326269612669872632387392986772293828768723791753871619717374484664439211571545822773742477616962394215352295677844998125885381511822445564921584974785264682632624747282673621928277783141193354628336373634615522281373483627968889316567938479677614843113719476397953646473331981455664823759488173346863195183128483865931968765887564763262454291466869854619297843318524759967914581474834833527746587841746536773729192565716479927592665297774145953199568985976734871299856259644943787576963535913922797412375758835672367519199381459189216572253799825566576495439337247784818188959516252771124135839618977775471329844992112325897657445293649662545845945256535298832342595552684978361776327737629843982436475872697675196878529493781822569957195762261756598338597588734618218783999953682425263712674944765542821615964995421782848132498841933883478677198266351153383977158246463228838734357462671876482395739142734596732556614682338446729713974313785939589857978692372253338759936427265149735595723938151826718249944557429877439611326396867579464817549435267928948477152619545715459382686488272917612762614175629537596223839129661736985383733586325845127928875857435853116363885358859541337712445928129756834348122966988657781272974847429753454648237982651657845128851625869323235723976941523125799652147968271732829412453754223277382977783756837767893266588885523799377542134799588794343129661721657482593862719568991112157239293832871256426263952951266878777169246259871386571676782268136731654267244272629776334449253615769976788185256123745179983244619597165863478889153558546751911959655139366144858193947591591586542844779474857556849488537686229214571518783437121959791568179989346476154386177962942976773661495923526744431136219395872128166557699262495498119938494596312856515421561198898681421879498574133464429439299158199176926753145382723764773678477485975549744262244418766933861487973317281697719251926518784722418749457416177981962512289551681453488127525122298358466319378313531232873384483127943564589299542554631869397618382537884694547682145121959618427569247696849517691113996855787334347197682633382283481965523256589289946988215424551547999314753679554152862483628762459271544711654949124152313189214221265535588873764968198396215527533965314189256553342172682223875151571878884347661777746957134638575652429653319386168544256598355691833788917836431385699249953523594762453235777895254177963224453828963276643312727223729939464646441757211441512214485387214568991155875717768969416834545871579675141511385972712484736214141996491441469947127254526136441439168192227911512225567979592544449147249749889991446143983135459363976851737616641244432534177894299763634484158952484537734512721786949378772567695137719949222178762798565711469862531425437434211488235584521496548579112745155172884432773712355212912276571978266588656826942462652869316393117745599971665819955131951581789444883889855425319812896844812745123311285626156937116789169244656865983445938631231898795618963548936359652594516586355815681834626241296235575214737217756748199613622234689219482292756329128969131254592413359458433955856743555568818948253197831135521174238674454257963262945847487485617554888294889184287671219946496142429337525323732487417291821424464387138568832869599228391233478896598333195381339249968972317986435357566883815728624429539227869375921598778241192332373284979896387436213926925957264482768747375997527718299784399637813567384774524185914862282154823179787954395793183467576679141257215791129598796832689246141154754223135984753345592315918813277689983479644877316546927797925673551788652938748381973552333898154922775867622559536781823182976377443829681625467135916214491827651842789851397199689119439529165248327292231829767776528451467861783491513594461138688523558134192341482631166168726667712615923145173226222727688234914964345657244466967147795617987383716162875311716419188538126854114619886317277717626458169744154424282893519278839464269224528958465544694511494338655667928613437872231672619932886342932792825612834971942833121745726984276546727995198171372334616314722375836536934731757981351761242268741283775147122819833819732848611618976389991161954225186379939971777395284289374685194629522419376994492721747996585846787826743233662743615314852335894574148461526681751279555676256583887623664322286293247515218657836477743964262781194754154928699237899194411478478842247538387199779677128154991774887639357157925873673387776733121763686379971358515732397951151126274711798723464945974758664665182452511383529792398654419764261316456474635515634589839685991131665293555196567916777736225138284693847346782572158821423835632882165888547784788568699782234422436914768326695441199967278421553243698431978513521426924764818922371992999749981911592876246937154154343226993984132218723415211495728829427625937147918258657686257949872534915628319123877545149733698741132692422323589233637599658533534584724845174986258787653494637175346739226515129897552781143741274735657397799577322489383666573946419128687534246374313557194388827738596148552978388533342671452124962575318516345187311568493694889926556397921328948984723973359252797426917138823611172478593517776417817598389541548565324464131651441971817852895642153598799755877865755521618162277415175959536212676237287183199729327722553173241753561158467248261722767164477442788784529233148111387193339173331198341364567367496985128124347346261176332968686383785486829533247145777862531157426764334176389984441126368374194579892219727715159151776593892238126335216877372186153793871984795337737414131149744993171269538859533254566578441629937843685469411626962518341313295979246673523673268399113133352849642299441687812741632844269332296425358497977239282374689513622252675394991513532658116955227231387727197157489544345839442944161741441155873726159522565559756729853766233495998941185431294765549724336566855738736268287643195965387933427989753468285839939525144746977665549666473866858718193466953618252128656931516376285421916276971182945438578185593934124639237345428859696494943145446798521333654348397847222335767327177299455878617471173214589322838537562848798435433543981812984846683676545477721164352232431714362528973519281275581613845716141273179329236153691652825395887915211133936539788843925453942621141243435977845638931465747719812925166543237789571516961542432614918653974642688738324467499658849695882154293955886222851715688558825139448644222732826886344187878361395268579632613381894212978714734239876737998225295624692463825338116788466288597947417553744356167625452959797382112856938443948799224228277815926282683516811678579791598388779387444695375232979958998726494321955314731243339233923774422633628248511535757779169236557719971775425577833598594316952622617764215741434684523853557528577244553127251627969245488138875598943254859811696519937739516955839143538419478928991663523227681585837768515496176133374584243281674439289617315717134372675893859181918879689268851376444813188986186863731546421347871251458247734321582535166299976981926738492733771824329848725314496877616879145126447331182623942428177755658249773494513664757888795479844548415644984249524293962498371634364727116439479889975113849992437798418941977856743153436426558227966859847622276389623253798418194778751413619248289394673313113478343473534547245175432662963219132358592835558946388445631731534758617679124898435377621683736991659497497677429847588546718397262181629476117171638573143853667776748665275963935763965349496164626482899495676252448762781496667295474223679284427193261399855574911431687686937636753762746283573415562231713465949215288896134475712833883139523333752639233559929193272564415647912973985249131128246293533996676773151564465467361889923212768334539576812337953921923333399132484439998131725927928241569362419741629522673163764476322357397161232163229526792128659774493217128225447378947149794662991291912823357884767551339794794714883864289876242887811768247517885961488265778956736692515156634139268974441245797266496991462774789575819823393918548138164241519456836827936226979671376689641574967537329732318265281859813749144787497461591396624788568722635193732568417426187556212174136634887932661393991545155252464916485977243363442595199595649139667155767974227367765714168961926721187874185811486956353158939591698365673154192676291395187836994621277572761927446465862445133484499236312383936561836179562799148941562781972527519115951129923726752929816157696696181182173343818919889484953592299118225348529318286125428668778679589813655576384995425282957824652643887335763152573191294875239383562274751955193392312688291138374391755659159378318466265167884223387742746664393238735141838149366149293758177399152565547441277879879254951671485631174797724491378283567634663924111479142471517225462123568669151187981138167888214324469326329228826929835693414735171192523533324815687147376649936845186239559839487182617361254746334857682564492289249965889253866249898944382481314281677683867482351155472511432849816654831567693797135285337311289744217264823282785213634254262245545161442649827337579993318412856452395458331953691488618548733358387722643548797635595359111435163723877231989553192517427359854126493115194948236377818533427728448658146339142669459293434115839673387999812967992919243542923881217797677873662752766818991388388157724491747911276645445562379985745183247737833387831375493399664161374957629857539556986215179376413797458223866811598118514431169338872683879349498188828362357271956114379314243149822648753469464954382292615798779933797134968354671689741211877761939622918643888957921921917673666517697451549434125917998654819451118844897839222622311175455389381164453125136187227214658176185181525726118716328139383299797295246597297957688471219428387996428168676462129856967898526216756653319945936811515275126637212866186961464155194621911574284469977563519814213553443598816343239776926896115359583732623336537595986565165589437698861973536265653219795253985644529516658265631949819313591955216146712527981874864684934929449953614766544421796253456747689573734998532874753368692275732668931339173341624849599796277234127149945278229593442312828631933635439945757796831161241914996159581575958617291117121111398993742889273134843843544544572359633792528721184467719154399434386655796566575829471475694546974528987534271552588535985447834276954716913167215857445869542867353623214418128593346713667733567738949378279938242713967639776447331167865757559631826578535178782886662936681554525171924322298377933125672636977475566887997835517719266318816633177655434115555214929541329872177632165365719221612555586363451213499736316237277332778414748758988859479981798321487227591355953636664662629532569272829845438591266412573415551577559433855794799341476516961997741672766225685427445995581589243291455177525166799298747794617836861357918494964882656324685367842967657596883261334846294738312597252881568674696169689852682621345523658425764369218283341313445786932762338553564473685526648226718884895651916332489932595316866644932587486999147949189518985558841988725325228823811651458913786764536157568448628684537426684151513917753477349287449169617922962162735163795594236132983674869865947443692259462164253419885761254887146252287383796837615271185473176781789417676358919426335761967525694534271795686426148514518261728151467436884425918758199915886672726349936357658424323213691257328942734458113844266376534659369154225559469643158585238572317392523958974748933879283921949769899195982254957224241422426371361369647862356876279222343879886812776451576253761681795981959441517142198693968836895393487432471175274943229112692129458281227324632924345255313424449147158879242334657171591731264167672558462684848545574455461757525669595553836578936361816882523989728364536184975592571148189466347264417995382721767751668515238843273762381452527293249989482265481666874727869577799688536533869934612872668415174132873436512514854942197947445748725946597637922415523117839283863467995668359488931339812731926242732296922768651674554626697329473582173349115261594866435956983231347652552966996482914418995218232896951146736374455694483993716795388373845562797155584873143512938856949475644247695962275435527382885731274587257634849382722441639911928266971633816734786821963763844759346398478149427999886161344718533242988692522322298614748198951265253922163384393253536436221136541742847265584719162783284296759713997512951329234393591829584455744374569491413722961952998343696134489228258521516591689493653355683594318159199658616645711935482522742556455319169613174956583634798852477996892752958244783145495278426115684747842766133236665972813312759134797863465677144431611839195196366153378835639861832894894384929623851623265951123112591829111963346386593886888189227318118115227846585663349257969679489398619383821276591415191968895724575592773791339369768853532193451889956235257173958824276375528696491113428125421392698135687337975966397999441459598211758489176562171769613746686497472219115741848824774948687237863973883356331111478862629343827214482525246147274949191124295815233373786488995388388389798288692828186634423942769597466374133114812563794187154193748366678778167293473771585885148965531397192812158325353842245142474413292373476297722115139623661819218335472191763862464316572461471294739838885179316636164298345354526588377673693255851161983498759397134791149363738744733161836755557825829645918772244349422886431193574448848616719234965954685685832265948797378371665161327874356452945725452188245651573368683228313765299317221675723957794916835991311331942197569643313713374763784716798898533496727986214678847218787556398548218716316663457268846681211954664533264729954679453921921825281534739119195451486676668648256299572382281725753319865638534144989217335397762192977548482785973984716235811919116849676634221318687291671659559133989533845865623441386352296217595447622997459673612335345964693136887986721687846959382877236448917795377334918683521686499842733482817441839587728777416389452589761513475333115872512139954112977917245666966343582593588878965644367623319933171328556333127482816678798781887818653285487225295852631498467157812919547259679154116254981685464565519233178964374888376445772237667578775572798286823557934145612347125662742549221576168452912946757213375339342377882637717992566265483825749766545696377956192617155427999766419758475179669729434965554529958824651156923885727923467718693485759754345612964755981651411757122986429778974439728682733786597685226983788212283852113362811559961568836547644938938345435471367212184647392594385129642188194625823275895844372782746844644815376574163646864132396879223592939587883146622135244731642872155992589783454546161442494671675955213181215569255188238475431836436623644189884492394931463454987547892218197426655947974228516259949948847679233636324535485881883777551227929382893255573161938315849862653579658863321425428238623697643899854639851782323135885944797887751113197265376588857341791577143143442156564221985628787633436641864868524825824476134787129672657934774245735152564843434391564267534847311794941333465895839244887271881769244275522991463386775371369345258566996295131449125443578491815751341958451584375828265994984458472467392339766247953443729155892947666688454168652995166162441634299747582988653843338835969123331295953142816289412284779661793723197411581118847965422377346616726455594593276972414521344794465999448787195672711153177446782262115973772238399494599234792918928316573684493232681583863943735565922269518721977926392586758294695811661443429119648786341959329789745778919729773549154159171948722299881761737971875371176169831159846813875572558176974579562556439119396742886683389535371525958858677231318877184836463595899774441254285852668142687836325383625739137523678462521193734352413975977528775599752651923437577764241892667927972146137351916662875864911791497591193727627373569935335295233882781963723449784667189519113381568663734977846212819868669987833678851247921549519495251148711867642665356289241178584586356232886942567185888885634972487111387771926523991878332627865555463249231682981958771832516162598612615773861955722795946642781449689166342325887166659193261295153158581612291786449349654664978264923173372259882716561926223148439535743867745916462442163366187949513798552952586629725932549343273353198182238881852355498311538753952759773651625759279999942625819975842116168533549338323374855752225334839572725647458686169534546167448495566919655513928952315711544264728319274625815799731391334751922742768129499969942859973347338513678488328314287272268473115955213949872692911627643561772256666951936185275237999246213217773367349847455957545559178279957182895787512897442996782619594112281758598676311488967128157467585659498255876914691491196732481844773687163653122941159622759744119367874248438533628579645697998824691923756518851696561938718499759849115665549499945828788627491374375749283112895487165916546673199463369561751187793272826483572417644698554452239446617245383524177326271516627551211824342584889522937177639374484465788946324255258955618535853288667459871375791585944786262579335959845853432478863339945172894498272657898936822143847435524843661725494397868862244887228693867739368687363959263531352122286968883641366669564727843943952556235588525989936497171354559584216654486784676215922937471329639283512189347867347441277297959858298396229915649472388987782676476215737616279916234923682747375785256827424313816397565538355723237898549869251679325677582963265944788564568424446892441535752245614469715546971449574526992916555892762295872726663995683783238717872971558628273473821298419171756854898559457684876874514522487161441284129787965542872333461166299198591467243585673784131136545554493348943392757136528511164527847269964193267869491141146487161867753152367943882885899536232218762176283886164232621453155275852947666753447661821855161566149244889463697363344339734671284187566492751476619921983349367775511141295232792583671815839597956159169472542599766735218257753456442379523563347919421226999134657875716952184765695616195197462148519194212668937488187677323427366276576642334162879527258479115611358722855251327368972619519169184965149454486212888158998895613197512456784294372177966745295394144178646964492518285758168687982388152547967116825379986734422449244397183774355773669143474618532869557834149516772685831282934919954526931772458515888995187577362714396373597237726516914749575545965491641353124664163437363826312741893737139385691823558739459432512875577496864846281953778629779946383123518992599585753414481374912293444333472429874925354471661779123345472513581981425843898866767982538588836835965538618573249738861628592273567191851597812784569521279386532229294253934911346288115133675796616921313592626235945447695163624215335474635247539174733237499819222657919424976973245457285964885831611643148546758293812217674166127181275137693421682711467764465173199692342472531591536212447945253112225263415454486917151843248557669275324759187777462345659493158965586851758425151174639478673368816481446277572688941776633959741477412929666724417584146321394339161241196667197745948661589811896719718474163736338975924794883344313149445627239935526796173397528822766228931733384853549768421292477888672645952236581457288197324912868932417539177191718627348649716697738371287886867618342294175524386114131719385145777877373725133643945114932436812688215476869133325725118341721967777213799592722383793527597573241851211169131348528869418155468453564558461495345121959764399124379625442579913314318363692693939989324362251471711537795855146934855382395443492444113577971563858375495837977221529766354499674311739123819429469336961499356676658559739571597538924953876423877722685531679223914388565197374145294757694615794233868476994397817271839191679872267994583912693319383391247234331928266547615925853171183795216297923657227799275372279547968576367623333992918425442396182739465116249547538469893922629682527917531363115751731932273931271762513548739315386388385687684769818252925836354871618165724189159865955438853239288984455763758734127559234446353141575952226888271824846281694917955548659237144936398817876256951494257269854246675565131756349378694318384698266611224388712728678917846295919561472899568741688387152669161196144122178841799537332388384383977389476259338261883121848265552179916531353168156257231847482598588131245351145759471565183342188881994428432886734869378592599487476797449627289666492232389127753413157918636673121224242243717147342832694241442454867981141744468542799924147282558245158213658491569351754372426239634554718547572417462788938542494757117841588737464432323266296569359944972855571823844259869314229222429684931912295518574394516527669537829711838388226535886447294946617688671418228752241783493785346185742871692467572638967235668357631717755881447598485987553267838789554142185624542941674889562349284587575135479553429888735868776224962374811756196975757233999621917124394469868456829633823874874574894339214948539572753939316652142354264557399236391483413967251285581844563476995144274569264272621593949376865368585831846253314253546363948455312694767372692916359785978814334483758485634624138915513383515843218956497769163753394522772165466259678444439614844286363377893317374127541412785283718944614945661962616545623132482374645928384479521274635846175193555947865192943158412786483981145638313712795999839197545724736289818278348846629519253625986694575382125898459399215466764313769178278658482421322658223554629526334287826957178233944288648499123421213797394196381618462311312543543712441739368238164274114347591651784756673494289597916329968133181455112249657517287718795596795849239354318158666347227566235518421445765551325949659315827367118142427963894487242272643367968762812698866394827134287313199755844112788418789482889519718674957466545364132979148198168825111836578914317514428227913783383276714693924674915736426595824141511851242518998561192741221524574558463612319255245228339372618852697848868873387617429357497282359123918776893553375318938556671572762639128472799128992746493451526678689335494395294267797922973549498329768187597823592284271533453173149856695386535642868811255463666541211637279744831619734259425969979832648592974834816321252637523415568328416788168688682745496727263983834382197844713876215876571679951279377851219496915482938975879987794389499338839377469357833821481727557479362188733657231412449321975522547635497642364495438459446886138682121775911339771514448816518366567534925947795654177868498134669412894277947311617373112824189929197415188717777495796877274965973613111882657387856323129425811262462558513331914635827658148144281335185416396668139795587392629642159579199654466334783412552425418356255911346869227466512633273997612993125681593137686758966255915193284742682875542115991415995394613976233229663763352493882311672778371593557633957176364585542628445584638391586283719157591661595943395224262779959855414479518992329731145213916882332677527316337299293713913581614679311942564273192263542681631196917111165473671896949298161161651441345873239218712711526523586528452939242153822982933684722353197389213416598676878136496522721449269498147795371173612262343367283122915685192119459466589725533734814462762972896832479252693865346672757843913595623638686972486844127792973221572734583178316891282851948159116288436633453932941235118714715223855417643846939832442311572182376716569852345327351461528526644224759735867388913148279911564785159113488115815117923814841327632632778479859368849229594524376328486333218923817728678839346978826337447239419272938711635112883495148741681597681459412822999228632596444583241175914295384295966115549988291118598917435745141731284272871981749629263726138212129535513612664436432694296116297941591741887238761829239738338933871854822445211372384256979861948822293337746664872296783558642333532863436983271478946281944165318384616385592437321839822228648575826444883935656738519722684432993447625918463925775747895236325558129619345536914477146468979424235185998442131367961696483325647244534478461487284233869292565278521947783721439641817716862388939924672943984746827598174382184874332316513876448296993221318695137148697974518236716127148888399994753448889611381882586364183861336479257128136115252687174261384721646446249741255423929425343615677211835698613134225156679841297917979448298591822336774767776466263196825755636857525891557194698918589144517181832311355164413313151954294792874114138533864183387372781161346536849682967365594339598593517159633599686312761184922672911626589738786315481578879936127277626597365786324371957851443959721261995463184321315189124229281396295642731251281677688899617626235788851875883841597377246897429897682668145329367985618287938827575731543964871678928746429391947411444738116963654527267987971611644917897483658198794482188149114483273811165764634963159954954293519679785251513898194198474783943711768172232521229428355634826196153769972122134975899351543231745911798819112418877692755878841421599389288229986756911497189112161177875796595178659679287298393299877457996412256224132642459778665481188629734355747911956912777396293144817241615395399779946656164467738453513922441317291755252586359184333515648768377342857995529438851191565231157789954643185927892792837259254823717251468751338497569285999471541356372156277816643651959885848863489493999681345589484253736512841779178936941488326632885544617675562363957875796358337761221887333458633319788394127784786763484728572783759578979547725391439891646724888735523467148557699578433194481263615941543497156992635834252277547831785924717287459831346453196777755245616424958831854478687154827331782313697579554892649353734466534555715452496775738764836261823268739175293869343198372987968384146953461637669858685774469287592285322484939714572948265273833831452589872652118382118525897989924262948193293121222963441138929325518327647848849935168271962883333154717489264156552378374452683977457985881295731867674828885273816594973982455539297478365772851599896184239572472127733219374333292791212168396387961279197438747817828133842461156272972723576257839631914149955551757718154769352214394697592946199771475832665886295565213396795762698172246615234678289498977533682488492152474731648567454296455574324417553736888534279677223768189311154437995757174921742897714634639161641215811293265455125478831735899899471489616149641176758722299278916945895418351358833785714612512185475814638743525783253514654753399679941715956424748188443627847794587667953684967764598759433192449185789938324889338182125223356254621523335622645454555166371896258298532993257672835341858947552272925124338976169582576468114231312712944822337276332858748159971232325617729446967251124829825927149598271124611234326797578169864714521631172993424183739535591861123174272279422719163915455421423629147144175155942232665196248481383986473887371473439929632361397485122399135163495387239365373121523653555961399638241976494795737182246642552515217215854212684383396969224253574394879188347765994589489795153471847656579235624972829899393421515359896619251548529597326658697922891559365418261119732386145736915959975426222322394332944415916491478819422553662894877227627355373163985939285365752463123747274568657241157584957283485759465891765379374132437234463936762241397834661152294916343535191224343915379265484764387531931151375565982997445711238872863767784339627816449919122898974249826238281861514495286374161475356978886772821159578995399347863351148615676771617496826759426642544393769436387925696261293656719138414237865456915421521785254147976388874318887339371348653166654372168487275998725757413718364581696425132511383846587766673831889421823173182365814578136317385136227414712727397644446966685297897427786858677331674369927336915746314999856568635159942665265638368767631277139524516672178449265921772888581433773439636361275766743912769812268411252877795262734925181971186916829197865371454745344331348927519528115632676859463696621422163115894366314897734182643674789878358773494682364562625973341237152818148396522967138635848761454635527256887974675427891766712263615338897593858481179146796712962484263721195933939823482942147264579641751233524396533627729436772736891913144473825276757681267449939919213541632239713562577211193983793146118211171326363184183272441554154855853874591797185392435478873168544621169147745265296634411796559822827611474879298841281259794675756416443821638413421435384642915556198369333163295237655999991545945879783187317729474964852916381776654843672354299576762941579445119484541754173129586679626559949867121186583774732278139674567444155153691767129237939886222855259664913988689513194172684768274148439627485325534931188455262555397258877418752144132865371436954678555175959953355441968889475732465973457342566999984763799272228615839463518198996462632547758518981836166976765292454417272921798671287873439848883223849831991857876463795579356567742623612686453997166613547184866838188256791179785445688387563255963767346333211544181828565778164431154677877831239399146593418731735181768431452361274723952625687185951784727844859221516766225923427574845638923844985451163453584331525967858131528943948273531854995491275987937822125833175268457886994482973744955438534949774452931367364637122544286678545871974999625987777811229776529116993483245643398979182958691489188326549993121928826912769718617438871769171162852532517567437159847824811726811144293849582287152843224295774777297481337545259334545854321688416933165719224247599174496565384787182553474888437445774318727996694749986454297839296526388187546921718343642324242784211118762342322144388519723989211319166299229413842672544832852771777386217938321467521883867934112828428122742778429487674476885857689581754921763592358695263757415453317718764823948716323486236652873642516898981761382529132686673726866445243319347489382438995267743286791121944581418442339846599727486387261528668592534517157917645263988931785535677927721312964471667551418951417218761881977424379923964758689499266144221742979969145419377196922536737791898783686137943652242484857536626383542243737991114343527279721358593516779467468881132747519533373523189924669357349523374126452693891773949863587337644855488647825883275961318942785978326279851338645141261954123599331946921954797391217392612742674677358354523342463982142315363731444369612834159347351579116377311646696678973886622667567194815777326873679867519554399998378655367954211185735681999989616479896581891898372738728696567983973621599679596568439289724422728969827865714469292119972213484268149825286522531631527638865271174946565126158121151823598915912496941433948848744825264855345474978112395978853224629914448875361971189487351572834734167744351356344382817854927389685367683618133459649325626334193628376626339464427348799323732982718359882728159782552484556644714539416678372239484522866529899243183649476588316656743384263286384547373721652226871918314532158483929382446456124123744195289117318336461894496788962379888688318232666656184753448564543211831744899554942496648585828137129273462396689629273121592394115113247467125976893295233453762252575212813399888187511746122236373893872182178987637612392414831299385594691588241899828958442441368827286223147916998892635668684456274685888578267847198554312756353611297945861544243987327482926286215898274227532629442178251868487855761183634795627623538595232817463561632191461122464213635715331577539638664765891111363723255292845716653128487587623885199518793273738938776434175363762712681887169752528159557973158218366444149114255959883561765575311844247136441835613968935372892875288781414486857132734261441516924792723151735437599825957888579947129225387629469341744523369253954864383843879794776227343357541726244438695574841352975288742894417838698155429443431849612882232814673577917732174157818197129219566713593275472776367257768667513183342568985151786582166813564772195139827433599147243733978345433846838661719613326587773697939313895642511561683131897256758678847311452486444656636349714672455185118246789154717229291557692199591314882887256768778723471479438449736895518184851512759797628543314994434231595556721688349294424793134346485931592569384392524893195538966568597653671999252441649272978423263937284274188132285192288821246438136533741443551951159841864485298732994937281385381274258597115887976269877815423431645494195573259775653342864997952481789236441317762995271559244383351263786817583683188134958475619625993673312579766569864591141811391646867124889436421779764753872735312912381223654721586751928289611712829831295555493978969777728788861644642186626922718584346125899853127324876467637475898498787752963574961687259876355985752426592759146285898785419897363493143217221639929787326115831961254564275338228996618327899995828254672183885683254965754633924838285383471838143439884346536719627935272353166498277691143714564257664678874413221769874144488792348714582822234219276571717566799569917298211521537275256813472437327126847998942659163543779812542354936625497663557611978758713936228879329174319971958734693895417395316213534521425287546725365194424934376527568166719372717295536838245796452357818735895524956637432811544557348191589931325977619781633988712411559451471858518476439637587627762695533516357194736598247998564714256316931631982541344833678948354884466428426568583965122925759136463995735481248425836918483394849138511949962793275766515624116919759743637796124579931582782372336119363932623979962819978114327737752845117394289469466166587168723916516136454389215721368864736926565268612839741312336112574966512117777858722742773383321716256347913787559623788926347218833356946224859729978878482112884118693213587458445222951151238538387597846581325735811725837689417156831378389762332313785532473167651676415371484624882325562758522478117544663933311443887963713848649482748931249273461156227411255283356148953979315411122752666185399913618995836365356421587274514584853642123557173614752358799147313566667911718978233356126929649795451142112998699824436917761649174177286365925897338819486559355652479995596975597478326861794269396284732218768595216792751176995413764985751599911588743758338678845334899847638675459623546392285618986769532279723574837366465925693368211318289536818534268669129345144175883735325266473338239153556854432594124421167479282186331925347496798249154771688797229391735554123737631197955814435465326861272453116194788268511846367834841985274774133759588671197871244131547814297462221167177843747259193883393839159956663346529225133412639823718793268481932953365685757638898678884522625798934383856518398155823274335694576914188728557342733849362631177577965737682316477762577648636383179642298338866631678341194721937871991723698249316938947319391178966947296929839423216936865952658252862452435476686289665159214828114159283628167775531934845226927412438579486143585576969472972613645582439923172629325252348599753211332324631782512926149888754864886918352229368551954942715271568159864985721656652944914522657452238516987142696789179431574318421262768463521188986838874294836841926742883989778359137546829394484958946234192726738361933753171475258771161242794639712887185131546412517531699942893981588189943563623355314297377665523319213468719945455774591257699829831976836839274651991115663555527425918579497851849839396641972723113751688362346227247789777837238393462187311732534113179762465294429537247329463872979844178598839881495126152239426318515354136993933443948261193513453987289768952195489394393543787165772558444452989718226471647334682835678913191161773418452274532515171862961176144373128234666726223388485481184312512224671242863189728156154473433545892716872178941845449676828261641729296394186271693551132856991861871599717424473627721795484361457387268998336597358327755271195733459339161611234156731247346719153976872932854349712734447127813299676867842356137398542232913222188655438553255774636648839141347282524368574941383855648552565374325742588872881166639484639246577141198974163269722768921834571374383179584681662628419492849856274471317776731983733562745629136472493169732721882238212553566193242547411572659663473537874464687821561518663638865117885122368941996947713954741341127428445338227821571765238253143883726248961641687553166871975263424938833787744489785362359755987389162339913351229745869745234862768882881116237181567432854229395183262262773382447169254566385783188195363599633339344678196574862672987236188421234581389845222478477189797528631978987862482619455963832582344332229895843184938424696753886218338218691999382923372836215735557367925125133133359442152414858674376776269463687531635876161817234791316243491143195572977157668147157771899893292549646331997899515362341131339584356879978757696113227239352291535112999763511222424146861189932432531495636736878163548646547671732761223776453268423266729576537594614871496612342558128965517266516883923573517752543338779484144623914151491964918331196145347799989383322318718531541233566334222159381421281933976988245677189384292242351343539217121486284112421434648762813823525553179469481532785652642824266699797722661513781236299471775344394865122972238242769516574996325581183278381215271129666955585144232359277287684696553247694187581625532249818256812915664962619561812926895529299389746132272127197288778119128956821423549659349158824635526491172914257911945949722273524264251342655356359732694619962366582516671296629583632892876193641792357366726665837916193783946916921746318874456946545813996686288252873569984687231612991558176881157213291558261221311355252638734453652796511523554568964135898233498567197248493748635828498291449184784498236599352833652461394291668997721461384467622757776196252942613637555992544728485984587679739983737226361621458856194751723611863684219262295961568833894254131487797613622217253935224539842769538388559669275467968311183269111929763618535971657477586712612712667837671166222868517176236216452134891716428584335941554263798891279248779527949344388784953741758572448381964997214983378542696352595313299587298696813765825451688298418365174833324578169594552361291826423796936274178117352477486478999368762378684475118236865491289116871997745982481213878227335235722711565863991929397118631243695876822397586587595295967971331716387426965513252661156842865835553274768318434688693176342624269475632553284632489686299461866682255389517851987945564499566125248766616372478163518946883495717673233661787584743427115334614451663838886545717148647261431756722914772424783496259965996972544533899132499738443338718394447699989872911874617738588317651429397374465542782464212132885716735453788222391335645747815485947482549452471392755338999536921658792636763692876388188831421565244396862931196625423295146272595925581672672244674884497894953544982848115318575953382951456699987161861481247632849135169629516212388227331982175968474235175674893614336325432927653966472838317478892424855837691886434596326163842973247731378466987336858453536733947618546372861683267983345816999649583128284343567246461831539483331632451774918733368341473321543695739615196858184818856266299459722771279655454835528124634668448596693668113386746538892256899748397543343571143795674678366229948692826172976334681147772373167826197684789393761655431548754445933682958888244218641684459782275333427315919329273231575343449863194724314235242445481823166143242523843365668893231222527211334486669884441239342353494195137565922898333335258383622922324168549638451673287815156258379674528471215262479249655368985742283128948555672595449865653136144335138982439488832618153366969483996683816644525785589715211248437885266739179638165136455458389977483945751792598991434969787774511685168138377156188475443119349498794516422126624452984274197937797256787978448883972388697489958763239817752639926944693331235181212292966118889573932153176564584683787488266113385491716352698856134862576177496836895329478253866231388895534117676217144858233746753532974373831431133417129472846287374692873816718138749676751479196554641812482274947915578515414958391482429546931711157917447732552689731673355325329991634396442599372337553874495485347667391341276499154331769287621367896919836455269582457366136143631222185729246173228854446939293313411872794282513377621113132252483469547956216424975975277382521757699495915447743221647465616569229259749183766977931666116662684699563471645332824989591156324774529765828331523911869874496763114889461283235325499275614189371668585693816246666673132539446512369719989513268615717969983534658619497346543314884488367618963813652485149269447874599259946316571798292116951627176981975495942112811921614566273751747186571779741642683148655829883681147994977932988293966457225564676376663445544353548172793149397934588722255578722527686989928599757528634272942284952549431279244895667874968276561695536544548827373959345952596656198752185867484688592996155628228982189556284452192381876348158836934879487722831948126748443326898275113775866861662245978288767575175342737313369483878596453919596821182712138866143892525626554235133293396172675864894466821223725945373879937492672116588519872464791167959577745835584244121246624611295953725298636859351254815355265668741258992685599515895319726272955969759817447497866285167674868354239118743362147656162738914738142942794131334178684746645927839823892394426724672955598989652532722941472953299393742539494646727712748833143861135387225568139899873745938224136655266712513583478642935736249884219679739977294967169632256124434391263258877264868831945436878197214328194811296968151484161861672913611991919685488436822997955135285385484343679512293372965477895324651175342282399527614149727348593699124132251192742955826639389648549841955955238322793355174937771664759254665376545868475657334389644558823349883269185551263692565891671914873299997442568617762242118298575774563316441112777882192819756133579799334434511299388467333934279149161384543652479215847931346259245273636989116926598391224748652177329817698299748657668931795892623583253872745681356148197675646884188375457896821324124771244722121857291969541672984351463635827891419596459497685899935297689258399148673522379659632141797612432234982343358323276379358118331453752974199921237655578477291236412597887888891555993739538641271219998665443497897969813756762883773438963393971767646722298466633875659879165131775355574319762948414381286698566181636856812996745163162621475974925618289479852457753814751238539999897634529753437797272285837835795457899664895665362481774545914348928864253698224252237461851274865742956315927432444281265372767222325835437968213629536853928639752333756351269411463957238891865977343778883724759944757536622118823189858129594497751394865164935243117719757996551681966461744356467247992789335383388715889195739443142319333651988868236244517449634754666731718683495818348881834218464936917765984574388175258468294597187753141487725522927752672929626271475414284635726491657748598216343784182444816456491164822632245523819944324957487393763735948379551544866269988627773155538466311254631245234975553757219935555571923945348635181356975867213658641824457119627643128584294469222294539239281843144982211647557777219923831823126415534687233999619592674655856585847385918297957985953397781239792531129838533211696826473494364426417488231441589179517746263514245773695637676572512176791952355732981343119746886984553556672144232366556429997585831174631744256372827457247884377374637691915432613247851449866583845584574926267489255397273721994352699189686323238557264435425748817695553265477322937379819374253722266573818539632459349256562842857484675427379594426332987952146784149571217956397921198894897365778626736321849641649419798434992753215846731783745676544486874848169543125182355822376794261655452394595983127489625284519654988116455933235973724242682536825625269753175471743265313455137499824879976422485781211446948577357724612243379847858881464221845617177282329383967745771282276736433249379198384957434443669122754867884883611996638962227138293577255533883862323129231833532888693154322588519822634596759826575779199238989959922472845727364731739643449325326343436996633915967832154975597131353752493693178769755153682294218473493751957722697112351478788624854928914774843642777714582233617919799166441694761531777891152752611516249198474417484164267342412453965875612143771186383115245379565142512714962978597717329747683286246396792888547217827791358566279718367545388197679348473228835694521354772572338162997229982451892816373429632347537248236271251331957289242375127731433959974116181819723849441193136331337527226286168342364354566288211861662289784428534858215713533528565662631162715989891361524654519855117914274563552467518863113987477277584831165111851627827114851558215677773273157218889481865919739286853159364964741788764244226134717811736923496374249563775376535325488979219735948884269686238668186873783645248936342299713667575152339584198881594514584641487872914943452138968429758122159636725229344546333164938739834795367777611144767863255128111469985552222335581266482884784719698153264387734851489577834215163967283512284568697454926446852237845186283549397831133667242444127525923276185777879244756881282823415731239615383296571158175257498851873734252461997892718224843636612975389424494284344154438581249336754585935342755959373231134956621969552884148543469772673967528514449437721563718675732927667528943884456593664421883974641481275343777326573725813189544462577182368979526897376575427663719418533321161741456993335989369299941162177141175765197496322331114229326939936512999648279382392614535136129569669623438357476625878479171836872743974899446988565293289271748912198568411998744263462278353133242978617697561876193329145348551757417176811888487629622936781644485192672659488139989183641615933532588752699493381288552592995237386941119938357265919148236648266759769652476182571474186749556121996741877485432468856438464966854338316944475529395837663158523955785478625266184567223426377573941478239645243597319451967614997934656619923172883626692463641334687248129336414665234461534656994727419342882247569986937271761131872795872975739727299927183195172341736824386358977858447646253376258739257762457143976541156262877558463138373976253797611226494948774987793988684954523535263557424612371577336721962224641984516976993948772433438551913891341837337621586629742696676955978952683345284844718876534129517492551864271554825611344644585223357333549685975434457612159561786498653622917549974634749684752282156216317949736188552318773791885515236729792399144274931119288638249711578687581817289398116868672633589347176255764683493178835188236958666362638986235322114592315899765471443332743265364613843223188525569772844149565936198419628558114981953467294675185936896542442629723948768936534126695238472534384688454255698198656159785838246694428742292981744439217799513163594267485574536968789558498694843159696242485171948782621371644859828422669166159727987995968452233964229125611482179868365989111495716616257196292177893382191121581241855554164271859268367368325339314758254561554459175711532954974248153488433767775245287383779193887124857924771284512339496394582283667367535633982125955584731948384819662914293483888325697789598978734824343481768488948516554232114385698845912649533282627139138555915797378432374472643345157882473742468281317655618842345924241424559367388843394176291682995926461385114896925412921879977479995923533892493923215192988734524916257337475667867276365136478758364986634178755562288581127793528816567775638175283131142711962732377143496394621924927187173146372965314723184274555263851165581676285557765172426832216122469435944588264751891474585185221163666914711185955182538846358355519298659657152469513386912736186984849784498534474691281464851458632591839782128478596522817732594743736584685433262714884456515868231768127459765836295439989465277344146781645227737269156983418123426994957458231746631318458359492981374129822795457468213938867156983484466644168784614795671376864112437889375944384762229355832332374952878362691956178993474597723927194829178264771569797156717917617998895612178124882587957747517295885454541333629858453136766476854487741763914889524727492128614833695669951338281652281482342635884349234365173937146284397469847161973298795987791397616343235821817237996494173182753477589151141754443973478577742187745631634718142348565323987184857319363623327549385716914612996516532784914558476756346787875436968146427862698263795454132553149843474159298914273718199154458332469763773463779148747752186818145821188424691595478132349829713284292823273332768461674564434543951143351582646483441785228571665768893841194622765633244171136582371664552914189652865252355814141185341541847782877382417896281179613556549217384822962641348346216451993713532823118261284818528963943323565757846743751242973877162383638182775349514518615873678795957856923535485735584172239918494278768992448811358756878768517813588368412282217172558325964645892628458565676273328259546991378439363918566183323127171659676428234534371889919222919973821343265518945922812733913799971195311751544845924186376546443442862836879263664972589142665819875957624639885271429233388868755259811364243559681493531416271684565689983147996935286226844792247694583885684176595126789168183742199377835233871382869856664837936763535957235254348314769142724298442837639143366287453346328737661754416211546144788923644416253337556266119714281972235565171392946542252122348425547183489428592155251463495236779477715635585688113139277799367193764227765113913216133782696216582893479879159361863131281891458538854739644561546758766745789531216489432888822595251724272134235762615772454592117978496517829386446814948397498196835475255174616286471299839637129557961568728336973981964726537472967193875697284473468739462118214894189538346574718582518617417897194936759396676423564324155633331634317236883334679981286648862923252964543864329118226779555537752947399575787797619266192555329492922968546314865869379424845764966963816435812287224155448894381986156678258366966261714493822818323971785591186612773111372362183479537987985545611891827943151397231927514957427497478252466484917988649135765414152765992439839527379272648178573558147279152894539556799516354587291917892181343276836776399638447447216214336544226773312374118841441961383836258725945261561345378465483766481142545951196129446372729976513527551945933535577995155153683933678762264597953633147542619913261937942482175338532366426415621613296344441873624851382812373433543166599576747112949221357579723937577535998688881693626363134227975716194863632781951566769281767246746222474543436582257955132644216727755198342889994699182145456127793192926194984453341445879472249458531948336661884817385232344368111114837483461851479992925431232222614343688553691588671912135247297621877623872819667567759263882443529262458628584239994821188231572487421273921333312783682484441568291317599531742818177295538674484414154895969951856475937784122452666944539533518955447115416532696181533465715691133723263815863471413658928577479742957226793138169324215951687551545266826119925845245531688333286692374885775249653215164886194763871268634238984394611977577743921936887219198417777664412176367369737457456386142717247344761586359184837356849919723346722659284192464297661552513746417663482871826234899945196369999755992169151663142136445861859615293318214278572665297683558529929248159466292458877635889631522335249175685721597248525477429652155152521982941544485833664527722227467456548582829492567897669781436151794553644563628298954722753358428762915351512321915375451676496262352776726747737254788745275781895172634216788593861634142529518914267476154883178131535677527317733368964342548451493869591221893129915238382116146221169172159342332745563663356878774771985928131294631896221888665132129519392321684673184262927439621469389511577724132447549272123268286137163845238362915821923238137638435618922747847227329621524186918479271344917537367229252561141977793716187749556366282427332429187457856629564971587728441462479194778439384672538389133178294183459383291666718537329526345643888716126981641574215157669134312182673161223369579164629622942138295492313638584471741792885988786325345598346664647717884372949561984442365822274845522849132878966219435916924416747931823919795425357737338558132724786876745275788442163898699861239726389716274118113493152138241912549519126426226454759951664745798738531262663217683567523886465237988894951272928174816995621923611499784711882697177676928129371498377647525775472237738539466395212866416984311423196938874483913988529297538559868352237576756954895815546392278993116753327722191572926545761461751336457237347485465829385321386318743455277815342723741373289719573818335195538699863889197967824295826416867626592879779466146456846567143794443629686422926659143799492672995356214845936572576754583748748364874157649287334898356429383118475681444362884264988529447757575943976482579995383144978542288682878597644543152255642485693469546475138472676792254383742976839466869797753332447766839126698534219178644976219875368159618451772678542938548425841644515241217364127299944785169123572975985722112732715184681483728725314775775847918525873811163843364639196681372133519799786851275448347985112114465233211786684227949637138238664976396263721232726678489292957354873498669763735391128938134858234462237183366784885678471745456793815513748496674231976831266834114654837657324627613286212784184448722475196458997216835882291634595542141776465286758247466438768222324472926525181814549972846568698145136778266156489386469116765468961537244747275293737727384639415457971343969468632493221573494848535559644681542572782737867149993437391558582649817879646359258481119264913276146622666181915653752557957354766318464972162525781845529234518149876272377529986869321234574477455161388929817494325347694931665161177868739467789223861363239624631396168994763573769775987959212231736635981248513479877662572694676237725738579717694459687756193624376848696565234568417171671822348823771227739975826414469552666346614634386183653293439373528953694865273889144443776512843738886163589758662985243792885148836531688643398496821989157569342774842685824653234331235882714881263322892257479881883461431718724154224338975752831167199259932435747161857322484589297113914136599295289812951398217898197481131959457337422349159739637464377361296828561584587461213839366982991572317255692337347531455933922167288894353575298841775367668653462242566613112985153587244998334348484854153351756994616916728152879264579784858438798478948853139945372149425167835673467241543326844957879385977434761474526648223416283112598241516443874347258498917317366169221664832364979897688318834549442386679695182951618437229553586515262131439515565418128163312852368469412453798227938734154238344188138153321943735597992214938335227923244248421868548668951783394885289513335329164829615672781278676536859261166547497764832938785338813828735368197763145127896429299371143568367133327739417948847774777124859552774435276969653321797589874728895138645131985316285933819261958451115516614135753244433339334268378618378681155269611934856271987758565422527932782774149655743427263694844427695662175821394635341599883334974449446918937388712762649872268592444935728457217483546513539378512894465298729457699341582418257336663172953987547561619739444277833931124312155711751634567873556747649179175644629672927694957411275961878332783749731481864585511196283815973236997145119358719798315585982294784486987922782652372721218337695944532212489434651732742564223696949159387239585457629765176434138933751464411744495361776319611493667792132196534851837457327356612271473583125399373917637362812939166394595934951141814538619611596125564856242144214556396155214715242635248342762116525231641911524577199814979179631144187187128575175145432438381484682389972727224527959192929957395424311472174435121139231215844475795732939362864876788798272517176548731666733918676345162212917562334378751941817532836157137773896224188183152884977662364142422832239937142311596253379772894986119993715726775479697463643939539328588969535963832558722994946877625412264751832177757837221796558988194468341558222814524584138836735162895949659739971418821513174579669142896868864795676636723179134827917582368737284735397594496778578336452224731193522362619277935746482482854853115331399316998462989137292677887399238158746571779661271437916636548353126564629575593526226879333147348894345292732984515272913297821718933541614892142549538858439491383536586965968112965739573421549783441926422232327781637878813871995196627839951628681367248326426714375948833994643768572293725286522915797976349515342461733142682673131827441389814839892195153319423594237355235517587586181212152491624338849291938686274284398327478711474483375142658167387218955726753181328731986872619221924575951257378159248715865777777224618523351254167838314772347958498359574678983665575852976761519235271528316572929413591166116938346488218855857786146942542234957694315181665243846441584616812551971478434858122664613963552696683721452826628683144329564633381541584775327184496618655927245189136594124723941612466857451868761311611173266327353946662757513644684781896428943246892966616961228576566197782994583678238824745583137736395395742998611582855312524376796325688877548586661181241658237758296974627365732829843887619274983668821546128199163342192917394641432485176784681915114194733175118235732291667648138347618816425138592711665329923756515385816319157128174696597762211738318739644346943412852527747891621484346769364483677638382961122151374849854183448291938234225439347521585894937847849641953584418259187567859533295168164391639445344199773636736322126455418342776965832284655277389823354276443939492618963571198179314531254456285345231468477264185436442675294726239364182797295547171238758911623547956916636179776888643443385538213813455162928496259483611953774944288674765595118847197183458743162928384734134927626334558433638729638111493793444975311243415386149938978237451847467471619127721623498212756729555182142943615655895615778351294793896981241696175545912837755214482979183943659193593665341759288475373567622639778944567542549367784141613755731434779413565582251654524788141273639471625253377322673949843969212948119515732443519793676853653757556496968993253222377953118473937576252852166367494287498226418154758842848474293421258969499293568442634471771822846722561471735577539856832814986457694532515842684569151331618253893256385779837284188199161866245458976443436144442132136222645979866511843436769872975686738136912652734976532428525963535448838194156442195326177653715348231929224767865486982647827351163154966332918556135388961684789993388811911655157575272249618588726686565621134762288392352199869417864424426882811639765864641672356688128696876839794361624689714362153922588261248664526974744268474665713539533388639317581996833288668891743961633642291279861178724693657843715858177285961166837286442225385771577385779776257976529621148525562289657613138815455316321262617725778339632522857477118113264835392225987128212849558259575857366578965666486661415339176561287744521976514169191523511165184656988975525721739689821726323688375953585967838686678649261528235739978454936895451214229261974446442176578168592513834839837261794992547443182343524897779486454744897532749863194473149977593866246887951845135363666552292478982561255237739266312846956193781937852254926831451524219618977969743868159732775727228188985571434719425387454825526335923469593863794222856337789392793948877962231642737359116836995388965559773846198623513196794223998554422694383245395515164485774518849998327521958598893241517957741629541193187826516829969654427379324433621213853434331285517344166497658677743975417424864587883322977723597794234764141488166386483145384954366632135162877485933226655139366828921326593231723945598192126517388319858161132325764564665214822752636432434655121577723233425588749273424769271326888291342689453478511976784795383182125273217444383379847116534733944452662495724949823534166548842276332461822214286437744387261386719934925136544976649878683691271164454957519897451346194343469455698174614672327351858283528443812698958316537242236954394138417466262192535249352845254667387123739837978483326491995351978579732614291138468897876312398245928278597491236925783223452155657464112841854454813134357463817433843916191435625817231866136879152243842874334714416483995572367481664742164434864583672127353982947311326658933362538639363641635365396761552788831673518862825452771356291467248196356231423856933957475511114924658262394478171355892442443844219125334671476312892925169343653453866313251871158131536449714848135646869756741653684228187462264528195978442495654966774519525976776162915145489775452682543929695291371884312289624772825127176685613699911229179447528939636174634892883894791734475167929536879268336415784646174579261112789694427967325788385632457457525474726411133592329772816641493939391739833172293179269723743824754725618795715112837797151243517978437217687177269737533555795482225934582298914786538773242689791373632759541818449226521677656564826999833813646567218275821576858446339529774429231847428365949674295147123453456449971796279136456869461795131563451428135848563958893862465319554595388861697892572867983414267616134818858537674759447667882642355534319252728183826562151314528961491395476374554191115145486173113142678295549948948442879586797991158777212194887621798646225894898575395485673424594348848327797555973592967289538851545357126761167415592399142826869384986553467197646656558649325143431975111819662227672435456849283179689658415625372524958533541647694548488759376428713556699663212656575249256897557781359195325489926441265733487946969969381838729463378741987672267163991963745679996661768324431135313418673138927674649461613615146366223335126864326253222472875592214435845432654258569616783332442665148671744169995755323546668724237975948343332895326571936818229916481124346425936673575256867767385287511242635272428923418174782319959963115422663455694419778898783679989422477612161589465245922388275917243714828856793317718726533133737116487262739951729582133445618317845559623627688636649972432253836371333595253895458235377572853379493632145335759563998646721947976139233745219155355218778763459162874147558453976386152938173968144457193736924553957149846131735268958121693946232845838331414728613315474668271365836649789941711132468824542576948592469363343336572344697743337176323248562784341554723476798415136348194273685631811257727467959484382698857398389394954799474323631789575193922849145515431852915973929328519774677226549625625113393224974841297898553494965364483715192575494274928157442868217577976213652969351165718884794351948549894989714719279156426841833577557745726187113898438993875232867641121619299488121919186498675329339481399137847847845484241663576413422335929782465783296362518158371512993852987565665282333946764793982266354998555964986268734113381487912399235621827433396596824852552571483953835567896555126492546682731825287534392846347967111578732712221872292475998684374331182252373259468595984843269582599695832146962722318793818846985955327431127288219177257932611194526368269877698594218811951869321836642538387136546326392287198189644686423225758389999127836523477745386587962788787688351912359832448997693761648395229211334195349227876142185724336346267576199891688271479859261775289846535425573291227191996173572455997428865173195793783388626751149772657164463731199326278643656633788484721983982814421275448991268985357244442522763861314193118996421135468511785162182481682471912114541481459855152291358374475564816844889764268476391138555992282765252118333259878989734223221396819111742157934722685995227246726626789884566937275565175788361922579457713495913458765334259139277222772991591635411832236949956667734834872734364346559252147692255636893175411735371294497955279523212498938991428336676461777738948187869657699423978614671353136844519465223154341291558563776348699535946151575575538265431165825767252766793331682518941946518875578644223445413552355448189765223977388523963318332865753538149336153894188399932127672834636558153333721541432533181162434978874216477421453596894891932439327638164716742191571849842175996758545815587677733617481687286751684975424279733183731799417171128514945353325423785754583298281939423847959499766222478786695588439613417346212823851728367796547498627432942132316367994663216844795438513614745461158415625118477919759119563898792633185585322911875774711981661833931378719819887463724892767739132969739719687322584963938711594698571541499121379655857617767936883825855766893658933783469161638921595879449793595763998713876656595982926785924489779549826361929417598166558896763616578914195935674479124793468628356955354746293539331699835675491975499774482625457416397654292179618575712964497938557211529736686534114299538231975685637511178632922331283995992449913743759511613834742141539663562736191952911183557651783549895967666641731647982647515769638924678233284257845198648213165856213134242546229528472183488864474685897141653693331548876653881248626421485545877721597242521433284716754186472243292815956998216687351549286499718888383872682349853917825454225883712988146269155335916541942431711798592128122554954697672814874754593793495549834272838819385669818288428862743161243923841416386194935622685981813115379419838547839481459847827216644564556389962999935817598298752117451978875953955336974783558768393489165651746368865133488144872199915561634251936439756461847956857412354768751384259786869454938568693969834963376255629565947793552757641926253857229265559228464537381282796161782687243954689932659767746342419577271465734626771546219732852618326352814265833785396268244494334758949256728896424829643972384668451466837795236616679866984349174119691351774333889866454877775175933958935247535591135412178475867252943457118557551989277823319123216542142875539627635217446247557191293371833783435846579293757556564881854121464946494394577311856235319611646921568886243863848551981841894586431319833198381236133116295543185296988277816919422721239673871479876673364754786747869736923841736384619174441915582544135319381818268156499589937282573994831811627423161998881598545735217287248881975964743891645117637335848715793298562742895315967678962843312521476531619939415173868142362513548192941944874271366168394335679477572665942358375881719132679416254219683727635913972874131861565886754915767257344432734728865343817218573378113345417677544967348958615933723945485142885281814598468859931225652156234642522961795561452463927232634188149225284631566712914616767166868671288541586167146596952767234191998753791396918448933298911318388263322442931774576775465485324238561695787663999667993532852265911169428973372327826279244369858854784472618729512117812346112986354781842522562552243266877165689958933973229364487613389975542436228415627544871631858645178319831651122865132184968722238958931985886961454553748521732427318386674368393647812662624866575394751176895268948193354639367875251156635141735533747219135712217111763366338681955665577947157767833148662338423788225818612376958252197231952228949431271298883617716428414525318259257276954224883425355596137751666463868178455786212551244827983419684481225693313357461742429759626954966525734968694667898664515199494935417793652927687443774273112594945613857948696348516733933173455826111884653276916588679887122593113182436752333981747725426565855152295669893291263834365811385781881356236445441723148529547195183118721353787758153894747447844253915939397972766945318942525839221512532218385877488283344817738778829931758145864772894285857514496387353255641998987394878539857475111415868957745464841693578225625655131824577914388446684415866429832813359149467292759189456187979158384377223922186993848336913927745162772164252751123955555746429934992196422585497672126599941932321429961198636393395945748722943865751769523932261654236997181367733718649832857822224713521546118479133816189771983253494437946763764855353328416631868292884461626111435667486158934842821265117727769225753457249524685691112882448368744177881732281649549527761596479775553534632775628571255294831696241493864921463319224643925884587536791182228437359614915384632484853951172895539579769387651788173268265434886724799537382351157372187429796368537479197312316933931662649266928655664385495997289146299216797563927345765253872874484493163617898521987593778845384523818168747599587246593287715145326122886635484297647964533937468161248892438748491986349633377273186974917771591588212964189896114581972757786745555752969938538986183157726391844328493386248927525729482919984324154482985877518978826917895226522858947534165852633223891312863937732564779244497518787717883175748985251264594343911669448645128916322437776199389356289944345145657889567167985819437311745157613382226923521991723554518822573799812493544633614858289971127387267286549792942426245131122749455164727785889122625126137381335732992651237938191592993622743215293468361163862811991262225546945371197293478658648553675227722258258967195949893547715126887891725591119593463726476888456145216646656415652822459936772275776339885415979151295187754871346868746387774678687195769146168755528156713168927626192915512376828623283388271821421511961297769531638957764646777828714823589331492287853226793363144415663586525643416537295422634964429767218562782345153684655952483248858614773816312551814498426739515375752832552516676915855438489816262354487647194685151683429389915931278933632198694652772691689262188981143252199354421681637544641428422645735658199157911654996937769823485749648543333386575177843625963336389943266483931337111362757971598583898336628651251366441237287935294827578333357374917129836428838229857679894631822513485126998699575232221563554615842343921789637151262318563922395428611677631435441569315596614155915972734766299254264614163578977563536912511335742281497744532177439118259382755764893566918115756647541477532197377533122923386841584521372462298741842133252745683135152288396161154246451534992294799997727432335739374317696825294173745376518161987418968541959356521147686582569291996741735659311394852599545555443116979444254273568696559184537737435257572989134883436335786358171596253431343629853486753487385334748971813165139357833269886298573369359644946962653859726346194328254198392987141326287829527849763952681768562684112683634497263457525682328576877945287526242476227674886632329892319952564691293768147691821791711794748188117373186645625683664523986894613321527181442881245496785264623935876683626795719258726243583786274721972542922836697311459737343625613766857129678498444216939289649725398189957676419739222139173954373171156622353226146258145339547743848398523835338842635157912685858787638811432116267763443592976744497276218419824691934373471834373881591431323782664981216299525814752885816174239517528138989469644812382888299149782685373227282462679767666569537785213334131276333319965611554222622844257373896126992452496697859843358864233833433567696364949833957833145338661716475891384356459122335868613682228717745161594596628214864222333194767362221669331131425726858257634259361325238231261733326141883287122133646358374347568172259468168262525139866289935742856782577493544847722349243696781358585225468732394527431681157281929541976738867218942999915622714657633295962782676765555117277532284492988156292667123613339872978328496191611866677828141936124944764373332318865547341343944336682928232451237581295138322634283373186111234971981493123266574691918519631818895934234449986356245985847926616287419844832445958446828511169678418392663796289923494234241196937656712961488479629942455464145619269356394232182985929545738398224149668171168355756689952771582895861656563488853392396474422591975931685923798937146672912161148631689269438121723371469665778432478384217928198325241296662594631468788471178898413423887137489525382138935824653875963775313255663774567148382679165331851165511687143746455622527948934939561638232584139581632326217519455318129168561418462693193844778397999915751782527776875258535244943832396364425173669175916431724886925541871388544441841473534813413846734751614947921967219589729984656832872175867854573411482379634216383499976659996247264482344654273521418962951564189527551895213454484271465412719651394384894129567875811339411364384711189482237815274317247163481642749678791379797117822526765738992849618534513324195146712184872946895658998229528921582779956259738383972894645435583641535149913721927197351793249413455969751123114713537497621552787362247137347616859678339374442167382885517267741788511438772977784762212827691768519542218314963349469551398364214156377117593736563416445361682977694314844215862183635141218385944363647167543641794397317945429754128824467722781199731323755639941712157818976976947869244786679649845526413999583368171438195958842383724913859165872814692177859977248538712728194374533739494481114966737887796114365637466785896282743532289789926467194772351858832274283251141686395672896871654769267472376334954419688265229585592228356867263593441355766614144255988565379428652676242712226431827673189921786843556526637259132887295197165658783444996611524592212619414868647969368928958397427587327793566242177857642562194842563342587991197762535761871253319522659348457134265732717623842893957772596398524986157728912179254831989699441748343914694791625917996855789852685866226584446935624219677552719384896353786368731149997642812629199523791427389283182755825876875627995936655673972945526992678131729312866323499493944434689482444373448159398247521864112149384511744548467381923917317411328767732975719537418697327957988755417514984825566425246832528483734475652144589121524117257986367684158242598399442851456244778546741554692431454548673287554386859894252494439772537646489717382262477615847715947711238197825939167726218988462122945844515997894565175863798899993377716296876132539925385164154389841549217828962963581986481627611555465146932128456443972932772736262764256457182626923925172244759826249775483645126327734947313384897764292555967588259444274492861536854189684332946981396645711753247645493715818595424977447413616379718988369297639936659398669185156844779578342133698528273271575268435373196298467298824132179584326743142562487116887389486334655238523678716426984612548152426839772938798429116377529315446138995987766597498925656676121622412899565114743544998456157118348326373663946288568413917617432264771936229647484214414165897812279262884747475686125529888578696613789953778147557988966813762321578473631535178877663243498529566493766798295972637849179831776315661148948335587161158939996536982995879612259855861554543185683872358228323297684648972279727885129821742941718171867983944633124115978163143739725492786157358648145831933396276616875468183957759223325545151722397734633837511433645998414475594366628891459583745234864291649955516485438467539142427746899685236663195932673576728393971838331797196488446792454383468441363332921568212779815332467291216548539666485552542854199628739272925971418854196372671532494319412898838623813521677631769179929188871632912164222773748545436334111163353368661647812754397729229235341675422484164238656227239133556513945973479682435156758651895445647144271137179664339983153496859643968861577523846644939278753616882677623465758392694591475534212269921257621431679937854417717823714719479412568351145565235716976446273124159884987523935315912435952243457345633365557177567699984197433166518734288886532281288587321526166848257135687795722661273323729393217819367937497643669881152981281861887589218873938916911218327313471138839616818687387396127747875966859728218877595224825688365661236186917893441863334782517963986585274743986172295563613498686234541994293789898444594833681193546536844112892535885258415325668191674974154215783287927457813513669856359669137345936661449691845729254299192726228874897856839392225534544516136893272956539458569993345786298877985178721554491479513171699466165562332486825743794891959885481836968285867331589877852621268231726444919521479445129272287991162594875636773696297114223821716855332694369528136637148229399774196265581533224786481211129987496823461492514983612531632521159741867816157545795848891152256129196775479923482865654657662364273749267267496582847392968274482654561275915542635344549356774739286193582136199624976891467841749248596688296168354834869543697422261829538234958339625668817559665536489112486219269634395151896338877887925526332284513196985518495162753285717824274574172522441757922339691362788225522573697771363485343369536447879926285843868115438664597129817798426791976776218164423125116775516284271748358155495796296653193621937191826722161528237783992253255853844496511453265933122346459934126556186131447829131244788571872536235637661332145158427264341593195557123235348643584299423562671115725938442315653963884139395396867449184324778964242554473892467192999321696582795949475664791418597529488136296799536182552582331162919612331789642349573522543659639599632798662775623864827262124974835994769847498575866582684172454844319293822669146683741247273556866884165221124573746859665819496963459761872228392876732213131536752737694724543621383492685637212374924394637889817145213756377594886115567356246731359615241971269769215831443126949899313499415371281674717998492379291338378796715862131829648775784727543413963439541521475242698959613943247471225365392714874759618812926743864379719978356611572352452826112438217184828568516621665746457478298996387933863315479744477115825625243735911242577541877667149519913375776789736479545282895744745153528976948485339747826381663157319116681438951834514233199494113912561512296278417811228947457548784624843451391172983877512354122484766191128115214372132156448676851561462362883211212316849687173217254389557767686816499348155276971317252728576156685529324639327257852932768364822462283446466171655848925751132257364618254751825489179544546652387648553826818336133176429175293867792873553374887185636633152336896974238554933631983446649752449847259994486538526859413278492485199998326878638394243359189227727516436814756586888224122933793454975665931477955756166159437662959415816854548994599115936793887628998672925825164964446116283845744592793274678964498997515799163413473689156833262951691269165495742811794387593578647552567896459549518835674722575129355134779623472154511882938449465868224175392496856843936769695971693199529659244727129685444832999218141815728189789648171563553463357347728526384346944989333678894528189831468672375673596853632973872654599366384859189564726913381346684518146331328174435936244177635976861483424219643234748154716392878817147467312524986791152689856646339974785746134692797755739283716692961334846296374149492428698158344477759468894397247369228933756173647573463881614339231923286794958695931118157479382374572241544383775775579216134369617722664183259626154863476792642313378766972933538815152711765894121886583665926687292251327615126185742898388947647661773344844443815184723615469935192436799143323721283442878761268412862765986256364487664449466385472536833447963411177419354863419442934367953294289821755231361285386612397615924995858372396315742382422172563851246152181711173282423429555739733447545696612829152392246719673815568118567658653672895454312592946746493257912268446882213352436918657752532658472151261584527926871655798953779874898837277878555518977662838716985867474262116456342917189859448734571777877312835135723697632394631618395925997419871139882811363233951333732462348351229298224436721744915241364178298118829263824797187591616924632423294118271658357915956646888921238548366311236825319864442233146978714333345826346311644766979557426658972453986427571837533378891565352485674224869943685913792737152188646866242246493872141214818916779355968171519787981991371962547452847544584543131229147132275821984637185528722734638241447838826388986327289452624436471154844353149661389114365597233238591836139986913824239689392624453445947836327698911969887849174417891574114864654749527391297537317354554939374647588217226878587222566958875238876676398875634444599174852354141697336914565798147944318544737786518218444914717419731564837595255955898279559288151297679228733127586313257165779888446257129332979599894699165953886311911943139988867226222616875394385477671568344955555615382711139576332387991385721281718778882648252378967995567575646413381454358486272971525262624244572515831668385472313718869284531671144119736353473753539447888845858249121646884158391234822696189893815858546851578682953223619598768244177761727665761971232171946669167623684341815793815812916561567238586729699168348729829466492113851512471375118961941776425526691741877884394181165242763214774647625494722238134548613924371734495734185197999444114485723775114586985394983926326665936194695943521958356457178624116625173567628714438953758519819461767193865625156852936866745672756466732283588163265739214771845581153151318113328781612178952519493618648448769538588675471531469729673316271113861627155916942814751982497598773734438828513682957155193843519862283165994163357943451734873668877174453859173867991153431696563269514879687863552656989958684811759237185769914168656541299669644546254629419815759313322288131475988349289969425344566673375323712535532437358671936583719241419452813945669437429167338343372227397691166988739635457271318419249788883472255197532348378229123991778116229629262395222923824114181971582543459587198299381682999885844977223159759557475433632418982388999285158994641284436566354472369288683462734832264811445772818725572828899373589869883351441322769942639666895771659875828848915988949915685152196884365138937426211289647141231727142545437168678687541243256236839183615311168936579584798311983889141661757449985833111931918286289154219743632213414415595393912725235119371471612942489819181361674273999936986189227197916922987394673466954652573263863454542369616843447782848154339573827942893576718477651465787734116618788935595443197134411163554923881584933557766468798714948339598656948283948474233992396228168822515223516343766856184694499282331853183627882467964223553569582565864136714859645957212457396553128531992386138634354488117662964716795823426377692938739495571841429891143561338422284222668643674554566813735565683994259913351516862531693158527715129919335375859883952356217777379269181518882861155171779356183988896846633718794191168993591788567141693862721139235925264223967761718984165178189572986418514279241149445841548585683322162578582485327791854683959271386422371498739499463612815823749382497527389228954225395766939856995646365275971381819385978754453816433749346375446474969735968338971144977694147674858821316149825929217967369125499371292894686266976763388289629536644723161575273738957765715567121472778835332694598264634189771728985677199258597393656963831991689145744658497127462857149128176179534998736548164359963854761467411799461114819234129315671717537596432542822734236166523683226865517651733995317813453691922418848692674863283863118367448678462111367543861146345171715562387486413157432435858456436772919537276481913244729645286754843686393831831144415359767423795153682864737731169695561293362757914189462134139187433532758833524732666768972879612954119892133395462927724899751844345214316546971162733122186969483984394846444439593794991597334613843226859283942221591549261622885116681689783895944988894854133643291348116495788275954239633885194117818457835642126539582669158468148972654216327769796861666592214992256556267843712377443972291598614257764447617834478666764623573887543886545218654319866237584661415683146656311731516138776132161529823477117169911513389773879831892949738425415456773659826718778871743575816451827171862432398975948384775398269966951183212917492129485915721616191298418517346348287766128178687697428267871514312877578375143791433148726866287374911737339598529733614289797324614686219247999863232539498231682938658562251247358592441353311493247983217221845684737862182122436924244844828387759435642754876468681964345173847671134297574191868854278685857425426736483883768533839597963614254717254532797441624662368528734184718241429152124369485336118325686511541345546872711124724554113554486421864539699692973327717153399931826258217977174494175769988871952576487184891228625191988766661718345143421333274672669525172242875368588621728175239172669773758284843784766663175172138884169867351529994449646143245924338314938971868293257759973565786516998875751678983558544779257897396164649696384547371658563232962576821779316551377432388591686633325382111766783435543382349813233552762736395437871188212182284448514586295636213211921118226561291558166418939349231331142676696659444185886799622744637785345718733231518287148392654322845225997291259967571389454775859451859568474469126145988355849775859795532877778363761686261137611461813999755582766724449442982937998297962519576156589423511613493212817947994419147977137287427536616311989439233829532239861514265784783616427799641763648789184453729981522282144129382241958484655552593612714295132345249967312755914264234644946159572468188254735149563716199694651785584418761175111389889747192961518847694691219137915879677774723416255425434446137614462238489628244676118431143883238341169922734189589432335614836648645536598787745677899359732286149582131999563929619523586614318255357346283474343175433983313927442265774911334641173461681972515729287588521774771926974959111472491138879856223214791986976923152154832715337546995993581172376472865935567119799378536523659287363656291791769677528179334352977342741729795653295191924347434146211272141695823212293536258462163189283342722943252394997643848946865178259443657785165739193886562969774617772448835496295473928214172432118232915444953489772572888921119923113446731968835973961751762753854287869845637125429374449423698916582466918628159967391232591381738873374146941827546569617626699487713216798679334879721472941778348558228885817384345283276353176831632428898537741359566999287768712754633575157172828416314188949114476714198715896636157454337238565134524384872433937672994716552964416734911144336183271651295481711373653756989586784748767295366382547892489236815378144652287695758427655467146553356521728588852683347774477923236877859787563631844621948648761448233192738881874335428172947971773182144833818341662578652448416513526998179892858195858972793353514182899777962661145833193427677865154821516771775267566698354931435727768234311727454123847339362843598221659722456657849663588671811532685646772347922976125861942894942595162385976963674959142221525664161297675361527822615837878334731638496712763434594986673415766829658129285417667155612941427998853664672113878473933936157756532796144354431268452653247823554633237442883898634688813693738182493147224494356695485634717624744947658987311961499843322883346649393182712817846739859937251794732139191272855417282274887957229412411537512942759877265851571491541574233337583479175459415345488435858171729955753388118542171724398195156941524633533387484465784582987571622174227545173318776125313859811997328151558878655347666841721711443247282968723346892575657738762965573668549653342388844415279356794169792767871118883233649573153448228483179169947159493241544668588216423418313917846241285552298129651881791992775399397852861772637724784873949477297982157234386857325683787713533129215828146621352819986657888299191672375837852822729474152969869826933415271363443379574771745626219448856873915332289655628271671515399976176598717662123939997947577464969628599154256558337931677313699561398213627251984667733454613558587396557262259525278412763917655374928633848788296935292382957474766528792651479853461589783439786337115251397272428466334566534157767372291917148784427862414719474181219381984752273757977347384682611538526899997172869594221568638771621289289886962811132287959716766775683552247327431447231112567244711966961682334367969179225939298393989847971395192998829492321959337212998828427516386126337321253863942734566215724434157678683868253235671181563794298854611886792813379268323493711586846934584674989816636865135273766348796953342323765442855251437959719313546657732365359664716391362282535991664889313268538167282391443841896174994319263977576796639914983691999311225312168638182971369628616537448968173925834821957818557119743548246538911382466146782592465618522964864782827431999258284743495599965323494137126931748212441798774195425827429922885685828797564973514875616497576943425284938336465843393832669163493811284196542915244325462377516897815315758849452672128346986665245666131724748895116939527972575141533514877755345737668365423815858198385169574946692438858947513223151546383677246477153845685896191134662829442168773956414983582485749822665852627912542739177225589562627292254934177349146857484348499118234515722335348823552874713714625856326459873653797874254524875449861595571636985772185437713247123172518679178545642275845158851157298955962795168375858363236222832726291361776613987722834546727788397433311951248818991453915672492134454459453243933866145513642854378623458661954139543183355439747597832588572965728126241783656395977225972257538321844922286796293814391495157988973354462931449629948978583171967272527618643593396274912219214712852611575614932558939941959231316566513962355399282185169982913558118394418947855953448436536871671498748532296791845777339895853872644487516265258525336125699776821268717323837679191692251126797724484224596253153121235237896567715926465989385586518122791446925526152549577916566368447471862312816961717598944669393939995136316892872511314661578761759152672251327377487742789665621634782895816543171844913878339272659738228853161144534611533459525487298963268172423873825158189537235822238944185362552156855786499771983667964481534728292779398275253428194532575846656622641356752993793146283665229671734768424512781974482647158925987353185435412489727972585366754487686128657785657344481927583839687198853532986729158238877959917616492743741311215928715599389951589543716836846337117546574457496459639192686219811555991435175699452459628228118143542584181449484439479282991795849996384338266597434243432481874853481722547286828243464592587863192973225733413236462712759544834929139512742954579641725778159432244183346531888842813379974995118326659282279963233459356554145976539448565551673997832485899276729654499845811981773711378296767622852834295393359528546364849581676748258577892644587923385334399863678425194248585276494927345222567319727122779377826217839351587217187889955983654274847772711422238896792388544951324991951993195874342561413697628917992181389656981137158326977767366454473337915927621353838614339864212333914595156279363222535412721753153493897414339549683122284268563782971611943886854165373688424783879839724912676882418655597865142914985375432929958714253848332433829447869869854624138312135376448472247933917378661581693129754591614486686313169127176367133471431659217736123933628245958284227273193665367448791523917715226833932297622366135177467137638211413432283318919326151663316127257499597727517449934999329822546375125787346179173462393375428944445823546953948284313539961754187667892496681498828161956112429165844174532671352157151742872777262558791947972176782755832188793747626611487584152236698696476749391951978527833945594353878453371455453394975269597832199843159185528737924521461142342224528537177839531972818822955167419362857531473469659422415911742657632473321556411342383873946992654881122166696621757834216715879247148344892454328199411971446459954877146389619419349336361985889166771218268188922844479458726733399219925824716889236251933695814824725396666144165671563721292474745264621224539975922282391347699115466377728525117226335367917917453981543493893593135451251831565853815945213452655188113195241625786378689924179578477586199141628156923815211958786534133937998793383663973167835478872964653432559895981386168695372577822164217186484412917757283238891995316993641961152725443745635524144644886873988169593766318769162415683371469264113288719475471592969287322137538735515442878927914931543755587359891334421291882263317572121734613635866874953977398155256118468621197784169265994789293793548391319967264189568936855925257175196181696893749532116596922738237625774253537479679329921973785446813328572227185997888885163687376598445546344743331119524873499148882326849213435545485763991914771813486296539873391856956935493573711339863749878844538131569826175297173337113887239933989769366864471784384672285267454228154639966944473629847264898229114466453955373544527133312233123358984278795849171884125327419644532747516189987974386896537482634897647144923528946425167895867236979682974235138661166734229843431287385697198964179533954837169977795264874669955817192474189976646151527773768147856184472368932436467245491115898486733759641773329823452352731479931216161226447329554579732778571682286288732463497754617775432578596295867913342916467234676624463162558258472572117831286747183289424138875922132793611274872289121424292683674744113231526724736856265233581854265576437198569935651163491385791247689378125917461466696534183197754771562853588625374835224522196462428613869612138319821262262897148797973933935765747653868947649399196388581166621284451154897837736253911915657574819813293864437142332332886444823694822198449144366388566218481741122221964967283721567176994956857168165542259421466972561856442246132574589411447143188263796728312458815846889573771586755326156192982455933879146984568179674382469594187263957655891697554772917766154769965618198157682169141826432797683154853747414519424585926295853166439614234674625863355863347532165125438785136522747233455298494895437295698251323935269689427796238847496291132424939877718478989774312822834865357244995732421486717998161356771593782255386324984573479515983122389484923434722178315354641842969818288322784889621934397472567447264186254523474466895433578221836334858288436763432874121842924546831649572946269456658733814367839783638722338263727589768174757725876748961676848595362268544295683356932188672312847844696116565778371469235456538313572272727185912948861315857677824941111829318493378387863438111413413584313142378197873916816745986224444758974673359639299774362874117472168425758612522488813979379997913754228188131268948234152131622896217114916932726549853945117185595395585268449972766159548246685294652177891687863357392115774273538735414463147473293293669976338181521756169696914224479276798587538614299168657958386292861618362221429335179774682211477438354355397328725682159159295837753177516237997566559565373865629827567179668315858784111395846617354951726656921899391338813463287463343997598677597529498535632478611891539396144685514356718845795773616634137584935469939724272548718352654392785121913864172325185911165485553844843219626647145636532169514797171382242795499962524629559828625543655724254141281642596477228662836397713216134187337963574431592131891122524832655231587928878181161251392784838251219781677474479474413661944868778646693239676514953298282457334997646769736276669879788933556944597264136654111187945637882565814521822566776674468821617743124465346582257725259931871635845282515163277948453235313366749347397793919693436757278394877782519279469318551925732552847526655562498228154144517752845586139585714535321533974548721268662618187539852894191454214329185136844575569648947981382623529913595743397251944631759819961952191565894518592964938819894888187144412752592688979859638927615418748913162221926982834725375715568369564766666353436797234594941765511877433957389857559819393468818985627721448323157947866192872559912673616437623426192699876931821967227769422653252322388861741747559335256321535756863649714886531443757479331796371644415773426459634461294263789834374841172517461795814129397289516879875125761639119411331958897464351752316369278118232226895531846829941656563362275385864326499872764738474691827245711131651636613975711269249852323324478432982278649755567543674895232164262388242996452285441639143248554672375464998127542613517729565831157583983784437578827489446728723561759126459216878616559122893138113914539448925776329221219492391481744677568925547558568397416555538784539321864518344272813558991677111932198457182399579824513568378361451374982112958839289336152978923941328538623396394136642839621894825677428656266579133215966146338774415279886433435645141645166844374781778311443896499463868451767136292823967146676611877622687399899172366169636286364915172791669566692297159668283573879148994859598627322277985232528412211595544394935252849353593334543582926355646151323257496629853291482817361865887191721471366585513692316382661368431368393841382449561278444369293229957331348372227234968484493614488211223951262874379197436686934744656959965131357257888446939492767452246739765479957891584323588214336999855282987775724955383113435914888497596262733127535735967567845674323739991213745228614349833378791973853863936447297621413739698586871156348883512153193265225973549544177845185371578794315692945779275869366783631499829367361737634228145592865813784611336318972382274634819299566817949469255363489742112131975556248984997324542525626727714258763551838661924175527988668163938274147914885282633332186883175872286865244662723956153731847325542127631877949333837199283724357367919197881623885584592773187713513322981132319857296464662333563794891884824798527243498622868137326485766944784498747698674376197645991495873313976625582818418152651789166486572244682762592416559518425962428533879945194124678628551846176937194998386688954715651634239712511899616275179449893855168147177266927644239964843137544337945751352914427423687999553976679144968168581221479158113219665558844659597518655451352451326761544898747487243777691746867333377757621358162239898863448279517172732756542765643429663479328125187352816162525766523759681581998724713498559915666732689637636586766195849729265748996859412859526125697569576958748413352447379781238975711315278929143365983751864659921941557338132467945321397552543546581314126251945556476221374527266296517922115541287698625966673182731323522976874534385781447655717848971276743196414781724579849523421437991219741118279626419352682624313323285184892642382216254315635846954552831994212212726146597972677822194183492513674287836523779342449747976225482799471132398322366338925437966146972185314135261793673226822415812118528822327396543754335465845946787567689317942215637963546929597143711749324534976663816597446259329383324656142698878427151674595423644997591759436367963918457899153353182156999415291481315984888222421425994844353381319717285996127167667841376594525485193582193799545239255795245573972229328687531133957426729265562673514363925127393933515432867925264591691292811993343764949532137486356454525424638914388249343969693128569819263953471185917284142444279168985379596694983792195328546431328755694243541899888319953695527392859264516575464274278428879518582598838585921338645577355215853112785423913935789236951369735135282534825117565488174198972473872135416715462999896195792948225428848428854153923423991185895436111842627922393545634731119643242235386187216441813275286239344555984672381735795912438841865199597744952933393784825718774284123696171273593761153523481898191469966174323588683843171149859785671387619857516789985999974843211347197962522288967466343736956969668354416613599135558721324919876681131681738632986756777266243792794753824675773237794419113372441725987244799912682932822158282252639253522423571672644758557661724648881111357313477842696352423786573574598329556329478813135483849186445266211633651449752271454352895321821983248273136243177593683113185972284991193696813552718818297594613981188348729174254844743392651758846661542438843126589728773757622286139373156467896867635998641758462388583128897473135435388354189216155356135763965517935651958768474889491867153593276649635312247426354341945385692155197537632273897229223741198213692444196223382914925278287197256489798318537636918334143731455983852762515266757579973156191588773947198594178615693897386444212495293843348119568747476999319549948332555365311163819598438372266188134668188184374113844661885473285551448146563864147494482928237671515218854939323953381462364922961572356648569864182127244535631677812355112977374476188331794749429544154242778215693425583867889743237531616326776127565842529483595248388928586987632216246185333756474355194682244354878475897262798133632979184418685432821526686498659747746976845377458591158787442425189685268675319149154813447678186843458215646659544823167714522195339241693157982473678238579678991814863277766892148752617454343323518814689269463247217852266588647427875881627921739424549187741582368736897488542464826624487435552325893532375511782352781423967989378622748279257482649681966765691451524332247884937885961536885828861382396973366953439472159531416334553149365859192939134976115636871175999465264456258655156697273379768694111345869635238678395622577335736661137188591357176537674317861425437136876791597149796126892733265967533192942645514124684766972466927326411573824234683858355482983614344381663974333527352781868927451767734111443684497565541242866833614895938185525271614527713396557925418227768265225577337666111692242954618415836383895652252121334437798628911628897462576777781123791443242393173718955621489481659682814144441612496767895724788557727239553513543128897468646389852663518758192393173698561198984139478243942161468627363452358652587311695719745586222557672336475194244514586935446681347379916315629969317899333881814649529249611417437116829217277541582395345385917716298198716449487526949467868539247956727351289839314241936768572265836559567448479793675242997114595149196839665534889294382183442844843415361713982911339448661654127358874845133224236179835889282916773156558769173579451939757847415619254929816164898982866439279539344735616392782578645387283236259522172682759796661188795928623574671729884663338225985585337574831882769136357179567995427265557535692695229826661451893598943584143293614484951185154213197254658967228556841848352563862486749635345181565648362517783821393346769366222775491541218489418632397124646892341275295933863525644446718277491517926418684846399744214131869819591142889264894766186378455336266368447364632898515233967488915531364898252442171674961618498841866245151274481547834783623496571184698616844877559837178417855864312972655922576558266987762347568664728211357892616195661784431185466276291879929539985852374283727325734711692544432726943451522343726287236371613873466691643775147644456974834112347896959235639293627215587987111689274186548567718438876564254322249537181936686438216752167488591444142134673214134698795433272324517699957267569927875318525635985745639256912782478999741293672155598423992971117986869768126229768419798884984672358123835446312142921797986343557369542976516611891769557989345961914112651311281366291899833328319618673794893737346426298529248289956225695766499921439271193992886497846212739621764772679968246775458168242213378635682577481958482388192221437288657794432426264483193213345853716376628759376613822132356731991628289955972442722924248611799752669564942185266458761521681555711656959258574218974935173137497542146952717127814295513715353187281786755556236545185355689988695754338763376829317722289187755321632397614185915677796683368788631868629916417954623272596274947923874765384979331558588195487179355619938436248382139739278975719169153885419237339393119795365271175453884795427346556325842347344889267435867581235766338363197565381923418167168445967893282838355336576361976819315883292274898421967584571252272559858976364186282839286291217352236923537936555527435945955679792483645438972413955538924381259488542163859981284726628945951887641737992899827278641423918886648611291469449157929851231819463112231177991895685578672752677888181997787766225662528583749318296295963628331786837685847878588197583744557425987754128896745444182355689231629374686564137462769884332244295123481846339975141937351454873375414486119996491493116142428746276414923993442572762376517479976427727197449576552678328855842474255864597545989256968752325463767254592335734658344917139665931546884927481754567858659526998953432823551424869643488438817781132113348389665427755577367836828938353171836278842478183876457249965252134641334561379545171883779184287651574829846781387255533431747393449731613372398914555787752571614576547853882661925594257395254691245718186252234782996715131498592872771384517875973634936974734922988927457135432785987574846237335126859543985953441186569182714224698653941444667675322229381613162836128152428266686798626675872954465359499216664333184641228393637153983892557879187432542362534238526615749527525168322448581793553113577528259666488521369348583792149681495451999741775797545715817775715341348112988547381862232997467781814524722555274358362451176755825275556692118434149283289864346752286754945777172888196972385758977551945412118186985471699174871625618148238947535973132928495546995718511415156543644845675118697167827967352995268641197597356942734318143133658392411148774368429751554766919739768863638965716579525789379353138995258144413959991468395319512391824617856252141977795315256285156516281895917994574994599927422962589568148827264563891792323418466321214986613948127276317647473813924492861145855573193746484664855375569564949595783957584831225633978924218957526791447731741284481262673476117577521283266374622736884121722479129148354771132295783285145273973966692868961171557764178685872168726812697715641226622569847953624395443113557578148275258953123542865175339177779596112886186439496812444249817755365444942674524993237559429195531964357425665955266811843742294399615345719294611381355428547956716341619638188196922453296972553176946819797415117142451958284382965554414144643346481475372611696141371685848253671727134384243747764822394118366346849257671844519881891211927559233158715787227196175184286731743147817275987786372671188762736939619327795472989157165931993585445376946472561466161453453691234652245673838863369494748897829364477835117793128858321191781527844636127685876661482481549599383644245794171747774823856716523876289658966129685166241811352639347291197688446833456435459612535144243891634327442973427468511914327597568878623791941667427397639477933821771831823988618238881727419681646639521797558461247219849797659293953122765491315125998767521531624836982422552954543227858891953425823165129314558759534423497649111426727646191865728241489252152174654328827894464278116929123331584915686365591917618299992324372652211736285165825633623654979144345318825331713264526779167979313823515937197213654121116794633894254636235844189499491169422692915358861255653582531537567516716232918932397645788739465125785387478279418962539211146548115644371187117793844745747392192654889987678356529884357176276331629616363988639428842558155677738587213512264214878922717273946694494644759159445337497124317976395668133838872214843644874661189546348532299329693846233588586439153895913844782976588836684226221491781964432637276958426638349379246242564626333817748311224141854478514965496777449169271575659996636923451127652667574529975863425117243334197252788149136411643143766988377882151963856485559653828416234822127913287725258224495226748229421111328989594415743164637448279269299977826256621825377912727634542449122736396377784484455217551684585658177794352791144554398456794358156715141328222576884729387712526187582412323568146418235995147645483432553798592133835325827572919132286445183385567998481237316119217741248577822611548451261861881455469216897957999844749735793837364274742446136119484355724196622939393436129618556861332631282474293544136887731296229371499526835178471959622631253188227968532138965959811964978276177773525526412796686772178875473138381633363532199756852738365468385347563615814778353525331766683117754124594771595736258224773973757148376654682965579481758955229813649214552657914842916791222113366376521775465758858538651769175792343399846212196848694568465824947376241769868533381646371843136853466432317249367429846921323887133664785497324955938529452639333677945475296489873625558611542688483829329766754914358218152211148329332117772161496216911131135855778878546641779389771873874259725512356719866773651627894229171631855325281758112164743155952994977498816981681877251555848948435174854332389477172926591394126533897329447484972273723741153614893525458286573671752925121289668819344152597855829929422439495275998483442126698479429453381787286914158351798636457482521588295786299914883735369188339387916583192191478642977886619536227665964163299954142739289922643498885381581575888141957859912352129646684531818612596371371495596449887249329279338865773821269884772495226123945721388569675544812949452954247728846691548993362356389475699469144692736525642866495423882637632991153614268344772314583645397475481749156869146356793957376914551515518974878414863257973464717757186983361299486691388635896569268757183191938597524367855399316181788887869627279684269788698296164841627478294953478336185894599784845572291695831654252639979958232679797755137283597651648533345412361945547255414169113866199538655647181716346642552837335377133586394373996559515787329846658787326642921556516163694577131999539193384249789275445782494474335134341755622548173441589815238639962137479632528662728598112754759962598451593458539468277443717683642577526751583428145778137786948285746311368581394761563341734543826435451318327694649963935479669112646666588257421496788236172982945691349943684623382193699787881241353146395756964962321288866888714117735199676972183211986474353543125624681167375585573119433677877348696692328867314614436782369982749498539316935376628277393291365295147177568186647444163372497717299716452268712355741877996775375255789895675719264251949496834338815785241612426841734764356688459926321481522185167534857494349121743689621728335977252871383295258326267249961447961158177486882622238731637661446451257895464424536218351926951584599267694135377997723714398345793618377668196775446627846679137488115761659335659312895451354172782367223145691529698943168465542657378572931872832635939756298464189836939116288451842817327253451333934834552385369549261875929942233516851878495248154131431224336677252238968461276569411522844591216327123858865412341282465715825347948224119548652679715285666189683495795558393451421838373882748177547992711155186168885263345233986674644649136642429825148651748486758213125677717689184848821749214135326773443211198482272345266667289656889299398946253476982558355221617627537331935162659894529131181841583214196593668547898719718682729841248888144788567236295962224197121998792161725428937433544943544533493598479911793436678963317669998147874764743175533438759315213996684159323528972123877718137426175469389442327438614375276717414749658581623344114431837418138412355114164288677919182823725454679179576983649349357438691135582388335814167991825557316398847966797278485163244689328857721417866674411826229578391174845974551217447438139977786784167554899919653385277263732391796341621511465782288814277316365998961911946495424393618338854344138137121651992311471394177591894595397362459471527656853611679929458173118145187631315554521413456243453266754427437973434464597212446661235667391987218444793523556212224779398376997731119351595115236583422249838592591535475875286734165288161719859981438714322894381798493574457346478147468646965924763119344167694397143796482873248448372778427856449728446523736569396563215889523394128669832478417943263649472799111757749976616391626878826976875951533411962682652138999686164549591731826875938241939777373636565547618296688582474352979231776231781699267996134567653665633244212251156845457793367513175288587712717272615374511242357765523374443151222638177992236712353669993298218352259848951539554719688898617533647622496447392662521499269812176726755398117373523453467348554115681118919636767992237861614115463573453315879579672367237627163219334554931877735842563225911231153497789876538923178471871873886126894769413213529246233219478978557823754964314138751969986684438111474761171483246241939688131739656121128156369874965833625697553964165961585463658241592951685881286672519146211935174268226684593269319393824916413728538277536742661571863253774945787494246729875832998212488873331979473943821312591212259136358345172466747666616715739632256169576692156713472843415367482888724374588968285378528135763841623949288183892438179872247422563657665363542664461447459299345689246771934281536559195913946484317975967374427952861352535173414281577214544239495539673169319617654364616929859391247454273232797222473164948867872515733936116716954269652427294244795198697168762978822164763186456954794491155352134338594712346739288427432857959262921481414976885736458633327143334362292689266639253995227939253567787845761412226516126798722968636321685725846476877547418584347868836388762399875639359117532317188717573611488941866775536646254123761919157851937415846491914315581562566241233962445974165485842888924647659755989586972319792979772124789754343299787816676863738821398364588797664344991576648539649555813572246661949986549391244989461616821475469257791618633921955825596433958862432573334536631912551993287173215353475828379461616695823419629143389751587523473932494744596418627592549281427629758112351789642281334232274935799599615682655673595818935317675634584943297654813384176597265626965458657312682929327875572833538953727448516687628295743835166852222855695264824724296378874568679864324849119582899436293558315271411675585433592444943297917425464532979493552685968286867518945386563483546694179886563312195522168286339998296274729831138579675473916885714211572564467315161688878466835155292347763383897855623368832345744857623852131795267482264386659144695879971931456974198426172975334711617689723321529459957233656927976744615926876792696319664255752324664146632382452981847242526647194417968277322329493196348891591739535342964284123332845535674557481823118326738941125677134478217187487218771564676123725262982691328938715751296618861387374532554246926581599268945163789133376681371729768673477972241243368927845916872629866553666579885677359639216358243787143599577934558411431956669947641899635427763413535529175978632699563193868198331872889386147397242341536434267235414331844664287412464995411224654977962317624364499788229231584862566687349674913861772585542928964622345192581777744983326427213565698116244211875352484114624969428128732142238544782982454849762563335438542385653651884257233278491933877895368534591915627734663755132712226178327318768542797162564734736443164884568492471186232583866499696874328958186285696845121759698285496399216824273856358322272989538957968548856239754576694792733527314156832344218656214473545796426711483516927762271618853321951432479618391966973144817138124156293153782668365568859552453868576772148315141587361126252547285751965685288146852963577621338694788247755567132237464124147997374288753399993114749141454144771178753172951161334238373677833849625921996192233655361627211484444824824523535789295267876725147428811142493861771275853533836678558453582766733651235367559216949765912177641814726342996916488455855142886766147661859441978713397799978545148795869793789559888558445288691561947816985831817642475883552696789461958449329973121518754822479315391925946844255295869249377397725717291774197696982895722441992573282258557315894972543686686733941145889511189476521777335817181174563593499337878845568147734642177216445357144727364167731293419928542977761142767163746655885675528725481494579276439194572948388251788727173189523422858842671584452314829217158389464248495443777898279278873682526941778193479158865773548717749333398298445348124572716585259173292111954376287635796243657555665775769986593355724238584238585851326324874187658961718122769345376896364561316112182874959863289778494651762362568645939715123981738192168184238992584353745124996895181788191889136451734226524183582469259247149684756167728127375411335249852711175682343244869391433835719989887335468562957877919182652549536359684431515392992791755997749464221553584914182269233523395321532575723114322536438781818439382438899191432564296155136868786827697615647783111716198773542133782342895564764733343999243355513645635179435718931221235558999243616112145515317338341786574477637148332783293836669727274691454167789857156449995866572832855262939723428142132417944227293717899761811715817946631142662733511467357328818492155948213376435552176717586326321715524732373717825496244866497367718282217588369817412886325841692318528266982861592668391784833963715632228295354321239116479675945496427336751172184194621577872491932655329436434823185122817846938994525356889369568979141723416315547962549375322198992973313722375859913739361469159135356528645139919382217232246949574126779272173991122745947632467868445353459648641814216858995561495828153115878858167753631187126587393584961746652425577575285734553792187151616737183731257729964233321126175648346529434285181413744646243695429961893212729759923375799958599395374595666541532758327212941878386644281643785749561272465442369823342285552925872888834358474445767776212313878967848374919343799575186226484389963779169984353298697327856264959336122929354463323934617134439241842943757282413596856658989794777859233732862911495159837716183767669932117298347741624285882148714796897515338992943361747842623971669291623412595731784477527614759778731851919471449775327187453329181266166194137914546244979291119125621211613393646248635545645445895826776186448863724268622155535916682281615599651176837933575865423631692939985182664456593988411664622624513129176492951247968124475536777988984524628632327228556988666263141592843695837538463861616131325363447617978532377653513215236553885445143895822676826126538284352884387466947993573275737534759837355991585184442748291843317191825314353761294266176959279979851369785961969375963567473451335251229614611647133378914349361676788749299252854171861284119276644517325321495793767776175972545885526157176545621488985472536914456859656281642689577814155546869454297826779938774554857499886711939692277151837273447266144694695565671486458264398994517867226772238366892697936726966752363839942767346396988548945619645827721885418137524268162612576846418485835728361786582753998462112741332893729677236311488235436599532719961827531169998812334884645796782774415411419289213682844313862938268719749657676724897227513685312171944798345926395917546895425432415884628199739218963542973425565934484293164985761915193433878371519828124512976977476519877513663545446696784471118758545286441784117776344789871546398717341218629386819177154187616576198919761688267264779276846473962763647595311127584392885521897963226875385496135455543883963659871457876314916342874952347483468493979519899432498884896644869699896746625557785563753415782641529283753288756312576716275238289187352651425954192651357779487485129275296589887953967624563292692598817355343136223864329538577627587222655848569656166928766436974685759333178933429119886418815274747669775657788699677297987493766422397743422371227746534264438971288952294321333915557863295981919895913235257437882466675174263131531853256879666693259755961264315389594182946596611564151167487915855254337885456492796793431121595919223711344873942511743844893372284463486753956296261444712849157383522286389989595537898982976594855953589578427869548336423961345731987834665331374196537733857319296978334756773162625376551189989675498763338635796223768775773529159724947881269761937793269411415376669448363338432991226156986413979992638951882862972587186726812792963648635722899157764225715874969323975555635549215526985472767678975539983436346887375812187655443984971224746224842323411275619796294294568279652774923949489469977287642459214462664856785722518337871115125451596979548929968871467468769393353839774564459227363198774684918181167422847769485684569927328927823653837594442899235226936738329564847585728897719221713476196952435173544322883794764192692286329725158371567737283582741868481362657574518371888147212276913928982539861787766578278285785967855917884762528965873681258654328719598863924711396455479124446216145832122483492136473374617237731212314451589673218345616418981191321555592559861793253884572582493546996259136194418686133271429564254768762271591368851278199146451736583688637763557554453357881853491558312968312956382526184259598543373568288474992133631146984737953289917743123325587582169431125444334996218521879626613655657181413712421363248189751995469268188458489514637536481479816721539355993933394936564591572142184998496789917499945384331323531821668337126856648267498421773744719542243827371285724654621884255117222412128136597842313372787278989139232934583167286523681397196188891984332536155695864883682299977165488431135684169457796715612317835577679928425269929581951981653111767758581916897746631727672872947612559549127781353214862958143794938872674242366686962247949318591467414838964511215319913824662698349712497748858378268449794963785555784468243958775518488763931485844379993398264514443118391347732148947166772231655755665589351354247853439441595978425973797732145729152875835321253648728379573944937114596927931174955672528723996617956537229227611177229979268727322864675487147143744641546428148235671118713415789132276796519322777777558787355157364733473384552228873641365769576858285423857868656818834319356731639961236912776246129441354835978964875466523246847672796978575351547174725939413278238835672296359166328811751876798569827136651556178858814789357194975778333376983756537894729428815373995322818174626385656497277794993414574371732349795345941621918238576812974998966478873934824647485965152549226753639822383656384679183335246612874744863127645992811922535296362646122334987475655656798296733986587618997534198543111831493681238898677329627462671753792159262951717439481227274248427533449523493135964965663986828651773635864266651856323511191856833184561866422496126367276341832149584571192241633357174698671763612157156269222446144493259116476571275881712835548867182883439976973461421593945812519588821696284428459388583153293152722782399721555583429625834137319476414476421878121972444756566392943388821987887783827292738358543679461458136684965684756562214462397332933691977434618344365791729433535784871514973786113482454396539917384324611868469796831158792582218441889865692561142947897945165998876752312357341444233727222691487953173297921864366547248397445239336546227113529173776516338731664216628429662457725265786659615825585327372316178584953697566938576917634764361118592742386979717398941325641651388563681387357977671692165118137983231268773569226375461871684361584589357592414921556424571797744192926665795186121663999169633142133678246654255211499396157451453629324878282792631559165788734185926393111369422477463841714111481929119936967214741123284473512593493495882581963874182428659818147376855813899176474415271251953679354744922818555885312325299446362734124395159537857168577412146118529938433365158865612252256866616499332458864738288394528994654293125261945317115934265964328637838344337756457849265651182753536251573247773446262626725788922646583796463797212374944313115258716976622782493629893323533847617395966133262423392524765848619438714316632763992143498882751584454775337494682784924792866814248615247776144192593862947638853694117884487896835221413266949218518186423292785295135431924734674483933342499718211744745218455783985298337297118173445846681258457866587316927724967541118124947533972793384855341884984675158711197165484868382369757214699468468163611876715831794495854791536233573559229692651991476844785318455619522479635625762235693124769229171316169531995127566778143154961972588442431821566243946341626794852785826798854567651273234784178347627397162418163189392679966799449278874125821218146192198667411417294595976987681399489345885915525963451948696515554366854334885271525498157718143478952375643269299639543113916143947164527843742694548858148643847643894677839999433217899764946691779225717786628838628583886534592413782559922894645494681234673693872926926184548977225347584754131122613111544431152564323677988981141351384727621776296354832729733666695967628685284817281453324471138523174933451632441575796234146878285667781854997944512915428895613168737812211894234434856645194399162643752739143564859414713142937191366437341577852882142355447146151574216344838816919134566159665713122646928798399292536142917587679743334194913722865578668416163836149557738191176522388218714995599344126815722463592392262451899733933524984921368488583727717779972222519892727664313674444191996217446426497953473649163362461979693225754459687849646972198194154366841275133716578255355153458774348355757836582387722226551336641466842423959278859969514536189125688639825833716692532873472373731583573856925674726793138255427466612987487845215674876781322957517695223916417864341818838824474932554744474969384355127919246548683956384678696921533332345888646841467715663155198319423891665237263843388684192723754944998412228312539478676857113495895634736565516544292885576616194546818354814557767834371832349774364298568813588271598571714682897225962842991816855592452721899429825988187967632172316577455396367755663267829136146693337845462937474799471372775335556321756848686855772798875497742463338823771354732981776396971195437228385211682671546266653653175885613123171327271885551714921488858161457379196174629599891839613597523359157755216955924895665914666972885551961565946226772272536123281735722756149761328334476987396378748714427383414246674262982498362142473111431754419725993942868861997297331394733614294497564249348958671691953213522851596829632537283243138449681774733314376418136349552386144111482713139761563286141258762163911271473349495794397323188174373381327651489948367889176974211538559294241925741527334922332373937937251342725667399781823941333926749664835492921989961253376466921985357885987965862775193538229117533299697383868835424666467476918238287725919792233588925751352164872544833711724162863327341547823966339598571776851183626759342626358188945822497584755421253415929727621191239987352774797127519471132141154942666832292783544461474676681974939491611788132368314651218294586526686565257373112467466385543285734478784511721855692221663981553789657998969955413523489787722999854553349234564715154111682772556881223135571751255556414671624213235536963936951485935282354674986338824126711748241668873139537159831232782755568634411614565359132254223488935797126187442956869974485533316764365874417592267155572834254711135612953691826511958141554715727268352511581232227129955435986612346587535648759459445776265614847575128671445379293679275645128756267824857474483659566939531495811581876523841195952544485424884842828478653752246481638268547811992728683857961498451276928618617879536691497336272277669529378956798458497129645652327258976861549375913515457812932646444131964879279421765446638782425717693979886837792245787555686156725993881353133145614359617211773362549675868961522946715416583728852717292888939124793334762943718878586774576477646967334426597274923699835563236722544966624232624872654291423985948435885398361537782191133411714546824433168129778877979111171424196439645447414282868778874815325947791344873272367934611192633916785699975383417191561669722921588137935453684493448485456547595498181625874213446384728463221551367329716116359767248975176222147858718327842718512397695326418983853574357426267376936456877676841187412143757474966512188845328226956959224741136786884667188899584168878253255723311667354944972277955869175646956911536939217324927594491764449939972564584115496155574459883664552616943243782286723966934191545595299423771888459656249647581131548489746725549594117962729723766513476937481339749426597358525174311994531664437458987622563859289268422477728453342993137313221137868994675419633733925745946948634423861392255526617279654347198429696624649179649357211535334255925576948735799714334476818213695141544317775645977295874684944358392632398763348968545883277692431592611475599384126695822571614552512548187825236886367415566791851894783474776444968618244613687677135362638263458228121482749515198614777582627538349477441389888548916553723366179116759686455318198632813138735535189956692122721673753954727279668662221222493348514798161776733588619622759873723182987954427756426487452448619827914788238994435972616749599479969437241928452847198672421357253175789781515699499255286212825223699467528967896619227737828221478325155852621181191864535446373295591174136134942927369793321639979976377871264365999868289243149936553338345669167934752755868759395426341686691484657823317172991341964823471498763535654451641673768149376425281323787112265222487292129749256278445156262674712539541495298826651955661717188221273212522412956851316476274895892112253392487962992437155433812912127456584271369413116548729811923646294511537567768492363143234487997347389935689429546749952379179883521413762783745399194321237195246375551519883492219532534234647265618669547766886838981393767473733698542297675358146166421167341688532641498823626322844841573631463526645436787318572856713155181433987538187616453528198383782735924665354924658899698426775756348593127418763541419239897362995744945675441583623545425242239693876432866724175338769274296145332864941592898322297293412115438594996946225957166765915196638487777469962466262637117525268996662317394438944295796456853643299418937369953353731365951213431252944559555871943968463473695721993358214671664759595732992453342667578744681965914476675611844989737499757743233569215665647946898637492175377433433789253955644486116223741482615884718982445872473185468486555934393981224591747155571318853445655843854294277873329351225457912486661889386974295129132476256385831728747343642143955181686114685667431153217322515993152562828465196192423943273672876922992848257856977271488634712393582666471165742468496157528657816162698613167292931546397142832338497256552261264316824538691834652267812917133353824366124196451566146236738954235559151551185131734336918713116451455581588889852375866635835469494843882669654772257619192537566849227273126583598367256318944527439147348887146862576115899241973876589467971656694213682695682868426342948182552861138278636812643366458157311386379195867448591617242147666783311129695428167237831134688366687698557188795516288281649574233881545333111442169877931878279457419833133277372248741818535469199172374581297311974164717243241158285534543154251555936558753858655117449655959914586939814979734235867723197187435818877375257661945716825613355735523241655419313763355796939583934356212542551836242521113961253467187231386458153114115291315551268971118633538627138556567823948634734587728581382136682363556229682139692449368552918245489999867959818943877722723535854744638313383177264825997248634988259971289587293575163776537816521517526474183239635812444234785736378915313525478857992394661232768549979221648433222341597529785639435346389131342556416156934477228641379172215449979484175413134996913821139563459397684224326695295585577433668686344746177636145593831673928675298662158721315844137293475132631375571351371655167766983484546674911925142116513278776914457914394395788888539656433913458238557876343122974847469551894696441928532843931313149993962321965955718882185114317196492524618994454232449759169778417558817786932244478232147914753588267936538652977681685476759998714597148892178846914441895784565813516385492275855278358837282563713432869975551167893666273419589621686673237223992257764184833784752329622333612736492799282451635856697739981143782751768892854428977559547442699774749428613944722475418153192168432373132335696732352156366452284422624846395766982297712257366796958222742217895914565789426895589392475585255744191459479869316335463819415768277212149924754476812192932498215825928791174422193283274413224615986755763293392518735256467727225681256456775825797293739491112669684339896268736445617546456593461773642268831465826661294744988965329435217243624279287542839734245177587191453769577322394266569976614323457714751472582816463351821242486156421456695676311634615629756362993837585952572434884346221846825118756249386439717131652725296796459963892543313915978231659228743649928961381472977879724634488652544439457594581367238581829784847269114743191215827666647515887614594967276176658313877537895665995489196694258989256897587152542879767427722619424893542246379356232963635785626995258252778694116392455722373763276982268927428937273554761936244843958748471174881134498591215588672546374481668661991758868215173225742171146882871945621441938258723828721398486469922165158762633813575694522967948944548324476646892452682787472375518439766321818953112279816932473315272793664567756864745247485614921181356582367843297612358799191298222771985678887548663522431349141228215672451194851192234257142164874421665664939948151555269364541873837383676468164298514339674751933751817443357556397639695951143497487121345189618369139523516846674475418896766672674434685378925352793562147794952394652178861385553719824483777896241347214232677957829267434112625658469673721514296911643954114569385242424455763264337522722266185599649965342668889539611737435875647624247212981843793865597865337999393822111183362547976663975774593775985873218352948584872359697965353731959874967715293327185871395578563549825576985216724391329866611844735373861471952371292268637712184411686614697624744949612373471721779339579341614998848955282363329252198822982279943648167272494318417288476483466639426142372692442159976515751313355848965135167363349789253374697161857448855671784662586813162866842576452718677133271751166142715962486466233825132116111724884379598143664846349349849929397614553257513986418423217187916666912327966254794626746444134789389492987692161522184527928376194143132792797748846287877795394697899169148812674293879637167426195181983773821339416369154785293592589856938941881316212469878236275248749534692632233378155866474887662613963125347454168644371658314365641842365199415258575539449775249223348747667981737279214171584495729583239737819626526834972411872721834895476337879452858879956126919377824345122967142729614215716623394637238324117288248558938581719152764585795514226952754692571576632971458989291885959328464411163261196974794773268288924354458764763359638194229928719134478334699824886576996988657561996729188979447884483961725571569242249936869558885171143591455468471353748673369867861119953578215339613461596561246246939286997529468614653198112725218236835566313263527727527688218929592938667874125887548296916717756858694481792271723643144614377852522859817925996249553713929794854137918619198612555825927897172574275935844795759321813482198245652144437886262293363511519422876971323982518626732173132954232837758145386947618726938133535517271884492885546317999691734384881878217395748378967826998216484572282811374191976666244955593839856136153462459915518993332625599191616942165955495273496657986786755447454948478895234789567135619234878252198776389656492194554567843558667534152996545645189434197342117749144233877231738561959673783456359662838652514459355292579794327272464138289515448767994763194612838249157916331915695962261621614526422991624524173578674535585736467557528869166312969311859322857612352137933544649568543465549119223334927359614468312548981991712134525149199335255399197275155357688172971893317747635343747371938746823812143715467989164771773546127487589769286784779946923265766494143918927484752654346551836465868158849488852816349874765411786681574411186267899777143673651219255575683299888845558795959169975422979299187861314173578473461782888887795379399686933779994973159837586823732699382558448734838811559129392362288433257829311171225926856972199933247738648755757148722228427319424185949714368972744955786416448756339219526212485661247677312976588597549969287653665332152249697456189174983658994436631745694438946833322685465897459423882214997589812869416875519431618738237885756942862448787621682455357944519192378492169832989134558243683482617446553436525426761674723961921754497641281623289346618794785859177731747899117829571258627991898661634312212884731744695383362128971392512789961835394613948239937955295264159232659911294916998583992516821723877878887287776524714853444515883571258866442993363558891132619845951737269459675828596619668552936199625658496887746396362117311899751194944522285724338538248137192992495737855325648589394116714894932415989511975623532831491779162391788639627988232314454329326444513465327124736866391532454987337663184786968644262214358645377923232699284948344554878632157849152221938421245589966728833696592612514345368727694265946396846915256579194865634939333943536126631187187463815297129424565167539647234769941569151182338834585438951426221155969968191873212745539561272176563557456433743897349285392498154219934556629999522441768898693912714149691589431554529318167357436731581538361315657476372896627381338371216136589237844932583312234151159652119123696988136456579963867813923914263751563297843638814684885185589765729838593655535883261568817872333225955329662139255281971556769181576997743856769278275239816794742339914288754672498821789468732854743251926373312192271196968143417632522258478587783683277172393845995129846794352621747534653847227727692269585656629462626999592273832948887441812737898576426543724818695229218362159797439982243624472893622548643513235932246487625894164218161311523915227756527987393713497538579769281854496183712872122764611577484478718316676753953939488425954489269979636192375678516338733261186974826535553129859473155351357945326769294515479326521945979764274841759119546467918992598554771255119119953587278977226952337342752653537685382977698284396139284348581247556753422328648231149463211223878443663784547361364291312323598332488756191825851351279391459362419264874955439453471499444361499326714998431275513531474899739769431628559577927269217475448223245116941898589295115652286986391799374352119928328874992689297257184499599579311287586535554259856285145873793821658212655969845454956444613883838659714219283627922555894163456311262581398659242395774171424944951998126872885824472789839214517496298774943534862941822732172821439216691833328312284366552634676575144127438368386611256498664112615126759464292752866386241551611112665512829184259788291346296296362892882881395264983196615225741831919987926532729928577189543524514393993536617598245942786137478797196348898547361744822414241821428142921674488442733863267259291985276232569394466752168672691688195697644654989554759526764722521979744188376332595356812374425421374672499113161685275382734264391657796787892951357884957363572537395863542735761349734459596658367654987159525648511835784349165838227922764336965148625948844337247928195317914417358742525847461252951582171421236998149524261274378316423454567956749792297114449371911245681274747726836446879696685699147154438299772315882851417956861555998717674795284258387163558683182843699978576782429216461219416589749635563131172981516526357895778639166369376364324754477957413276272688694131451625152746376683198267917328443415899974512169278183774415338568848845174279195893271599813658542224721138927515721651632796549659121213895545996151913972626471461572759382672367257554695132177124288996263478184638987481577288585384819246834286974712749457186624984797488796384653837761479939418677224183712966358824951852773631251558818914537318614688855117932185756646888618567825691199792788364817595355291973432331399467293583222556155133265498418235953281492556241743969487337949334643683736341325619548269853885338586669383313664616523597875398146691528758124474125355921349153623665448249676987593885828823274439874677635133861949421212428751736994647159235337259369491266239838273987719142856773612627239121838116885787862439689641363264246946414972767991757612636832245748479766842621584345496979284657484249832874732255585281289444182496478655937142591828927862268317834688271864924915786563678398179437344311612111578124362191797739543863823913968769285383352934976252423624899665584892226329695319431692161126553842963684442962795863868859495778864123455632791286462347276644429821965528698615231355962525856638634275935784297132517658123686447755347695194716865519312579193877299969458719285735656793593869587563497267276548192662819196934681921536343886675841821821413771851714236415962446516587528784768829241872267419849497249927482263186164279819783733446236965172479175372253119373417139625122248145562676877714945648598999214917453511186656149583232931931331955316293867471328532534526548433953562748474594346478739363116391546619447685918546327243453873825485329866456111632345579857938466897774418918971194651525217144632318638439226235579431831534797926778511532943581333216268547238796547589783121143353868612333292746484361453445669845696728926289728143188312877752219771573192964867174795862636747625753151256422138517983155629379754858863415517357935249782529474758534863213847521943992943889253996372583875517519898892979884184711759935576226286964262241557818883784332842549936342445489171858125448531665657281224752668643444977638795248767777143288942275552124982496361847631849633749185396674823448511274347211464272689257538661411537751561586713861776427174214356931165994574759725356163373797279275665912376157672278495763481397862353478984741857596862298228713838165953316382831416525436286477273667888496578417159481199646453518386135562312196935133887422772599992547567667259552839471647785784827563328844888161918162639297578225446338696493483288341259995716241772632351499616421444233793426383544568697556288122534793933541785149999544253953196465647991968462451394627712111636189778865711845765125895995957566433319669643229621189577873617259379335299419251258196882942746673615213943857962759338421685153392712114389874949862684632145265445434852748132926175438531957471814387452253354859382924127754735154878892127492439421712586858343521398599149272922173139715528769688527522437417515727786227984841683424455296846417974686374657715957282691374894592849366631382786494562579757296279295668786964482737865849558165975549218794131213999464318214611954964734136256446472792413752756252525827523256783852972346429134175666317533191374472585926918326772313954253161416554946437358725835129444749679324697349864735218711643996963884254966852224634494447537113382615891576686858387611464163382343812958417192818678614999336359639725565163244192851241162686548598944458772171255268163222764414298533489486491816612723978328647489628556285265815886173894657386356111618134595983699869234963486176136849398696845722633828255663356939758616289561523815611175499983857617215961912381741757297274358998618114215224288342951658982782542443842263671385588534322499632776849964211249576439741988742919482478788893648372245133996295934151839797962877982393683181674989972841535613381328666975932229126299141691918848715392795817717216121288179954725343413873542363955873779564935358688866918234518985342297599924782567948769219197521531278269436672465131151941672734652366319866992415499582449593857984514479968198547486629579764552711238934834686424966813678822182194896279547178554144391182371479857564317124859263591598726753536373613313678583722771542196248865925254412269431697541638253928411935366471414463117161984176927899335762883229429925813399791479292768846257999871369679557584513678452857556434368326261818168424248324967691925856452532247178471312618357349723347479693319946966225841563434648376236545448944545938974315669487998543875658913495283513168916596439615171861199516656853642381723674279355265215769344697715786943369274799199565498847428976579884712179178934464247877765221299559566563354789993589356676774639575921346613683841765331887349286677791361518783767289358172988456226241282151326133958645733577189693711726847439625479731987795644915876468182153479353341918563852339864763876114938252352198273416283649835435727533657746664783311455337778249883147622367546766892334891715684977648754516173553675964124472669322187427923278434819111448593435532254855262993483393436176428769985368785875113431663369711576465781667244643876831147116164788167132845218485966971672276455361953147446274669256213321965489475767311928264178799911916434271646476557373681458349339952268332767313938287222145877752878682767487679586117291786452638496562199757685295924982516778517242251225983492873361422977737431544566843282269486436524186728762227812119325263694345653124791811682782613129378792145356715695762829979279996755868393864422897879855762662227693422516748916693477943288391948181321884574233379162379199994891812889237548875671898897786265245333355918775242311191769275679192326795563186296315361287644533754224761968578197424531294536892323589675522221963215313666335546794661192224298427848214735279749195184394614444128927299796769668976415755188499182899778344389187626282571429327497373295424433184692758679612241867166617949237586649517457471456153613396218856411359975621665261421649159934565588386848814329352314229212658986825498277518433454875885149738428757564313956391668955559323153937683893296725772466819741835127775154373934491536126989962563249744162454693636146735521777191964461485754996419172523489288283518547111399849646787925944651891755445464347291778469952317386351784229443252128863757966684228287598432545637422686372931331248987629663236756924542634667772669329266588152744287259515283338159166623317471778473433849162867773233554299266194236419495682257578822131945535756385325773787444315418491954328956567934213845265795434418739524161844253436842311732263836877282256471794387596579774957544252467114974312941587443848482896922622918347432478113486234313814155156878691647548866478718987383787273133286949715353214991629887415727925628589913314594655533274654356897644544855214568112338583816586239484858368624514536374664211614651836653513764115742998398468824897362593777187551759568414275655281331418115859724679499716362778792841541125987253282962687754523585648638117732839136284848189438782644444996188971598872678512479523856256753541489266323273399251426939484727866672293418638552573174813274859317526666428252399596887194478419941596137942262111687386623553456415917692717817875593265499734263753513582252848287583832784119365614743868131858596788756255982351715991793677426194868364761895976465324572223712177714189278654288619957168439536317615421276683444448154887749369929451478836269414317686369285276112258831447486796465971898316716829692735363932666154123854414985854916543725871475777152473762155555289352738864431244271537542986584429591277591513838972626723362793542647387337519496557139455514767839558271731659314916741282566248283899971946866256739747883496214484379363848463835898576715334753189915389214396786633283726282488377715516936513164373644153279897676225718358544862125429636516173685154878613188189531473924621778183568339527325167194485636714421767588439151656265692955635865931578411316352877336531973468851997737857473461272714812136721899563238865219117378647639311389334546333733633359193766786725537872594766929243243419867537881658717172663586789918885538225269831536693849517317286728539945837869529612552281998569393186667343375135278395484231259457893627843346664582921332346271859112785918664912293125349856831741919319266446665856489355837819889719735269724399837852234894783654615131992422313877989368636881251653733863983259848664536925938983356532719124917763116696188786911543623525724579778437926794394248499641122468346267859429739252992855856882715221995835818613813977542139281591589973454314583771424516524464521417752172429786637167618144385435188284326385856453113816224556954772214622186639729999512957442818118378577138911999851835477558448276923626416595479462898553287194685846377936464398478223531139586161696488134344171982344347286783742371262494812791813326935593656873787936396474454675277626772258437118638265599846353914581596337837799515854827552733161128541334992733227498243495611612465586865137259888791931471532676114799292915793563564682634692293552479569128363428877941399427673719545547363615472164184935682941995358964223651755254546913117187521416737971956461794285574283834865426124117654633949487896977454785487798553714998836616193838216745413247417896678249747121841413953266896576233945828529594445728934613369761155525376325669931733173397274267619236868213116168376585292427288292866586886483219647167218836645719267845473583347143754545198459375148575723156658924256755591426839676157342817788193667115147528486989723883551351516227711452389787657946282396446956625651778656321913529659173667238774649494125925266211128375976844117946338738244755856672978553842545168839743928493941137981264416812685549749678872775362387516286445888662619486552878196657365998376143394222775953752316942322248752979282358733917148621752856621727635849523893515267232326878848511974834294345861573694271854694691984482826291247496794789258517694842113532646374854222136876445817828279334851335656748326768239821636568843856319883614289193974837572356541152949299616526793185733868311416499317268818478676149234855884423344159739666514198919484872314626821793658298697397336692722974654622976785544263874434594692845316493161494719977329568916991521159344483753641362216997686736631554982246511535635334882444115959447552212143516128316549739324258993913116366867797339212123447226317617133728487919928129353964695244856117946535426327242537786219584295978522953673387429997517555874369192286443761382381941676153388288296731895923131123179665983791419182171552744646952818386555595393589533697161655745563918456885233975224821875338774965719386688975486867854476143538888816474251688375959286899132829699135549587314798626195198169928839363211932391152661168765566448364575567686681736732598943686492739285732391363935174868125644817615988217243524932397997459731472878698312553834943542176157185163932843886179353696792216914429711885153759583732211421111352312498894168897279299231321355485614473878657265173196118933469911257524378984391699291883129191925666983771111269287255366366257513211477387484291916432957572233432458186824243223766952697719941175873345757979354848998667551548924258614311136519397154797732523847717127139669488183451134276469129711423368317916341443668394315286236452372163686511877616926424935579696812151711877437938561844281251739834794761513284939914422435397389769935984293585474716848268986842744221539787224584157973661244327628671548351697993779945869279832698653467326126273276651468451599464688321812338645189236869829864213933923956899318221717698574874967258554133964765845584439717193728662874158435817356588548248428175362676519189724372115938769677193159719697568784784377144999699895765723458237595912625813863741217668813724354744794374659722833488168329754927396723967839112338145966731122851412717489289313125492964175258389358977885726826366462759174982716693361843413938664739535833993462698772912314151322265647936263431397478597992923238693385991143163891648448528732681717397391616884748661413374432312132761721397762437567674916236348414375394959292837585885497129969386715119928281929397647448324242813313313121213922785317239453634754174275274376444965777522874158456762279516148535881543629924767324431371784636195258498381656468791627695968667972721648794339198151819414161757739892652984873776747677173948729588654741127273847593281473144982857129921638812651868895118497672372363235915259236115515354991126332454854368372862412746135236749985379595422597638792315828482369786545976226977747866436174299167622218639227879566989695915921772773645556124979668526927498575642796241843148894646237967693157336849824127896368881566125429142636517898478994872728219751645796346926853542828189711574637197721222786949121919868726278977639659618211222312187969576363925868839651562771788564311925116593376321366332499255585467878527733354281794843747385731416246819135452422795878597978818523183195521651829317156743522273472661212266247257751314565672928174985191694318973193448995176773261669539858645755177866363839156111953737672145553228754936831449425797454558992214878261753786738287833267956276453368333591272981652868454961594739542792718896851936871266216578423582752439815816583698218755686844998931911391938387198862329782271952852871973781581256486264362456531627693971118933552267593637279131889186186878223228967128736638627424923619321532328928881344995736127367188232353944812936434886488224932735869262542735367646384985387449824739973255561334842249667311283555543746282214688791757476485649283346855175433292267794433885793927592998531839145724156335893184633832673656548999394836295493865947194458892671611973593932216619318732511667727624973166365725755527758714466137423638144626181621375145479963713964778238736788715218645542612998364276949417177687442885945244879377851791596155788866351774159966649618657362739515131116491396759711565389363293796695235364739799746364289418778237759264546416379795224154821533197194447977495374875189551513722412835422252577955462397347627767839372476434227562782426977743425342488932233988256387884547778382438111333521235753331773458167289191123364376851173141365271888888789115432116913317333749727685352253684884474793525789659397833947296484722281422981744774346639338865236254286375348794937698511397899524931556879639832589421349829869142186763626598646677592483368263371945386845699245895133457274399382711284642556935437663378598526676695968113615138784919769499957617192893153556334514588438334973583762966112533884222164875163421576662262324592824119386882113159615722853293373773591188379574435997171489527684934931757694946425132151192669152345421168563994496692581757552775126123858157495954293257792959559152346131769353672776556541475371493995961996252339863416444971819119596684198329116447972367348258117664174784794327815831655469269735222599967389169552627952858739241399275914719754915599775458453471477866137912382831717242977124152827439129157321399913191793116187729621525246356255455534724232992853914337943457992454716138228394583815698734423647917529331169316586935817248492183734757752661329912482185824932314668342418428319447535116419439896518748589419243895386926767636186859688518432711238819485247745329276927669739752632569974736258965657213276951194349345597212887252962279664673896829268978157871856153928376565236952738432117183697887714261763256329963263852121697468873748953675579785961161929755532894699846293261666663763638989259527482911226282848914367964969811548739741357532332647243648529562435387322964285249964226967823154463184279577192876197783364667994292698546335423932789925361959378338172695235427576376883886714435342411724255992438196364844276681729881295694735544161544761428491378388736118453867812276216946963789463163917183862878478172567736662967147755122197935742987559126392995671162272965437515269271681779345349467542883624238155193971883327352916193345648542851247136357172351868193646481574588299734321546523321575293149478397279611645385417463862166193723528487541859499135411596985366428246988974813895335374862388829634212917487567989416782929811763984964712447146986654655534681887284553697492898554818361718796414748917736825659139855826785225678478132612267168953424982313769695498558675372265486785815179839478324181517512941618188485478315126423363124217367175813348268661293438728139645351622955771527536678449232196611672766233274917474317121338889745812524731221867288791723599363842993376288264971649611869785979268485982717194157917984841447342189477547236532332929314336961157985747461914926127937369955859648111736815197517291736711295158858821481981531349412983992596471252181277211344265354552691328333441447167181496921265333445166498423128736765456463985218525254995297168545969615882393255559858377162925322372659778183437423259746826458475439496294437267371335727452188531459977499925652764125758857698534439159142595669962446321971733164168963111576463517138125186392687483684739365615328128536145293741198351386747268869792395714877876791628382997782642769139516293652613442639397552527519451968223484636788716451591242177963775923285853513257296219416112379761988453613818527147968567694668656481641931773476153718457714667296151142198336831199935615851569274176386218781681664133518465361677215725573631597889228965481347157627964327475953864751287221925677363783311815181555463274265721347414745724212367783919225776699341613274585699368557477935594537497693942392337962619392842173722371664783714491651588752758119246292559739277232179933117818722339385257164776872765965645526538567972676944521786172545976529364951117719942919627769267798634928928678672762623389294863526897598355112278449756565731181651319934534642484248785258355419429322674938166379257663388728641662728119915632557293521281155191272872851314558166318336421719735712887928363168688319932813875455633313148244982722715885172595948178462285573745714373889828493119956164619774254662838729659969854469729795118365348228184869855281152921422347772473271566542958964156287391967995322377811996881386714534529228631756447436115124593935276996748723356998599891159442848447921772997586435225229153237179759736926674396717238133356852827799479946366936538232566949122889626629244737469283438823833991763433246628354272494275367656722954278738554879118426852415977262589351216583492234728858456262319145255784922135316181835539641653157525897111431939121463426471675416976676629613514549671317373714382848598368599843719631457727155149979714553437697659684355959562449298653985553218156471965799833853617885449659463999985555337613862441874839675864852485728578744888965348184671954983554391154442227752559816881277522739845278391165199979558565216379353869688684183181935671291838752838885644942239222688798771444636394867251273284342111867811272892276872897215538637714484491579685362342942594366937465894841698213336531579995596232611185153763985538575464824426685683987252559992658174556787335782989694638537681498843311144513791649193845594533326647749188347312291484933286326979533431254873993939323531152548581723648936214596427669664618556517862653173422953618464834568118885941258489684834679952317118897481496233182464722696826526395932961574872817278337819351889372467414879959576398178914981817943783159945992421328219497576271447632525914145266165814451167991653894394617124611191545641238394463782251941392392335787699528854933147131149379483751511462146548742444357374213487327254356899652786121746257485115729144623578746247221825564853425328679816679293824886431625946467233114662681761249662732216742544854219357232236193164275748883267466482193325725819337891678874521147147458939411343912868755196911715449332252265465542396894493453786618823839465828948417845271559129881174998478173812586993137828796813192929825995243731923794573153252443324713226488489659996381515558771131352881628683562191941585461364388576547385521639732761295131568295748476738881742918827321475284758575156833817888678411337644998746242724184762437366379842242125638699997364495221847622846836498267156772922523595357429813542357152618799741989413134124457572176237997761757687889299625362569172779456329178757666626143397295262295726633497253624328447255662789152723953657828248162786233391215476661826596219915264686815926453818881438849749345613283674218489268291984957782341559626946873789597595879457572515577179556824864413979924671632267864729319676926114195442394421287458378235817427715349568898916541367288668391861384239118888442467176842752637665987977745579625413985259212877365841514162932463761165965152776261222527619855929924321825992616627768439314695687828991479539181856589419878426916816844686684658317147825747247817491767216569381984774238752533171136856392329328675198863816113125699228349271128526293573973274643444267185276927646773169267621843258966384764527194399315965949365142668145487175313234629113127532697481827525955367628537829662621369341182686192663315186933294229954142289789845165573166384696589884892869653159696712339798346224413579443747597967291159872594833279924377935732441445322551833141931368951523555588918253226429422447232372436874674479781232163216829945278765121457226347443662254146554328729854576999732997211414168489252226663263925114823854268996921122687893984485766142456355845747915573771128484187132646111584363621877978716215796959559417733184979657427146515181935865546735921976628221852359242627161732133221872693768774697848554415627938995263439217465149874124675467156663895715341843621922387814528275454813347211473475512273523431765946368979116243682799952374359643168965865478637796681718922886292887262799551221888848731818326495121389234245224996769749461199511528422745357656222184931949878929862935469914525713116198886677653736261151392763963461259716561733248244353438615741865735371334456379685926667242237698125247483118966348914527639289199493241441135759449791543461359288412335347893647515659895819728548679193772936676231911589451285952851128321878481581527453472955239231852838576514455281436511823836911983848489733241173723795986477466648487348663661832292588234869334262885651816888898946858144165462551914884462241935599312627254397277655199214296545466526231548265931328348657291636287898842768351272995858568531157727511765489496695971825568662334963939577416965452333888634865152444271829495839952249892277682715133913943435321424314429176256748947232573993935455686584117761455278324513815448786435745491445862583943223545424166429858893378437529831175616922553438317534466927898896246747882224845696922513172951565137724825318666357417715798745247729111522387822551311671544857627537479597277432553619644928589322958717435158313462425717454375569239871486116352373743587714259163958976575989126391537297422427511498935534345964817616357488947176859393625212581152667395198794469388441941189283459967576345761698542435423342666453298733298167811142474797953587697569678474154157284663348486155791547383698892411766181828523181145753122891141126624695456744746312514683686687349519943617971681831197465813536486379549126984967976691182345872499332134532936613272379483778817729723176268838135252181357147817789186693475367682879895518188865764423659975632719789229838694179511666453915186944845737587893633788333523111694978459288766139297139371589659937771789455157967679597545488472148116942356932688547279628545648448123246648897659377337272635467359563126816661597229936189425249185397967523563284175763515929828346933674919127523989349739711535127385674585327525447311281233734552898256776427859561578599773916286192567298874731778517464564272761726525392664539479116362668634615246666722174991981516573336785398854434421721718759316638196526291632164134914879798351159791321272367561959436296921135985196122248884888812429122223512111512725593889761712713714964165215376726993969929179359655151651977638137412314212136991595559545298919641861271474962922366119629418371466473319686777993513454384112156674814862448128367512929321424982361637869672398157239969182388415568144112141736548434332469399646449849842825467281514659478343876849623794321938178433379192279752614872394297994837944943259934274462681119798269763146352244452787855854624429495799324427852829594977448771618167988239994976924312945712762677356178967364745265359639885842676173868593876482816768746121277774961629896444524281843555662248634585465917358767751115551674526864499899535411976975529676926492822712754184271777229166656284466635799916424481281997453161416969428328959287296375929226255751672514388315824432823734249713779928347166647981962224648417685486399995548226122344687338175523151831483285796718177798495947142234152461839411216875614188892814328454436365275852422829599779981735167693229795725885744791689552167725935885355644216585534478474145628216522185486943586824661963525234766974493886234715162957398719276762182379981361866951579259266731948165854979855439587312126698772577953348224766794334435994851998683726647894453785128426781879528799442122456634925665343318351928843954979631823488811141955957832126423265347675345458434938619611242467881537962595337529369329332568245288874922434175911733755891524132828219442849339312666946186488569389113286118948984577175693448365266574974767555812518967211946452198485761316887937724434437962161888454583161743514746278864969957882129425488628992698375761555342444375713664453512348794749162396723192447773122144913467373512974373416174274387777914631871977384524121338755521111463449436155496717849514956156182325267863392773545495888373882912428294423599734162539367544534765575815254916322454489132384751297687182482923268585477515969988645344483684989726244994381278932565813169547318923292639536438474954269293824614824976939552397682998827288548939327819744873531731521138973764786465239515768731771874669845313738352293767431517585741724143496221338585238168826271242654883395427265677474254861784838297536867574931667982258235618537169746592875832618834546186837534597946212685745516859358841673822625146394766216891726518565857198611139396916485556916752245835684786514214742176666231353636184442993492765963528131155427935368557786962447688582597938721146971558244377946885923624475478866811724132635292594755271627592182144547698218357632949111658856169413162772586348442332296971676616712877936551383495624211277728397474177722649889341552568239859586983554717675419453698412295243731875244892432266526356465868132219623911243269791335861447359361212492495719689712288211935859761899138588446316525235327782766756657385239768319722242811886551295734246112941893116377264828828391524224297386686294729191963781842253672299757366537346432699664787834144918735367891432681447714586971372133669349273421464143481168185297554466384526553855284279187597331567295556991275783911898537359386985339938946414693682544158165564177878762282651727851355142586874569335444597578253387771838425761784226555392127234819882633198275586232651752475655623774874689226639784857984437888255542891612375243527225658346241685765735852265416137582224728876442793277393734436974184455332855824141761932264851158493925189562865839823937412426255446854789865357338422152292897342925382178583295146142369559272264582797546756249854861714621727974143896461874849125196446428125429697233219583384883416957758299958751961818246624855449114823726481476456379821284637638911161619756382817788616178821511526677542169251818678274145985936583336442356236982718191589972529753375499122611779478527424565449666115195245213149992523969412367867366779381494484535722642767544261747665613942384855918185728125188645194498426881272968449341739592991439179747754741574487559318587529436489154527564813557477225966897435339771427717941688319785364195537594525295788856675644179479832561811421898683149693998835796843733864832579784644733525974558731815188345313657939279677922674654261894324689272188135625772146453432762129936144837298756858584726782982885378761389955529467739396374552178845762656198934796615232677775547923278778471759319732988645198789196754692577497378477331739597586162412658298825762475456395144738968924833524188126659179582845732533995246544355999897754838391442532145688923492472956438257272433536985876126244247789584212345587275653353857172758696126149598216671985269867942611392815864663238227633629493552572753247594717628371531459615852816229868237889616669695644138218721696418185146511461714125826686645276874468927143924424896463926543129456146741132363743379572124315349744416499635897214159262582995867198637579958678974979927995482189852519485341127515396985523531525755593915127757275764216557588953492692183666374738158693341145364423512776493776671429643745261692843928447714259282245398723863155236179749955962976496276453657161657631425912297637244888943757823565516186295858562739534718588835375874483967713875727188836617225612849235794972543352934583295655748641121417449764755994223678151815996835579535891399722978773862252734371214693612682778546611735797214125483654711978711362324692493815343587967143714838951321459739253481176771141322216237262133947275372859743864973586282394597314832915888155342688297336675395676766344148472539359161637156423188612995843985928825866661292499268358832139529391767323332461375111883995846874831563795841858458437626119585978924183565541375918761279138625395793958583419999766684685445864433638466616586462129377711297521872518278627353454371942159711787948855526231465793786892861839632496947459486954222619776758611749333977916592893952928584443417349546235865854159331189423653476318731397781975898895737981216737698528285382762441912691611283832674482829974927118267227334426673111282978479169885586119551117418415593338234112641251194294823553192223136445589594494793175439538741143685234162591879276698551324317675177373522597494154898838259816313949281331971475754526341331851144151274279316771123655686761775989187414334881783947415172138526534154477755823117857455546398741245562246627938613446781429282196542565216798658882451472389588133288688257922799933961188945838155813528318388279455463256729424994246966884511556881195766618996211796484734679256266621261959568638255538975888494855971955711664479821617276115499876861332397633425485182682119186552675714465696134532699789787443591961395864466729878746615348587573513977314974852515164587336983223329149536892851257615438816138359263195775768874534165945446351266475842316284536732214658373389826399529246478142162526343561542171922825462366372423146392445452433625159376713954248777992435578739234242721895219876665697253926837232392481882778234683387688151873892129197264986334553329925992389572371196473196351572573962189937155253789978513669795972178962666969247125965339188675882677733229142854239752661427995252823135938212434498563595284588771162455265498736573811229567334329454969498161797967988844566887623118948743712518286969425983654854747412682822631226167555819284556287254425478499914559939847381899423844381129199554345239746815656831258251159994327739693264738311325231135124446128977383656586516128922523956468264882257684224825617868143689495773987544956247698373167434363729927652947659328144341983317579479135318864785688113981319867894895416292569927817116126111781969591918154945626325917417576562411389195488949479951691357793822841748286871726792669674352533717681499175147516661628843985346814853741344894459591285573187667141425438817152192928465562228932962595366171271271117463574456442581917594512437526261317743366424524164515556297713843615722464694199451785494274346595167292561851884862382697922471966685731715793977216355956993989637119961339536347873356855142995684571514556171766882466769968426863713146754618386522197183823498658763427688427958168756937255911876118856687283188853445951451538138723461188386151394878924966778449676774512117135413384679256189946524863862564915233571484982876527782177134523935273219597685236895982793144336742952892669182551958117422734218394573638446691675485216378689418755198742499357885485913771712575964748866791378716397573544671166431217866894675294842184331436978187764342719117582589923956653451116441519411158297187283737862963595655585499318897625887574651799354693141952741492789546881769675943237233396336414356825889847339643255374896535849431818882514467673119498941525456337116256582259469397282132566298898414963177113843651754799318287937322539229493666722999821639232854195816656991553552533586497583782261825414559794757185524362539645626166512471744442994321463416867474113148123456535956892133629445656849741975528913593685846661235718773759291982231488862428449721587752671658771718493535368349387862128164831891539781217139858533634539813782835612722424398152414756636895177536797838257952282446197676982744314186891595593745244912411663173471959989449692226515645591898935928826861629821369734284253855347138613754525642525832146331745457317571832475526999113634797242862518581627268758558729189713888128866837544419264835833712988781656238882321127419892162159936982694382493595245114298314216794852289438667179571871691111579854172814669376322419378368325399697877234169581711546462194613661247959245192263216742959211457472165178488683813466559561595142247644582341529756319356395798812566813145177953472496925474254391872174661266412541132668872391377474721746475438531685572681627444716788325757519567914272242965346814734299759695396692714999323913264674548317836385466845777956273549874514286714259723289874482634692852268739154924222198546698957133247991914295526725668238923626838528528837377849496317998369732674434216833617556967655471344492733143626876521225779226349678641954315883445346714634247195968952472959273615275546851569945741867951868128545188763728612276152735821522374773647899559766269233795756873258492171136992517538788253731954784891993482421172841746919884363642621858991996289253833622136288449425214214721635817177179697421452761171441494765551258116747672747745788726293637742442116672836699967748357411274318599155247797684357172712628137887673195854512846543613864677344912111695945128761921287544368668768737221621486577685349755411277948558421567195753286141671688272936868813692967285787845894611712487167326513231598372852112172219825545286598548364539649746857748282799348971717159913776452914822882894691752365355522266256628715885233288314738379385899452322698192229141323139157547482593651461672575416717713456284343597542589736276746516651359673822564723675282755396851875732913159539787295469988563449822912327158926635171968694838719919121825617261666751411794564554465437887593568923163133488823157699277837163854159362599262377135142724429694998834963989126627212383624574863655151358241611422549819157534798283326131191132275955969592961678919511591512519114598458544581371121261291451251599334176425542543659668682697646568866516949193357193959218773338114553247146461171355355123345955311623336862868783217729943337857727139615792568779441343565241711514565944179956889793158562543693148532728512199159364219362521724556638488587583327628544675756192654481239867187848672849314814967315337123822595453646566946233952373984365324849992647232844937165453778219673472636348322514328753931749616934185519321471611576768732681384572932854881851997473345393311767859944213396276823246565885851535527838156674265568914483867829359142737494728353134462547228153946228857138952255582645357141335745611222116221669722246849872354815726925536582354567942737853332613284736474518744537599375497557775157675124788221879797236871548152618199576278255124746224267963133833779396111613966587894689782174341269779829196644423662549646979985952842841414636982146999586584878952226255527115318897755493689573775289641341762551225644811758115533485319485439541914385469151592731261299732675554983427223262435451469232378733221342153378592826862673799662962996192317156138613761949895972279768789485986746923196975462479345222151449113614992588925252975387591525325586766914894219487925563615146674151549829348277868325675177635131974954787684369192557854616117994498766434741741775569819429929448315756239283261515486327318242963436848757163913539262872685779913686462966357511515583541927917365891897522162992559693784485119678667218323423566435784132522379236856677918264795254655717834747322788568274543957413872554918539617453269513717437714867348992942576782643712545116591325124217455823176256381792441452853273898379576182719788821855939256545262218715876644335319793627261676785456923677998438398561375232698233634971571313132977894316464386558836983913225393981311757276729513291381692221318438493121572532732769738839969783522833879922194261932794689547698781957848947353345414763617466144227892675399534864239489116628839698756375227592825752763215996855639257678327518874148458747222784689456287836713127841615436693162887315197758958633693134674978157687286741535388547758116484288857554128162599334897796435642525161562267415238427177729273324829865881612133874571242149261543537915176167355692795918825979111712317813537997977466357834735895924684946535223868483166427797288537811563174351178373715574283134615752848354361188467824232424884348422357662651385965387429797121863976733878896382829559538249214312973269849478548494345157968399397693687423377197321835621541478238485937253942574555916941987781528811524818154398888573571248279169922482186415384232377491217113994932139679198411437176176876165357551316296946979675283869455888623543153636233189597782617196847289485648261368326984245844437135164428334268981587892475617318894146758175963811699626186716576979544351736116955927525185632328163487458859554945676184557678474612347132967369727425761427253514737449536251222843317358963213475218969584685769981614589699946447233172439995884744273142934668371667719699176449757851943398134991651619416939995679664894685975139299928522512968724293451957351259152913153238119418653647362376371351554767568599254526242378885921865332177826631972596623592983968391497178632629758419558646832661699495256327392933778532124279138858373915624716173725827223236912737127579859345617298711922412574275912785629168867647638878825342732999451367244896558435215638711789734748362631285928438972751729681954789832859341973851825886755639197989263287384567549928682154954642666965592847589572349453748112267644182264922879984727181891996569968175467644633814592671759315399197643296548727177344399238558457199318852634331954364175919753353373258319632626942338739684917244458268221473956288941899291814247164884822216724617687485464678473641932932593842598137562928655998981183132395544356993174847236934932243363796231729927291923515896919235495917987979598688838317997829249649447134973731513324913683597361285897274445496727917254414139246524242566994564255869399581315956468695195441855249158917147542167826326759635247152953655398394975517162934447132226471989629116656252355587281392837826886786332846961319926946929791377835458432117238129693395164272865389132232945657526835241648734162965188263726376859373427299484689187712964582265182333932869228116785871329325834945247413334135692168289211582876398929251553911227935746894971598489214358558659432815373769699547457773626472314474811276146978724391642278297535815923526124974313356463282934424815156657854364589225423415736126529175768284542344875915588188531547893711143377644134582379232284864124237554216529866984895913398691913658968518584982262742179839739984771422359757872956144116988886252384328273859944656957635324838156477384569464627312955585868563199717253987258979164522197843152922537725549336233573773356651633875546979912625762128243796859945488176966116582673497676341134561468954554111158387944566569825851644979378483111815241786766141114482329147358438743711376871879327347242866598371542568955932842575388464924741874911794185269416834569941314379561539838344264747192986917225271232114837243516125313892414732834934326939271872312471621193265568878461387465585532583592717253941777614339878221378527797412784641211643629432458111778417565829939892153185311929886736463844736625729127537538526177623897261721293194747399131737598877683555563763137765677631389166714157412768979646112865882897468762492677465338837913491679315171319477293534316116335382312729739756465518937537969587618868732616232672475117712759518394256226738896932343913277127846351952534393886128328536228912626692753172351851662523935735877327481697722796863893296667254775423472143213787877276642346614155391485795863549257799934574879217345795371524438998871237695426248618925176498288175197747287682542243649379197794283856464232365488752668467245663737473794821358223379125738283456283463844878789197818461188324822266431726683683362198915747128134776647215453778866566139721533819464974528676451997519462414684519916257114548648298234264522872763377977322275883786192444529786893599329327814262761895246213683831762793464671846925339948286479545613849216279762293186895441485745138947654521649847417851988352853557312753616688329995882716781136655821161728659538926986654656222692618671424367158646291555266334574331263588293957566511136558995427424573481675331972874438327757489646774832363349335777588143869734319683717931752328956669836797128186256848813934728474256725526224748321212493775591815476828431793534535664839378469986667498478711263519792728554542187617453314319451329381135468565216859279689534555473485832566187663579448389635153381862818415261417349168929424642627798548943983616612312243696768436278853241511962191314564238861576452575615799799829264576242298724879339688667547353788313421393578591569236878594861682833942198957993895472331517664647942941725424794231344384838393985978941582841253276595788617895391295242215229437976443213871211328631842352384982525734992113934786769894123511551924423623716174648628929159294286528778148555729671451365275683235891795538919966899926532881113592451814694581969962514782692949175154423851857843982369538522428833263457533216494539563323454236452686448549177531475696841344888836578323111863898458121135523295841662962857126959751754294413886842937212814398373258666997375868951771852172999224979569186562367433517624793614889746744371496149378939318559848821474792832434261953882736519381428787861983398383469523272919132899585562792529655617814114116186943489548689454814584875275763365593346184938398746124541817133671714313794524487189333323916162232662821272519398131452642157361425586693753662574519564667383334782331594761997346382557386617976197156523512145774827445995782271985637777872357528352851228435433875542229353994728894825658289476929941964243515484766231938765355158233447697135512923195861295798611845514226666766865432459828677652192413968435119543677568325179288328515457757791858594325722531461212645211879854793125586648674684737248225199467668196659416863225938759249175839738383234698811394277181997371333161473632522542868556545262285481427679731975141895548155372719741418472467972859393217524784657788624651447522542761413771145813553927951612746721852927929499655946641689754324498489281221174667129278243575994742651661577924634641455692171445599555512383554998932499597621979924464482646125818856894456443244569817961563943727216642265389634525291257441692421184299738581931441364997866188185394366914996939955353948637324854279769259752636151454316848323539496312165238734868278751573715754375381793475651468233368439793229647616743217342964271924893215158798372592125321637628986295689459176226337748699461159767236159166778399863733658762528232646632388918884155321176328931194656775575243558979166677579579824381736241495281176543379226197436498193131548556198326237747478116816119154898487318832694242942522123127495134755547696119293354465666385787162516265765774988334788397766562792217683159448269546465131666836947614918842667511146547614276761339729513667318311865624931696628688438784513334328669963921572339172839289493634589575666723835731813621659822279126583143225787668938984975182973629724945493169752541827325511663634837466662636789671413743819952345971646888466332452625895881924422375854688121356416885364265695722195554454488828596923348787258267793127455346176767999758564478248449185598195661259235979317112834732382982447563475872782482465847154243386932269645813941286568364777885577583355735939946583318774452888637762333735628257587353586675527192214486946762391126264839272881199447921696835826442625642729628651353392883365888159492674534278292432618834412115945292443751571712762634974174668177329474539489655718994411766563174921363391265625524854829464762953189319324785236611982837393498686525447725337887875167775914762314847417839518395692368867244464637378961812629278394171783118471287983173144951771177156446273282879265368754722728532156753861157954589343614786537633187474478163391235585854496248456173419214433555982466695218834539771682124368745971531849632975932989981316171556699573545722214393389329826761421377521983183422541551442998148165616713912243295241364464167953423972262275494916133368663357598675882917446736438754411735484141629728452924666421752735352665626477312313668399465446852117568215826946212921846388973964719418988662272373357874661856227157745682899835251727273267778373946595573455959821538634411227421859396631116997939793932154775769688242343731423483585688956312279183215378418636774243926557574472682118858692368682874428165411568678453212338196363614319739785532456676789598114364684657524176212767436375176592869215866263773849671197614244228139525131397671438547297491713525566858888645577422121761731882336812681434881522624579652539652232391433612763814262125267222434563584744819199416517934645778933271645126934964614317661927729136289692274579829349895897558451158916134469351375253631276811815696397534568674988349357847826475914666912768256979995667259776366621221386199796685132845623338789791728327386854246319772994762741622544262746269689657645191264235468785967574431485948538554865312279675412643672175727563748277384249671735972189559295568286814227273256543641585414859767256557275578123386434874358125838474289637438556189466879689162799117969682436935879447396292461262856724757359736669488917143159235795179794766231179858552866769238634514978482587372227292777779433883269918156783885495572247271458765554358835293643191124822866622967382163673826215125397473935221859955311582283684122859951452446231661618727975276451255289324836982943714489897433547864896178667851921358238971124799277785551224226231954831841219127784229249551963957349214324235713225937962968354876896218412881292594381585219596165775515593693851269117537476962438779338698873879779522257654887665577335192289956987993756134798135768357474378856544729212661473938664391627493947417337574511784449768739468552281723569819877312278959886531749812157947824645753546424976939899915687379733297341872368859749639187725686895528415621396368332249911468947488237789618235167171971996789427249997758571167773768768336267872861545382488954321185817423199275128556674568989887367198398214716569127463249127753442362972452997898534757759433777993981224394983735199855797854643831751261568831349225684378622815889895841624637548996233184364641539193153425159748461557874137188988184424828793528473259453251948757188469337669416521555669754538236862893649568129174639595847759346315668525326233685534117772796236683434855477624176487255423845493635929346118395943648979252782844434368958687279424229925283267698935819577284215426417825932681573852899516727368799471973131168353522352834548428364351543659463525741823166918723147182346172423775666862552323426224247744886953528194258369599121534298576171311911224949889699631949786273292372393686564433284377345862171397426684239552678115638214312231962438831786743533994814334446433564447595967221519889393646278524867516992623663531551613231972457197686848983246381241552559683272948522211534942855911245993221314155265297491586967969359661581886391691349486173668683538586664174243276914691865613855714468765178374974334218668844494641415813749127449749515487737181121512774766498463214642314922923963148415934869179443564855946242446275668944752784938313797311543951416291564633935746125745788973924523578931123687188453819697988339566458468617315159249298886527554188823674314798521431228779425713574841261531382325336193943413561944959992838959483182284315569643838717889684522721828359695649932692369238579749822635595159932989226138875748529772221525418516527138895379131187288141571329861462242777579676385178135956822856969136774631357655457852433417193996573835859514948733755996784983449621195945349111476965433721954914113587911829856533865246241521921258758639615257433946569511482397172934985398132325861791749968674757944474376497874852815791556912616142469197884167348617762352413827153843539925748519274488528619314588649632185835641169911761791949813665763345618714695662629724693869225459819679937483555416764938851385265921813551784125681984767886291682663827985397755832117786295254499681478896562945144822431744174942868657384377771141273246444737824678396723389383399594147511382657477949366284513452765515433598325827642359691835912542984332954435998223281274573627715137232554954776984181347698367761472526811377755153186645462237274325915922686281487142587688315636116517665274312115153712531192693242817434644834338488542649798913183725187559873512455517476367564746144879755916142482128744379742445712676166679717728581818782925385533139785544225863944712882328751863721264675161343614781792677662924849387682626976234314469125396689598167327714327746172973493159999715345196437191587684823927917778291711333933972638921213993669478448461653839883675695783148876719455519773651818377755949726286232661537683763689254747618226738784826684769917833295745657129897279827173974656855238774485364981852559855119685217975312838236212257921531499919596936118921529544235378317297147539149839761724136653483192895448342223199161453918245444613146869871279176911291924456816111696574681587177996986231891492459997345383981679266889868998133922645153352398224892787566377568622127451581391671747483918655426527153292239386251888178933454916611921933841554542348131455845395476477652617141274976812384724141688343592186193489169197457851818632871979578726512511254839919762848935872642382532547828719675758651937182219443685277946813387142134832951975123649334914242934147329393481783955968359572755168778518746714918484299956111525373123886466846685995988489439966267446982555113492899638562556162715483438949278356218954199695874312555438255979681486875634212532775218823421368396883345754885853453244585411241718931395664257483797135565687647331459826122869138731276634278919935915427693494166173724941831724215656394433838436697999173144445899328659933765214993991113547916837692574751379659948857191781263912269534441415298973782749765866162913347277696594662735682277773763186693352891256337786892458534822371616795799312989458584445816844994462942963949984742175546238627964257333526525878985549952813698913635886537915613146941111469259413981533223673887471481426331361458481612969247975812953566583526365425511325911492685832479622257678128159541679737219346397522178971775638675537257171611342448235293655411954568266335358483295623868317483838555166681428647197473213831113956363921953716425153453546546731456637732993523927253495859332465928781879921213927257732663698289957924825845236831512667826734628319591173485968918154744417769489438445773267957763936466132969893646192228913678851486187284253416915136836192776824423239544775256659231739796477818221163539945599312474253879569361366418492842762898222319246162178628467531617787597637641357454115841484443112751423187291835124697545879288344374672281352754993756223139954271636755778844244418129222216624576242518482895245846758878431778381442181351665147713581322389117241348364329732413659572718698312335161373356586641587657597427541145173397934587535289939561394297694833624952614232114859978386946328578864924335426711797434128641386272564996537918967618999762681397553742384974769429229174342351995178186583748671681498823947126633541977342119158187867961663326558555368468364962658345419732277931447373118394558382622684791383327945244174428246497456725843164658162458789492932766346629925489185229188837129185629379262698597918815686387296647564579628557157836375993721385931376328164677358976365536553945872584289546261147573125661844421478796641246249897298554637879815775437342755743342196449226117583816639615177411528252263754311691253114511241291126242497738796712912352276285286798848592261832822146254773281758541379486478449553258534732617449576515141885639944787159319953999649943129573466825539449244423366261461417553234566399312543869474319449193395541179999142328265595429327537981987966779991716254786517341848936622288186155671138687312385277748847655159626628376996134541395178733347298659475975477829948346127332139794631217654234918841432163256235586597343655145728841957352864313962695841344715588573198274694799747331355625953891119726276434318931154514119388498369865418738531435775165993732557434863626367391867374764136271812287549175894879686861363779769878612518886363211796612979955731682633429936246315975163157421568631862755378888375871165716852614689745261859776354369749314463721685981176153677983866786122482449838945439685474559136627656799772466998866383647549181856435382436135891438682335144118649168211712371323161282595895659555365235453573779678736315769615149652186333599457139749215156468413512234472326828782682297742563814816354464145813971189852917287568182317621182378377252242858515392433194292228145759863947787217349547757867572935921114873583116959724389146249721721297445655249211449453966837799818542196619519553387673255734614457556196956781118765968341711145788388772451441126692436496489858676543767692713252484923552336183646813662732946175566611733432585275441512685282637187258492541957481441598117369977583412565459287139178978585471228459595131848551557244983429421165114417582336371993389511443557958388926148565554771722755899683412114718554998275237383771628959159439164554371883412677648433338379286631857925254212975717941756764316391882396717893464258133798128647636755326915341745446715417371133588929519923877329971521147149488288127819286727715746759563491197889678477157817262845781928928616453299883564389353822912784543177385264529837852233313482624832559165326217882994224442513885939836346867544633944487427795287179594169723175479797547217725512469666637844471259893513284625759515168741168183952292418761225175681364469367552561791676678186545469815731476531581547295183637163953425552993141194794291453159344474939137232341691819954349363511983884616738688579464887713953951328689252191856693181741945138251119923123197666854827811323227336118319518265749121681622933545245965815722185995164225218452865352742293312711315626236871955461534653873143964425137614697143186449636931215546958698947652859484345927838483166735619474559487711292875622728499851777122959519528696967138857831797599684544485345839632425997977726675927365788261124255634439191757148855333149942355718159958113725591923326219334715418393183355794795936546569839379188386512972341632386832715621529338878975988952278751821382333346923729297193199975946964195419812182982681889776269756965596576684773931928885491466962491147695862154145813352477972221225874369464866347562618395415426983328255531254711769578118549228449254697513962847795685537549374298557217494587256625957791718127863584223559374824319978149841626763284339256537967854747531572157465786691144648324778539567673397676325438782523879521567223443219631163939171358119245866291599363378551358463272986572189138145361915941776984273729927829713128229723689377694966746428387589411362529546114589164695323162992127268113613962956215637933122223839739989275361861433936237359531414381217733619532834356161824853261271833183845118442937918283498414497695788379922294894612842682121669137864755755133594677725926972775469824398692949296977358844911356337545414497217793427212592636248883313641362931262973921163785554674938963955962157249245413857224616382576163276989894334429231489197254859166743632945386288235135749134939584855948476985697289654556947886161554472169538247112466859537133286524621563377978924687549253469112573428745332232471215128355365492632485728939166176577393738157229357839511516114651479642547168993675625665365629646699744449349515967323848399262812776119133874458189454383187367534935837224467266211427625342174477741452697413913953615148235561245271238878159234594997719256368765788554468372521919678694219975453298534451512593459317527414948258919244294352477396957687962776577571899123251879463231826994551288256957372249185386378957411318122617333557455884419294834855555726459794428896246156539794258739364232573353966561113872387158974386433657844489489677795498385623245491184512441398977426245686899348346687822851647279872241829742576134715789733448336549412476513924374751624858579223254291731832258533673857615526722149193185199941298483143584165258157265674567676414627954259765469275642997754473735428834898234252715893567795167598371659562886156625761549955694321475322411914556931875758117437565186236226461953939595314956792191712313958933336265595878448656527646832724137543872368292855486159642893295848125251159244673277241219428892694219214227574792594414446334483893624934772959288529864576813183344636984188186848723161531837151314912399197672552757799773468599798828727585539694363339675325284965847475937886223456392833341747219857338117628853472554787849551434966857418284311465744317342375659344964872113148611841564681146968355631731934683655611968952547373735718781157213762868753817634896466243247867234319174353816285722335548334936356253566856475846168512333625249753999674291584178839951213626581771736945993381262957156318856823886471878297193386191722495987364992877686396425123274214792336626693451978429821226546716928581149273261112983994547217799646539356662661759937482192762624267193658714878761599698774835332939294964341117156914881263675878776173496496991492868974132617375972229858457586673459762813649146267142976634379425381562726619225838116678985836364499571132943435236772461844468798645647631864475843187172417377939584246221458832239846976782385323645257282164176159556124342663827431158254551956811412635881273716711514859853544564635114229381859781166851293549893413614641625584699185114458437658828271233681931838338662493158729536649896978851783438677971653595168946534229276429267954118258664457189411328958975668858764438863561411433226193548333198531317552682634744444678491518442462916274326699132389118968882928118635956515418645446241919291992854358899439172525238238148238393626415347234485897618413324953195645268862319788447378599884293567172758777644477115853741149496982166833586913623198271375324712818489647238489778495523143414684332276877626573322773876297455767983461122678889956342852595972559886998964742736349425473959115193572377651713337278614999899297455672335396529146896295265984737284317736368263742359866264535243653324951775939165141655998522676818393269752568961125614345413973792198964129825817466889329617885975751253133523158636547597165662136242344686891652116745552817999514537976554417617272635815594554815592936277926634786276516851139667761476167729188695355839731687462399895566565324738219182139774994774328854485758558365568434823299421316634997733567114846317536467577131338192447147421842583228865567599497522224856849187219184549278117859961445939827447335787614314989864818481253896619978637157445322681438433622362258812615348759827749573844869174965926448214175859797969356254649132665475883367136613647253516517664211688714415966339943292643497727765435874371883776886149379849616158434851838185772285192985845331272556538327783912419596171593519654215137716195125973669519848614135638397895397683948888653523926478196866495152346223878121312857656342761275499899276987818983647259336343771541558945735513766371393926192246281874356797953589619891499513121298632291785143193973912862263272935133112425624919299384599717898392583634995385214131569449128947186458757175586797843876777661368894667354892479153438996642767655819545825852756198988452517262731784255641724313181734975681744791225668539959268241527875848128228675527312227941883679153954665522953574786478467623526892166517692959217744679241482162277827577661681254612525564769776547285851798823273425861226183736444827896667883214691712319463996487966521318639887857976823223741436888917859637322918699899273215883573357211842921771661567787355593628437391582568524569228842381652373193141396147572494277314368485785998116619256495692422747585143532323873787426885126289846341683715893261892479879388352884942213681786765992777794539618981291448427983472558228661529328337452193771927251962737779699432157166433334149136218965734766861566999222626537138735297662147184772594656287889752161727821528885134498897685659765726497349227629158847496751716276716449341992896671399873944461121563497387465923933728193347349385614441976576769831749952575413963396484931696569532417665215492629357651799255197337993393832884818662622445954566255474656734114859912145538965589926471953352637527622963869397188626619834186637479476751769478239789561858429257995669625553265132978963694628426762723358474876954749999369191766837142779256741914894828637792365968245959623513892174836594721227931434376636995112495944415426198242578129619219348731961412111825961762622522455218394345435526812877948181234745564887221662242428112829842215651938759616729761652724597727282273947997569444387559719471178295589268813747175811781627734543189886676939535926883945516949247115672254297677264458897572375976443566864522237661449185223719343488964395427264287985516775698825611949472187585284633199558349799783729837476874236546579213271158338292847334747389837847955948762671754486759477358923616911875932997445819847472354424115991484672394785658394419651151449577744974441896634955928923156994768964398377838223515495789388745531958775357268527847395232996448433281626241971655275686886438352569532944131286513971669281915151993187488487946244288997987572569867494233726439837535223751716773411824995537511153654929899466696667156418157152316788677524172637323964678373493951718558764826558734191727955241311955721293848511998971655178188274645664837587577463328825623531774239522279826562793564925257225548589596477933191347738254866319147996534227525658211125499839734423155477118553363474793785756976272727326271496633912278633339747818541146176738928235987299274854696611317778579372779488385661939578598275112939995923851296388136874789281464263653828846454257745213111236452616877661395619473782983196531789377923142413341618796915558527453255349479614554334923477319843247661517478734156337564283166471937987713485779392947255451187171777437775242161254869314391918874417274588784697174893113292878228834372141318196375674883171891562889183913811447714273578447583762669869939163733139376229757114269145937823185388215625689381616519992663971498118578137945896545334381577596316253154737327751373511558218647343557819632496413664799529273997241722784823444799169891827916629792869249473742647527497197668627693516443716869512251959625476146386839291765726831926877315917545137935812473155145622343634467869553943179375777338542714149715769952358275552374118377561442996781825733376492693428165298288866957328645275334666472982719585179711654161582848475573633682987757712117956131967424676924912786557647432945932662929611992168714457189284775749931789779885754989788616873345227396273152426815774533219333755563179464614285562714115938313768164911452769215385695197717882687177193267178597856244825693851557256473279918674197578137312356961697814894542851597399929144648797577845199274123742733647899678415189598515816171352515184151972489347987467965888138536949927155977665392997474377131513414118595251771768416722415365695995744358325392221692833257715285767183824443544413685799459878234942222555889239486855871656379662774937416328255749216262797653839112851473287741661267336991262173257384592365321336969457473589714432772896427441136861697845724256433512153786687263222785266682124354448616373888289467974531632866319961676865683519317658612797227123161747214455374829678747458169366348959383791282959823657453378812695523882711914875139764992772831362541719698176468435714889162187141212961876412344614992886975688687784771321444794292268855324282849216237271449758864759371688662682395992945799586849767725482638767256439819756339215986423576442966598488253776697274625862485572139867671958517214575951199546537514261355914615952547546389922762977982572832426561213749632787884571628791823467487662524782461727868647618755583348389558784665441194744527956369187942711176599597862222817533332926196193642581377378568291523614113622975924139666512332372632943294481872173949671712738979163483619687784987834894956643658885156914662869542811285759913681285784139225158248266621411779787254557477872685489952982957815621965511287346775659856942623174169518626449916472256839981297414343215748739357471964852761591824124597468494931116371556515475787146762599882983429555115543121833499548536615755691291654745626954898639391765234234277551922596885647676642953465683437418558136589246798783129677819549394296734747396174375223892755683892564837557253579981261246783973128499144657894883989892579857957796789944633111288278214288864533191985447657674471391618574826125123546291857294312352998279869271414133198727237352442168944962992393693464176791833948732216215324683929226886857151823933543165432714635392877573663756998295636896157577764411557722321139582151666413978317442923144955994198154574869699233325619814412791515763148997819131691472721881921496619598378181138266237315396445885834551458362267879591929543932514868883628743421461451385588638914882154816257383217345684447247415629999625342553266634167771422872762723247381597169465243274351536697899538567263988591717132174623392344979695894533613315412764992125413261649992143363892967257457887214267155368474564748563288776586893497822769124487343541318866434663255321131469282434555339772128432854856993719842286619575687529694989568648623831591457815455395692538392252335464487267612232599742661775997432761477136349398262338394784425572528321844763579691439788138566627438412788925985926885686532194726566733535923394882349882181352818471724214544832955834932156236974945256519871166648941135748435618234774661667321994997461283754666934389455965965454989918273538131348373769264688177957775917719744561726532999786472147538298161316367829918885413525367976772792428999989677218368773571146315336135113979779414272528521232564167658754722541958298841954198515159734285348333943826919217147552423832256978372462943862566219341614837334151196381656692311245296478191595514132186656666769189615424463912315412966412977985846377713992213542726367465264637164725914224367539145871386647254625915227652294297674691155868229691223766885194751119114579391259351427196495869869678136854877793733432861447223171873457635493565887974827537734891135797225471859637828571243522524993595142226178759496499542693171331744745342116144673526685873895868343776875378635975632999388764587743321757519886348547465132578243564538278157671424159552699413659192898612259381686541789631985884854613838746895348217268157435899169331115773297817523327958347343266275743941632362484179813525832447811914166172321617596747229354935924329926147197757311922947338721142943646335199638729912544415318412654267667438281271314554174714868375931573382397328673969449725443826973211239859726892835786338511198217321195175765737295627568557377989998395759222831391937772418187975794279182264283276853973782468847344142258566883376564732868542365679784531919235781253339183298655523955154867444549762568878633174279664148782125992158925677865372246541417529198212983459135553666211231882782682778914815351516226138126394452528397587113263765368279799134265995752552767933468266245946443741115359415117343258662264898961971595435835559755621736995792888837279642196972333395885454533496123966165652774113581126467797387474971435612112369361896665372928495348799898924849928575893983722346115995785178969897375473744968468857326623518587114651814389925719421982233871571835815223125575526514727994951943423834135572823574835424818882123386688145227563846287656435636854323125546182455972526268621295526827369868913589542157828736377758574561251588441546326989616381237562587435358411822521461987191746994546151781872922958956746718397659245222118299394188752222141715618119229938857264839141144214663464474366141756248131144454719945373698293377871673777123473467894153873919786644911712958285763267545644612265465525529427893918753116457564999342893734413613467777313958357282361533853123359926646732555263398339615826142833476959194619838661521993595687825411329669543398349438578945727258278144988297931953799492963687395297584394995971241189366434253562211639938525538536442985389544664516598348881633266354663416862222752675454416612246583732318339514652195434185297646819939862612966174527914323176556448334484581287647228659746491835657195443451994725568433963944519218642867856227653585771874314224986173767378934172648525855267555961326852645842114846239646481785897472535929128583215168685653132768921322323171379785543987291465256287498514631598842149858785298816546286538667441553528385614584927645297954688622864683943489782445754548795557733182375513579624197441219654426624631182328371578211222186417968222238459266293824935132662257979191825741351541834336472596283182264637651614686918545684112411426777433482759339173521939161992568391439693435322564556452451596335356226357878125461815959999521946556181758551187157552441372365819516672436544138864997924149521471138261793116872262762265117954146851921311798815971186676379674268359371259139427424961587455751565492416318248779265194847313359777827437251826832341625445668546327959665556228352413846212145666351316751363296236591121224669295225889816125747487487397754763274662643245618245873512376642959324478772132746322572688253347168515262364447869116264178392997846253378611486376892287116295779374419268396733492529319718385112453368277759188121149821748258382517324998986797781772735449277428159447335814562528682126942674487321934513858191868871564521957578662812176876753538584845929666423592799376841984831214595541281331599426919997371371639174182115254186565465182129172978376476891287734279686787684672498936524432285511468936684151189772413655863213338922579774762747878143518738941842888854121294861773924785578451548223525533819886167435763517551472623264545422928651227477122158229425868398581355356173674787598449825654593526952548796974734576467831369622116369129517971226753434461412522146938887665576241373619659791794396984731276889716177922981951368956328245823883498189277351377163774598179346475383319934151867134573279194732359579472867843435872189187459474421367433117349725934732457493735852583883417389862133278818261645684952283929796889215985781854412797816186164643553841418382723881561169675138362656575414575753798795651153778833479919356711871641194189367149376266179659736781688187913616523148646591563232299988688837489682545194141353461449196879516465598996491425769784683269119745294983632573938815263479479343662141394549733422938264192816271375383546599731922628136117714741259492131914884146948648217672675425628727915318781655364122178521872542321642329464789271377138115168389443574419787695712413314719537461697936814663934264473744686321371953644999371577824186544175291186449637555693373581125511829927559423177537743981193434525416152183399942615913992244586926529727946839989479668772139519961822615288276113969726917758734726976485293793977858437213176446933661179347445221853672769393886152258162716226292358534454733246351147217739338464225659913235749843564336269995217761662764347132477799315293714379335491735546664343363772932358372722883336892225339696689824641712889192681792134183652433776856934823171148142548792844192576157439635638542575344526816963567391153616559616131472153558884413517768314264776724817163831179429186915322588258438234317424354363752373439244977799129751176492666793936948326184885869956485542111393786527116494978864592944145164332872673111497373533525929335756743889189129837978321712644998562848746748529227138998951441286269133787548459941741535569567183984363995731634797749284941638827252431994856225887796199152833557681769154565943712311225396642498455259695199368489419948512641465889748347162911741634473536462859723646242432415468895147674757538772386538668294873376123387149816145587343143429656247476168159643191733926258123636463869763527736697889594395556191476243584256616383142561916516632345583896456875288424414154597721268447971568975816256552891472487229817863559138643387457593632342323917162154827145771419662785827917612827289992468498355423994594255425144833169897733163442689914436931323629599251466688847846289872893164992727752319273856574441439634924284767888796981526859882754145453728496256653685279258313626141312141666229478895819539789383413516562973829698278922898827146396932138499368276856835716411939531633453379275661353723353255197259484722539995919172496622129824663133366264655561781442443425881992328723187532591634667989358257377149357191259212566355279985511315349939854764719434851838289311834717692967348269655537435366348619368465287894858399933558971731657494812591885615598732439592656495666815893342881554786635899429985565944277345399677239618541348783376672396734781393354197139718934582612184542672985395898868551918259366729886865383863558313313117944594483868395562716535755855649889327412231685846478943437871768678228441397871418392423111165832744566595272212931172472388769934389839346457649646763891667659878759683228872735392671536281158833781192878941471527569187292864142131217991936888634523131316619712722312495183845287499419969749811131261568832259877728614577456458554511393416284965614951685239165516534654362657916492351862678119552916232386976515638615861772525616228446933574946896382249491851472295788136329889516639458433468588156859571469398951886628854792516181927953881676754314998457598115197783961936492712111946685485884542837729467548647531198526994357421292138771435187185936526841583482684352483791598882523997145374442877895175223192143442946564797973653151471761864187281736116692957252298364249547266238748317592117326943347291997529483213752963684276511128217759696996261456513921559551362136985583199224774965829865781883472829237949317683174958526594731822735428457196313516347887259231494844668468988128641339944966115488744579367169723855748143543961725272196782664847311994346442524931128797852236855854268811852243245914698791385768174854848952175566714584591976773148423216313758328666925992668972613713433717529376766345491187347528751129751687152776215312935575331342216264878145555166257694237249361967244147581187592352574387213298812225863971629845981219921149821132597794755628116227198112883885925784157599318929619418686874366734137787616497457287145722947511813461231869594212815465668418488635647623451771852297743674411263726367512678664783556693144158321956617754529886139599883188929995554219561448931988866974865754217518454576369256123628995479879539375613238142654715694239197948975425637441684964432735644338124466828551529826258421873296186432913757898789394125192421828451541715484352279582871912982726779849387623831767855855943215772656474245326283977552945255623767395619931558755589573197558734554894697751516854791991645417651141399964115598968156111442116219339225524862658452143986186616528339871266321155348546144794245978845759482485819653246515928515399763791749219173377837438269687553823885615522739522254969838673853932591942125856162457349187263564593696786272777713435434141385635884553259336997249761175283655133577693515194727684789288443755993751911411771438696615448613213367466496453486244895338198418635269898434662175565977686525378784663596743859395682359891427285451789354538457826142929952559994171986338173863456448433678577774863486283367693246988335962638914243649876536748346157544617497711965841593967889384137487126795881275314519177194317144645123691796237476373983413196461862139289782438945343573862596583685513562513397829977253392959318668994955374845842466786971891656445739146431895949618195164128652114127749728212262861366577322423734587358159264349266812543775856284818613538853768248482658134652932783924798865588416561474637738886287646433881721357384646217196693357889277138253871234854552112347926833535331517531895149249472164545788299151893772275999936132465943643657636892918598481982138512775939692271361219848836137878845337386392428429314186788564247669387817157989829137685339744419437218723592373384942474437776718419381531567776168395537294763694522564428286782691953662947216648684934752321369254521513213756525828282313339254695544855939661152769989212936474728193495452446622419419513149491211559884938578528448388581421541575462743491341975713551673525563997162391323319779923861122567755452471411631697589775776823486912149179232281939715273754992583686584416525697478994268458696754493633273633461258555498157623152395623985221235971419214975169399752838341353749779799976573512465548461395569446294191648877124667393322768681219518562458149385914335411259179919666789682411911234763778774565539997745985175997353539486743275954638136423921646897835598694989443135777869922491283622471778712915562257148278386547674549429511857172664572298832488743763713698384441787716589726599665826284912446494175622574232287668287477511149446818955266364129938564225219243833517123658951943788119629444616866568713518592769579331364625281746597747586643589422437788397369818572239774922953195664573199979727939886287363562926364554452323994783381116351443167493837869248626854855489412616446619394298158634118435375425168718547957752614814546963514819669422116872922392545132272552428351461137229347472985192256387212247141852674412499798813441151254968833998339568348228362466371656449638561316131842667892428484127961895836548421586254386234424221181663195836883497826438669161278134343725394633414846612528524327631811431682813397757818658179632612745613893112786466229917879139284653823132211746257247823625644897279471581544168671243594157436143969117152346183217466751583186472371876998597818543118156355882998984473332912755856759384763751549875117297452746311329694767811788398816642725345457225691371449267848592564197423143592528552456141889136344865179327569213448142129123545822428341976796131844146946289661711534421191793785988572188845814955397396255513811757745638918494922542166697787852425877767597877131136785453937177564231979646348442999435627225969482478233866789878611262774269196334155241818785555559637944743465861374353111654198161753936262746764198318363663468433625132294769158877693858294926277689798175979757526711518891416964823729216181632291242112142638929382183771743862965276369423224131248415478654849256871793924226231861417262545469845925295526238225156662715131914415835476878789384749829222312653925452939717725199961882912265456891983863524122928886976982537296284569711123393181767266417126635961831832951267223848479171642137119173277283895289936823876877677585692411799197899571748235873639199139288998676514576299676738737548446235882541878496353825697342275787276218386224759932591224331698314825653265538422669581813851581962417624976828874832811175133129251812299771567748728826338639543533642519555138919772414265919341515645689992682668787183682416555828366355423578256954112341886367193727257495229714114248215632341511226955477347747152751324447397498993539253826611686796231869598397539444725375323793495371219947789624984521933291429756777761438389687938121241262146623378312939887689472474389483944371181283151727644771998937222458357454559621374641639522324367282826269112138481443374596831539511126937939766719937476948981732733226827794364266884477165238399612193852287693271528234646364315513798815655863914625979514835376635425989456646898396346728245718339726652295774613136686591969793753418536994354466914553649528774925756446869295685149384344111411776319874784252645573996396335492932718276581544992379899421851943113939567521829147126847932125226418365116187981672166848949451181816315813482348553937621555664634264633862995631922673738373646951313588678241132399561388532226245494361964977196942969722833446875399386673372865962832914237724333252728935122516687877281862274598569352753893451237835821947375221145219597722734527988981518139123533481243325656445232383975886139366471592967692914231428896499224852891196646845158288968696428893872871535919414221917776416185272358491971721932933688218716232266915183954946147395916867361486186574678963566285675241977816413951316192347854312635711381821115135734746522832994455472554564966428793434427595831267413857244784564786938776169175715981795162518776468136732648118616675961291877593495968121722571227623633629358598184874845982193754995266172839636813396884983257447852458531483172292779257562195771825767795992221286992737746324214671249627837745445518272894114559473335997771224674381569868114141463862529539886324269155864368295479521463452963388284668174883229261117431426744551817624982213238138761793466821882542831952253165831891146617785738811894119314777867869421988451231129519439897573158971977611624634575517486133327224192752813275512963681292424134424598569766217413551468519812243582447313924644789736666546661898841662853397574546183646282262955191275485941484183346854979164663671118582639127342727113929464631539378429312145196616997733284236153885826918328867567238447758464543923513344929656467281765699852143484696998953478197163422416519837286774569786585271421641281173681357693569128534565629637633881815655711712553899349192844122112657137196251429243153337748848993696395898931835249472935718597765483962854847351287489859699274612988163446951978616481449357617796592634229216966413547461122781339482894714289739973619629777799647816266575547544884645512272145734431887332984352616145362366737151149753859284353856362586158853765631816624957232757816391266442894974446731433617377816833556536823156638562712438119682826468949255897552723854755613775321115128598252314598953324681912121422261874195443227458696796797839945931339872184727586155623495289582515471589851598193555784393159289637775559687396632999419513432383959494352979633732652593735743947876281377241512666715977442644321938966678528764434829544697939913897355116872194585428888561461531256666233342671122899645661723637292715938285176265128574445618326486878676174789182939263724445973559396914361378452366538772268522341941266382227234876543568319433516532149361863249783948778611952583697612598793671964731581575624872633871641797783255283231582968122398352422189294692915963158951178713944942841219399786981775763533726221384294223181578544919253424124943363763961917752242156386688173317473767858522526531148796594734372547312953294756859629269632157111722826135519175846752623718417479551954414492785459419771511347282277526855933357287254194927736843584169641875584288597988651224463778533698257565324992855857273459292352255791222519674148766989899933148597527677623927783372262143346185737493154435114321446539653252725454657981589821854386341665736151415113151932915343856823374888829329524616697229485166384671543474325775433154982487115372415552873349673876265393993428559193361593541727432752941373926925142181434415947212315322514195618795638968561272492833974273732492865761496513653625911327489619894369318849294355745767494465445759689473472717261637376622245519468314541711416578186657751291137857399479491947856419175184296772392337257241825456353751161737756878682216387712346622626588364849698717335816939679731379215487335195828218799666528646556884517126687396265121662526161649989781248877473964921272777831738686519485922328719736892564537484845772374585255226715852314833326783818357663274744337457749961538828643399426781113747411316358938882191942519419673413433867659536636728858789656886129395969792454824788667413189682619185954188361739674324423479549448823321156129866198548686628562243465468151936545288155516343466792148943835479787581941664711369473156448975744493485542792727654768382267642969118642721882546722659755418514514367337315348929973857487227577883515235759541447732468261817695845447823666799452497293274732215649229575144969197727935396516951872718312697597268861389739424391471282351999716581418479211549576685718697668196136853874827754422871649495114797373658939615946113277197616975513757659498983583799599149646186351815754642881168998793655353878968333686864869758438793227494288911268755131985737687898537845635742516927895477136815557221683255286676356774486855311912879174682249663231569143663554642548886999756178124917254517859893661259235641442732447686461359515621534986928181324882517532472934986364765673683971121864811193481917373738986273284359641638976966684756645352579813866818695281748223676182248228493974833341314125382891923725564751133356377687215383274545981454357573299767566874291544831955389946256911566243552595787862399284887388433945291348726492631547825552385579187919882439581534216651878314122723782833779822332896873594995175443425683664887965633882261577191341819165542146689866972939639663642547971274832618285477339184357411187215577637445883515412736565574394749492936514743174255882438756929857151689853251474953176842433317112159945349286671788362314534344349332746664211288114144486721243156121575986914695998346826739125537684163653912392225796467379832578874138328457468927454279261297184486218944789572316533539547245664284187455382312854286949742398626824648177287372679262936256996677842647356973931946138743232888463635459846238222724587781857794856381274686597568816573568237522149156414152798577134369182832135139579964233879572997814977288672528414816984831939618196713669711551921528891783653562132377257293284244914183247483584612326145353556946444657395532882124626241495989523878596149327427788482321818759946786389291842519437558628493375953481289263413355919752589717293439346363684727216281328288917139963688836218828436557476265868763922794394176828363181616182757147296635923514338537476974158752362914415545867628456942346911246236566921396957783277481981994416142633661245813139658756745175578632887881462563528272645242699552549227243398541348412924174128262183797836779794444535942344159246426997664534767211694727112926666256912445721429478759569541296711491425876827755639465318427987926967445926682233168589422119892587231721379492687546567567556584297257375113272814451197741388717312939439646626142151614722582212494336381841445559518871939148378711327281335869729695687591327287118826948424285144593243264971771452936767276769128342567854811854146611427884786428565249421314717367498176545185921324365295566282921737371678159182417926572979262334951117813711951652287485391422717797476657643686714433852882152632358913665824583826191178373435559349515177425696295212928251696618567965797157666185277982952512347143612396863469976664868898922735985995689825713368744523314477854343712773343569333774815331825259428595719965998255535958938443374223694698177882344728411344571883151418215884927387128243589568763712623191592129831635873729586655816115154255126179456627564939419919314628119797642293849331251142171432243112765874156987993196294236448558624181386974662871579792335179931238356844199386433312424931813835551224534452874194236518488661295316559984171479783323161826736356911798194131198229425487961485964133832233232133964493188926412724997119431633919358546348879959347948781743124957882415383176119794572545747131819949468665265224479523186698778662617463877389636587786444212176226953139857699246724258678675376961163137697592173597353128446932128331979629735885599799533235247158156917771367696576528822244839634214871816575212663534647931882292679659316717872925488171158267424378388758335527954651755561192539347913844386961435491846955196921621894222727841489363847356848818887218379953971816171896589358147756673567854844452531978884797371837183857241674726723591751486569276442165123584144383367395931847461567979216619138253972354337973129826646396287992388324647344555446999427945634842563927542796239718759443814377433715569637359221875718988315957338673535258259146527315145531243911253677482386947578971523547737843989637866449295883944298869543732784368913712391583882767621883941377156326445382679735585464757764368881424852818772228755228884291989921394574341462246646424724822613532977392328431985625987358418651747465687329417768265981621475448185642374295862576164125262695593856173482968926612823348497837122628866142843484475597437919711772667261443662918466299788659625771496439786876611229187952713379317849817485955165964647727844755548429158552848434688359132497841673577421694437785528411549223379436257296637295646466519531757589183713365974537173623555539266975345561857399996247493845751447851396389918997512349524897921616635253154943793726768156648717251775189473742913578363936795421487885732995284431266459817458385164446645954476382926717532269755299742237564993185764397423397797771884528828216582992633851631386275425396117654744895971133151766198636136799254433921923128174784436949517522854145136437125592734427277929183397719441943481563885512293192429199832835163218487847856155177186867959555775413176761455752459935639565931469667233266642876658211155557582548261376949116672482386831479623447465858758495432659333351212345169553337156598753675899819933328273494199647592758247216118331247387686549278353157867467289293921577121838652967633368886795976924625697562658312537315984471963234683339484314365986464791786918355578426746151648275544622212837484226688384347164528868988161718118676485718325755542439125295895642371741562137571793515123492965292165221414961129361672811997415512122142446448453429599589328778879984126769495735765623444312179166377843782264739192334763761557264857136342594513525981256399816292913526676125277755761289271789889122688279795459835843751738615517675382251685567931395366926576223649754712257949968485986533143397272542667441337265653295398627335587654287221826371489719671314743498616436498824852823761899354583354885425215689761137916831379484763294614152137129721312328266632741111416598299271191332147699853763892441251267266298382151925281479513527543259677515699589198224165316969374241871339387176987383793398224537515447354962559286446766477829561894538925968876519175692383238217459342636413943849398426637458183115157797181365284125568313929329735494182117626826463293394315276525934933785276813122349651168719181584752278757169282147153813722651125143817613421624328597759924826329599161492363685433197989369782622536566582759382592389115182244377824473547465514622432839933459231478612247786148271453345481483428279384842556464488612249277517314232516761395634384487314844664187247793722274592721551834279587189759122337667748793774172139736612512625381945724889287489252813863124551535896374192839745915291391744887377894293475438839238268232699326995324559983764677493214264196775296441338594851588699115424882381834857796971928877667218487515587972531127128995552261198648197874836937638417862967967722639397688279932663348534229892854874432248231486511363665653638994336451263291751866133477738538952576582791775752453689352114987134573741717281225463388497775477834988157765776213431279846284866254959726293713946953936544829444739692119489583178369813195928491349351289236443259139437938767882816824636368573486218811665343313884146662518846357136182615844913416972112875319811419669943433663269351438857738878725728951217422346487172744522483754448548189214742448611962281354698432239141524647497492699534983716838843783147786315564526814275667441717812578119555896477774249883743532579479223611347815327216368522778595316566689361772481927857824763393749417334281438329184775241469634674386514636468366633137162135472718359612247863435728435637164134958729822517859221954496183486861641523664447368353782481538215177117474617433266535654615416723434251521254379922466736256727968264315329655535572233758231825742962483247689146259525347428872877915229777681315256689211998165765276144712723247785716794581156563267437699813581941528866861517813555294285322326366143637778457592112428841961597189443119733583684735518694643351275474246584842114564322676881817253577125488698134344511179969674821632979738631855294292196153434486472454196271589918927522755193531775984581549329121862836435678645142481424345256232324946413367669897738163567189319783323547193162744538775472312261483536235542694947723251479686523865488833982376957263399357798175614485773711394919238143712628179317874145174464386289351422318149716221526853289887713744965767637348279864172959721994381666227931858634121225186166474438958742716578879881397983539863556411671237894782721419761636881422478471159537698639484557935166113849844886545497335661363758458542525813456885617163198264998752893272517185544241449355644418597824955653116429463388743184833593898254544285129348112319682831111825268476877811621741697779879752277913589368329293252939917872988678926832753672877178868545732488371744818265443148824667139377284267557363796898679936648565163488122758817596353345898654161397289363144782316521199954268286885719923471591243152936242958537198999326375279463565278263126725514325842368395559957764165537977319783928737271266832327771467187165356128735841323435211146754349864355127591523756165269723157132457768417458634239745516822514639414245881643145818358939979342272685163136221691326298185928135384788981511561481991719291993522789687527663791789859668667918186944695451529697562427283873661253521946896745481523249427683717858942521283632674897848496666341133374393554712181763593157682593821251414864962937276489138187468573412888174266773391393191736684834892698823488717736936999657838216366156394164837419818773455164781394813218571211182957282698167185455676423443441536354392218715241717238472516548962381492271594554367193243696483512551657615969375984298467195335489344985579497885385131738152579513991336276963472874746642797647836758465851287465738382451114786359185679587323685513637637115521428875833554712251414167756297138825388532813927157352927536249121448291371562166882173726339221165874811846952629726988511412527995375368853925886474225165316995421856622813289827329635955655986959612772998971692455941494872477237385374261229364758786153381892629957363375211585253867176965127912738955465524848224921416828418689374711352634445726767438278926843323337389723285769492128991583715937665536844319348458238276546838594955538958973816729536179652491785347142948128679522128984233212625329593313161922114992324634795326166486682683783183314665144655161799356514672979399555157313828786611351527615534579975795975753493417468238771917914374661224453684339141817898598815179292536884116191189759518388695613746323722422421485435153812461734255437658788626249643833868921346877433291161675538719195887911487231349355412754625624193773812623547461891165426867366543714864117643622727258734559193364539839692854124728491835833159311294942226627189737891473778597596799911572261932712748914744483162943988294186367431121584822117391588498797422954965922294413232271919779411684881371499649941258158135865714282118247119994197713594178548857958862452441749411669956711674469245389423485436481476145913449353779621858491839966469959294928286246232151243137563457476658476989692716621712558783318964712398358428989969295863293178449468383214992896796281499687521366184394674762332849977836667693381519976342474567454146683241468429315829966311935437186299234965874456341871973415193622534829316742266342238468968138372653473146162675797633329232148183331634238396764425756658742549762734137856422663236782455598464645137723344499611277323672418761364135258578448556277423463229255547962818553486892534768171995349135216959286776828285982161585386786282289756347955442547585813581118217172685279613747485876113223922528676194954328966453854264356596364963357679464988373689823462977472697354188567394542332666864499657382689436964418441696371529564282449372767197842881317457394723856862947656339417437963692964248724817562193923655442611897221873253898897278443976935914615682716984763389223398892381652199269757123351352571351478532642557322933267282438463419243396542163266472191223958287292431964179485922239142337144754886872288226697711723835438812189667874785444114975268692471588554142591933334632147886923161815217367349662934146735327512582993738442298481694366787347585685856671788537586892479293842399783439318251898478515423717736593836755559538365115457716468927389864418441167667212771317218837792231965972727437494425125916576689674271243865614945356836374932798296319595845238662235862154333241661599984496351574959163485588654713612941465512896792149598443623973965912552631291394252876247444641139274427536566871167671313766678684936679224792797354484641216855348894716275344868385659651345769457728336658935764328364287644487259962436328773195821128872119824619751372948348818829687798671131895923126959721692551238995987967568758253114953117129828416192747513436527823223824795535144227867188741322544725185637931351936635488429663943341794496419412954492143998283516575714344373468797891291117268795275598825151839629638629335914421861642147131971833774717297538514567671473369452639988687241171337994121257272224112869683679593282483517113325625691658814754963191351861282543993947727181576786711885793946234328989698746313973951539713215546335393967687875179112981291655287596892541337734745823832986493152631785717488852333515513242346518477847575459572623262476419148886468115559486657763999548433319746657291148683268558491234354328782581594351576421241252577819576614753977923655668673821599356817372459241595862628999848864444169314127167643715583566342776982893214918673832489635268426913283493693559743971733348189679897227476621695872754187785753531342979531699167142438116561723746833866824719423545345982962235827983564745775829442931937238611398644127485866799973974787657576349731477863432328526974627365888852787474615736676173535241639493461218467931498114446751812641886995641334473183516171951294283862436458785993233731725645142337459974752241552715876349644765499387651764718989455978832297636664238295576463288684467676338874285114551986384142587134656544853353797685214517745457712354639854112771381541294638388413875651851137946188118469288128396841725816511119898534542343161644616997647636426378613736143196447145697459991527477649243332876579938663662614349894896139326853646592767917231211489192823417772311585266887998846736917256923944981597975664546918519223814298496335122486821421261183463762599123534561232262378375591777736637869225237443651476826973545117793514936669814841432118362752439671163527497772714814539795846813798948678444524884346316788358637431388122453741164684152987739472598388524787893241555642315252281928861238826221365628838442551543328332122633648119883625861814135848949991355955933194571551843327919819924319792999445399374595195175156386155245279698524873482888473819524937335294845322558647374554494897529938322733878742469615943422963845666739126879114874267598784977434196997564454741166815674861693912589236562834849419965351411599658661115288661591486991131979844688698217963912959539532428412761629539225316499353184235965239172923825454884817916438924335233424616141428798498921712144666887247731662441278151121124468945758322387419436231222224559243717548666216149661672884238943313166812422936881857936248143363558939261444822997699122816131476278174118499679337248417821857463361671429476398991631493486133358325356282711499462492549242476387723321481429355585648562697225896927956197833371735561629341839421226615388525586833885819991822933583921762219892189551339421493641843818919889986942964714844197189369251138927591587956339728326352366369159799657342964836657282397833727686542264451623278886926617878545289286631591798586977537214956563482934972141789475228848233779116398584787855683284866678955755374922489264612731196664448812338721868674134296196661994765897659625481674193582157145511879644596934982389528532135675662525864457754972814666767235681731326761444831812266633454712785717373316789768774335569949196677394535283958734157513586396853562923422716478874535864492986233333565635373168521887225323936248594857373488339416928541732345174458185334155985676429492535933467265797192489947578417658951286892371969117991648477123828836516642538438237289827628911783224777938662473291172743534591612179762537565863971144486634695883758799556822118112438882359737892579514976286986219997122974662718658955563159651558249336681841616391845141915948763685243227377895869463363856722971584794431998585411646821481678516875217217955585558139177134884462973583387625269962868562848383461628746417823719974739714632867838782232812181968341321674769442211313493599686419549596861815924845283333381732764623299379751144452774192163239681998825781685139117496592814762752634192169553452982442613978253295584799643788976129279367171389837216251537325826633658355383266985591642464835396642366784191588147991237519937672718376776725528327431979763539699426183554996726448446492554412354941286574136579493933187328542745843489882437367559746477131214687825893835662325289827528547895577966349896837445426967819588136731355325896441961467236274176648773195664297184229832449736481256564911329927449322455326954878424894725627449361394726391778518878349719444469488858487555214982716775729954883668595331751158227685256141538684433956821725536395818492344292544728219271723341721441674173226587317224276399461414361568878427146756154683518548874938615545138613297666896651447629588932544394524278758313346917845647779298541756622441665154837289847765698674235268323637199727611376744582793228949393992863422449812369438741633542731815156379169295236191953297369339733359256165676276279499124947811235249755113721237266167551131243546491991262274999595231242255498938128243351659598991824128567351162765171135973773764166911645631815393315792968234539129172625515135355714819632974875672834284775299561841793899365733814232589198943927986165881452533945193182885266854451738764926219528727894399874398461146537937888669347557544763589593234737595361284837561836184934246627367883891282937129528919234785521299478396489179131721733211552661597326753661563534616726861826965786351617653895245826492583178536251311965244657128668816122964478418584897351963729599911286533372111598124219481339121138671996217246148468296227229232997986696319813748467988799613611488947578468722557255814865934963856512336198242856246622915311475925158747451635258899189419447838343916652714238997895735769442265455129181493283862344719744769295716714742951336469739793169879358718172377288824686654849737542322129345863734292746131193747868968883378431848993515513787363168846162814777667817358615241336229615785252917686412162565697298169637952142891431536683142851556519294317586539573139233317452982892332969512457641563782417695875987173923167822867146375845412819517798195775961665181665995185935694413771356411718875264762154513844129144664635491826272386637911212114361613152223739856599188119298534594618711973867497395214914865295564344232417156775295586861461716131443583297765363721296231391893846195393977494655664176295284567165585672419765221528238556882687245612732717238389183847435573286645828998711538436619331777986648121728578629452912834891689143944815662323357547621911968863155445881822146881532522427393497921498379583169913264216834263844873691549745735952452843359533819269224987459854978162386239428424335534278153441345563175825757169521837642876799345542822476972833816559746315128461542688275457746382155664166712655723548964646253467724111579744215468355518123357927328375349659285919459152377977719536948793612112836831967653322264757627977177168652646391523647992753449146653516679388349583282356579483147287743662584433541665393239534232895151299622866831459662524826996591529371557939165921171553141591632467512295191482498433537585537573324323831868896738981538181737158381452427216768556618316488283919945176787354218758589227835114117414172697827782539541223623923753159319999767729653664826126382486416216162743697954336837455593923643149113472167589162686145327679873784929225764669727339852498485753944955531776647369243382129584877273614782345962776194316254532247518875998483661169579184436549199866355193447453391118431975883869484892935761188187821718396572319688882347254143814784613159189137814128743236416785135439347249929412284486926673185427359972854785883231812359657188723518784162549762742877622329181331118424467322485562323344252365365995331952289646656881294321737226659734832786342828837268341953616478852129643635418233956149311857632824778939479171375879789863625787954736672569587163941937277736331594161396255851145236743596129258564582196471574886458697298124869217396844871257792651361162447456176659946952629864891997131655263727611395356322791798381446861133783712136758837786524657133245493573785341112781341686388592131386444866967935958915544383384312945232827519994785338557775194288612783333232698122965522832349199257481593652552547189272395214219847886141186349937744963483793676265858766489272855242478638885419885662199916981594639593272792679235234123622769123151378437594495928228479544435631757589339678258869616458882355239877889737542327277722699714126912689663216347154814963834236736884749969592286576963345557129697951956894913569254468723514462167142721221466461797577627954268873945155181717676324985689986872165569967937784416694162159536732278164856524854413728922865537644559834476861291572362548881554888771127682611667873936715668947894815573534688366657227683476166536963325773698154865613849455897583614171429334519959233268647375545842984816365259172497251877321714992282717223229458163949652621111228398118321255151334298351441452171871793716392325633467481425432518477646356377631876614545177126953627242769533619269523929621216457162246198358254295486437558183889893412346169569198531375172351241481514119955954697624921246258286246446232625174735137141654553165718321483889352854457312757853423255283362386461795435688374515721238464582127986527866784124685698335773873671222997565876234783516873961316337427163459962439679157343374985636332576472514551565288315684146669816452612947982319239697982557437962121214883822834783481445177763864873152443526875113156664338514771186219469937447642287498348625723334269262884557665314238989461773188884163417174694125893747715913891286436142392592162446116596764773315818147286483515925554921487527197711429156386777332623552292881661612495924682214465618637726762822861453711832167528371941617788863998268332446198824918979537313692518421444143834225911854474643883523557862234545944129357721898139474169173527811391235787765667595891717948538558659226793149887266235829761526279272841155822547151642497548164962244238519753457411449183978374487799659524768488423331618435763442296248513451282494455377754877996699349673791821265683346633231781624571838811836383517269372348391647629599472919359954981915834787458388325424358243539621193472116934656987392196358219218544644227572168787987412231151884347658385491269948787719814882215868687125231935783553433719939316264875478479948183335596588528935311848585568377599939677417299621685442887613341244181631349381339662741499634657946897821748862727892831783147739428199173848911788761748933615546345252336136185851833726865328842446579171669144136396773314297331867673729633935544221452861472468135387359541995316441525553787599927542575474894537588933391158949693739366646987635427646632424473645661224612474996769422463799954319321771816296762683738197183412333399379979655714985784482621743962897885749399597965393564527614893471943853712517936272613274643889874259439469252778828145488767644948871726631797578381828684447632519471133113759677559417749413542479472781856712557387942882134362198366452922166784478666667974284929643734841519856692257954363654517879352292176545751434751924365931755975172625989912477377683186151547944185583474491227886273777731424633169396536547234732899662693954269189733376188451549494553758163169933249747482535364629983787983985299173711843378638427785473662171177337312447389231798236582698795327147179898811779692241399167599282898877747724783996825721568386465252916677945324795376222149785219499856541952332757379473341862791674328314436491117944268244312368781512744462473165572386625741519659632968215311857986447911161926868964863384378966519399395486962667933352588375935854773221696762555788737664956421788999958534669936819465759481458248133965321213774629984823857761573759261379647998886277452127263437244261123792671287822933538869684889781159316225886978331916954341299294114736124711433524118332442359751123634984936367567491534568533545896285577183838677511956797952431147494112275132772767336122153147785275392794871937658259364557325732251329695698354278193448169522736756616175991216914247953895968423183789268288677181875264558281487656462271946745722226571488427172628835737481762883538556387995155848329158123211453397825614928592223116828238272392173524824764874175656469275414511752134588776263627263179519859835927376143658711536733673657538931756259514375327879246491143935899513553881311998893331335526995756192388219398277491412863543917617735556475282822752927351551291953498935544624798889514458467552881673226487756634574917753417476443644282856518855236811239977491665182166717471994474486473913168455561222869847284512148348634469924135111974591842145768621867758941542439888972165632474469134827972124981777783345363618419792488498786744521734269439261248376925882465697779975827734746563163531666235782679159723186533737171136648216373277258446998179766869334143761976672515994791776443375588754731397437736196163786993441225577416239812411915163753986897345184697577616686293467755344968466724461921679389524388712297832393749741797625567984754954536755128981959711166754238513866442842549534585482956468218595127192334285623161266782593352743452565783335539544123363686759984139517739173126427643781355334535486247954245886449717633245497936448234548126569439283487826618151963327918664495424652234784589576896597343672113457571858296144622261874932241466213186816428679885863265377324835133713253129997474699116738219513772997287177814263163635345385552741359166646942137398833259685848873668132624737356238443391675443618421473845579192935254321654894644671854211119192516837782162534781766275266176236797476582524892877383889497828477124662713181267894173911681528221685745944958638135235283345246194677152356217999412929352656356613417431952641589671485551175745865598582645692648686132937591976425173236685738585197199838825466953266724287945444153935826451946342724133726259543746217731833547628921282616551813433996177421172863971131675566887187684415512587874876833389767575232562992959536814496724699336749894874969922592841322771783357136522718699748832954129188493115645715664448339414725623453652115486932375196937317869194269451897381528827511241926825331264134861993684334348238719222237539815994162474797521481392594157127496711838217947876894934447139669238321939623399879271614416262185716898758987965781742262778876256725589377963431513629787454978549988815581734863124172627913757645334873855121331628789479645399731118382684726787555482445875748849577735195663417845178565128892658321629175415198596351743522686497358366796295944568542874931569394111589288672927671847231276295496544452199291846831533649258698232656856675768431384547441318121186751318773595523876419449232248713733599647199366896739743856626988237181888715393865838114664352165772859721149435997717163578684151235196299932522282987225982487489788397281331458546158546783412381118727758684436141874552782819821683246194346848826259337518378426549148461954725441362192838759293197732836297731656855938693612811584766375847882475858617868948986342868351939166541391966651458973257972164869523542647293246943147835821316256491653263466958353835326236841589434659986471295487818432995143976349227655674213882524613216493836837692168578657798169369897979653293418245999678363289967764618938267972461337153371166832293975781567614636321556562134243449817863523875596449185287612745726491642839367811729237887961422962925197124794764776455141273367468877568838314669294618615732567244889773583849768228978552687391689556794978843665553396444263221165645932826171526745379795996912465868838335486959477346745326462837591433961455483216778299735917667699875821259459936835816386952611587157972817618282561299774834771476263354915723878886854226594541156471771143329117782914643997992538585598719621378478722111699742589948799651667495265466435398457349219164139869286722343872615338348255556533351822946222272714537342886428652733826337554524965798866417262334516148773235431989665385912134575188855168599587554172552763991518274789538477121318453528717867674832774511291332967317188763429713879139159272478989687464595555643544559365592271138763922457919164518324873989882647947273764769118741226314292355148746922286187861862492719845447212794722439115182229291273596326576757889788286387217123473994532216884741668277887598835125578687255439474382879529382893341997713144982499575436354434657556326431818847785327842275539274895436497281857368832157599417776229759456341167751855693534281712676492125131715781138371789759816444546947917474476214362246116649973666357984331952377481891444332586192781113196212948827851283231838996997215636719681365372694576465965665137797656582118257514131627173576235889437547463222635576273421134412445988723834175533249381473623746145815298495947242279217468622235515114852355969187987633484495945446721844429317995557775124617141612584835856545989657248598293153392574958582978944657396296411539676961729716699954773492923875732328479259719694952289471657121351178982952811196214141295896821837525719879989598991819398971952513173969847686566657576353347497684778753519165611266782816644293679454685591151175743824477897954887246685689586159432768347942329932681938986589412577391993124926174176864413253389119918219682298596172512636864754644463411529458865895967532896168584734775691575955359993172677426787154523559145478358655712343811525976121915451276921381514684736112722812245253645763793161524935195276388894166533792918151443742359788657864526785876689513786991868613388739397875323274541149125776914866784561983218443445337814314681259515593793546679293872212559555415854123376933743928238373338878353555771373547639542378612377292556823949383956798926775812522665246531458543122994471951113267681334368112322412738734723839587619834635655885958729982373211872753115469848332193981916327394468768294288811919297297628356692457266564344334244842414248897121746383526948352546776199878471544272323816732875442941928655618915136316988155598792773548197887289811497293652411587832621397125986925634988138186867929847648236827281578371177554345238882694276884841667754518732134922162478966348314979311272385676772898695128948445376373491857423593442754647471897324663656487746979253517244324955311575113776363176416939452747268224725981526624355847872946652363724113263824248522298371735951223533748929333975283919182467478632895696518815223413391546174936915573934715216546765818415717498844246415835479845425155435154747159799273698683913428951555838543412427586434635966761796278922252393851473845232897856363254368486771718982594673257873988414242817777564613161284951258888312472158795264451477763777566475412616486781236253828184839466996157794252374888169877251195775289948364481778565442267166634151134849278254999434538244796919112485493116495337589493763363353489928228858379937956132467582829622523497124116781394431287359221263492112492969188439338152162188227327566652551382395911215493225846482856191927257657567186397771397572171163867523278876415172991748855841236877194772391796986959745139231627426882822891588163127438232292823412573662598414695237159168341579627973932852221634338334157114966653854929131283525248543233538184367758561579829444286499641558865439385443224257465995858893778211238652873287823322697487654465466222398616397528687424977313748451589349867518376916393123296121968882666417344724433635844345331118265815537898242494878292634644441821363943746876252972125487731712836128492979494671883211883853935537365542481737715925993277459992537171219382952443831946671559792598529347432555647649296252212351293125667713366828847462572586595797253933248739513247383542282651365557751523462776394637745899725279845986221488927361144523494812785273785823514331233574712292261677835327566879892138598616721868442972537214183284824673254229964141193812218326718965378591585789889969269981551356763621558935913718614512556581156297343145645814675114269726711339953257692182547138444314864797782196756853916618532753238617375374858324614264196271483243759286569391552866276783611824188196543462516593299756926917315215758994144783992877368967698298674363776134324481926712461279926352427929442679661331366473265889821523455422378389326842167535416457682132358976996471575328658293842953177865464191158561314123316481798474918318422168188481719358327165456367987293991738798723644449763378977796975957735686859172147374161829516891563122695611695421836717747337483583552993962483555135798531158396659848935163327711271922927845491383275572792471588589681355885712919456436673621467335369847216497343885432683538351775658369997612898331489531455322886612581342321243172924958471668227465479599614919991385232177888513941799748148927156457654332183367346221823715598944799132228545269779761922471365634436547382797764628611747763225557192739818564825686659335536972671752623478849397862783235823879854915342915944511677881472658533733347348721271238827853917849121345968631647659431915214887778892387249293858782782291578346125353956865241919976185232946457872156742356245942649242236771456462925249753256319313435992946572673176941354874785936316588935982398882816294653934564912714293321189371888233426762163232541862951876864675817573677789844828913981556723393841116875758929729997933594724198997574938721681589262422783172862517811772639676593635793199176325985952114971619871351549455866454849948445485373396331264741365748543365793329457181186469374848682896275587422128227762599962729799426964696617419184222918279159981576825484125922444434341245133178651189491982114457769774276573438437265253364798354331658295527359976581715174819333387196647373268897877474764575694413867584718578255882247494964383668326586443257735849588873292457278736368574345728566254453597214186692558762333978692837185815293762896673785982741933631119639795965521788276349343685695647525892352321137751783842491845586975181221223888946239457442879365864884986174868479314948124949536813382897183829849243944348382761988167776956829734138552369345333239996491172155356191226149572794683232238334758367478862819888256569662593868694221916177965779225172231496246567557165841317238635747776381836581385768788491253726382811883441468734682431445716333423492725751533882924967437959391539692266298485577863695279298241119215715552998674823341251964173184555898187944315648663658855243587976884576897352227362156671819616174521211935146663778434414364871213323395887453629353783117584514825944423257518543691891648988361754184319859782952831994772617573871291284153237321318686836574659679676171383814933771443199354311168665673763155423457755669181186742398564878419653227774663651234354119497127962283959315469473817117946657344452646565992949128829513167789124278724224497398279938234812713121782212442152868659563942112323291391533637613578424517798839147176929273832179791151821682585382973889961267146141132989247765742929715821524128219318222876451542413883935336946977689876411453583761153466969656325182622666814179164311896761381799751715486793698129199655682641615686224782942843741596854127178636237495677752815955649842558411813452919674754259693585649468449784764721985399158496859794637595761132129547452371856625178726292295396149884191165636134895414623152565443743849492193472892264458514156439594333432659839144489239443165914337568634595399737549473678277591237198348867739474311477284932944643557342914942262318926227412874219743932325431661442963693779179953244466918964997173332498316291424851441346635333645674494923154339363386837369414971311712997338154472854588438715745795984526421747822369911881254733212562293267858965865843867239541695815122796582967542737459383352832333492848135777749483412636718831169154946313186134364416986858864777161591898491725246743318184451157196175924884498963382189424428127534925413833637755944975326128771272611974236919493781212813581416566553865355394662582653991831476931296632159515653716996978926597617279364214668839537934625175825442358768134997749521882498779213347913726115788521698837694624748539781381768629579442111562935678546565531381237172172227399866519155598526539225332443162947586582139971423335857899196288846584586563514746212899718325199636984521761133753823782512111854551891767769934214463413622696831999175631533743279429661728412481387741682956274914861832751798717489537633238438814785751829791347371933245986766125698781659772498481694292767468728695651417547385354662737463245994548488233851285531613348652249584332144318326859828153917931978391494834755339192916287878876795744925379792792872499177844513876277794663731918157953647877263769338784867957753346699387982368281949325119764897566495184218816999721221987376123751147366147536498419317133633798782426939673212942872564726984743875476434543646613758128616971357684217451794464639441291888713451871425485721173126934992762897873895343715722913495885841129616986418678149238477844337339298776227173777789525299522245163821541248524172923522364467862154298292832349439561787123719824322932114337259214372874145935356447647869575485812199313895239853517293249588969158988257668644784413617665551455233947613456834274524278623657169454124359831347589896747913517532833248131254883771335925164817989394196191578645757148544924613642849549486348794497341532993145238172118532491739454597695899311117217959198162195555193672412512232826736632632276575733963914225396978521773789436819196396618127614465422599422193812431989791452887328468399499788721729677622781411246865715773544595462222371212234721399756999459875985212213236686525479179913881278687888219658398746743533812838586374183158877641314566737818667284582786563226236571144734588196444512157268782338433714953861394745849566334356289348733898836289664518121455953886748818591229175425226361655832395166825936842373794319463846174571162555938256324754589853469796792856448253775149476452686545125398832646814216143678736479881319282344825135648886668296284214122245625128571359825735343653954167527128756881763225748893196413154745629298273484858537747476671955517426242461745687351988544538978619124358433871595683335777565325327552484669719266498855691131563227365639681516135819359253398529245597555595297676592516745586499858583141441196656786351897437321168362416395958537152231864485481326356886371213727839815243672612326814339331513274165578736885997577899733763981385632495872472939618579746933951423652948275468238974958441735777832835742377989676161894966523294386761876565423938917393844953471946823568119392173713975369597589172237136946153423599136974633528641332926531752192984479742893746778961513687777866193166254328885771731188855521129335839261858425497496279622614535917912995726355184592554614856346937136588224612161295555839554146747396116467562571925497443737391129638264819956957576229472191193855761141936539267788625724722116563566558111926684444825296486931187732431422971324696214743236333195137267365485754265637849472661264789516844418725277851787953869326167631969732248823882666851762466139925998912892989236619676712414415885685764861864334382852191421819377743128295437754839838961931757439731641972657929812796688664215278331227471973863922589335655262874894532527893994132954429934192381733784554743245341782563963181243421765129333756714969255452466697662264186361831217132556793352927133532156139149752896465581681384536639332145119288724262229247591153875188488497168484585419158153239638576395991728966486381175397368915534922983778326845853371887777239421619976797371754971168626349289249136596323388675671523156963876869427839156823379321426911388954776468363855271193244744752555923468385668985983297569835878459685414769557955365911783269984943373648592286712292269474373766893156895914574683799636953228896111689269426775954816492612381971947854785453847226655716843821814588956471655267832382864155135473257785849455137255331624136563777556839854356961373345637283449283866641165642769992555272526344619273268723888687622148289724173999316177256914576779597567765154184572386876133799548273859354642188216783385553596314598422786883694261489834274784133865132529868284312384699968371556958299186813133341699685312366849759658237449653723562982117681556529232966821272336434535283247798611896376374395938489898112871642619146654984476214283983261223363276831129456976484682888899126432915126941548165533712572482925115516191144741382561698736836437876465468742679734894667148771457183528383448321789134847514658356598316541471448342725466721634273993646583526449511936517558865165318966327741691683242787663178499294715479448497611779535732562381751287122962621688432894949177133951753837897946788967259156849144128392981684161846451465948843244964142998494477122958542325628914218317146574275378112142594484794523136773179596386491548875145586797364671519937666528396819257726542897838731486847766347252822565543326978926599365987693674819363684261152611536924673839219135383799894854896587754936857859477557425799288727592884577153981634365724743594342421766471677631145517979129444676643288345916891441936938871337881998722211881724815318194216883873643763732713174515213623219486649915277448635985415666876714377257674497261669998454131691137742499738445599388233545494486159289153896244263976229657186572591396574198595781392166853591649678115513452729749854429678632588398759973234117982414261923162891655451664163742872287279374443497733887282556633742457373716956628716425669311584527235495179642411142517428466716538967474337377371421152888459991776414736453979921925113747736694334596231427218399691974646294427776388318929848817784147656197665282912893787457135549184683348765855945313148751383192558783447923425945138894822121165932276857197682184963243444459842958633343189188484687931255239324177399587496133492173198629431737366215944445674871189731764846662272655998465733741723789162626833988476212775948918287172233715994831451527912693521217321591191462416448248396547558181149148174294847541379923658565468372277587761524432323676333868695611448124165597629777418575433793737638934463115972511358782151333985786113324791851976753748861168536127358627692678142316293288931643267927666733426657265464266219325916653224466922737263478188929499954265591282254869117795585524318714253262276653553232689122451111535642768323577789936838874984926471545367523281164757633821311858792327868176182366918289211384953174859656255479179887897816212418793658364611497475154835345376244399125475423149554826349776381729529955486679633915539496923884635638255723675855497226727985358891516176433828247968539337752532572177721981614389142954629761828815675663534962965951311277257948495952213599685188119126732525344738848188945343134935618659974346229937611244446749288944831165766768429432776338246149413427784449271913279792416119949271958382298287514463613214997914998717826645384721972392681371669529292755183554542661828845999842751836333577931197967741231115378362783131822921526389392312628544622823895986947565484513675428779851139526211855272533888329186862864724425398726868156778766452438799141651431117811487343987129889792757679681469418122418119187955129877744768698419549359257842442338892358128848882715611393327549327552353145823983543462783436368893927232714993245472541782416285477298369658762398442421559257695314231185769898632763727623371811222221596575327494764426553533544745694239652382667988534785929283753964928157222891644911493321685771263967778958912293341662739296212597365959749958172238381291729879685179942737634847665675647624471777752833586869536193556297534511265346685162113593747366198448354878526831921379453978676411245512454835927945879175833563465926949333824697975781353598744135729741823373969446462612465676248112284311497431166236363731434234443763713336333845469741683195439594764187529683139893951359773631916394155913296184379483251414493123426996226723249967283312541842982662272643947833651971125118285451567621923516761847849349257783737488461729294368142975881658721557474335254679473579957911783636463886311757684831724415582654399568197162729192164495943196425471179774935944149588862169692127134999473866278916782787756848659848876952558458927185769443188962847422577312183691166988397993165797854573672731846424242841936496189436684766749372686769752382789622389544228135293758623742819771898753254867375659511784864731719565679155673938878846322684753799166161628811697471893151325584581986936717775493582676798256594572965635292741987155615429967414511963483555543338797239134665116992249484837251828632424889479868172919393116198951993381327193911199939229828613793939851569641649542454335284454636511655629663526551882381635987547583934891131676663771833221964612815273285242697874957368344615785293499893963641934549364734291598738616993246247582418789998148811661369474976634855623512415286142257994382943337788948178587181296885212216438196888695553141959537848158679478847616249354448281974767425453237896491435758576554928751185498976525557922778413694569567996784245799481666387647983748427196418787635779418151749922754552973741412868788494557447513857944317347423282939374917758942635945668391517699427816572365416899356184934784625315953177417986812428711178539969544641371978659689461467219194837282328395169817852787488386778487527337643634297475293921587416166889552794923769179462519251855523366536827183199935286999974525652384865573672574971571466797362489766213479536823869915574291438394815943884476662552198428451269549134212549195258357288924939873765186238128533368176967259137314791323224967393999585298111631919821222527146335273592493555554445447677371814321569718854387631263721548528849875744427746518424795748589263141593845619259191369823772687881839214564578477492374641788466448348693941767416443896864691223957796198165785338528184543444739599987892369883633431774927391239928696722799152294362653371394285853525694588617933187315434643126468727265926618816436968322423968639446826487356899485296328623386319791338853532368778399241467987767779664716831697436331377154729496353523195164897329345831392232856997217613972693535117137349424914724464562721963473275899639129481717162233229556763232995996834814529633853787262565664163635825356318482651366523978264327717333743572636752293488285426196718972318471845154282191441941529316327245137523942932874968818748469274577328592695782168858622467463719332171339796892676448484129479312328442219888136679517817635556677511521518312978827487159694151719752792622718478227721789185965939198251311148958531698596192583493216247241935777846695394332661882595118291678252829338662827895954454253319124295237983164744237562887217118528932638835298512267345855555496289242123532373477111496942371888712814156273411291248722858836795975389896136946959721896687256733261139632235729672752218823575881883745967438275449461241388866845117694335152576411424442337811222871294697744383324668771451563648757117781118438774549674628882647447915914735513867813264132186818498898252612886567772264372843682461276436424169645762187352429555672195747143896451469284225179627726289782952596622439841356217879477354449587249372246271882567495129463411124939244759837873692194949269261563466732613488648747931747654699945518678817761524316389155313296746493374848889219737632952371944583899173861871844596782828892358638536822997961329887968857982844687168257834855743427213981173532236949723197469712522611616958971564535734471331573543594178874829262634969193138372421738415896792855251158351177219372122499979255578573388385116823925165151956312258476395695277468863267343872186823443811327964649955678756954635868148169856228114559434929271657551467342853663817841331257213867883526681855135619632746556742329561118283785245198261716378411456356275432946446152222748678693238745276469994518628883658318529393719335325675336194358179831768939962584949472971495212175152854749887272127214133642849344327681568266266976288443526538761528564481816593912845995548413465312549529968367441848382922367777829762567492935998827129354822594469525254445835726428442823863218159554787379752483125286472583376122499126981118219727443691727329567569157157957838453712773515341175189683468131876156214453786883279247463265253746367692769348565578294411934298724373549473127564374793785294965382436462673318645815273672166585637252318538383772298456542188541146365118937194222146581588422325841442234734155257785643464596989123135598892215974537763213692593714244922142638962637936386345424838129323564361413915634258689961772683839354285485947451118915871139312226544962454188189968355456286288831227352659457344168484111638519521235391235958354183482444284234247766788173897295433667875277699356824631999629151316973499158983564936926877772711498637523319555846428814562742769532274494348732463253599662737779896225558321457752992756828676554276621552686252341415997864328726376321478983916947436192433384721333379157247841572172214423783815941846469943878175295536694874367441965868946843352794354631956688664249843526751821245596591958714228912253817998993452191995865266166181461168858173273261646263758456583488372279585692755261535271818157873189936586659166218635715529216415397845419316835678149589499921349124564484965423126964883875819711146374661291412997385662152921915543818718848937655912115287388731812681365157712392412911539292371439555969639768897988141859987129964449393168947646438423311822717242251465249892444275596586656369374299714593635942481139784219135454315654715299447449217517429953483737117526441183992643474269586768558219844732121284512937765441286915878242333351791773558982991589166871994228287254388176375223228895794196823538867664282613715674153452933376951617924174355613996242344661156216797284528967267872894258354864333141482177884569539853788153485688717824692946879665833637865323283765223296783638922264848371598864275585152415296212576494332118435862366496915535771319632733554949165794384736183113166247483776681149567849447657954477295462939134979653586249835371891336428321617562628133116543511543175796656482453355556198349493689158613241374698144643476495562467327442468727521875922649996232843586511382933119519563553975248386846975166377216262427613126854438924339956566273323873164658171762184978535142353549746299196972279567319723848192965474464969175122843713176875971417844139946547621871187655142162744946749382143121928782285281355748322249343635635494512939153417238332265528871499741732636956578392427758634564447419671156712531662346188444877518464469939172237351848681158799524851753559662486361228323982833218273437484521157257978277359569476518236488592297883691324279196547461918756856535884825233122775312391965649282569851453564631151279265538536683566692846298292219225677429166212862945643453673485842562467188364356711146393531913169285882518833593596125377367572581868128991241389982319935682828815615494517436424544446894875755296645175817448782115694971445865427824395928785986354742686262613284613193862449964437695212251578748937323355342684334743758795567351972116639786198362647495852576563763326283883628772412886843488765986594673934711832119593832697985624881263443535625663835994682933321336461612173528792389648749961884529479676827796725768442437514755693559131891471847771812553827386631533612547521387266312583229772724964117868887592232281492467437724235899668217421638666682224995316785742562292145891458571859381857312356465579848882638614622686417442967424217885157926377435966698785435734523937518235767353823681922585826128778572958673943212193239512213979726811778862272279373333444631612183148834949156184326659822862169274157441445944364817798873978985379924947341756946695482687565993984368991956558217545792447836223459248234677488242591634427939374287199356194917956919452933959267866791391679375865889882276982767236345392228694282159266763928631254673784554862966873447638481596752921465741836413636498236275748839865439411941294823635243616588475897736721729112354867127665491879532183165954988364966522959936878867273558755572957417583485961757353698363829814545294431716871515754481652531975493635715372332887224189232338757929579896937295717125938159835535563353854664234845427223295657284517682157469642173884194467274415174377814767875253542777483823229546336593289684847914642824245289711359576434717497851132456864634658696248618347933925251735297462321834585498291382817779288825845917365795514432692368276957449931756226565997156273988583227118163684239628323831928865277888675942355116936218219885412188846229454764356966766544175172955566411676999575259783189696671126756723322268673652869718366367932493523629577832916876613138711958299451318971971657217419281264963998938816812856665295223238425614416277756842487816326538461831269787453836854535167729556537554523146428993456952533488831575915128651439674258311638419465856357221164921345175137868714389815426422713726333735511361698568999641611883415677127243292956746699751747887345145658968952636285159123799434827473268954226634138828288131492139345139431882275165864665695896629112953931148544129385744213864765768161165818291137691911386653129824939428228139878779897552753635926857668461448214183727782145437112666412435245543794573775228817874414546159413683939197617477154484738324354422614522272718513841213945451791752112219488138323333526952921185184315133946866988339825826815323643156348813492234295686277697862265688469799711121578285744439544992847796676576633441815257191499663232788345997221391715514542398692679593982613633613143586624464521451759819263423636873534869311456429319314546698275517893713757288218138463932758299779839294821622423359442526425392174183364325456672516757398716724211346777113769819385914774445655779445154421391239628985328783359183597928947949911788219177282291448239823527497466276183791811854656537888527253751367536616672936579366117721986112653313869943599425824585684274338658844738977718289548195422754599372654432111929963652183256696523687129128129895151368573232773931622423224213697624469673738922173114335645894666992857221922118329542195484749338324135126227937881971328782715446748331851543221297238896157599273186969914315324135925521178985383878868299632923425855862759287464341159911183333718384448355982315318299297539799517752676264294614523332164933874557695291428668119243438722998353912412442118919823955826816639829159183383273154259631321773755659458776183388684556566533898253297865463789448683338771941864173758284443386154366142246123519774582916144548865477571272331297536636229673359885542549571689433895516363597466918253999157989268619234483239619524723627215232981893231533493343614755576978176145267311441764923398745433128723238868892868151479354786898759862646426692496534359727395958744888538187136669993864573967741228861669471936735111567744427428214369115198661161116888119752572887787375941947948615415371426414272819312494188847377715846386694873612741259834652331714342899267336489594476732754714146226232754393341678349324684197628239395733846814628558817295866668697959344823275828798318784341189774697868286767536445323656545511878555363737561914535878433764849675112384121119462838669935318375775792114994848911777669179815462831932331515415472937845724259323426537677917433525218569984815145687334923645986496242149429834381994395558147676281493334296523513832376279836453382694913554714987114632595148475525815959429817417779929324169591171576517477118785666698893843749876436153753512978536324587751638269764937278365918648885651614319375568374191581343122576646976883348165453392324625773326712489613418743963194555921343813941892132814191318644145268449633613714884293213967351766599451611782259568868154789745284128288256261226882797165939447759556461877888466645341824757432476992189767414166599572835577695294392358888285834771754391161479817922799527999357432652647574553244314254853888419675738475629924334559934212952917369196658549862117119328413692327226872614481691281121952299321142618769297167185976161279292285345122922626334731336343242351775375467438141313324947251385352679295847731741973356961188522788597171753716794828414413164322171867832192762143874323538859156132714914188283469771132816791293464854152869195952963133793722157422825111819215389692862132245877949449429349767626893895198574258182933956822573252431838676981889971264755892115248231976574442339245619988188512425312958392424347788686485345576816891629761184853511148563898478957928984891375525528455543471265866644934959491952886339566583967532814199148133311933879417693434524824737429758731917848516749181562733475249192292775525287985132294521934944243329761378967568688129223515828149125141837684341242943283765577579872964613946958243461737175812899984445538133937263235832323391289613156858241756168542663792898768954539243227724567622891971645539872795915676832582762858822354131281661237729767944118888993415423479481142918611991688578717248375212395486145245294141719523251669779327832445954258228159473338316236928151545869672477224547377789481175228714659887417842578247174181592361626693333117253957654942981116167625948258863267822216384394891452946759536742424534253582851885988443485949289442756883968946434177316719618551625393688373995392122692552386457766114949139568669828973291735392893386289934781663558668729259339557165857226382436281953877891645349625446954186694789975745798122184426192319858126922586855656854195784814788581283339824378853262629999368217325447328645429634786785721531152585396159581453822499751784798846375861717843124242116175554348764239299974174587588286631853628931841837144472238946589573734526619672474712724696255991264424173831167537698947551959165315793984989632381974739724618139688787174136155131493473723536474342858241754257396423684935473787851674649963672213471754399567143119563457725734162126444489184394249474145527913915558886884194528456859299989271626493971371731454838748546543693142338366337352744618361815164367499225746462535985721791196422251971434969123522973142951692796693735122133374461565669628688346418911112448675721186137895527168858768892658121138632391742537213977865939832834686725777919621827594195177259527987455146198979718926413128158756481983572278939821559762556321758746983299992974818874838448424288785115914281461357639463394613471971469778625639481327536886124121146924774236164185737316917217212813179582186475856566156766486565773611618346629266761336855311878127177792453268734756441772857658345925259365238594136212286832656257562487899649852552678342316711457595264138913158114937148728753492818221911214824316921772456686866677577687969389879837872549125672328175762689566548235368269636757664139186932575496813629581156791113922514652291861133879985455555835985341448415417685573127563945433955899731361929466777424617149345824686712793649396937387971894475733393462635554146775462452777259479716878323736383727862839544572452838769832561732517689643881915197864856892854984742595873963363157423911185574846995572758175278919299198635998687144397195413393211211863352191814133832362581699799785811129199492673718855924884841332423331261227596282772258433464596717733644483992177172915149488869622885212592697394584887725592453441851111169789127495166626651894889979974943744474879431186175442448235618882229595447545152585618439879656878617151794298336796538415379946696491468888611179622552978861421959986863513529481536623499531535323998248489427569121459292234755934747685526262164198917928474867232888331845941441229822658135647725537411914148941921985788252813456196996498293275373741554645879369967415325632148312356729196921717556177439533254388849848349319155642374226442668443336149979965428545856489655388619314291197528262746384139567327348647646387113267785288134745468222874393992317975482183447873684661199288418185423511844532879335233252972771222562446897865787219524721897728864187676453731541382643732392277576343867948172919164426555762419822297791587687683924568934164955955625672339988278535327622917592963329542531247189611262452192297538483526548256996922256465584226963314748653242733858375723234629858312166289442725643114336688562383489916849911465665877534261398525416179959985451847579985823665295682576575911884531528899245655214251887477465627658446361824235649538265892352915648373345667211164888357472462935642975432243237594329956183174538635167271483922454438136242685447844651678879924457259663821355148393249927818343947813194228622431544535126848143722932343183325279613124698411572765787986218734684985344164129385764453173734282579993389691628284428625897315452341568437478285537488767487922146182823461278731368145882663865374456792718571696419797854121546989558528465525155923618818853449484245971412826318567357232365293616193133314824679385987113532782382594723194459377866576718986125254524734268285862497968746447852293664179877353382177749484178187453749616421558645329256552359974257117649684548869775328543531855456129177421296164495338672655289689486237336743272615452516124163911523245828225374729869469756946187319791412939399285121176579268888857887979718726136224661677455238817595475236738349615563297619588238664986658473342898916656595417164552926844966244824588137458264599591184469883364593414149954394143149476454679128369553537866268563498134471373298953285861385222369262599516825518726382419821946852199951532972643361482363456931141125167254417633671697832425527429925649961612868827499641972623514966852812187869597551557698858254739899197863723467411151945649122911899475637863512517681153965144123961523119359599258143338732133428461661595434347131364135238469394341299631954657762965577322231654674435529884551645993624847882348682233111455319818169453941165922125225358689558355289373488779962383717664499234732658886653548666846592932853215379247792945792465824996981392628632392485954189569859358467438382411448834232177142166713445253282136818229436931127796828324542654133855887579489158639552885849353546934671528422285229398773698842544891832673781392221988358931275544526774152971183272995697713266517275469555663781869328998313953659195841397674651582371181386531439923152699154991227216333776718799994254158457558279792968548397386681985739565362131236978698336875974445281616728621217166898576863196624573144995925622391147623732383638942322712374493496158321558612594625696713151481985626752522551822461942246374362633387339484465582585699126531693731553381625174131671481934973244298427479976387345374366654867275116643541158881317623277554269661235578473241261923339974489345366793538853768861974971218133558127361235411285282568678489624335141153484492719966712551412733247231468798878764334578418572884497542312187853275522452297266695247477575251567918142152877436849586233747873463367572557289754691223496164319525262216933887257368596182311253658878369558353888636224454568723498325268974251813534868114865214935449236451531773149858244644936469372826958925229194917361763398125315899672293992382997973282983423881748957246364464149368545776965948723426142477781626459926512895675897492528185156681572123393668248867929617222779726837246392125891482343954132183675278818918488425649935346534782219988778616447811884226769227247135881741375965144355829831544255633697725122524848231112156469822272844444495868671661775311372599673816245719477434411749867115853133746217243876116978855554139332496116721187587285869314726649778378849847595193588519871424382118883766494914262992988921348448337583932412727827915796739564385933235265437118788267639675993484797223655455214928681547936275634344418833353635493546239746217532862744968329769993614678288931916179475297162961131587486268268766693292718884885933669275981756324523683469758232486313891866496647996222187898937557745821448812691213421199892546228699733514673693934834713866467336288537894152345626196271827549158711571864197469958575546399285965911987486122915853315824743227628716543144244717846328692824575335778172474745427149897978424856334921158431963766546333965339951453358189275442984417713245949164487186113636624165725937431336654462862224675171443935666599155391576688155453596678934674568996954611415959298745547994349149633994133527335218643342666568522891193344976576431654718364215275374417793441964838289125424832459779358683768951759669199583626584418266433327383147136975235772212938661882411623426913326893913285942939169121352932264642821139524525421322346539645898979182933483824955178621584963661568761988279654161823861256412457213292117963368439616629259485195325325191436168928561484413812443774364395811612557585825115338514831159549598653391882381714564735739782531485524592611672116388861738981919461818968926926555222284962952897777663454845599911227414689767445181225519157857868518867733466864875425229995571321196768993578855286696685942964973448347575359766226874466652838172885632156812534119545989273171268511615295257657482989996293198849898317822676324412491818117881669589262327848178296186986663639677483514287984694311899355617454192442751447717937116939481125424647893746596298798292138141671945615978527936895613725538475567927515246948427877249681328773475214638211942639343281223989226636978889884136969278298486397858546225292515181817626464982766591223532762261251813457645811458469611777884987977192765235279126876943721918794493569172688589166669832822581939276174322179975531492484622624649147468565352795734962324464737721356293636896267544575892273834969589641311725579726285212484871727571691663118979588998136513575222271337546333281979773413658169286219853466683779756876132837745354237464922289143639323495168483715541833951754917938257653482752395378472446847538353198345411629146772925519253966365999438489273851943582495582118697439267285459453681639277376136768673482826761919971877514116672349667748424314291277827327874917863446367687915822613334912392967319835684274656817249539668655375358815222577257869712657421848363933543591226881761916547621346538772831842439494485948689523165833914987239258596989738781885458658957758664513111963841728354927711376242571771677949911736127687725337465442498192972154655314174595222665685493689784258688976324836982441889146914419276163584966664797676568168499316712969355919368924551356295126587782516986992693137162762273711387427115695753956662837844215132864475824389574939112894114517683928311628465858758837247577245426246297943518273955667315938459954573266496124418864695196731726963377797418848625973472954925511736496147812563859287371563923975515219981926211129745882182369828348126127538549493871178195977781693283845788527714891619196664633831125673434994484433343898261454555812145544862295527617523456792272384726193113554214945381958966184445945336481791174513487273771114618222758627715155382999276276635436481351911416834924831457919442989914995135617918381225815848946836215618157748567688168442325896427877673436182739545378511871511287753876584656581127956844884893466754292666215215891483662941277842262226737247616653919992919683798819472185756311599499688546715695433632196616665584342286767215757819198568124673916125781319764453343188899356545256614534511845268467256182625149699142482575981726421128271583443446685722119971513614312269513746294655765651692843363488339483112466842485553537762989811658958174666785239573147345116271964762227785217145359963573181985351463131549344867754991299286622747959193936392967456465274744818593493685213499924559166439819649988246556875776121926548529573461273727284651252342996648584721737198726271185218487951618179152741522128126546375969929727622795746847559183621115186958611778343826561468628628116712572548452533278114864725536286232475299353668369655916567965688715225249385221974465999795243914435838766177174499888858462652985468234839536875754638365429617154865248189676242684429851712415772384983849563511743726787826384412899184828269242413971642371611879676167864677817194158374224291158754439787567265579386797116222876328286722437983811471262772868489197679712499679726633699875713622377247486243295767925893354514641344172695815379862449665925377391788947426844729853718299626345414297738492663548728627678292633942713533698943613465122931283386546898157831191436747831838266691288973665664695368951933838498315292367813162587472353536356186586521282487544271295557172671117669776825567874783238835171172847614385639416783196788385383456116534887827385693261988496649241773262733451829135222851414427484699762917178982383568599941668937993183789677616942792584531323912319467424274668837884346368458578424155462727591187511236862728458854399461219126866868354514258133452297398299874459284524939742166284814622499734642982385257254862242414543425878867195499224599794934287438995871579128929378337621948681479846992893574591424175168925862746334413569918948335741532817171593833188878762595958991182777817289397274931188573362379345136734763469753751517723849763374846292437493668697379553438645928638761498755515232176318262664526282132996447858966585492657999597719898432927812469898953732582252131854154644879759553826964988189175461734191166922193789176875871397479688774364463741548125592622259126884221657919962664212363587388866277242722727883183319557375951578371353514291398629564281675632468583833242271922868286133596731588652954171163249157561828472529484479875972294188735715643694631868844332359657521981335593855949614137251226867755877237512994955467963173558223591213863952446862557655899711159171356541673258384948438217393211235768615931848243865685395614525982843445318222317765285645986574668891321123152726335688176723179857868969264345957315112663969844431226242664949769271337513586829742354418893669676597248486967831856286166323371728433151656328392829515146353225157252316737657738689183697918413928258731475138996894163853673875678449476889679258553737974261627351387965833757593864442867818443471167649713552637171157727552897892555436771833538633214959937617761394869842284946255631433274759778954847154458962425457754938895699873577812597648283758241929468346583363413177885261974964891623161496637934612137114491779631937955527119461573274613579441524118659359295331547797143885927337272196924436481159754932523254862961651984622626581873824138524518554552993955614581763176827176922266456642292459526613284791472597132686795839769431638997934174776834493876753675637536218615872455883279644811364995625466842186465662636995122421862417881988623188241741342474559688266254816115939993926253418356161665155666258947238743983797313368874348943636348192399559279496273515388641154954183948755594121351788631746922439613488846246262239982946548679531868642245761873751945488245297272925939414471655748176889389815187679518856811374179767776566173731562446826853251125883439836189245268751345559451938161143752555972846869313248231136139493538935197673593816528522234953316197497254493674225166179564784383133737166323644149746582869387579642447879923326379737913941677441565341142373881763453646684327374797692737116172316678137449176335994275766363484141843575473894383698165691949332215452988177596855662121914827947473561376925589145135225516289826153188779237221533945484192173678876643555266219312841249346593279832177483193823996991724363581452548286484666854544416731979913167976513968534977317771877667973659218515447644354132918654359515425375619362687189279935468319741357616542691398225917443373145161732374543563364764517724817412585612855299526893232892283833161521616934976554767847155246533575534926413957323187672195746984425826457642373581138247629317538111745498525663765488149969623413486825666222488935828714675716144625281793821622284954311681375536943992184145352547966934949482976355563857271425919692995933119634178354962993393251441822132985382216692672811936158931133321858958597654734736232135148369333238977632194466989171574219143444121773962397995793751271283316727794979199787247423448346566138717184194952776417549463928531381998387673639169713748921763791889617354515422392554445412579547397921362893812856289718856799438921146224495579186956832492333224128748177524322927619737751952454127924666988189738691465459585886587943422139992751786221179658295987219222221285354875971826635123734645846865479665952133575177258592986651988834339441688285819648746291287161484227375283652526379898826612759179616114379329847726517168233929978679996827819562122726638739636572562142722768779851494266138685821935186342129983933349842689171153559974265164455678562621517612756753169565791357192252293844917573878724393317916121238592783449627498727937637228142971139373234853625318159762664641644661873367529938634598554817872237295529369153916256111481277299928369386271471996585434531259131966973481438436964416858864766742428667799531926466932816172646877633392244236762454534131185661323532645157523757199382399755776129282675337592289128156121587177995952574224342343147557596293973477625946269473677221979588875922663165671617764575563421297688745949416456132468814146954712576979819454956992772275779131378865744778964652738845321334252927391767553817961754275287511693321376931311996961366875434474614732334455443837954521953391669133365698122314997348334563527421646915896926225937761115346187932531999582113585351351765463155297287225334572996921977413617237855567899356445945933672833545329675455369892285677834127461873748363789667776234925326942918271817266911788382582113785776584673379869847656613723971557115461788654536172643914282235844361337982334831185274583585168584417115237511518935362521126754274783385936986777314554456129337695823426914571299544978469492152533764354681519453849576415599642827241689639574747694233683437618321379333279543292415762914664476513325531474773924379478733151699832364411777967285122884289248911147467434919736247324632635436328954685986749452283545697228651446714282765619717162429132987921591818974444414998141943141722771659537879299699493486689751827871824599419467296444993867847424595844884711439952352537291942482876253514546432656618327311438524137388632264429978619349363923425243895919351238888712638739159573752142166168856626778459355281455558755352135687255989813322466811675199192659353752632843978558516914823978814277329493799535385875356553433659361299568512839316731385517762597626562491574394866884334991149811455585631961346823246645549418434972334431343935247791243183826214336767682874397965889277568168481956715892221827494321956653471476946426537518247568553217455481875415957798512258813224747175263693187866616721511721985793217466765341889452492463551918129765331754743776726852996986888864387252626773344828927514983768286799851327552933733374762947764233197238883876138465632835591923333835714981583319773864413394515797266554593734591676196334675144749485734986345311819432787271654473855243756176266187265983937364548952237734359848663251533269613498519173416381146359393618469799449447787315319734753193849798642585244863382264548737111881644882315571819925467141832828783251289747726627143756738718686782819763444195798963545316153631811777911419778674816437832194175131732752538495764497979278675977959115366195471711417324961458142943369958475555585216692736431624959743671935573983542714356217682465713714351648783852285795554681151231666619578762979458883352246368324774632496573417296529533149969347699738375514223654515699584597255226843383694858299668416755461772455673832216135971729284721697832388571782383779742759111279842961616774893169933197918124998185255722191497499699391991471289594165264293932771719687735743681986412721914181159918771244493582922183274472576376233157486634734742948385432958562766494956318672865683124219154239768253773541515154345666669973847743919352291796121586941938111874174888997176567696298271972859356534324919565235633559547633647288519991847358711955998661723532372251344858729714293959939272388414436711673544752957849766884624966547584838193387961836414765151694343625324633328491932317812871294364685947368998182121781867976312769263878667575575454549236856813717895652388735369513435199679841529174292964471332664273131194155953362457785727874291492482796271496441298671358676515743812539559192292958974739389754134366111119128313199463499364676982493483393113322348477393648237475614842143464677414942395128755215589682827275815198227728573983531398571287557966877558395484746675512439174779357991719258511167427559456734757346325239969955696341276848213826357868654658917632658133933125649325981335235977143945238439893624121143555843656849351173861122422426761355599973897894179271312544129144574472651229636443563617927811368794857869622365492752453144169838313177949164694768993296592484114392185882351526415624263292691829117595521572113564879198247238939677229275365521887796591213915772583499825375353922661571761237385623495832456647813858825837565926254746871435124298179462228598124476163195597815613558768517318655252459998679141285159891521464978913912758651679174953994139417398488554318465262555854146176795533277518334759795369673261738272499248961335213639585892865772829634428542852224162641725173354217558383477588885947999516631141786625752499267569249179642546623274647666583237242148993157618825277834472594397492199495955746243825352499829559658688973446849131555595566421366223819143627529665924359992826428618511863524461852286274255887646486553714249224233858264752414143788958261182595688595768798293561245851958198655484851638448684696182286986641278444416341118458956164753215221155484197196832626322686816327331769169768441693224382853474996162967843676736848366441577975582676359516178662477122977665293269883833431396443235331186415639497778122141684996328216846297247815716819766255766586259778473263723393278883358887392268116311473692818686819788427533332753889148228987566445365928241414692495396184631374791381114135483533952659112138417535535827455618792866857969791433975366182631311586161756725668854389886939169197693667239685461887775467263252721166788646283161738253878173154251728673279485457352538335649864935682789736271896138852315381673139298161686665167952172589545747657453411167563156353491244797452186326422958263787926938498143232752383577383459252644572275587653771127744989985948285492858513881882455842831214932462547396674652896389452473765911955684342796875412347584759139134582915974542981124751916918821269251646189278378642743333114119933887484492228872955266466666558836474813915782875281726482936729455744935483569887968596688259985447849367414392186834482285184427299116846275363745173372888121749741225831446729136343421313376348369642576247959574714845163676391345492116719656827319795842471515854145514568159679648933269329794197557893697555498381517427386695341119367922452279319842669327851741667467513628548523587399174147293828668838672414661499396619428699456238174225571618537197928777622234831343899769513321113861512624916931299164825155245521462422813494313218699293517148184126396425845965824733984786585896424856341846317689787145782169691176518572193859726421788885744741391248357422474195963741224587526538353194331631126389391648378831755954266318219737656519336218173667173783593365939579412112828173681848178414895743673763955742919993791521898462629885279533733621888831811645817675181934286447425397477332891457955957366899641159886518686532316891626115167163939571338871919589431941446142343389322198178926869854887482415734644743449232716791978717847319653926251273244712899768542162127317833749153334513389222327429139822985889212453669571592233135916294682682726972828878991213683213561628781477659425214224572783948898776613467299719212569636829519476936362979849851996758429379216819435523496371369824555572593163915446586123248129365811158355544968526237451252277568653577829326178772415429436272937165756777383969199531573189272876242728536631639672619827724811425595337891962819969851512782733382794574468639435418358537519826896234678322165585329252712774462875221853167415837732891177392579881975261819473945134131858996973969476465483687999492466265752947874428857115813632768474849933619941835535915367443371654546796681662295595121755973947381858427373573932423487984177796779511247585777799948725922781358297221869335815899551952121135755566643564155534477363574577951496951296691943369995151598282321825834582476783683197235854965956437765812571637836439924319783335191582728781564117987227296417816964935792748937526247845476147643825384566359911524217634348881973491746371261212523376588377364594567283297227468576124841466715151768978698434381872256391762367223119878611937914218637793828449639517467368958459221881162814777737353888783527439417413573859512247534393544266116646983377227349981499543868468123511736448171957177831116951743893865499296391998689781274247336512141959478367134982998312144583687762698434136433522442544892159726775616919542792826979447543414871331921765833115591534377517784816897863355445894836252892471849438215438863342625239318555439462272614489714765178118843375211227387625585851357156829937547468286747394778793417979973726351268633452729588838536423584118114977212473322983835376514814624121631767989177341877517897158449592568355153887864415183877721569715529135414989329637815576531411953756375573495357937485837867942126633189428753545262643338912913566773614478622236389612482573628195455782543556174134252398551369884252495749246558863982836851638953183646559214989278351835887772978223778688176993717799378945141963121888675274444124932635138214526513371686121421714775287198331779996864555586557825332929753721618394658187642323645847812173943863226115778899163536297394598773984684159829725166676316655322518966261242213518266785449761821796321335445675481158571456537597128241673131468464111255897536147741896998135861272186555297791375344842745321337535979598368384627992275586518251556385211828289968975423863677512149649631447224121553738984635748792644677499799733996894256639497652917737595478767236542114953697797551111556422225769869343493162717718662282493869645559898195164835589698737913866322191999396678126975637337694234333311339786677265536358818229543772884762428134576291981792645822981456587489736335332391465945143167625343215648159388224596199296956381611163867885696956555464859587436442628496855439884421615553286728979718293745623154115558766237135995724976538732132566333845646935515813555327428664386471823526956445689911653418827454435776262795363254228457238974316673398468884199419145857744164631849775643942772785169733128489463331884188155323617581772528454777756153857268439266244385129496151655739546287194697924426254869914476339836535884565996429895785123544537269656983472814884351742196438944998576724993372595669868491294574321992289516665111987726735171493582519459194515693254726232372419558493392652191325587119226467293142351414513525973672683327937231356376636978365632789911784416522149611218143486553543611959512595366475178416962296456431382539965593919751436545189623752784779328519583535179477447612781167978739668819496244876647714729516378234114934557734488158429368985617197589735417835539472298176546255983855385968411347565363816331729113532927758782437953324956936737178161844512644438641835427988686593465724887219164945476175933561717178455265161364892497789946995612446853458573843881669452151419544238462219574662726652656685649851687897645999161726781349894668736495169457454424992125983358131669164919634175464675964389281247142532495792147494889217915137721964194453566285563483174486247233632866112639176314512859463165427594194265263882232326242457978628927443958125347478182126713564255888163765378924612814373518833311127283711491862141377537391631722441691541627711837578318369341464414467427988971628347174896933364619331929616657381186575157384643464556426882529627364769487641976321951448689551366632471144121543537679428263288732868862252396548284226932258122296983997226869577888372596397417994293715381238917844973512232832241512948151852535923263384457479429413317483444835131347782329259199329958281563975889647868673572493486294341536125878655311668796935645959192793281934454519288861324728527687894795231561477154176447289837526885396343469174481914522514255733262895121938356346698647943526722891393485229743212965768918571669688837237192322497852652499445313174797516637776352515754687197315774433185752386435899256955675142473671156263695274999683141544681948152567726324523571775729977171864919781413754191167527425121196587455474748137133673415816814553286634996699492558888268748283392844142711538673552377141948278353665734786552797713526519336152297751918553731492644284225738847512593348611631884293414976759598747979721783751161219687262112865552514581746642662521336425511966196434597951226376399822362456965598947533544161689571596631236675468111254551529465414967979636162753877322373298638924611563267233418129346654417218569425721343683384327763294813749681142175423551972647866145418466461667199344421474169673113948574529128952373311626662863165992344346131267488449995172276665898212715721557282179477484151439349311772716534621657295691632445375352322863225379888447499533951474595782993421318142771623927844294761859182921723999951341125544799875873864846235129144145587857844321515889491982786299547223896217256744584562649248182793982592297869217553626629437597785844943628538273433185927666345727911363115932264552943698223694483518618199216541634884795964293533383992912555527815375761289432541749939975525395713289387219363346338235565175645862679391126359862673129526871355413442454878855992293945532566996339453748523993912396748883382893748812752941231351724493729819173763836929933956928367529599596661943435426621322157718647586143135478719452363567236881638242344879649674899146758447499213346633586453723736391134762673896458616242414685295217573739118643492116246413823342899262962835164364867397589793982797783965361686872692348228496564343438954993588647761671311856279422295595733596262218248223648678687236698847353463276887141797655477126811545779986454268247893339132612665132928654969863542874776837883384585449735721965143419172861998446868641122297611951758934824757233986187116876851825726188452974362951561246721793174773517793938213168163644794199466516275567278573479542911211146686292647355292448282462572585944553725441859973691736964212615959229753737724973155741951211695516481743415712996459455565424865492466796255344879793249671156585731399714337614484797764668397769779659172632169448193468387153931775772844941884683839567252443511987151444422879152997621754195182786729261348243342893968378775843525431453266499578865692368843274697532747476314179548663445642111654727544174462325971315769868923383137333769999486497873657449667869582858638665395873146771636321258333295862479866159636578118114846146531668544248191558457248631235687742486799598652477282844946413966214763622365513221393576115312821277438664114234143481971419581698231186387798212449437477424463286373812481281224256883514859277694964192919931345824164449355914399698889772795386582835751241469338115972142569118289753667692424334621834971879588553718467619921383364751637685429791536286977196322786749496948898841458945745266434997846429399183218911564881432622394945865772972662718277199369498772258525691856126823423349277944258918378454944625867271998782196787613547742193687395383151251837498733495495753471899194117199737591639268634759838727938627499247119925787162144896578449189883693585153768851239776529517385643991386651326248216756686224677956974538559274873447996517974559257599353259545778477928694958863512335541473841776568327613588748759313359533511255876647776658324245569492742656243786564927849263698447592756369637274564347152322155714868383256963299423228448543813388926331816115156267981734114232932653633244738354143925416728811965328532895629123213753324294288691453532983874184357689998216176119351448626824249987875695192692526659419971394172748287696855896452391287395612866585245728318944962889618958235873396677597371555744584389191578697344993629564138476714513659327132421661526828665135575639561253484351392974739332778131175181229643571667931943119821828416437371526673374368558349429151682299241797935351295938861764712932836715598823832324291265546638791261729592775916325331675236996923973913989469981413569982561252448639828763662712958845982116249192974741916175269933432532145144241695684281716598841984287582814853321629679238911918216964134429639782548452242341961655957378331299344188293215212266751587211229144442251461981996561598228239133476682617694693148186887719613848587646296555757565133813752145884537245698164728232411676778256588192651457738641781748314128677476622767348293351224954356112758311367899719934946421755256421241266955825727911532596929551563688264645115716758887488343378636542794295664148826644477694557991959468834137827462718467812481486233114426196843823758438576515937226568157749921185817654283686396843647211292299689344653921431123267986995124972895259441573474699388967477754833358372328555725743448166831224547254476129691164397293776786928644162562522536955564741298891753147193345397872328691721588453757457671198775996756726775619974698265264141439195666233593578838653168461413412867469528855738482788533663793868514464239692339597238585764141779114527486518457161918474766744633175813453287884874621877549713119581815923791977337325958928328366336738987985717548933734555471993565444942512145837119454881889135569863992116489188924392388281636593792982529437218438555373345974153141282113624566312838151458853156173274536881411683478422217392798124367845885833161892111631791592937612188562877757857919979928192851868614681455949639535417226282366137585529913965716347948566673284922463354539819534127863429647128244569812782735936612852815516229566446514676168528593773213635679214754119695447296462663834281281565865725359968493659832259268214688268683478228463445441456266425231989326247974117651685181723135233154558245455129166565536738241544889694948448344981343815628752239988482225958336369549111766968867695716282924559593384469946822571941658759195944371596599162219293257122121424641791348245345255371161363394658726649553986591927824949267523374947892189638729412794619369587872559557529382231299559484323998134888641459561571526353675863666945798734589645676291567843298883351124352114661389225997227195229321645756112139951439151749259161924578178281975118822885799695687144832749746136817195554423972574956129973585175764218549736873168768656814211786196849712378685351296786196153663345215332191524633219618214571694113636744786948357317228675523733186659918512346966777524975348656211192842965551927778156571424833833816991436438184989447468751132212811833474383761715342115917236395378525843218379683793283894424941781265465282159328535614145428496512958466469472123673986428257798972728354382393551858379294872669821645963182337311148947334588469324819127249968962755477715642673953854477463248323759539974132326681837663887697872715692194226775767413681241927287547647158624988728967981961679224987583244641312188776762818631928777881134253362248795875748741696284186492628741691988552325274872279717879642692789433654172447564435111164233391243587884928664195595682914333345593271563428626165624714126241798916161292143658218488871594462362856876979234934772649589835169235812398211593969224152844339252622752663612917827222495618632673858914264365835556676146888955339121435741234677235738327911543444376841853218831494125626658883229813877186869998399769234912233192379967654433253128839321442741967853617959365565457379322475461145396191926362795422243379895819338827718334493834947264144614536317988719139311695221514874217748435295296127266586647914325177711328638329925674226916337734494415276998881447669358861533862292619318176229775618474537613722982792519919987446374615376547635785934735723456973334851484156625917379841176662894287225539182471217171277734813121723355363319319126243815274585666782316636556458952332649187543111249782336961755978132831573774877755878564549926738811857134512265653388732634195775751454793899354571444586795362835879237417341588612961538854837413326156771737488673616491772423744349996867695451712341318459723155935511261795875988119754615818311851767847223712513477737218948913989653374644684821483183975766953828134487745126954362548113598778572819673175778994248849288955793983841157424313626499316912571758932936677187358888798498444418212384859558272949729557281622531669944988794898769614432484526671575863622911875735167314545193258634885975952524929639984484617469747234539669961914792141391146919613164839825815274478416419988959155537519988516844574213112996899342182979711494641952262259738652759936997836289264289494365931295198678261768685992822247639749237985719676433823994117771643656444894759492763851352827881235658937312249395571685676364376732534254368397844893359885213785826331657376151438653531141327698211366992587529374527421432181811936525764415221562193245343223295755312541143998297411834155355738358412595694414234226529945418243172111671919333643384278717522717827964864785948356673343184244735422796964567283839163461774156597656253697315588494629697991649394828167898346976347296895958887267964643456954577287766251937644439782927621166775452866958612934813895566562239554741225984177557737373828131986349362858266911682499671473461984729785691281247387244271425494765632192929924642454771792231696969168258141414548815974196146622537342145176419289686985578131273896998595125934881467925618634814493241642234512557349711563852281494468581921176799679625719927957484231123228798645516876857453171483394514372136575252726561667586715155382584149644715341316154625929457485887752212546655251692193936775254927127279735341389488681257561852444161932455374213961975731795948243236462898318514691173242525348641277255976736186292395447969624641245742214612221348782467328582585958168439541464331567288145274778574416351397529665384176584851797147752672432287715912661945915517173348361478248748894887466717524737553581414167846225859429161323167225254549233744228169165297483994418862775948369165859368897186427293469853578463858874653351882511645511766593777555918234112242315855731361637483764676875199219674256283145872138485872471381338732248453828922759346473499422284317131323114189112658878629827236849951252569369514382152924637219195111255181931458453554916527436835841337228253188242623264895377851773494328616339581696865482166143472792642274212261746284389993239398453679979186151668996975297126852217194112517563452959458159734734443733873529754848673476349623945326593844698181748975597558752173722995354141224911459195861156328317742145156445561571955851562392864877473925562518594978924133219595332423978928867154745248458317629842147938614419773286929748411285487979849279146354746719631558977665548465269774157727769624411267511446851818222884559511851856516539124185886174328268242326876518418716285881213928742853449979721699198576586677431626858656627576575322869536269319785559191737384714881733348259238672562545252531819871114929931687834886292334424312412894686755437725334567897237257337685169592363795149629431146878537942882997256651622553657244876668745845559114955119354966344799562145589478774274198584297576432535963811567884193849259897428561157337383862179353367246878635739443969336342377583296873735187131227241764881437756343496894686716429475764695361983322712261631352288645994529427738998994866881998853352683633395284973468845844728853811173492819296521294787149923194291449529438861989357941842141441373224156842839744447421524657575897211785966831164885836271838327826985471153158426899497379299881579817891114836416344172982869996876566556938578992488575661459937672227711567466585242717742633399491271126741399713873646618927757863764338366236314567126997563249415738564265896252843431287481222784539755325839813145143889812979312286718189969263677844724811732848519216293118266841222592664647588498116317123696527676822275923653454164676925566323794911492666991386653144699312571861891955645663227432779799747723892796351616838669746695568239428686311471953618671239675498438186617644728989746758625953786584144716978856739295145549817454658927615481152179474926896529885676337775669866714195673125112568191667234299869158425727117263963137649958824629459921632347633735398383154414459341392525178431868686881221655579498639136868844693289282245772621463375851635984292129233791862888124599652149459559573742726895695144918993947893738913183652111525814794887565748538646982182143522782269716379222985574573786927195391271887798987444781957548147566582561331128751128113656561217765911932834698799581755319321885266358431789558487552872783761386791534592546384828195273448466935967316459976368157563796532224611341976773497282738197651772123945133598637345518318973849931225717856728443983793698873774876246822592335524783941828995463886577516738269537721893582128396742483145762694464434682783512185322516872942377611968137477575996147724817834584578382128766355857528898582839287925126982596982623592448532439939441138278865836185229162294186929922838595976574195891929318919891973722118756154633624544334114181353353127522974235578999399697712836137777865277624493322381952144656323118515166595627745831833387718117848354782343827399372589268968632356724847138866773832647432285429971354967742318572635367486827694619196669888745797323851533282643442197875748116728113255364426661859536999799471272486912253818783635223193929946174553667847616768279588671663159414661353913488395243919954259179335459651897616121311194599497239754619587338741761779228158669525975833546329385352253157722764141622866496335758864168748814228379466985617981867264937717129845771369829417584398571241943726383318289131878197944168253424942162989981857757351746549772155262358245321185619673136184297614748561172179639586798397516376649475582678531568137756496922585412859927779715517282621213369799974865541492842559512632757626623998451581555718669721885456917396131277223594358129287532122741343341162411634435444186288252385519425554517951474762479294322862793147586171117374411328641725884187636242343878219231984955434732485197332418328231228513145317455845666696427131141872176596239724269729451152955133329768282243667538453467552964375242969283448191836262815991327832926824157856747353433823955526617289674359834557879252446897358165823247128473159165297666492287678882483329524529938794334342998676724145997347221978491624713669241445934557367255184245525862775827491754489115512925367843929311139195342242582773319873174994896886329443682758177945352641929618328261429494381984498552544593225121252999328315745599643182392783798988818648193452395593522789958847528471279324444873134292296961612448555487729197399718716493463597332769441449168938798348574822545711644577473265924747684965118668622968615929411885633928438195956143892393333391754156778677962665744864285425489874359217713858332717925557984861185185664959672752542196674151257656122596363447582789356749644498899938564887546694537191954474363265919488132681844642647974399514994833644783876239483189518458837229462841138641578885725659432143969143145898745522994448471584769663866245918458546881617564831786963586877612455143184848322289885933519168314716925218129237195597747554375735316736536459158698352915342793224796449963878726442531964133445813545332628479923166152463696177321744814632533838433467637335956939319763815187729945717439813315334211481878558442812545525756278688615683437261452515946411836684455893145742876836329851733492735115428973159732353237311549611122552349544427542754475427387388534667592922674848376617334153995351891983958421347898521926115629618597792433557336167158659211152811669712165777373988753653757737794665669227944232995269335197866232587599183495595999932331197628666496294334882271263395485945899539148462749865872999448742222164967813886762248328261124135241437217385941953874589682884397349849577951856144583441527847661645591386372874232365317989646699148157673761272317727415369837722526274459456675347177514375156217724957892458973689228556951669231525314458245393224169555611423575984329133563773278124474425561969471373528786992794231472928913841966227886475545948984275965348223834521248781285963279674287999272533656325432928246992419189196358523154586677571979119927717342173477634391937824824615376198215443115423416198469831367757677119499832162671526399315889546256276158155212353771691178933546154657552973187364323411293446141395141237435969482512539753356376679682234621657697849814228746213261382744697366941821223985515711737881259876568559451658198568531229324311846781636579489135877898721149124772723371218111587266937831832218379697527427366973565257221339156995756386113698845259871893697297662298798958832246124193353173638657526322183216817216432728882656397828127336816526259312199153672363154777367918523444543448695721926384928698549783135468237689672319699558283259453898711568336356314249166271216485255191823457966371276883793431936345326651247874881458638869843576997653766343629755517383377523123777944577738694144772198649941217891347819778182458546391383394973197687544342476339958875194481671447282515642255159726234663631654362312765971374245767123385341676695772268184497863564682216162531197212911339915351718729425576575185375397287611672442474819456864391719438188245388416786621296635615637335259667497956527636279648182725239185734528169721428372179341753551923365262132273881987899875129212547853955152449447927994415315458943337733866699381179319731365269471143428887815712743626541157883887218195676256329571924138716184615494961575195142133444294782143581876823321725827959477735949187254745857828389985721484976984588942326917746724185134522118455239361852634285583195437436262674591685647955484793226858474531879827379974513861183557384735713694211218557734742995634985455694924935781444716896457635179629921313781723994573217761367329221241418379678935235811827559469363393229176867369758831565419335664875762347973847629676115938474851337441147411173139539122868234256899713454551664615517682515821489359584948994244694352491872819645694976764178437752891878949912362558125421353938297283976766982145847388313694414922329885484586969677418667197489519477815153748696346292891538488414185679744614236745815868695445643291974323535298779154913346719918916427679298966871251575154944844376944853748324338366661164448775368643815537958785342257582357772545625168753521144158716831597631282697462624617123893475523266264323968219561171459586927343759172466177924939963991592215579486512219811193997387345456893741371482452469759467189635125387415453587523586322921973574812642176224865113743845821167448692787399675175458532913929663411478297955463886748739919865195932731435861947591362163149548131113235611693452477674787639432432744214264488535372549292133366449759265584345662825734847264796661576814248694774247529335584148286667179847215527168991448842759226824697417768565363315179334245626975595271926442661278181484855431971398388823179185883732226558646765593474671479847129221766528184533759115242125825736892343141383567478882993465847415538722651897534313492627119649283944118297759179328479179933952245546355928826757574471474667671224648139812586134462498854511522885788778826437854892676916968246524371161592367557724314899713255561576625842596257567846816221567623175548696111856541119621766326523966616225399853743614661281742128789212621695868138474493565667435344316365742534371729964521263677197623285328556626422863867235833584692223167519149225592214686835393415611451354365715824273755284524974828843258639199527692119559947328192417278978919678778623615237936166773569369336193854994526218714481637553474973247547987497368695658383539826131784362111736686149868119181694652877978141798212287987986144488576273966935745853541347842278925441737229773258413526299316197641792413378683432664283113622365344475581448671836243454714849353688946161927819523857127391325484287874865555496761472191912551877554739275623279227315416652647272544562913331342872312967929637781245236558572558679756457311869983415949785839786662295834721618837332191673451917126597979949722533643689835825427966763555526578832188161542974569135288721376159168954997284539442859622638332247922311829262194379331374996218891911183917226633454472761389168158166256967619744182147265161766652277762412486783896692297273737944511641868446525275374181253856396351336159711237654942167341879585426932883895569854959784761718139721819188625591885743118177871732812728579918897361561267845817997969826815795329366371155536224929881361829359275793818251872262131166958872788257537252328343536532236913279995647363474296458991114693899889342967114513147835935284563442364551259699884475968486821164179533548487366613199746218323621563815544271831139812533354525552832476793665678467699934375729782919477634181736595487793164133224941793212274723259829135427637932892212229589795775677128681474653763873722791177525227185132487552728191351256918429127528656319372281396219799442242884758377215313432843793646759938293929628259482565734997552544353544316222149284667955791844269513943554657466821526974158474314498743997643224265762156983314753416715368671995462576265485641881459975743821367413918456911889833829392574698238529454945923796968897134593314256181474765944439228821259489795393339795198431342133247165945463695555163816831943255952455871139575969249723716819395449715817754249153924173764773226986467132546341632849295562763461997619743365328491391746823957147696579695226855985949519814518267714673273667154548399268629424995351558714418853661587348161568893947617948832988926749446482271465235838591688481954898436653798191562311379218213582224778936735772883829839648896817284167649196174366349194962653469765419317825359874772177231466432862682464787764131337859985526693859985263848341364948837387856922911326619533558943726444127629898739289132376261432866367928887651678679896412444638144735694368325972941571614865768242692926838334317353313699165978937127681313733457777137843338121722569599772196763456239362263344471429496485159485918834949273619542579927413342721493897714964817954945665899861991279849335615399783249629594584511485397757277244557528467715255283613377995628964715541222736244595622322863658938373384465878327678819985231132858976312788519266147934357348423229749818668484177651985618549659623593258985373148126686331284246385619397835938731287719727122659119148711193965874544495217251262164924933238796958388798324439436737111332191586413173894346278641441453641798228436626949556329352486549618419252812495249772596634277237868782862981413479528181597299985652827926965391243949887697484947139721216725739923899658296671372243363824396287366312139776693827243334764361987628729677347639233455819245234885655623336988899144525528941328874424647334114926366718692724591833285818299581116686545616956937155645454492493961515964559142756319754984123327468754218113266886751148441572316182381291416975548642466423544241279388317894348281237868193315323241961759284893914681588618131354351315213592781249176945748763186217637776934947855337812777876576137814486771464877666733421868462152481158983379936687838814641644772876565781783242923714957921497564119578546759741919395986124761261127951435497487316715496863778878464495834653284753272758824681536766347683919275492656348695747413936684874881329573187857329969243791287566587334633397939815838917125879328951313532323114576266978444375168198342463763919536212846373779587491546792992953454647265432389118162631639723967421137579597488283246398169365186299836784413231455964779696294612585153584786829216672542141412659154483761353273731974977126289185524689794919271258555256764762193461229519426442286691357523732957978839861494613161186747999184782674548688938245243625415313681646199856559462875146576986144918516481145971957559197675388569328867961546542386285843359916937813417451983191628282316296788468598332321531682499429139698434283195126168116145986989858681917296617212913617114783576434324133592213492652252621777491732124373593633796922164149789741843361518762929621717911978843926243292167159919961669756549732356464659364254249115171634685719344619534949254164561423781251175534476759675961316358527531547981317883849335456181833476528297237896989912346834916144684594215884472262486977367972239577887465882917236624358144257113789426883183886547772574898688756796275583862314971127516364938597215653828959436448278794196945656211493387221744561339638222686217336554365238675597541363421949663218524946883242986912133225271391243525293326414994197319816844857198598831469769278898788362745545383154189165871661437263226779198313711617285341272987199766674394564633332755672859568435981321656927341415962946993734223343317818531562147241849912323556766445287344437942924995936271736369787519733536536916418915987614472223295347991681121822398159496517626259937885996966196992731371942556548136624211791379442478463527251863514924183119944271915156861855196588786987971377368773458444842589258846434451167745969893186333248931653988985667154933231654868569614983681145741232535589866621571879937131514526658196973425562648632344475725471178776127564626469593839292728635592193737988525554636645796468818996279866727362634287746272153842458345825541693919673399595678814627198551611891867185135591371533232986146926982799293643668621834931533134633782711164229971163455417799162349418415816814819244674434339462393242623293583486753185428354573695856265423651226434965689936385769475897162284726112669552178544472952666775946655611555652595832936981658942596867811455594976159657692596635329819945483779485448917256719239129993441618555988778473953855856756979941685282148886189355739394881664633949233921627543115943312478741944947247399943233626846974757659134657465358552723396984358912894267893327163234453132466257336742512743548751194497633146778342593656719474484822574787455178227563943789237498646994738236157794877955876516478968331143648417685479865526952857579674837767335763658289684859516563855622344719964773639925866413687247362632617884237237613244412125749892952549942554315628867969333212386549424578898341126811623842861513444781569484375844816178355395638816943989297671961467392712264153647834744511686532259431445749914676159489448981116137172646545782386325168856856449246399742211448961455248813457351869843154987872826339191444168254137322629296376898898733137842344976128937564243112874977751973469861664319523824991387963959275161216537388658847866551745563967968691238873766443998152516792497257259946213846934729869439568373887772381564156428315257193829187754883838334866695919718888897563932213946323861462333929899544736857241762847973195286265918381964667633616412692219624215843828284846997526685886658159532713521884473125682251726512353424765744172373632846817458472714279643959965338312983627454524821875968855476216495555181542824881377162498119647183499533614982199615844745598386434477627915125974356619258866417844486176577864297858763549169732171677334819128814669923818672878836657937948728275965335292389262717418183854652156568977215911272711618883257342898676375776782753812681895529697545973359817182252411589939898533139353234832146277225128997851142867279551655362884385173757741936533478433859137455752136618682244571323596498133518691251128142478418657387189439288294295999137856721438146979886716114694415971542575489975753423923462693289233479828794369599792927285394327564545214639479457558266796917653996417679617442176882459849694883524189149762879447572365224692844142145811197131768894425665848242346617625317384163494958533346459921681112749145384588421544179179927137299194521767599553769556558349959947298264914758924878523236221915713628197472253539471684295284654816696342556798735693991329774254714246471959712271359481258663933355872866837944878796722578761884362557139624999679351497163951477512315166455322147187772176123763883399734255459166634832433698885994876289725629382664697956623123418917978341258413772457918229559449927849754474751986665386322154946629584832396484849468881885378849787179398836299225914982328192969675494276885797287565597496683449988414973441258885444183631774662391787831946715257556618675131259237819993464878522182858351366278968947284561212329494238254761556359956392313434464775599865811334229847167399625983322396776798229194798428379856188217874454255263532363189975673483169593718224555681889775133351557595765577822369347214616831885423988435115232265865335797685127315147547969174549962431298791321635368864761214191243251921931993429214679689189192217318292381431341687555443332553272882921952976934778222445699797874965959246648115826161518467154551845759312112693397238964669193177652482683742161873578934733931784722879154248116352234516699667139296991414225641843283853617499219719839241614597814188258888898678542455315564234532346134893659593538958494627979193615984248177339114844294881689938326631538259159432742229186979711474325131834876941952859446326442673265158425128914189932553197254369765496887777986988134333847263238577255823621398191323616321524261885466626636435466616236378695673128569222764291751274881659197418154976132551426442721785794424138425128263213746816975444765177928411136346519189776219466872663494415937578476233842778355411641979462118845457631698514953997984828938712246898867797981271868241132812915595379849627644621434327596687236653547487142493335766416964677221474193886826258524143638195696742142419999494355659822711161733936167856885329865755915921893285781375864485461735235615594712379415982229755727239679138418435265743864628188892757541471213637911286547245125278833878889942741759293826427825598785664567621786696776418271631498864218961937577954684582553483267576462454282785254582645873998746371496714772386635787264553326933972532718836478747562817937611897958118881538312947127619461431124825694645375467268839876918999461731185522957764656532111899726898896257443118363824924993965444323847561662487668159458744187418782537583631387182916771177727585727465627744442533199187858516178615176849273426634533217958654415812485392633294546756451115445925954583546754196752386486739222716954297662171746754282764674744349757424529673148357533899264587452293443489684418161239255593148146489626574815619723546176388193629571137527977949293781327126278125138778565259177346367868575276788465222735533255769455292619368194515666119323789614132273117816256693213124372242554652861541155714824925333446589845911954968429791192534757315298678773168991878878921486196514272148344144929816686623223764289474297591892871339991312577794731139788877854777665685633312684687655422295672237785348668626984638279288745857526148985757255417234241994578139644522997692942664976166494216179411519269353418795491939249746777736643557787657176968972855423195647883551215893498176261793881454233477486866294892417476665699112247976652161541772428975433334456233787883946893144839273585729432689378552142345627634782263186244261915119332783436793827126639856846446269437679239429231783667341875581323979882723635692967771757186117414381553715275369937192899311941268314584191527529238397238312336257495813845587498217939649763387917397671118647568159113179297978516263374138873687587874782479221746952364941397145822189335337219795811294232925496495427949569527998117339421859498821514468319919791422253236275957996332243143991833947261877363952574688982161253456162248964148396653441447551685391494289484313768992944679746155194492241661746535538986749454863392425461433176528395979725211338461896838235776496984845355377293272754566923662249624158574184392466892594758873835139876284613657347377742628889282178686146291924742314465343251457325718437438892833268681815841652932755496276457663329499983147238494733459884549662612599782494223586729698941897956915864992314562233182884764448938415614835281393592678144377261992362654162181449496289526332322357413817116148986515447969281324964144735338126666298785693613118512883316116672272959518778168898976397717374482586335182888667545954624451797745367866944799433738199435483255682357851229942225934955393598166281855866759971463657276525329847823388864751786851567119521414285314289654532216252962894833342762189134475685111385465647961936943935262711229248664938615597191483819979871884549841682141659687956742639698952844983986951817593166328277963145434623316387936232752678464567199351571198881493478625349795385219156165933862298959484443979381285791284469588372318643729756765224242478436163283156228993668179484531353859157462974762927734662914939214119734821296388151416596977898197969342359977772812451858637535221144278165743923158142895547948152568375748139343146325668262875112938312215937321842387193188689773413513895616591628418626584441589738128569217169899642288523579353243988788584473427535366513537751948725563999132773299758912676668339885263176142352226115272637559347753959653787818419925187733756431735671847528358148646318673114276532415256972685549169816126523965214639316473827623593293735931442883624241532182341549893395327486747961993111234377357466797535298785773184296522236972451293692469846144554984217695838846196131924527861259671339713486985597588839625631576699459697286635383975926588546295931989698252679876367916859357859837896512767644261969535369944927686346392155452346377713616197755379918193537561198858918617273799588288429176164849731582298367295923655662267641514651669385994485651915121774735179135953453881444334836794275563466862116393326659123792998544871367467986217761673732832675153187723411811586543826197155559757438767748786349521129714369134876542215974596447448328734647914557778264413936771582454798498743429225564857424463587966695469619522966432173518766452911456216167163795813153717442531565175671386566145349511244287332738295224869372895835748257879832751271547463542814486291777661725632775311665745963572648394365827994325471834339586749569795276865386732795127875548475344761436854326585187774116954377643675249671229617374675358585349596911967167838655812337275797656237232728599455846968675145798412223395144168542936793286765515617835237634467469948356813462912584816667994739623447137263453582862438127579441675377993227475451683494942975933359948341876421479628911198579614598422419949167928718727554424873515645437434225996756492744111462825268991322719365895178478514685191899721989816396793531381648248226297274254774343686513576379991698216612188313469911266774672721641291289919145144949517875836989898995895799183476427193576164952652239788687734465964311716111265377345193775111586717878377493821533943219618657327995632361632575868178938893524213764888742889265963755534674984258526499577583978143585842241555497135982639826629968342465418748431818979952523598223357888651483464261155196345166381958713752978494498897432836454448219584582219548328951133567992722751197117151871775877133713973148137737432428475861652833119322215788421551488763828991299131232618449384312288559359368362274445367295526633478313128934951483899627169622869678889671975913293243848789865623481247334824142345529377253614943857588859253476917744458728113288835611625842433996331192992219982441413985127317849858947158846979919297687418181964857553235623513411179791597583968713825476626867863843782439725485776292754449925288355498359697163583758171962571315844659529226563738435421568688162327267189525887539962917865652773488186147415266252242927472548777684288727243757861952789743611257665336151424911195264946397213978411125146536435942345864585661492412915658282775898374622188228368448913711877356174435633353968693482652639354969393756979266925363328579315699628783489495897323545372212661612471727646125847181517638683743871841694215788387336988647819187161111431898625238825788468366961872913882652265856323258974459536616995948155548161374169495457818596881795248144179376315749429278856826439134439466887359282198974644177181422457935641568767454718225823854187879334389155799168879461635944611544862667246942838854717391652695971246849443525399679398353412718722495328661998955974718938117789827349194194978465735527428186977691418817194831493744575384879548478358967448468643181518886729666381277811657419617657334816751389496967921561422166799178643762681286868914955151621427371646684613278969354758819751467422979339546342257522292266212833921853797329434175195299799883274258428149972378886395364253379683535238125342128748255659887644987418129643644517312766744317796335246199352692233398863282852584988686491651764992877185379317795453982157134422517215631661321855954148741162111732293348379345738143816892993965284497224147619313584163352558165394915318158188336532757992697226525946741649461824187877836547188582166119936926225981674226934662777477361842464863929332933389455272797771927393594417598726661278448124215835973314953824481396131831241614191429725186514443945818931191391332393791331564768258131938167189229478382447722546338332137835846873592635317551963895897689163649898951462115192371761429426668447332467478977194169191932586321943178895582289686595487635256259456225674681649288736478884598422924571737892798571116874133854156594476255325961161647159334639277413127548934929882686518862677427628363155447335483132817974695367283498832564993294375962332857565794576622112221538925146121866246583244344455497288572184259773331544867392639348196384619676788832217846989823722351619456134917128791488271542556515451943332833692639557489534975529593725918267328363891843339671429791371987728544713795918966998877983982643495766934535311999675264562616854429912454774663521946382452935366256371648994245338866891983419123641614494727239915585663993794158197547718421311768235414783188887531291822943828642171448746414266175266341632495582534397938335842357972823962499552871663585979193879862256386331327384622228937394389495112635655383644855647467874723114256612149394677232866434814194328968962891266879854487766166487273169248154629594932696392739456742655458719658931181611773627281244688459413395393454322572281194551396125344864187528565773672927946537161446755485331787954145748381986929594932554633327521174812888581538822966328549299297577655593545316512133886715624369924454596127568751138798259575576892259851516281284143857794149629735698758365374677952622924985856216179995523781466617618196561182798677117475411851511318855963932787498134674668619738413999282269898591967312273934875153962967755695681311517619976481766862536185543563514263251698755239473979423668819334538596461783621816757193884716957896522699852722386985363533926795447686569542671268684826128696229878425468534549397688271948551537368784446881619366274267912953578346789357327143651166656749197829587412222936281275749214212894742482594686294212765686996175448576725183611921977445935531965723475872132123221854346788774354482768962273484469893361247451898964759965293549428544657382461266431427826269119854218827943868491431912518418493713485179454183914114355186714175323729645842243643967355936333754126879353467611996629113634898299786711946617695157157211689418376836829579238634338958996846663255736673585437651455234817363576948595753376941975487667383531124874447765268345774348166318311797922787393127674917614344265233925983692813559949699932338749931428678768813886756648871644525657514279969248713366143196457912542968854667547763467666111891944139993368922687914579189158942445235459241318189435234237921155467791724844641573986498971185521199271554897854252772478376738746644697987662175143369196568321975234822587584196312191756487564977359497155444963273237775421797432361964498694919323189521591233458344773441741763162913152164388123489623786852158248433538857768885756914588783595238572356921799273654112779929531368383874944949214524791771524649477754147432343793262238369533469935438159283352667678485438764665996692619845189747684227873247636296456348737791358669347541393921545978731491415379293756775966119595378416347754673857414819499358875515238794159334975354284118985335847617112944329744252662449972455214895887228183498453586463518828387666477275315259386823273844762427954762291695424115332525872913797173282352774173696656233223383198316529587795144697219421658757578219258837341699419331384158794415319293717766796519536922791232553561732397866316268741819912967113165294879599214987978959135645842361647487398695482276269632116221275824532391738844551313412924931522773993165859283214345536838981956345441814633933367711383261155778112192543735161731748164169535336445598862366348413218514467971523962737763485225526367712399349525687362599911541177737866688531188614863742696693465141698451559328684857197766992585555389334155913397196663241489743251183587988296815462685613575881887135722532211657614174431898886589151393313468238435767847524262267176315651452295679343994311515123643197123342687512799219159651814113825937985735794614629574655966247539237798268538889837283679373935857516423265143935643999726919383934654869264455928398261751678871226582418843433343148123271956958517647431663976271172278363858598253885849136744842969775151819633812395297862335431288693673425795734353938152673692359516747317781114316191267416531471144765533432852351356186537674678144596628813937152559292948395288536988858141746899718892621228969658533336391779739517678679455429262484913189941781557313248671585613113311184162215936358225163624715934833348459952466267763124384776168472217991147643328519847295711648748438531195326276148758338382155887731639152757252136749667771269921973888943767858533389955961941937216819165741573811695181163255876356262734782952912419326622298723348321788972263292233685894565889519688464679789982259628864432282249874231287185299242926349468661458769678475994897888513458194238894861698277457235976199999312991465435231975687973583471492481427868362369717415653799828956987572488614574215768938819794293939177837275695961854634594822195892584391759245228572819291499879127446411424845772863861719776578192642763956414579656625583138748812968362892239284655293385268948234868947269968323732961475268961346139744631452634718655161857972474447791735886257991597682367394737496357735448948197645771519771499935697231924722486853892777717799258851842314452136214371951628533327312433767869379797882742685915645786953628555524282264433813366733417568413743151277699789995567798444263447632747587355154689368191317641313476124848252511435224254897836154566848763813845356661951632236682275941329594828564469322544192298682613552732578894634776275384142292436417554334686164681198412521653283947379628225572672411452516724917633575386633789721765996567857418655174627885767742221676449989844349792471855428631697121117982315374491485927778736438437125256672112159531218179712434145658126216319262262968838951355729519128659554661766547322447718568479334178525599242853187858694431442758599959852937345919768191134288947932816119732322188886898117891693863473335546753431119729518567744179392746211534534515345181853151869933542684937377791218274577554356519567949677346456364511355681229275878824457972597847763339232248634496731428467142817149852165727256718759586291271864658845325829589364212711726812276151472963892827236216288758864568495589869931643254861645431766515153828812764179355318739715466759942713888274998438292263597163155236494212519442151256414119314726456656696638844758389681511982616172631284966431259917957855996613664673968581595485171865354893968434621368328747244329644924319932473419339994627958822393533414552772594584745539319539771811355432471818173625445387244234249681837898796867391728432844267134116895755241878841682756162873384852327732727591457622237414631916137891861519554216428148499489192762747778722133654358197935834198162748511613867183981583175464271344284144328927216355551987393327535838261162772386732629348671422895619525671719363534458224156226676626974143978121455166561182538199777982268169194519255252385193161668774478478728533946165664959925682937865635487671286632136927375367153416953719827371482962789216821252745916877514452647895726396311485874462192445598378648167788736113437637861329136789696365126626768531296227131618557174485147523365474986787747582389538131672917455743211875533652693385342542266649849936389543682721344476683246939912539473632712724262819123525495558585646617887293364265416845389137581251738447763188628192531433271276247971656943794594556598615612226824888562821371515265924575696277554299362478339844336763132637373791617845577461784349542514342419561245692337495728553613136276212224583615334795549619812527928138587836259538862732611753344156993666282933798871931185228623112468976167437314396384615557658894689296837548867485744379845623962871352115781428892318293653949126152142629651439561379544728539223337388354386232258982454195117339167872299711915714847256646378264841959938929589764477932559365759644536427266232468251396231686559992533348851976881711423572926815956269943141618689611847148528913629524716767524475459163814793855795265639471717243148227487762142547918835995718192723561326539573162954443913613884148961693549656741274564725913395291259584458921948374635125245753758696931623725441693195518883247897489442593135185393733521624414142985135347835264446778749289483571984416289694947514278275113351357787395255548288615322823248163731559954417224965496576781486668613598738449836364812579417164723153734577449855335473213998379565637183727793225651961169975822375973344813924589565579467948166463676966267696443989825519496942298794319178522791673223163646756536857753514773839142346591165716382855296562744637659319414784492586196542615168633654583951381537936579539135887252418693621663355882844746214818958817968115338626891173684965758638224114447319878884943228693455276576919538316273576797556881296843423376216714862529274843763335677994494174459491317671857189536224554851175914934692776373226736271654652152444794862488719262889844399484636195472419278995173966384233485985522652469258665851477881228515956192337351116582428295296956451169193717717455596226636222755751659829591235764376928441495969924815754665131556248972821396297568942397699755358145226245855511294423272146562364775388863213222563769873427553721347123443655791967943185828299134736158223783688261478861661562843438259417674381437212368313397628533373939457489918234955283835677815196932669569362755263546183863262755711766683667273435924399515661141116753828535677278587337894797798363655587854661418131719178858574747276859216336148127924898646918624299228742345946746126868469122542452225448842415116682527428571515716259934163564112263894641789151765667962328528533722275233137294668254466116869139246559763463638443869379955857861425381417668412687524417893567598936966533454412253484262317157948544186331562766915329459255738572979692757724494725658563145782888837991661891263638484677244432214893859938154396143491914436446826191974677186689937828251794274774751927726374267948753721147514877868521157554157922183296846213897639733478673354362671254764942715667994842267593751775141434693959648133249788153928422454793197952754967745538729551785144343137292587361612574538596891335426146194718778916357196676697949633142412378168573383849498282143446486524319167384467315124337552189731141946554891621133544188295168172954619998949152295593321827523628179958753647755295426598149491297183856119784393734363176915934632716327284513874211317897389643724344862322489788828497125179249464858969197875656485286783516542716611519186551288696164494947128667618626279378937642972265866622483134659677379923229345731383519723177134652554854677149167297268466167523576852318913827447244979475227474158267157237971674972718229866251966662474269227694674495381814891455683897728468725164581471849884443612483238991496744771864742175336464576365394866143228572788211746183729258535237559387444154227826178993735248873799324739149821428316578982768937859212926917838668295184158931715526617296779545353841155958818461831531117951385668774258949775657699699394332778545851744611166735585414835983746321283643748211768188461868132643561835188998963762517582385449695667174964669835985633851384242718315681156838426878164183516566486845858321152638545843182647275749124945859913866231438582398762673857341241526938971728847693868143666779721314111172955515789574849416387417727724818458735773957886414944615376656482253729924692232625975412967515529872763922134395683223399948499467434735838357624825945838656582225497979685346626119483247785997446123181514165665614827695184726328435485872336897167726224585217948576964986665371932543881391993831425624279685778922291229218582423974399367724515524645555383434632951776448778231583938565797159234311854612424462744489858652575885879239261596669918883647884362858769676625281281968132799236311176923685993111917728888891411417818256556846836416384163293134724638383756439979698914313624885346164338971967826516726976355879585897694779451991673169794262128598257424357357413618586893914842557298533358888149887576776149394813655969756469447985551154963352617993868413335123467461756982241739925755977578724351425913916178971545833669422755676166456953849784275332263236794419944538812779196518535757416757531873643611618258991475116779322397542713752476365482892367388417152321486532157676755781498328822934972523628366831397346967659843238379532358831769583178842626837655517642415489337534317567151716266828959377399952272828523694129691585423941836953235176435746685634165259332826147445177659218662966572414585188822339974884648745482422769277949162158436681563981132396113897713797539288134323334343943123773952694692414725857371554865933136386636665137512338263549932244861424989582232354171425327431696737224252364488785717347979848512222526652171958439952638521452463525268476451284177131981915152392618545179187484186174965578697867612117815542849436833278147713453462252695778612385593385155381536749888365935253582711225634685248126832433847185255266628976389181674817181788213728379166684692669949647695415676483399758197363356218858378735463671455254778993412386923896321578612116484273423541133411832978739829567865195349452582674762634425361147446971794853928474536867383486921616576952152888131716435663264214661356349428321391924489595896362486819841653681673911959448964182562445411657624914998823618916152196535481252642931812152843457646297636649712994884989163217851459112676456634912389295414988124835972516168568587495935423214596982133638374223761253684995344732945197834235412326674963486759833332113425856976534739166631514636736958533929552934729481431794265769412693557641113941972942256732662821264838838112918292226878944925922495177868867666786364148438921141447224998665223858351184875978813634824779292475191288675962853114485662571616126945782287262462791265312352853356724732447573642668187213488612264545588325688844542362599341557781347968427381733858996921874533456142983612564748648339315757992516684945991364127749661125824154622996484319611474349242632927377476894135195932456261422513121847437849337739954569419549851725567149953734528955785738613784231833828189441325883456216475886769951657691722219534143761258614598563332383493344657924827587936782914133362575839511893441134712912394439576969911988232234594684714145993678468456278471731277458751359596343177784521593519344918123962685992761112141399213692413618767145312391495423344583723972847452972981929451674831193389462195272379352296244527615844678867384411436544258518269733998865483833865418823573489352552337765948224655425762199924167289855448259614955421521412717524419833657597772213365285355896336129473922789899215623138518139732568758935825735276369119822885841626398878339747364264155224697757386962895767484691914426785459166663842316935485374726284628535181365484187516844315824285927435551989486136629849422638131763317496223826487461392555457323542271782163591236266319734465619725783977227239845375237573923785352449241853847353776522723991425658462457729334612143314613534178714958618532882185315654816114985268128861957156576821391819386713514379464268715286226296234885144361387693463881492812424792185421448198335512531721862131348779712521353784746718893915137894655817831198462943622921413271546926598617434527789761791198142644292941774125883769737827632885195298364675253337291973645813413732457714218541359346519889211382417187418253177192633521432458689287927832948736889131163296865773574146349193781683678997582949296619223122389248595384941125933682493695823736465883275287579837966325795967494883189517244136723344713298937315513453956469939253523842624354793138334868662676817181242566825227949225171226797495427563145555238159555567146676227863966591823618663219813479971665861491482752598718778825813867353481439593742521388269549825559788829668843984111826771651285163844799683771161143618663671286469838785953968962233989256263719571349825991796918197911517777623756637137186776585274225882544898461153751327875372783279324793528533798719596112271386227576727479747598456847944962574219772418372121855448233528664975942173811812886328131383148435829127287376365885788825919851442333852567283571948829311184127339514669367614516387218116526248189444261812263789591319751364171994421491526693632552526542848747278218259728971125266799863647363173987748545547142612587842477684861525467821414564513287434981366317734515546883333652273661685226989338772459672836953398267778366289966181947239724133858525351858733342245956827129493245668643416638752246817427357579926871129672446559128861685241243721611667892355257933181414426787758793572595111713191132573141794574719969569549748841878182151497778753599433316171268975979129695459798741961668674451848749697142912874861815672117181854714527527684961941416616324399769111852618814897847597228457414214278339129599273822533377997327645468268297925397449675365986738264889799491829553319834222784689977836765746681811783114282631627399866331987968846156573635686395281714692498272776234585943562971141411638555613235573167313511424554417241691923468664484624655189438943113284321286623174438827758642852159582499841147479261735689764868816935819822559455437985861246916599989869994948462159434548148778575459348732568663595948642419255588413276422187337611565684519857787115536724345996951319748633299919352814247737221349224175295284218499623475996929921227736254465394154472769269141253935639976584798126282197911126317859856485864765273473173185514389264713277544161398585882242569576845153796182119858336549685631215618878385486461193746694156266526483221757394393565125528134674213425489298617763264516417764275426763762523387414764394159466897473648789917646122441745671269886159828898562263397361728743622235216875621636955562533395557668178655116178654298252579125671577331831436392511434571562838885597679613232382224661616788466925672522735753874229289747684174521662835319586897625578236433884859122452499869629966788332419784686721848634576462149852992869127689553325652297481355444528439176932253517736464489923264116113786711151724358687478685184584842323217388513361198756264513886117327846696831929695319659837337958743292673754723143986969582276149267324689941254452838785893487312133482475489723995673253581221224551587926796175542756895995927362311992461157591675165445945659771678725719449515199444837382358315186566419359748783265892836757256692332256129887994463554238833492625729321299999326571883665914164536357476354386723791966446842274619355871397969248233767439547918732319347133935747124756791371143363196697999564264428177113127333521189778614128461278878179782934942918778971897824581396365448732723589486455946375314739363125296455382727229847358632566768377993419681392375999753817473318198228975994221619685865693723621323129628939181948423862143295316427478262169143884161264573894434172977173975254559664991279413828825513619224578333623739661932722262423334771593864136982964126241472695962112387689277273665288234483888179296965762487654963774123499217926612178217862267334735954864665225321132716822544917312777133544965976146727861242871947741884371767461921517622698693456444761727452544584245495163387821296267912145483716335649968649658174864967496665287651636488343959436611349896314968121558462666598158172961681886677622547694252957754859796783359911154813238313878242122789194884998378571211587212413571568757236853699729767477617753798663375869139991866493153728976832148534436324399838133314991573777629951582811783685814293141416168854912182169216786285498439936711119118293124783382831653546116117116736138485624686741985685295885557959788348616261258617126593138734792426376892816666367725117989248479997585665132746327837615428356246784349742816447229868311125738217539594664217919785625616179989541589846365945714364725433221274222195519914574899362794816823223322762752998378394463853334545766832196286923743178452674928494966165773364647754578746127865252758225432786459797451163658263226148471548973942686673836642764367194147845137286843125779855369978371155556374747859326291537423259254699315588364294714656397592426774685132967376647192629379391877345648834651324913154981819886599963755119939421735923192978628523877387379112163564664862733574762478296117213549916392354691966994892392922266256675819268254743922241233359754311891696511784975288311435299631699668119276473972792733253295155999719627363541619783986296591191961822647892753729818417966955941832975654738988978618315899383265452926398987873634454833759975411583111788474736162344619586126164354333169442147161521369871486712124231164267763895731617645225317639634949515885257317172583114765528891751338743464261318499765216985161282955392797628567423843432938846931541619372126758142375568241744888748675776342245462797522675853626473739363466882162722869354515151324249485174269341427342573987917422369755161984135747894293793524659525922119312865544953221363616657138149168144587962263397557992795598484197444239246464117897966525343651395697521957466146742383617871999357998983627222694822173659648562252941212914972453659715677424638722742733929264419379746578831693866938131146476313375823695753828419322325853473619281459714995745766997572719969878813773173555132611367537423399181358554719291362396939662991998923668128848864982685552531628491765557339116413561915157918858723257879779319655555949741526386492179956966821375769732883491941148843539919146512485652882975969753996786779339357812189185672546844312888791735496585492859994476787875754726345784224388287424982769243595128586997325123864262438341681971738326157669835241373196244142215847541386269672618918523925136419163271696454624494355446938579475573631275536876281634327264191557691616159636244197428134423557315265869722435744485187538773484919485466588952389897449217555735674299747532761638461482926599955365238972146198734852953692486812334112225714586962966214342922144445555126463859934455877968162415759242767953835379647432338467941854121814997414478911223958641635126987386926353143264359112164675353981572195419625949841955392726995952252782642135118992522683383786791858823924525313555613841998667543433535966396631182354354299753985337634163624722757282491465754277939235485757922641778815479786477281728384885147125895232199525343214123411714515984495595456979289681922882242639968427852438456314495463687648634365159182726447675222469923865291685593754388944455689482757176143682757275868393652699755462865222296893388198463422376621797198326916323122857188116676735544376866387578653342152517181525932417934571436659654794592442835974666924156611565844284327411797254745159619656239546868597576382655959919764467211786645282811864369349225651262249783311482466782716526971986119177398435461949219652347236846742461284629723544488512335728381526645897768111459299323684421563116585261962197816837986326352652211726892191672253851473998154373344723822978983257393583287524837118488675463588327454773424795415233189626874784438896127395836358656597984462784673164793375799564193791136194551647916233792547846126228737162224715237496641224825336297883894365777415968989361783292979259575942573979866682759878965871826229456653428986241137823411382983828483724522125227898238255444625453634864965476166878793226686122373659956483999586345666114715842187172519818656289635235596179287884935914769377229733281878786474766256522548269122249326175722977581242385191992214935633193181839852971578467567869422519827891684871827653399984824965847616674151132786925713185589163824471775877945536196415762668839275242627212754354874359515298125529681411576891278592443951752384152282238717625464517791765993318325527287949384635394379857166898449957731568921349675559356935657552235271162184952496321893368993214631536635129249771741875774875338389842453456233286173639126438256239373598111328835187178629435948864213994925717225812662695987763173372563134644134288437835592898124371663837239457281963422481392618565747449374992988228366386436272655288226515793494221847361978132551461919378628138922757635447572417597435276978761824687919667797345978495172957829267767623372814412149546629312218784445663652182285248699629839698941586651757866479138191873732525563128183878495497296273354585941342949226955475183591734283665788771683386724122472444752827485152221438189491627651926297844249451493292121273837938547211634669687896997915287871625435487742581279759558867643794226555228367483358293988653821223767288923541865675872626797717974682372535691157434685164834522789717969429434166515929393645712782478398241556287578598751121389416246958894492958886642553679511124598488737821598252397553594484844672443915154877117741181328713179213493898274874538646668437624533762841557925478231776528371633887972125827263975942684412363542247339611435622115364694628963975598467481842141566826177853249598233971954957194765272966161919732939924318997364681766463353325427397527427143391476992226448878598241981673713748337449963849688413481447717871693445232515574314633565235913862294727766314643996243664154341449711477196461659253418813336261231167777493456272422292424138942958624353588296336455587889772777538863119939552285634212178245887563673655419517959379475298666322588743282132726643569977834365413276493515675238475373155471829937567717264686523959254671652643397958664932684977872239184337456241917391557744422534432755489913114733778441882933366431878778167431696449527619936569446392998729679314354894886433365995174846892723136416795437654152549923492562764495973416162365529391539685761189585735422447898728861627284292951532153197875746513474272471575526622739427971521657975112169611362434365163114168855256361122237369695291391696562976592613735351229728757726363459899951123547557529385156671816785781781934688439367762228398876444322314653485311875997826583226546666922259779756345816465676329965566682547513237617154519121927553191255995117757462612614614348558553852361836652723873132556391146321445437182244321634778497311822855387984198529573849679398389465893481891632689863729549377213682828997959118193355219145756914295974779789478784114996572951271667924881827676986485921116233188779167247995483921413513115313181986519389738929158298419839237226765682554445249957898771683393769227371795118114792558416625899712448417818798976111841492871742774514294854749349324352539694679921339624988812734168391159416397439381679359523827546642581111743669726551492663326861918118173238298743782847278844745535432644453236595678375158532974416671915236764221148452384371612368248649225536529354472799669875588243154596247172419577443319668471686935649346476333966376242878946648182115642264568175688766568222821121474699935732299166513423515596443791784256365379811141391839473552619925541876757851889762789843193985438525199765843727875769957355777527926982364535222787572296774325116685821363774843589719375596916675146972338622861721647197787244747344367227314465427126784397661474899412241576818511178417173111479419424461141881787636343642578499341676669547416278711954192941864821476339161677556632941123298571517249135993646388472374693441481184987486658276193231578711649647936664238945545856894664627581373738259933485869448893255893829982796788827493446125428998179178247715586226458869391289887884597267615226762547366473451128367183744166721874519946261362197786158464826892342234759665763432925751133712836848392257624865947421524684866349178284945231625266398656942566562271564966927543963728311456882118954359852685781152772897476465351676561517985979255324951496922178524675363761665187472411992998749296522887843341977197185174958856318486179393489198787295688453974723329248367266134843291935223583715627444169562845144227548796166426159555491583186588142821526957551596936974272819624795735431975125617194521591552831394835823324675485726775729992931393764985453792254721293972264293469757392679775956155252368776812787416562529914529934151927597665495149282172524415721692441116544148956163394534995965198199644136831335555997396783282181945247829741386764493169488486569973654527545121451756683421976863227469213614657623279412488964375921821962336976383323461267584974946942164762379592737743381786269764878233369318371154272349846813188992237247874977395527491972189968171775461757477817546633741646443499736891647227872434797669393532514193946767444587856522431684833122425982725162646288431498769972112681642147312829652589356352351519564667386568413452476991125165921276814548369514641239221627118124695957864613977998811962662473843236923274569149939915272318571894574691946949732523939258996984321789772365227379572485375873294261137342764582349478985471579895896621775223355382171517554433712462339742176594691641384627998923256129226775134998926477156757172674586253545944725352156622337584822436589972354778863524656484765898545332556833698759223742927495148661815386546312213576667397799555535953695326446683247967636572124528876498831489513398851597698949726355138166926245931979548433294728331935537249632628472314422793615617159753625766513633974142393752456321572947698841136431659824968481437632289964866517553434819658692344462347634164728961331385943166492525377684965749771789282498137188596264558823899968776915717415265771136927186172848429889521936494495886574179164986764714796435664141688976981268644925394826372674633511197124888369798179695753214465455155443378248844793267478813248743286493326199478694422293416179387927247747673541963972293719637329833616363516682988917377239852644914531871449526327834656521685974326393335276897471735376434721152682893411988636689916658829824982161392389141799599953824716194389218336249299947942214573172499329142655565358141152398695644554568622267682485499429278632987433194319977295634675572335432965274594489199652997335468889185492741177986749829542986765653292365362959523493347436192557656782296381232461784537136171836314423141153299268519312818971511741134149359154814724814781732715798191124829219671951328489559819528529981811767762783521564445396147946117183758837178213546174567361852458724596193713157655191826811846717246756836221985385366835828498292757338851938457772355837665474539263136128854429644126772118462376578969844185149341918117844861416212285583186919999689463658689218315753952642449418235598356266997551756819842872594943768475163698773352236312451744129956443592359483696126261234635528153392427354613224738751214546459668799425875186358223222576919865745676253652376186298444944821483741454618735323842676958431368532567937618129393558943875711564691383943753772836621917578533983911214379536727479569116868146337346663425986723658568145758471984649871468839284941835318935123476363389162179573455965767269496921248955153188333818374989828391425219524722544735542839711529551961822184237699942124184936981976946254477126929121428812399376871485832533115916957726856773359387779722121411195666341726141158735697697738737293716787389285156625274847698217478945664572176626133416166987624327862229316967669891595973724954621842771357922991849446698892254237315339921119173916556434558972782124915114922213867499745531789789189571862172258897861312279148156983178176382169654665782785589178374182619716769125592569917814532938198168625427966112992573925917826622463814499999288335436837517167194374723612528252784365895591399636997248399224382696276626655517216831659669887956663224768129829492356212181774329431816717587516531241358325637579458928566217869863887618161797643524461971766632829581385355927258585482447991181138966481871586324762896475483486271718686644255621799336764991517567435997323774743666232421561217841338951327681956459591546556339252156166625719345284247781313228412917679148963361584252372683323494251943838954192326542691822251575568741535835866499558531645681137899843425811349284137982551543232116237616631558941738773627829129643213865828513565432693475377121449635916866913555614841357969993845445121612855315688613219297482825325385469889437288518317144226547975511387221948778598292693256943373311922914762521349599723316533752744833299341363212973313745128382565874696723133229449614115822977445614376567789623584773155341175534841397155917344511825348445777262281994495918369341754587955769878867396686512334399646342717674559268736366598838772315474141485391273799448229877997435747675195111471313924891681324786553152462599429719289348269547172377413652592362379292818752368585126371429636663572742516742579971517448382857193166226779826794743487214388987194715362253723186324934353149857318734948219416947321656869744564327621422253846577541926889244556327348454637375827929596419864585218154416223514395244875751298618413732343594822346624188198867697761984343535758319517316992741526495828169535355296826424578438168449246198623932523153491232138861775484234437477672912924216982169486899232858525614795195794989737396228394145514873383851249992632233152356796984213486419398452574779895454952353481139958893831397276512995221369361246134317336153593681183127843857559889513916265423422613486671325393243434948489621772919467497917229443737664525583683428956746456491654319752399557788583956682229285515489518352129867953611723641192539379114395261965226287542549582519318737243338739347182134182322153925648861734657355468765887192483846722884149863398164552269388671332419813687815712966171919766799939819967658228414811911876445337117114779581421791881867411823434224599448478447426492121193345656896749576311952581783872195559139512459978163221178255355788682432676474379571677492816384242485542188415352219847128546859987431538268783812796487331826814546578494162442699147761742412654211941355487547542217289211376686671614943795439559268178195653311361755934366311115813621286496422487868294825825496667664284736874558368649922561116771279542927363288943944989999566564427519336554347421828717653298539379282636958591661431196225956874793854459297253385484894499976345529954763487794132412841637369892776143371949343583666628253222399813131923956184348891614826136926328219393892226915966457951541262862882171272772367782486339445421699786614871886565682225147689647616166543521166524735239887741499815557698714366738232111674723613157717677193664586687555916275469149796496642989547392773388724727586224678866729447614732593964622233689465935778528991951346696719967893375852694474478492851522426915233716875213549278353315435134557727413824167874699839362664129781411681886563923795521776277145266123291656838197559536143756253655955129712611356288782155671835329622592641665373942236684666187158298251316723125238886242741444253977198671872493171785858873297585384131917946354322615583692359666959959743468789858486645768625221124987323172956783357723664176177465285482567936361921287584281727224652817599124196213762268239741295374923934333942327323236919928445737128342535756477771261252985466157981933497944791717721718144748426429669362631792374333247511343974849775837987123446659489423611983859432229731164539567598768756131963165137134576332161835698291277582985687924556561544993811938576664132724158514648946217398246791113264458318662354864673476955954251696325162386672137375851345759719341847875432434251734768234294936991677129252666548925627937438138975776681637381171542235867659346813361334941947191393787432356836152274477571379289567219335717312429656313429338273883715274795826781311542475282479649946425817375395359486884921973877417778414833457285763154141417938715545836261878344558852872675455899382987974788123897985143587965883971666135836296885489526123681877933645127646324752593294363441133397788452973346485784128352255474142776964186714272474387513949333419185393953359596835674768681831739257343657497969536892659632614538261416155751683272326269329662476416912485433759861586318374491932632668292567442489919745165267229384294349973119199973578985796534943377263373373369427314774325618844549776913328261781167488849632176943442654469338343981765526724397539785132964688966132573254463125984485571848645137375588725926414742278363136548256684554946485848966882983536351899243527264537413981178431965944757118713166896184181824818392765475245531918515814984364193268685197549431389761168585884199958357991833851736742579957355239964643526781854426573468984516492855116775751182648964763213752826436183557555628524881181354446188676821666227968346445369714391958539695297983726348775635154148892849359847199523488952345659537692526419199951199984118662415265215745754639548545735582623138448923577921864517179627788171824615851532418758355226884671653912487438568434268679366624688777915647493335541397213874242818619154893915558576287464886976736641928218653499118755123699372835826736482621612585876146963145626178716877937965452955441743195692463958632428752837371334643992247332284235998271898832285464577399498629218936196778885222678396335197196978577944732244299828441949648236973777138142451442275368212925522778462175219243369785485676127283119226636549765632979426137644935845588131896469555497988652145438967651649375129548246991194646431986959876387232945534533876317495188975593115217551883261691439738614263464883637615821789712674444859185462624365746714584742975459247672732268522282549912118543556124387582243451595475675528764364782331444668726263719362937453721843886242813538799715717432613786964587677929689548929662712989665922669459317262162827178275132522688523444159145335943759342494651512845149154576969243267416672723885398292448945859255995552723892321139264156641456944489559839951953978274737772365794558431326312598315677444578936371113233753712531988612957651377477579754124266264915111865881427165948439745261662962846325356962555388342757893998973694239734879396119285865154851121333215581419919917493897282283226535983123993884522812529748969592999289469747989268311374168917196914859713512327257375561351151652936897257279883519956981186941144624437134823273158746744338441812234847328534739584956389133112225697328152534472677396188498529978798614656974139858467286937724684443886484786571496124516277534867146774142788728329779386839325939496789957828659525433126937439277746531393157917449639323965871544296326522112844717739124491455764475926126119571243134474517883219791383892838843145473622499629577596774956849933569631851611557217774269632635872733817758813623289595468621296278557223193244452311746517427143887618896921355475459189831424793453123614748285639528499542991225426787951767329261919853842853285843447413134949929885177243461845178718911394275253569274499473879548338346663168313229568386663426257182646942772983828656112344767565628321477475757592112335511355627438556293677227337459811825485228873473641352984618598489818429196443786621718169918745726467366819168719789484465148691336963642547317275123549853712734339583537267874475528493563735147985347954739266518356592863367965488183445351812625265451665341888686811434423575992426471995972849429343785132521752288368765938869783969352493577575492277759535414699625764111758387494968912541899751127517581318937334123256236119221862519529312134345659263773793888937879711793135589495662832119881577547416618166195551634833612668492142682488196441593766926171819194252391198641671846347755834833248367466228375259783556849222435151786487214638597742215236258663741369979331269733943455961735198115892833839812195431827789387298577658832812991543524182921738576249933192282235476774965947774387388587696718345811297681347666384131889469283672782448452228846149128155963128376428264385158762663367743954782313228645141815172396961356633754176829324314719738434458811286583164995216586458281525495513962256545156694239947888327868163278832237886299193781693378174481164275954473362549588726513842946263747184419553412363724997181616879687927873212328598778487437924872653349459671329286134766348724779192837784825744445711444116572372564332613986329789813123669896851264314511132119979272447325899915246696698798685593735356835726231888337115963412573197669242754721554253648978935334999814987259394629873651553965254234431236165515492657692887412715146269665115645719478466286457751466423824378748665419128643227353894276493175821451353116328143322627266373755789894994634327558611425932296674563853215537282132172655774331576851162614331444549685152464421915111162484527869828212348671671171275314655322282812936883841857864484648169267458649238512586152481754549465198843755585733237466439874619127991275614176387134577444794595384391761167586389635368638977495724791785444961833358291897536997465334766163145469279357819519245767143758851476393117898737651127721985778796324524292175739732492489855615136578898995568431559687671122535282951841285927863722468479623939134198116596272553689425387569472771681139646781948871497144181258195297162639623591438233639644453863557619561899742655817779115479535285131111174239591266266584437855357367365777636643358816349824349954789246888542765644258138453256624536115868934588993695521635386538248624426854533791343296624267981842283757191379483612363679367241448513313339168328444792717431464114434656453384938487557288234634867321965173574392847555477829215826812418665974157813348819739311882822766153458237351232113933991181146652887599334337337628798795719463541299122444966637497267646572725744735869366918646363916553624297569946861352116642832476637145781774251384385847938165528231798756169187526819591496858669638593919917749229269298773548491241449339194926932741428652491314457379279672164237268923952982326933851797712225831613897995125598873842421632923164254943343792578843974946237333648132255334581354542845547279443135239661999935368452886493436648151817997898325159248786118652366346936615436932854522122967192725327777229693776138239325934186517184894754122633446357849247787485764148431493735351934857515243619922754792964589561845575988259141215583779226953145573962887789791159426427922224762967245713772786527159741943328413127687854121672385259234454294595254848149187224738651985284633147321133132653126879866365737932752664966231432918883429882574648894291713844934793934912168412281591579653945415617988184924122272228173366817266955764154456564565372587177673377732236561116552878927723381616289482137937572768459111348399817755847641377442286286311139919575958512639273381999628511491447822673734641878978728579598542214371543887964741512357217951171496449627313777737852562267253272726677397575137812958273787185355712431978481261355951238836341711843939777783697192114886411471463756623381549248458736366314349515166393347261985856483112435476872489723437426891338627868386862911972214945523545397962889466556543653946487731259746834869315967122415954616621685176442373757469588182343814752368893929274929767565789969344568347538546827683438997883616861785437379742411643532199351845914446963936166939361461496479878293787881486989795841871497284193361148186664544927993832541748964967765422665956646818163935822217873414569954617298983286657767555684931826377885674982457923757124516597914692159538762364528229669217998467562414269385746568414334113847483623939758321866797138329613249582864648369456924526458397521568645998835769351712346175716862525114896262187247362967448913164665943468675389925112745535842297679826682118999599662994577686344335882882781639485685932789313634912289357319256613996174884147546654579299115674974571768173615369616526426873268595671477547163933674115682797655192137782587778124425972142695115217974122798599931427611669269679366668837676558599241295912868684359132788434272185195584679447862774842673881987586834382224991966341497675663311883391413782787311349996452782769988928296354984917896431588653642343252777164554133675624478733865279256853386699956318645517674281915689817556451971733183841248248696575221745832794992385288113852498918983465533833159578477542671462251486738121325151897542698733956984455265176482569214273946231727253657154791856866173376789759464729335784768444941256834798634195926394759582875899562831694183485923488346413892747921878377415895134856386564738418395212753333725199526172444274913514787918261669412118252569868118486276183148978178782928713514341957545747434222998171851191325319953426157468547345329318349769554795489135979694125835659535579848367278664623813386752694131914741456122563743162726874277267431464176221494699662258565271814959456867896355122236981497587772796273852577878982479518247924173799974221797685732663585266654822799219278836498565613237873154323134141823543498748951637833254556769741184323196882853535659914689463451882182669733986541449888733167145342497279567912145124776871674197136842778478572963331817874263975549717644389575697668255651858493262926244272739495219755749478694885497714777615225171554381941328758428895564976583426854948979734466244681987525767341634421383539143491587238685217279591528761664713741453322633448498439295252522685631851913256975818727332373421973967968262859229992624749982179465151865141953942112465363569495891876481465659658875319446475865741468494959813681911954682176548585324798569828828824362367912868389658514586267157364491181266173848688936652246972412328334732115864555911224629841872694966166641986586497769733719869355762325413841471145918277154978444465884168295118598215921316149375854251969468328147538558142178454878764691512224966711595793547814679939169171455925974433676246693595382397323714219542887312962211648667488668968922189711886916969835463337114915192973952442937899346667468747246442636769863543466921546319834466619285151314559931885496487632373281696626969842839379896567795913962533928883175882761316175565752994385173269657724744351787261251578964381254826289614772387492358144353367758366125482598238353155579795469285686234363175919215652632267175634246562878369379725876972778331534189356172897769336923189891954352267764853537341832131129194528645291575727551533746736646988742251217688333386659212756353117223123781513831484395561984285996198376236498546865312399727296696523944584328894433452323123682233426764295874117352572774842844175741959536836461598755137222528182187928581235384149542362314212428991758761288582435442672993223122186842859697828353411611732933229714897855427351682743614716918978266831473997155319561839421216923594541739444964819882823743333573925988932217696575657819142388581967769771439176521192195233971977643519542438979989188591898874547687539673369358166915974651994652314259586312216687174539537783812227255785785454961394246814994215821378857383677797111681189599979916782498565324924972989828716795474413258679961467544436315865392632746593499325979312742327856898972621959861257188251272855444131373367233358855769767752274587614829442656441896862536654113652934866922654644229372926336581673958659695168361296388919446413698452412896632541177857682221579324444514966229125889547669616537869221516927838396341996857499176986936527299138652541224754649247829471299983846989991464628542314141259147221817696622983825946359454267978857617268366547931665589715592376145652477929623677126887436553956511637328371426236725447982286735688319236257769339863561668231698438349744511344329465421233292834747622962996317253684696824116369121226315825539778147629118644546556186667199977761431321165428954561116716693369391323319759635881882552121346265286427291144532618754755878384793435943957399358223587864682161383776961681415315564248517613632898494551492822467671522272434613443787826897143719752867819259583851533912615864738814693418466631663862923418872653991342966528585769962181968123292225322854692967842951135726835146557532882977652755657219892395839582761756412477931641521648122179335219849176678733774738549636559969953841516478646918752714458345248523452178831331295366691435938788913129892934943568928969453229899192179252445681472267912212281181286182336784731846535646643751669367479947329382834477932396361287825718438357438775558677293211893353195939553338864629439649737953251634567891676937959723685369583645892661627218894776134469317561149195166777655922514859769425519329724381845445586859736666996827688927912445893478359715394975734535315358837164778758177564926368789214886681957722428163455179837648936474568239372977322618671444236763219122938125735896652675987553863753945646119688143299796452636792975448159197991121989523675345542885788687376368456317674117542638997665381927743364929419153315184658176267739956357388293412819175871476959954578295894134314211587525228113459177657969379789736488819618844859415191936795667396175845728183933433325994459188685168649438721953285774118926773279132965726722938495796576153479372578939691694533192549244461488534326266336778977221133568597349661287819376262774866223962685542559139956562748925626811968412656458344889143843394865969799854388213471384558877263558427492728638876893357135742985737455537489256745971672235223795431883511526188574542753265435976954115946454312754717134566952537937431965384358639432676361424116737724252576347171247862893293765547951188612428422997276486552114687686446577418597294732376476834682225763494342852234352988561927139695934258332454878966712792514363846241873117484279741819159474658263158358186493365345249167522238433268855595619244756653394416348544238667228932486151269519123866278934646449577261276125827212618512865498255861868461952652822652838458373758734679564638719864156882597873544892747299968845249726866643776265238837723586911772457992278774285967638876466432567355362138447833685462197539786491836948772454612147236888856386367861537763923226738327292739355931183748939231714635234295129522438693484397467719222541943885127887925454179731552686788176568256746261677541685744311298844657221847884536584158378387152426128191779123671965782529325556957747713715862758236486397842335119679949515579391839458222354844611614444891829883736548563947397357699978948837189734489762491125774661453345944895143118256248795159184427899289793883697311171575474714494392269448798339336363791971318638744777436258181616875963892754517873516231939979555132229394744322663275356142997489492331683924279386611215493941969192961351658585146256685777864774969884949787381715363739515972367154537416124194429692552939254757291931422732163921165367172447266358371442547749846362178213828442269393457121185621727537719543767677811421529861832673354297473129719741881667659817132441177378258122189255829789592536643261174785983717288257216359713928825393782962789685414928788181761381658744811769299671459256132259214177457423432289314138631845764152796527749866887181853737293618786327992878556254239412131372148661449426261775288137229346441295229961685663171772593427952952573368317863969137175416119285322557477954249232749378878886317543279964377291364281168846466211327214532239265573578352887417438158499413328755812626794434166861699648859625114265734265562248197159835796286512974388845957756452434793422961148477341634499934956436657653756473197969387271575217753417671318517193921737674183848178635755485294485447195492686473235788137546874227927467424951263632433187665985677392133428545787731138783171646275468791543111773875544849884511946716668858835112555748727156151621265141824324568832693397992853969463443765119882851179869144339165318573964842125932917891224121449287473756857349539228229622554463299474957772614525346387432877187824228985146598822549173259947629949847331878661614511835718471365238852838674633984956526353478789664645413665953348879594631318265628258323817231827757129149965326131861142845735591313216193634237213315388762319339549148311613323442869735845666619514223374595637813774157524174914335542881253824181585236533823255599777781962369217629362544748296963531627733652324248473746545141393354927173393526442515159543571795275873191342776926429364519588985563661784852333874899149986784321586643938161347616629427185426364817211815848599159981788219845335936916489248943941928738723234626216745658542745736598469562933544217672316488851599345281374626936683714441225264287595622883565222492735747253661219662858195516645717189794159169935119998348993463961939443339221621619433222447643636568881693664625657768993666819464332381657997462137926171752586819947181671416517298795768917587479988945176635244114579368116744742446943485917497645571371944317459833171571291855392229213533168151358495414488817929839272478183217846276514384175857864181898118783499851278665959635924993793571791684692357843795386665844181159227667691474543869426999316312322967627553897273125714534264385471222876155763164444686912339766778855469836223555823513635592168954388379882136597857219558755549767484462564924797396251125557423161597644844294923547548983625921979733916425716959693481742334331293493135495189958296261382795724953245584982875784299237397777153257715993989546956858587244958264834323412354848424272986281996368689939945438361687776483582118876668552183799757534972229319986552296384663637271557667588486131249778144386113158815553381983996953755174683988858293432429697283357855222529385194446476336933268852364314232532864591123625831714831241563616782242334584977947428432377638286418422661147641362113239872691221161126129783719798111998247258144156657525884754554643446141855258723464841216569822145649523948718944327438883754857411452746425219539362959224599249264437867487229236339241681495222544239967568472994916955183494657879855492348438727423721161415182166495528362922763934938969467553992444368361446638121915741486674717924749772344935925588625162523214577445667959441897648954286416744587842536471459213816325855429757441483129944944133754149579345167115395298683985241553411333628427847456215492916952282293465216879515215553644237454464799219787636237682945258883217686586554127731487661975654875632289835326898925562668234411753971852364753534179136938278253541434641924267564566149756561814845399299695351686289155612672955474283143666615233127577533628155463676733383695886544286547342677924586814173452994392846458525216565145531665764174266692543953699912445491966364578147291475735635858297284799147951569697179521996794422882784479435384981832821489731998976413244662968141223249223392188618832388384287398422433652759519382599338636356987221475449389317456478231756344955971525352273827554357432855259647688113239411255571292376882745393193414354368725725942639784123332462896322182564848191169351572628797417526751245944948863891162832463124788792185488265534539713848159317276385814639183435395579373293999636197461357589129467483613892844553288313951843889417777856139465683313597681869791456131634559117238477145221189135627789935834647474187698696597159727699182446173461139988447242113763669793399645547435268771869936392261481343787528834791787779297494332355523265147417474142961699822946487713217847575978964923893996534395594288934311117498668856418837377695487817817555392187537391928787135715486141669868419248231999612171529233287264993726638728668775836737145851149411862734581366747229914478572392488551898724388118918345283322449183163845263964663587995225349257543726232417773121718221744558283443166297964255236147911355173327613221816221633236827842347577238341311922974296768432556192893736656738716234819543577186275536181653534135396348495193618152759724866368897312151659728624778749136651329151255291961832199863865329452345358868854936135921296737552585129895569862554855864526271328729798355239375669245587993925876745459863899255168596284585962526961957226141656395923351746998584578389894848467848164148636374632459348622467131937232975592954199823675829532514326423853948346238486767699749972593877162884496234798458222118167335939117346868238962772883688312694684327994815511677854112823982341662351631172137793113384572595551675747734736596715934369429864832484156438988458849266297184367495699333129955738654264962398937497428521515968723148524753544273713654595189752865717171225522791155515893867954414111131573642746375764949634974364265213575549166532824887173588895425552115811462554921637864643974439529991835181361423998442749272923891774381216347536361534431522711788215236759592137181423475436513324835491348442239172497949479611972422335278472287237919957726894134166683319538251741635296875167474122353294918972933542929525352644778887278164266411691552965139487274981776193632582536612294132747135293792954191143693792114278971479657742931134383563653169856784748412594486814959214429495972235165194542112517437868887273496892392555756897548324182798137616736879345823566377675745647398861437461752197625471855498137813745462445544194422515135836517789226451883292643793286769419977998523512711874143351926846733422274423584569963197288862434766784225463718784893511376418775443654189341219588748856486362695969267282192939613587926532581175991699717991861197788331479576964924794472457456924755793539135416875223457172574948597659551992678189215813969353183756512699656554575855141964262327977126981545872366769756161282878571169122699735399254758776953791796797856727157962337194789158927587262633437233344944311296898636342314545257471864285394782534157277431945672658166485763816391917649733281356242678154434944834597551868793396463377611984366526369336115335859277737714131782216139739252637634216776278246346858821735887649941526133847561945726888376929994855548832466569931518435136916389744636662317391359282584184513586838493623231255162221437787135517346587711816213434466243845385118757527488918252597111483822422276827565356261229828857237368376857513137642653534318921546364948688789354517751171762725442635484343366525371277252433867939577882918558175183797931325917955633733587474882152854765256851314575712449728832996452877451481637298332213984173717885521558629238952162359667837615156112752674558655679634316866362962926272626471747699911686322417418916168616769527428467988227856647243992578311152888476287852425138338564384398466293611386527821742588826344179689959977528219363412183796294152945833674493329649657827426721814396544873293157911783333895865283847214424727327486518787174683876576918269891628278937543991176634215831829861677461124294312863274666636512668394395714934119436682244894851679997467768169181658762141424471279895561375264329185288229566564443888816332743542969862716462696883754285348693688564625241391777132348862621879624185588418474176181967127294956343781521357554262247859567862475643694619464779993678514298435989258518544812899157798216948536441291145335493496975676378212755764858389618847444991426347491877352979849624356546678291831927632728511462696249897616689579223385124251319923812551199855867194596919941832112247356231716425754444447429529743367979941661946479713444385248474161963819814331391533852375112598483663653185114147432457868197736193357555154458189214989787459958283738232676463374662439275151968241863918545862227369375881776571565866711186197823859327394941896362933831549121385316935229298825917298132933961492183693523383684283195388575523531881242451728936334752599941293372285318379163586951199983192327445765681577635219219117297338962437885941613124935834543275961113672175235436728191454671265265523639242573144844778145159676127379274329524817274977482338938564571893735114731128755787669325772749922423785776542929766687153227118349527985647738694253856267858682623422765437396712885511386954115336512854663233211661677272573995545628165377598453419225463663116577463881539264514436862127327863588877818824165496882993724489637514185856253792381479641978832672979454979247365392255252144191297123429333157577692296398697615427657579774521179288797567138668313151936367464372242986698453274478461897533869163162629445652188914993556741637932183936481589368648992475537229327528256294939884673729252863885535449958339328675946862857226678191995828839696179646739442999798797377141899495359922965144923781497182271929454436521825215372412219226217952484834815326753884985816526222259532813334898276465855316827942874165296585382928394814495188366662179637155236965345574983718364462413128531126549197385565382727758148781872426324953498926987661355132119341861264494385873538664166276299175281629947424666431626243842659156128192633988521681384567722526237836198386147984113558139362875466955783376964465699411327594831435893138725261511459572121483435815127888384335268195216155486867368946764186492292711325753449155848414612351361431453926349144518348698823848871825916621523963686356127491178241649292143329676211822549557461424323426648514125195239284729749262593167717298617221927498373388338624484194853664556286122339162813141349635981336845445558544624827952924491322895238773427778151746826255286465886653984651445418891415813449826481778133166597376316886929792448415116222851577197676267146279111511231315353153798215928646546587598629143337487318799553115553211952854276815446295149249794915998273581161614222525548597887376183441346315616756311948727445944277291721279845454458229843436653272333258123567981713596838483698622837748985573634783364292441313485167845393555933158467512531779274868487642133328155695857724639115843496598829625983558221483374858197636317268556812613651888263861624244859694374345599577373667628922396255582995343299826172832533753268625894328537418915177328693718568157568311942731237859798978735528165884978959973757626492364695511899386981986251811451667926466556474962868582563697753334861525941427493349495644227431717767262393132256185639841673644418134252344567175526411366629841644858973328924465196131673556619995782913894231739222288434994982351459629922885717825657136424638572534315593863544897611242595341584714253437772161722734973497534715119353919196267248625854486856356271461371876489231695843528143559585521598935848997471732526771628179218811493272929981133699552367278967996394495374485644588624331935734354683218447899258919333335787112568678513292117817739851438948185833684893993663325319332235132515763142339586727137951163555695261463486344794417192197331681197122351974343774482571193262261762996183426784921158168474589566664253583251432536332168417352817232379684626768382496236852122744861718169635443582193778769932397378174836379527726993678551771497294686112163735324579335382431949387888185347778125947365497599428196994338984685278794333871812621191522219668974854267453544694713644764619416781196732164433792956321672512179278659756288356549162137267375273847812339154797693615411236644827498529434683343592842945598879619351283641865114296471829716656572599753739149457185967927572139268133486399133831426917645756663465794222124316437928773246882138587718919339861663429533122324152732522455342396528472682693998161293446759878431257215375664469589624387265997912623149515831878749156762361951212325365648735597312988294298298339855318171429148345155464374116981499297237142865469815322532239178188891593778314193515667879685483252291577288587748213979738366582692747345184656476753635452999958111645243518146711973417517492283346769191814374361691359989197331896895875212537587622618428941929519976476639478921169892685676625513141692538429326395363721472822126166228941961581915276213484584281792585571518498826445663911428488546973934874655297663864895734577165366533887316952246525187433928353916184793388491953441173364199388786156474113296439437653151878756241688988288729763318612689443967134722631393378598358415349545246627869888125764579299733667181641317286186562818738619955664526646365853498578331991875431782346961445674529243241227751727941536579147478482515535381362156198656548274912153514133968262661535978786187382532724929725982923411378876594646717117979467658888815683132484954554341186739518378836149177452896118127679529257939633538263343852653391242166658511753568882965228457462667222962836982751846357282837973583669752351425498924533615392459716671815745374155497657186239199766745118535929459115712323223287751351193585428329688811132339995919927266697428386256157389268559349166614346165671285893719544477373843356852329336715975738156783965171766887698368666938834392586194959536196813767259932361398917382134634323479295187194224923531643115336663561968768969251413466666198653898894659356261299435182689354624512857783397317348847896829372522787565694425938712481962878138197743292522925685832817984776685358567619791268631729418876434848794445313239183954893779323696365789219532328514883169171239764333143885115955333437444457323745139327737223735878611146677841444266738438692277947132598272325629292945614711593286335153263535543626186356396614237642758111454715393827546995318961145945878258667958682181511496319883271184851544492499459478918876293192475429847987821758557334843142177619583271952816769473765968265925772998172163628656823318924515872172877164335289761972673122599615772478792219185172138329578337815142821921828325427249186818588982163145136847377882788279128815922226627291718595664579471152653664234944914653228555482586641896118592872246566291638776348318828567655769214723876644266177858695459715634995373736141648212172596476839328745818312465275473421158631542315885625751258786837931783727846424865339435293686377434715389829395827751261527944787147665546465947612626668263529323978421157541199262717633784615892633738372371386457119377637126378541377495533158758685238948556499426265516722586333655458393722653268617278226738994427255427473688448155976549237579274615441598332146523266188835742112445574496499152378965747111321353899229769764889566149731751775954976842717176932534487463439824211774844642143385723469692573893871245698691929472716665792981267271541389471317367823383479485193155973899831546228445683431931134431719781635257992559791874776128188947199625293347215383559169857651359211539844565183227132917762786616667532987375596288488154223772337189167784232741578373785852964662576154566739786613971354441786843457783355223673861884328287859193752876487554739717138756432339684761398153435496999764315437395651689494636154753528758381819365423352623238583744629446437452793128289491349423863697349965143344952891814744921371994881373597892979959423714732711997914254942948833855125497558457147462746838721996497835571215819544797479242229758441978197577421691337331453427259357146793424583524247172393917932536114356683824337934963253946189688992451742155737133347631248195885131193317771473696369373972551954953272848875945559576673827812287394587463856391248794885675774314551276451169183853332777145464717724369365373656978936749174344115432257673738414217661567782281623638395577498717464598277274236588317763483353988338135752264622433117455668847768561935242592735945678934718574321313836875157542987789169896228248419997493245243811717686296918748738566679184463443191511191964736563129127344686885845845729292737948839654812479953525897715978661453297587634528669238818385152176395944696947712615584413927124643136585978648718267588878479733945673279934714629367944882755958416513595875225942736213378763593254483868461864926537755521879983322516442428819552235686653459681821453684464219212679225551327388434683918328349315336762684322254492692434347167688354513735939379448579893519177992442695198915848685564714619398332581989789153812357627977886729967165923837917133784471968549426913593765565268436663668412443144293568114521253718974714957241669815615946961222917288572296241221579163658771761578325444847869926822177934819756677119594289171651857531829684242832771188985949914657528486898972148246943427316771523261859636749653136467188655786992165938592365567113792655933522617299839965421129499444845976146855738624255156184828381778472865447298413817415885514482219294727425155245974353883139251168439952567989467891969372285281923917943531566245232158276684774863646899845458851165773339586772136725597142737823389592441127229681141733915585724663716817529577481454635183655822181752413349187112473772136517515671819943949641678945157687347614774676879823789584977536251821188435912983252119386139744625723466856944348448277871734995556792365859273117834519563862326984191575483673365524469745866453852899436694819259595558144677862141974533812827776222815262957251247499688851537137228634729434437277935811752554265927488221554369163542527651967457186897853278263326556111296832539118783999716946572281319882834734593893652355712921941827119483732911266382752943837729528446628718824352416599882563413347719679441774815455333577618932691458382458838363794832691483442576294339192828187471538656889947656978777869768494347212881883438924792576433162586296374342573475743888522737775385721145293528882169912174749268649743252383271376257363537543486358553682987114629344586348467881736993181881242165424936873562434923221298212316858241716153195477688697417448122735796499598135683442182825636888368797756548197341558639282751676454138672472195248811828984941476878535762872376266247946329366843695161348565171685368771795379538944966713219366683469439857789483679349661576134378392285854882158873837775287694433552936393498374556213631389522855947475714431875486649677538613187734394636713252725672314173472144463615376581751327447644871174419771287745719721454117594591831896814478937819844254893242235213674129713584467671859263376686953344223452776442427432758317811125436771738362593246411332891992425991963888848252782793882871913391496575468373349328686864864184213669115922145975834499784173473649559941145642224443322727955329255258253616626951382553257778694298913254725229258383517274933342131346618139934762912627919233336451121723715161261312992814236761862833193599594524613684116672658821119357216547897265565132386967968884593247836543188581618194898577837139613356453392352962459297878471431656281411535521645564241987939975593533566916161416721728419397755997343734428469932982722752435935558831152987888987159225257738284955869148736614318229634217124399784688469111439342295414124433311779524524567572679911321664785842693944498135282183194258537911179363593484893991311715558148234169418547916316335486841644457862891645345965497936418452696373452595839425855546176892161787821971553484958511917686782761542548692849245975975623382566491554393575498885371632861916536589899156685463879843127116669217197982648184251144235945691511228817862768174176498881359399292182777733541846376155278297217324489953316278896411827636237758285181319725585134195667371955663259278259698191411976683576942166174887846636575662119356951965653849623276623278279294779764229393253468921136854752229985486215429655547548233497618485923443965939372925737966635463844187473855772863435922563918383691337612168155476867914394112379482942147942378964754172472517536629732426553248593899836186828571343574128431271449433949621367481546948779886821754847788724443496198766744425389673341113446676165941494735254111344434566114729293243595129431454686943653924823925275576417542791384448738198291617164694447516545889651441259221926376619459913591354488594424515143613538438577593839668899349843192335266823662844718698522495693726132723978952332279911141598861462533721515647654555548597373318561722863326971225679428155376121283368589166187544376979517928136352299915513256574171921511413947147936587681348545536586617891593386824483516349882449181768628935517954193637416638537494355946587172571833573235167715939333962678825987244346842592194836222378968547251574167297495786298315119953667694918638357725343164563348683243532384218871313518844277826139382411822798628968842258839342368419481549391996779874666589695535463426436435992788233771641283639869393824313479283551423532783658577669189316324559491742899154992667564385916452281364444339728874429847347871999925357661542319631624337814913984327974936156919861382872262441762458852456946833841926233376342477352487972563636627331547171398932259846882244715446471176196888993967554668928351988985594162861146781145727651639427875272457361927922594157211142628245369894876678717112812715966788214194571137787587658738235793513911367359837676331184895353514893828543426273784882169585845114384137479895164441547485867267595898536414819253286824391926765344186626897811129611131232716229537279768449542412423426585196948755622556419531672813452759453227778823453496553633867943876197754645971229655827993776953651236671268269134515214471155219321988184799692143553888874384125223921379348432676854732951462873263291223156223797251354389466662871973267789167772787114949595782779186754648415684284577326885951858433687528975393539261858244218942299851548156319216289913313116226999152847566377895775915316816596499584321757436814313833413943673539842725557148377648778173339462456437873676392955823629832768982635311567197281752123996172769922543698396913988279468964149141285433151641937745671466759754761293416461452234671616271245511529758484329541888948465469919952825653975927896689525952843746818363569941739397347733927191761597644638592521144817218826983931684136785826739111739511188271348631298681252153914954952779794456476234248343643937422689458883329942255988241343164213956724156948164552355487583994198779175768665819935453211591791567574949895365267612823952932868515998877393719458631725816883643132819438797522384446726494557849139862629352589913484913367942843838888894142933259541766461543725592372665747853896762498332513942168235689374454128357961229414519421789617952344157754755685934856934984587691996761935483885361853241577236235789673111388813787911848661172531597797726586765555539384382344383952623262847382735743162295522617868164357875137411696614146215989796121717391839987558852463852711422481199972769515299435719881821968857734991952371213674551433427293865255348465475722966197338147324647161996532894181598322125737999795794347436825874614716368866726286618459932418667136542327888597957781774713478161614835623353957635683953298894964347797933228979447623832621997321989771983779613364537688677399386253351417477513955613468288996621834975591359444793139847536187169456795711654123315288841438144178647218172474614123895848751157711522328565725226415887642736417557669425896317847214967239771414161192571199872493888592567498814713859858736974243981137866645926291175857434847145247723377867376372767499773576181853289765382817183632519846554528725681128219897169228193557798569928919839619425237136461149884775576458327158671282718711689957493948769574331347428298356141771974749685917832663471295699776663937894484276332568577147913478662341678185717854611314884239895128175873333117458488777178967468255742965264899737594189985639545917183598987859588887774246979479177327196779637495963466153899896527226784645474869115611999868418139698962489766675235124991732534584378416372838341742242194257596733573191373196261373483888548911357466483682197123452738473262287832458617726427662624551776875556692441122644218378624789367712369314414567878614465734658339555484734179866616942414779692535864335743637387881922387246389775117671843551238339448251779646956713776131244866881595662515211679847458452738316355619851351327281834769941661275645519644554273246692484549566919369312557963286746785228963654588318454148357929587998785949278117742245179661618397156549467157732836333288238957652296232846618692223421143827683812425498148717928241254445283473694932735595295999915348767983252545617267575164154578333822245388748454991516891147861153266684447383673612382385161175289847281917275345463581987174491375983174771294538777864552892928416592879887241917683138217318938588665553266265914216936646438277844488615129691911592256688586279417367668526516556751318256773613338984636376931495426221796156478267529247639678118621599293729535386199751617318151218917389242659257933172712517537318935848983997789886966116758478162534433521279247743354927743559693924276292196879184375148383232324731249349825824241644462574795168172996787378572535961928487973669769337144791943438528256833299164986699868943175926641323421327615264159934231623276198349462121647941834146297495114747674675737311494697216955445728575732194824843112733326741322158529628991475685746966531542656497459258285643916692344288342971515429347781981641754272995982932573386165153216289597685173275412631335631851459398965462788217369373845838964794578924282891527545618199875244482373672651792455716514581993341458625779649773253793942931354488249616559426741119394486421659552412966998562562581729351424368498594273828974222283918849375115943249431337548756147731647146529744687699453226629292356859581354712471315417968987111685523557927154163613398196716754295459241845242492631539189664983528432515129159312354253118416756488548139944855171485685415969598351163957442848876245775272111846852145678853639343619125336399774887355231493316477488811331397676319713741972619247917949968725255225589575635548248842838599923434962828371725548422695444345677864144871842485236375719133571266459845828157469187567469697612247131592386131829564198168728822624673792494466322521327177968121486665793139549692623339916717736382751953916865836157948517371898964169248724216811513354879858644939854615935515555779966949713115989341733273628285981565535745243267229437788496883848372755267573174926674424992274991165671317515795443773962178477583939859699968493661865962718345537413371267996252147633783526968798925929619325428181349481985754645146116928459257261118997553926419919591335259766765554299389829819768782386352726372679517498378343121348773945661728668417224148359374159443798759515344156441275183487321589364314737233866873381629241288114434797519786364682533555563474716175835783327666728874419745115623194563794551222918248213713264363728997342343533356256426633159331129742866229444959581153448269261144331842775169928922156963888882314378454851732523737322599387516833657132195256319949188116666247493195294618339123121812466869698718237687419329511681716483443292925664394225175132293741863173374729158459857369569732727124359612517352237863719562732334657618858474686361531486448671936685479295563979132158683548531999535455989386198193952194947946887332711628337946321331713487966788858891633425947968838267862431214994956277661356938745339562472861254762427433935788221966213278293568789422724183984888489696425669428369529738916384233982632187939745786768457986498587758847548313879446189886415354827791343174352285783769491826197856881186411539987252972952561236614612342493271786973177323325884354468686894971568666487619197511956714384671725681128878676327312872399566547995196772539251871967186942585364764241483387274269878461517934489692539748565872857583544345563522764648473861135773927249685936182345283477469936327839797389778812428555391283794377256964832612744698117915384511334811282343496754555246563823834315232446685249684197554834117437848983541945993392145337737479144941294288677896991423185712726918128446193872469592698169231731532455864131276114273989882854895931417719826326633929798973353846885456328859522794672469684858435961583377227477633868726111953448497624334161634819672283376519347999422717768138996114331871814613433513269963752362674662641991144383689475651675833299253343445774922868314479853262986319443918399476216534428524712232265355273219629362582444714836141566873183144859918233492774366393889286579854744566684852277897184192638523887332891376382962669968121862258762949957475661726612413589693569663557295551522172392549398635481735344798648856865918747589937991425783546431896385169617599287228676831462442961455325865882593349923967291386221742337615754978971265875892414586698458823221917833419788939276835659441751742334554433235151723188933887949262517949262666727925716995698515665368264328881572952641199841286612426648527473568621729793712362393957819446691453434382562678717192872615263397439768893951721419586656152362114969659944925946894457943168258545519393684178647182765962776631969888146553316915189576644286282269973617848538835872436754362378374625398139812489533296413641466717236938919957998198748882827487219682463366955855628397478126725783929145749114564384832633294662853766329229666184366528748194188363984895852349766317179879187992289578143276142553369335244723841887581897381546672584197368551639376454163117663722129746591653589123529829476646747711259324562463614685512976649391325246682627977334765962415334255667225486173794151646776299523979691228614773288232718327258555495315166443641454423244959893323653258682935861191425719688919173387254337713722852233189861776995618931692863948261478354321911362954123299473198135858281361386481782989817127828394211146265692759847738539111839341353968426582455237971779753676591886527165211723499466331597147126766463883854293139652691414115671216584768278369215375315625172182639115912646657264595145541549692593173146791417855249683736695745942345814854528133992354813387881914484868219923311336617836514694931317127918238251819593943392685625326115828642522551855174342693924524985749891145129437759998199441748313282286678521294184883826889629837144512363373679957139797668542135585721136393378981959616548552911471474992319197172942586421421467494792913712419592649262213247976345435696736675738653753976664277619168639187569324599886442659411316968977723644993879413667498428924721483547936223153498248881662133161324917417623852765643698792197128498149791886951513653531629321959852721799293244598641693524518483544614432634973737796947387125469621952924411774442945663464899851746846267234468562927343632496569942558362597343444157319458985878932858896621765159881724512989772856635387352667644515855953829994557964689645397737213696877865291885244117426188818167744418928896419619341858538333196437229997538587312475238961259883594383945784514531154849764742972211483952392655759922997261357466315691629774257949239845869615336784656523937621532315882741153731186537838479422552929184199351457891573311242476667665874799733513649868783829476122597977749189333119977248176576616413176973786196192726613268839368566152431939529699259365238164919424656647579448253289692596877727161625461384218426285424882652368329755783284934551183361425542363237615823114568566782822476492614355746947472237716878196545795139592975612725585271161525984486334421871952591826913165453781312644611615844724415699135313333485746716271542872349243663885933516177783737815938842298467869218725484655435827611729556132942814341696239719469421366878952242455525127877812844869546332445679231633329911274569414926169526438372513413419845775966662513145863113343583457935431177227429816196339477712394636623344866845445867793363573845417739126699123598257482739823443115927565567726422159222213446637137673218878429515536636768422124781991777527558892454929752864231221197837683461595886752948359361379852619845884362947231844769876769929883369795988599573848725491382269496465843682538711582111138244183718292559693363321519513326634884792846785922243293233454926394654737416897921239442777168677933315935425125137862148633481973393776227619212888981754972978287455975735535623312475663759657393789252695256476593958232187815173188156561117647843555642322838126822376476139813957421542625426197125751353234418149184355676274985451376697928733721145592228516132168527319181253256615715665367452214834632746861321791345672396516789142215781713771895452481922689593513181151338327842979971939867118316312334155748825611713578379199619742236519471742812157875673634497519259286269339344121587749178738653551166989823214262835742515378623628116187297623796269419836577849549248758418777383224196753526379283957796553282583882456788326234419187633849987275411978899412742549291485374981429416285925188242151188695883734765372764262886179187837316678844361437833921418416999739276951375327988181221942541413328724732353832749651745888828939819362396668743617571948629422292228346893765915652645516447567777491179355746211364794347182647386484418883392428897222718872599128447235354596264964935811958951685416832271795981384754858734683133714822881378416671954817275387557947125142862428323693211747382966776279355477218466687659387574949556471827427264831585493158441286813793545252433579919294947965536895147552684821812822214998441829423267324696776847867246961152883288819278745328994696393387476684364271934454253513141359186534768175177413717158351375274716172979486116386981715732248528126313231732349948818479594335136655967139253247826654592924427882477171886298879534783874396884121717786294972825283469779367657637495814391581999234112937683445163553873921919822232324971294591845133314394175387398684694944916528638967364882422278628921222752625411146424554661423224134319461892896436772238161361573983938116286628385497293128266465656446153725543872681892798235698343847118442728875855913736185999263872615776463947438799318887613879941528954346988757776455124492395435229454142815562117528947176517919955447527964264824617415954754748173724519836297566397783256519317577827899318965683352465115945683363933762657916341376876369726942235499554235857885451177848532653973836359624492736733417251394591763397158487559122362176985343499727423269815716742938427859288959772997967337911993844418327222179277854586266266448778599291497213888245751457889656495324344864243965538564242195735266689975387573935771175184657163621416835573754331338736191797948987569826192413445218797765458247982863461592734344113689125937525791836985957471661928839212864423416983587224179261933954149469599198345946253268251445748574433432255648263578284317771527859193316661586633541751437477143142261826864427759635667283996281396367932474139981546265554172299726419546948735769484839135244215644598971743329247629422944354717255842925346259912843846369629334718899323838718883965592553475856745666948619587673133277414988542917581351398956269466916394148237876811939713428255745375678381977557541311642366829246683421417152885726871916676591158389429134393774459349896554559386227128348516841874654298533461971763595346929995459767521646633798857371963752286152883856419678463199175349457853931295745693428626433856772466557566131689821663214488955191645399992858631786816354249648682111989164837996586119423276934124123918491179636127157364866268569751581588459152765472856462227282339278913818963491665291422931242158948238824263118527558741664868752554335641731573237181957332196241653915178125346945131653752365311411817618132625227272446562982832712462265436746453576133211393573618723256728353511212413541787947719124585311659569711854922715466377525146991946817882372442887414155658157231719498526758847576871345958662742772423987851417995818312277331496538725591531329799539746468486949711249293214173935899434273865725838746857155348827758175361732215967653367891572146944578541562957711946624651664358594338483487157241692146212527365698337665369874942146655796313862694358775651944147682151672857917342117573566869527622689674464187287834279746687449597454789196794586883856414247286732181998567815493677217522339892919997744434874139741482414383483362136478854157919958188416544761863398164577268153859681325691675814619956652555639687629978924594754747312456928977537433124563948393934167659446188721132487761571663879634567164836837166831768734121883129736218681485968934796297374586457967735663258941311829536885439114776342566359479451314982324134481924259784529455575853873275514514829787138163519874159466817168541418111817147934339276847553496336137226929613936952436181319842454154644695877371593911921814848244597955323958988387379349733546785479892276174792528553425657235672651767364634774628759125827483538593328662847389254165456284437276596453436254168464817425858565994638861476872597977617282926426889664611386446933684392584236713668839956579161328657795917577723615489137833855618477877523294453982783366651921747525256475799176254581134924988738144671159857461818792192581343256613617482126296975184222156369819158796798417994581893916542413317276755574274512582773325565776484857395791142398466698144511148423251521525634579239823274286927232282234687933835817125333835537644866124726918589379693984447911477988359849696423473762294884822499334118967518745111121588869899722122817466231731731768554433384496466191623675656623477719937366812392463629164735962632524358828957173344231583188241283417388173769182415453651455473523249946113111251785841975492652865868468769783741234139558724899474111975743117129432486247526543854841314615216247265788539163358621641991422825642919742647862623677766797888232423296359146296554339898476388421538264167677323644413359768519453367653329131384624848724653487623377518412528979254134379617468595345174136913836229556417133882215612124594785497242771464632752312492851129648352338353626789791841115216969674796522782349329312392791396153522164141365287117246215334849172277581596914715328839352734531758495355955415937719634796159115844479763293775455317667373374656984969189356781312967694811275873158955879557677664312593519986381176554518255899321579729516244242887236942321242288249191613136294816499622635852555554514826435716354396359823978534874354885366879319824715993745122436794338816735617976566648139262722144834496847643288742544569632736117446131673882655898144186258758583184942329374754656865479345174372675796733197453938465488896212378757319518333635461898777287415288818768592643188158926634465772563338177241448344245698833391556768666278322156358727499729863338275893625728444115854725592733541921172653476787252524972144487478385538765333947188485488826552389732597929213812649177857593621583642333243413566373168896158197359471684824161696882661364163787634772152558427186242277573742594869965291941549254361917282331616692112195248153478469176218168637837936541345572417214714521382964657291214651779398659191238324779397417763621558414324326147514343963737978923863174415829659872177358946738993211541131876763879594487859749959912915982567644673811594458343134323612756429877968916441265467688949914655622317997532547973642435335689131241831574727424677798121567461575546594855486642312293249885822365814288626279319428632518991925496714664272112143894945834815454834279596796798977361753234658841257116765234129856839132586371286895452874176151733644783418426814449526833438581644922252983463816747339662491454745959137473652236967823942985358743636362527639225885179166681454717333574136946515812726475429789412548851454985375546274514472313456341365653989544149481727956192615632186484438731768639323922172544652281622375349113123314421575828146197324658657759171411557949842441153517373946843783747531314546542873598683266435617349361693356424563331536168527341376235451183438661713318151764781393837746979724784914718775942961244927414386654833393269553748863344984292767141369575429784569783171481655348275122653621966734141977933456263674729871855438721628411644351517878755631163934985635687112153728583945951244533985342952246328266451846949292471715919224744558183266651569596567866778142386185491866992751497182659442569178597582161345374962236959195992742498515528945332444928837326581528458819694136359551333164613563498278148449155918932226575731959766678322226516417529176548532398945677778438968719515158791939714379846688465225175579349341212438313969795397713359264996117259979155134563233456463753252967854758252596728943678834158345829284999148718513761643957762252161458352213153338383486163377473427142353557679488536143358986317921146389147976818422637534945636739257259745326957111752145587161965589453975579279144257786491487844788965322328232546194633671244621417848951763896495768915929369399972766722911541916796288114833829885567647689769338856647938311289534287845712635529263866676684435844527187249681596762328776929593843541254213251826847714416255338673598997123184777448877472995752111791512719186811586333513878978148978159956627676297537725612316213827812463129538372153594734243434194148431383119213453625937361568862794713813823158328711537472268336797977258454275946178715821753322919624568875378875645137183313514464619596822698252743531652891236686535916175899963396352441443991533934531121925234659882816995947349683684565167432419571169564386234491847254886926863779714932545874958562751341827293954456599977262817982125186695991225774651276356953245643112691612269433539164659953316526774744959781134939384289499951528882275143246438456764713587548326433836239772517174443682345165797979593459619317549898932337896583432566526456199188861993672221443597249773473279946945283493347586299175492628593195623752974613233138568718467667118372467728131332178749574349941767793574377399485269916348232397976212538367195691572114937145732243495211828477435535916511973187225746718456288631121761656855676149711444952794714761625319756359229164557627976342393733697222233148372934621253373545794316528722548732993918335568938359811662715577765966778135927753532488568925771275833545837592744883637338785711283426918556621898151783551912129362842696247326931997242232334269344492926638229218923146278573596834935577399219191393719566796379672227847757545574744789458985841952645399844399774141966753237322575894778117974376362836149669717186563262869275791974578343394992547753847655234311557389529818153727981755176496441169929899694864553518914542176282973852812287532772563896914612718983263371823189235315915365446134459566658946858489879395838431765611375959544372258177669492467728735231973499514412167896121783656167964392243664669357968946292697382712825172447362857749359417945295376783726442537291225956649959577944396838982789699283836731668261671264151119877885268731886612669674868968855524149712781449595452847634418851253133291234183528681443774467573774194117514854523647914259886153553763392687128482163477354859294369598756367285381527143528436853692566993791228269873225866432782837436695617423499711185728986168792259719341571349447829597213963186946871738761785466315124211418993679552326375821341832253283182448393424142522446429635853152285913244548578622363114499794722211425868515376482682121889261371322786546972519558751838755861793861394981139985759732597973142226355734735734217271429926219232845428682254463261292183683694688219857871216533532639797947314214989775676227461524482176796126414461837458185145473579259761311637619334133446963221236992121173733756159492988299392892993999372535149878166985715985173273189132636523328816386873271486684697741392523414832598815753322769444463424643935165835499732798731167397661854448732271234393965969698454447762545661673993288675634568892658712268235424631597959385164229989195817358511649334342757168846754224848587641563877931735429994315688447199146433126288721518948496138837732373475983844895677416829682355472728125398677135754345293338675736546955822614979413723145892365817593973234511442623835315431819549636948378312363446955398467322274767574395531763358887524244351725353773214279394163713925349311845912222638558864124325749759733234345487343928429641214179932343567196828919731695624111894927373972543334396455726116195487113399443665984529181581299637337656589746234665563512621572295859587352863239675926966814124698536261447559416998484974385634476992924779619298136424751214432139222688549458241773946156399391313469313247852928223716345375394539451753448638541619334869278521566531864617459419433697515357493844829271815845767826476892421615976893874256623385821499541591988567844268829147529559492441449295878284165968619544374417542359836544949435295938365595348373245798182924432825749299634449664933741841283364738746699933889272346429437763136719468252449356481113945611914563419324467381838938112452441887127948474993175876567792745813524218945335532928564133396777127548332744297377924335554221822665486441849577368581945357438584922555639476183841834359981738129274726662261443426741548511423339591156262396527182145995936258117122638756398997191488972586387188131995634423113152857196623211923912464795116392485174645856847137363632132551688296559944527339945197391345413222857659991613686995724758288519675249237288437936518863672422379692595222955758287163421552678546785116391855573378699545692445993412931115562777537481841974454693695615241217959686771766992352529179583513298267734799399424564462419659978783356614544474719245275221926773117567921256516429836348338796195752442455116546529243856736335798943987576139672585771332754134927214851443491547815937193515796515871924254287977359968298677226694684899297894528514233189691358716285915683935776198396265281951569859327619177585414919427512557432352912999557976367319859993635759949128973668385925898787159533426328114269188578957726421263584124825231247884778449972996245445827329233911367292288287799233714346257447564273482299868781942374788431277494632841717584478685863796713342714786747485731589965235794937187464138756228376252774143434133768171846557384899176469513915262977952596234614591926976165582678464523234584833735322828466513348679892231512784215395931572715563441544485653963482975931111556789734161535722958146438538573231113419541111196998532373939252252382235336345823676784986899914242355867489862137785183663563975191566295171283852349595641826325372882387495779993742214386827334421459288655544717827245716449871814723577931389161784255788565545927264856775761738142411266619911715199667133195888939844494394364863728321529188971764113433767133214136177986763839238461526328448831348936592674686433474195838722745537277343682214451769343114276639235849296227462447361571886437351824633245971213749785763315139191453676164164447315771911423312457614219415758468835936966286421171491331815652343836422939562569587521681135167451972164119165914655613616122856743858249145534999459619111285768932845659192481315175165183557441515179878116127534939436771413454869757547158791183835583433777152126779464143252434872215381186387753789294597639926227545643151636993813251814795316959393598561951321545625884313887827256911995137162412999339618389894593693195889831929942792619599848297495764746837829898149188863782319885169631312281185972858126146915529373483691618995279962575176516433661821861659176163119615155688844825911866863468678529924472256637126291776912769591481738752315995424471151216966195157832152442972418423544139638934716892945242373113455858799692952532525939155256491975644593678731871463357873412397751299557229116242567234454582265274228731749263318929355694719325736518473387517318243692962784346886723851682322125384489658872469931225373493494923369215992137939941467586834226442452841943735628544292674185639754848831184435388587754152513488752543542885312159815228368595361495748826356451432743567417932961435217732376398561626446928114247646429436965791751384866666989544274116713271255283659226714767974375945142157674849759328674361787269764867525787762574431867725431386672422881556793146912773216135792733912956626819418675885488857921219315955436376133619148822513634463958392928521769774555615857393577415486347214279524173568276533163612225844161113419755472114328577689162577667797652197288518365923728955611479145344953794518919281984354372385718193262513393211298622158167637426642782921232239181285989742373837195296217331227235533586513895584992523345357159412649391478827216467571184689528683512448339949574331339787637486735779691585332754786644396145616183931968491665833596826421871487661656496542934274855487464392157123651194296522886334961398493194349349667218496928414332162469783717573284923524354677873818786846683712193344668934691872648222771141141363639322789766729531717811815732194935182958638672652322492864863255662857618466529751889956433648113377838663124998176961513767467774456112424812627114143418155611935446577748998517911341135574667111757331111861551663675113568268233865975951996962228628865781493788165669648134245916783241289546453897752654967467935248256191635814678643139755447869665274137517875647938814337813869275678238714277859739153723118925573285965471166938833114314185532749245761866358241439861258692775697954929654367411375381139196554239531485712441467885778777323645588526186139255843319177898962419361768379275767988894474269319325281117835391178757284499321232759741433752858623332671691624778742775149124976399345315456724586754158159455974898328853325673248642447272778157878644875332555399533149295999676539716339373893635738657246193645515227944323576948613316825177518939623945281765534745426732573366127411828875436899322993149465975626696484827486428596711657134595144771262799331971642695498757161528534693626612665734253928633665517776127577644116421721463638968635226873536927467428454616511364675352593275721442386657188114361784944241613656764427126825252239623836997141617948749321736838781963561265325818762583654237196282336452862342118257411833543951174627893927216932653625968253259421199381992583657719295911215256255273263311574345263564575998623231446676622935432786934432282594437884434627151227711953261491733421753295811822672676882819773123197316885865813969547628596787186726384769341646588349187665364834453838742694243865863529944316751923696755169255732962765186651742892565972996358455629128683656835882468567192836386288946282865352488234932113531148842561546961118939312392644647421566519196196888898837982345187133763672282769449222929144531233499656863938873894994897241253583458934217194373651949652676924247121331948356511594368536126431222255248964414454789621132775686891394189439763941883994169427916925323255129412391581876727517198529834235156384433319871631231172954466861499832952939981914891194421996135916192283962161451458889779383873472489786892836861648626554721857995963542634219264914567829813593989333484795719991455236916355543466693962432422356867557172636852491596748969184568393991143537566626288974772136946235339472136787295171447549143655278115217775594892935679582746353943553239678957141597445518133326562764721525328268892352164395831916478411832757437452457866358348874715678752474918253829354977854223771434562862677948863259834154421554991976142736511726618913443498877764476549189961629311544873558225552285994888849769713289444355799818396674557333314422355679148939868426862584724155279636549432297949524653834238644497159971191783634979262573337676361167266134386684598656868525131147743345673231579433819761264276839954419622678591872747744269833727157119275934191374947252235497181882798299599526811635736275884862131849878629218261634351628194195178945797627432484717779568867463256726477919257527393148824569764435953554458299838232913258224556141384639449321123123437148483986994456489211392512734348286473873398835655675824187421238654942261933497863245643373384159543558442772356679133351568973916251984151175742745968825612891415493797715368433827619269257277725985664289832114763678593219871478744152943143429676425636514631394698771974225171612165624967996354131138449845916122583878576992393396238912593994142328965663772111523314553743146368954418676777828158483566869385181421377744525219948294769787285216342915456966859568845892621141664754278774448494377656818713867222539316539377694348939798974685737746289916774198989769646994476139637638196495373348112691937548492154953482718933733893885538257462746865935826199368646988813547691276578951658584338836616759518526163858813741164945585159919741356541311474479663191616586451475928938976413378577636375829757248931727257564221874491861835458251223937773175151389375447883687718991567754158187924347925374844523668234648456136369162578862223468281535368872418413551326346563389443959746975615958961583239467311686659146586979765714926852682649294196754342327787978663721875684994668183195772469325586552121519775663863338464385833378478519485831926338964482853181826666594967168671376715889187978634273568254921947517986885481243551796512892885645333712349363517586136115384746268447551576727464166676284447162795459586158783289746364698393473816654269948256129645894723949229785292184797499342732183486288265674672149778692865963291818534171446539496265441747156136878276218851781397731714317819586392712586544674236216536216953572642788443798112631264774468615768846769938839891917374619469925718475367239928118735185931822392228544257148848711118611582711812666971673457227228987125285266322828786921642444241743251766388459227728681725228392516561298833745516263344654463513969178751134474989314567914245441236911913459747756993783186519532233233567339194683859168619562664875121643542999265169821665721197598562725894719215195161432532289845116584755676274779622755863745355784267524131587447522997262685154369119522568282843932648896311646537578624543716999152832352424967715456898168647453535669791986756191679475328863295661539637292689746673994778188454597459967135188746845222111754293827713324822676259661751836254535286316786944568414489553176518126556124717153893241296393843634288789159754834256266785968321649416411386778983698275661483455386816834391298458164611737862489959543871979694418868721416544439473658745514844619472411955497334578232682156425442573667996617965777845949482914251417296747432789562966893994319458157621353431377564954342673417312873888131257992286519676926637724193815711499527167935615268738237316777796557253944394811583385114672341884618793232592558776266624747636175854956115258936543113467121527192387897312294647857283895846535654333963262536291828196589122577899184391442952922632379361427197895324267342333595622547478267856378683317449689151284831646322938796116749797511528881753475577336846491369819851738794131477181563292218188973944893115142741796915114823699783253553955229298678179559718677892146322843741597484239198956545748369343515554383695514399952414149963213768976245795924718949342247457613511924482874253146969172717577617799147225649843437333414959619488282813256139372994224528389217935194328822737826238579417327998398639511573354967614543264854773535485432756242792146453647914256684126272785864967583746335739387688286364748234973156678241158727636251533445622836483296292973635141183327778952588898497583745358246566133837975753593142415938643289783965651126474676727199963371148245688691236583244854759966169783241999922569874357523428925983296296186242928433174325126695714333832444645367564996596246616948321455718234889379837442992485316251719432729757538262351588918433484426588443185912135173953785923354891745934424425922296464856272461534916358688279279824399896842884175719457363281962471351943121437887723338647642679695579779711589259483346881157116653439399457273219432111914614168311231165871992824114195556853672794799177265446757157582167234483752567383727381975634831542879944199717177794892354626661747631148929616375643667939575548212215185845462815172763621254974184573957483563969135396311697115442737465522717699139659618417752824649191269839831685455275859941394393318281153112556954547421458668887795791989134639873614638494272839397386399642538788141789295277216824544496549397181168976494113785238467191829628625322951259428829655354346387258679754777598489344768192621325272946313953789612178887948169476571191284453223419287889576524169158977412632763781458415846251146843563625791967993723217721625317554715284179857129438181152572226686993319284895637526521668781337827256964433994656317353239153744348933266445819429144346341513836519735279658689584817531562844485347764638485434613455581575922336112464111633983337766812282325825951251224513634398779997128591194219239471633951737616327276175585387333385579543313824541137585914637965492445564746179272929519762547876919445728325142234264939174751341275746477981213517791717962985112466912691691741521481286274674819391558418573524451367984351722649684425362493648765452875937191147489895145317173418684287776771517597989419115446295592279745686434923953962596115465572455913544846231316545146581938163563717291792723366769317399195342511239188369575151171699518132173194192827764268265214164866963262561642318724438949346621126433569432552323655448462823934566792544798929164618543635817252831174353233149499133485866489653649173386589437341678254672646791698827465397939996791248391861929691335755447445914827546622514563486951474117598879523284433668816491437747585373234342674931821451483156613229432755822214284228246442911323255339691721138449253887866988293524484455556381395583269747556797144478733461479827233987642292895223194249277258969258722849928341531853871485262266848932912745898773159197613629293985975259627484689587237488317686183597457985353182893541371938527766481189613811989334359342283859477585334525523536751765883166894632955496837288653729287383971323417757329937791962879598685716137891433425985181167117875244846415448778257664659459936449622363897564479934388223115638599635994649876668986786987441389252542985871436224772479114133847191179565697297575612613994287875883737286896542193263343761438916278886465918228433657833764545152839476856767599754437512956461544479964531269924456296281825868216181443557359784383711772257177566519753587445754124181296992638289154391944418719196125694867775669988983313173972573143427983439427315436544721876269491188331352973516158321316822751759582515792842447377298678843827764713273466589116814571455736491651977313742751222678623185614678775585669724846993764172532788656284659621985474659955996265129538883743822259514498886493884745523676967973822251839469658911452719384181262476468395358949174254173361487514148877293196984398795921958798992779588686274493262653648418297474322179686925231386549379999636956143911683115233676614492464858452642699819222478138378594878613866936915827964765681449726486762353843424119384743876748475831155339571961888352547111837329415837784668746552695395478918938412189354218852912432868558431262369273683468558681676421254279394112469685439287253775799116935336461328852768473649119119611234659789455521457612522413262374529386322763796457597637843159412339852128287731379922715911751973857949668349367258328718783668944637683415431155777546314579363536274514946941517261891247173335853284587181131747736739536767242451688396398462934516449925637863831559278814196346979861323918282236944723123556243128941331248251843124316561164355258272384998962352783227224558963779887276171286345466278423317585463171667676398634341182392949475771737494923786219297426519346814976616997374874884425165998668946597186712299578719215583348133782381852159996677686935258962228246232236225783431123427312424337841862464941273163214935266578253138374667764871189472978515429633468824581956864811198749271233469231687663248628617589397318644567424279583344295752762391155481922448285418718282358376471828821844652182953761985623359331111184448546631897985345568481489587831664236316893326763519548577269215527247726157624864817555261979432154816419172456727471887774726829391831837863444171158725285767786658731516749146249822329895463827699641224228633613735515149221989833854255127277449999383314382274568873375971624523351561888195451228544942883333466413591399824846589972959272416157396334316689147933227134265879487129439988891483684496693188936727651647327455623952611719591262827871692237677872922192841856137714753874532218391499573567159729284372613723652681437782387368266693754925271438461138356873798357512893329352187989714482649464925195326241448136996433486313713212633257289882572915342962243542695899517595743843266452655788948337377936591773998533777256939762489182621597776529786491894759978775937876543285953482571845733598171767321629114353488572944184892857688639529944183838123539718893551313264148446628439662643422676795911424256718541595658889956426916837241812665615179947832562953635258338484844359154835871165327732553382666982895177663658171742786114361868947453118463261234312923439424217942242177393415734935268199419293316413142272644136452141882881992633936943196588132336323491481443535139238777588712323561689623975566479246894674785949998868155511238943533878157649639315211659663446698876589232294225635679535779337915552465684185546994746312244934378514961379713482765386598882118859345362231369425944673461571454268693716741682276524758715739246815264637695712353538488862764355651113863332457618547322488892267276463685821581333155282952168766411678159997929224641735831697147294888887479381654626218268872581778546273191165326836642428566543386893193118531123676727663126344824224514367367525186842143575966477718144669411929483577734238755426229585426497345582255566431863384322863493136574787234765842979392466685787434691494769242348267283742229752111149516431543358867231242126227221162683636751547148252353863464469627771345387991716821995332677528294328646336495976975598556218936448292824363849446985721339132774483664981264197785356289282358696842339255563322657265173298156531664468823245389815312631435977123468241344862643173135166553354589483426792866153264769224548886725956525711395521877798242919581976628188197538526385197188136232873581379933773391789497219721988235263154321658517546166147125838343446768712662316812414115687312545121881936165645785195644364317718695678275747395794347663983664332888796169888357682337516772913281149656433358915147788355544652746791242567368761539464898163337797711946662447489325684499612371959944691735563493742279149267252245694766212449623831734748463586935292711845816287259413339586169588759733214611335365688435131887642514825185116543989722225292866126588886487939327289312821916517145834452954975783623684774324938411745849226684934183458779163712776258259816399698742618614774841364289169788547411661419776151986494281158912642687518584189177625134138828972228869517915823573175387168855966753694384676823119647342236722396555963431812122976511723485614267654976857867145694666894354559314682166741455815351839163418337776782455489979385357254493235982569584132128936452276415626115249298591782575221226756227727242149998967115435446911621392915119117994684935567168119248448838648327665967314199811624457329983714469855676986965937371883781952387272639226692283819997274369376183245956614823294182688913831437732136687969278466634334616547391493951757663419851382543195814744948913668998773882945243714168463353628497275553546158328625461785846785592846181685516367713761145712251443152919558174734999113574698632836926771667939439239475734586768351736882574497319156618865432246128696733262882786437213755858459218882196274453984795858334278189967956673997296654149872288986872567924323132586989766964652339566267498681847425481987442564511927645414487129667765489545885866529161488199855519948872368745386272119818892353357924948813221748949739518732946547841721933915798762691373566119793863855156524489438455699291179345621224665193835769228238234156518429885484665132942854566862512354131558815416491575812497546772973938798238867714385424977643621922682493268848275697894546897988137176482366973522399643233819613419956272668828948982294473443664458155212984886675783121443698143837348536815461739929954213915387912654334759732634618928218636416471713168949292452243953715346883842158852852996118484764287765958264848133122621559715223888372286571362563634569431842129757854499426562714268112175286241735264295651821236136234651274255761169633624637229742987114327783799743993455977849948638959737996861959385672445248112716778368944848856223347861651632287923796179854465698365419461588278447944828255713548978725863689422115597422773136924885261527358459998629697899371658164915639474363214973652689544339721273129445645143416454396638589496697541994497628363682244993942591234223561233948296319798881129932344589611885513124983769872774998245295263723924223589455522911634143559721113434771516148227278673927797898241497446941752469326497176855668796331824878925847376873558914662285265543434817534121455234589718124678811391944344378782139999791147837956149454681549541441399313995689184129376319264386216137335884782183819531445763364866587965333431621664596162388565213798221553414469728324442297697777598533863299161882225434183859518361546856761648759283581776616432376952426489354262419475936668795381322968873299438266768414273691622717584812734559125844351519562632379659711155156439854894859813839873654758254797772152535516798666931286191369136231283723382147539547146173964587695867186289832785599196382731489865552169852929457466974156184869314411384475329146633937634929839269187535955859412615357648531536445187562956876136451114966818542949675769356858483394779268113295253529454938766196453378278398892254987378154762396633539368147241548166971246466127351285978682635431927941576177793711287956198542623226163769437787616381989743885195611876718577236865843816184583934921692448161745229491998345628821868912717761272111189822463344321219389946153163162853988323635545563356841246453537735546698142588623397312845298869213872676814575794425598916673492768935495753222553182772438577743625955539741895184361413259823174568812775745243468488693564671126996162536939275913762918475475164661813396393694959259897333838284255483992261556461458971243151466713193218253798722518522726853332621841655824675726467538213445687661635216564925461123844177525171132532177379725627999396937434536589787493274645333252754487721377245774181443875281365693375392915482889724191519534983229637628255334295594544496774985847418324745155494748176643932495145856229623142416213666968997481875476337532662373528225993631617244757499566682844755144296366179545273929568742115499728345841785292582448192292631693426799768276324457256365437476517276252969489824538265687324975672287373212993346251629341638175283919219318542947117921983788297586397227969254853544542799629257886596182116481644188357318233719449957157685647155771592293473417291895552126721287335354582722441431875176536555177692139112335266243649183737244992185985197524138372279452165453541949549391782429636561765289544647581419378528471926881499343696344465392934769752338468392651274529938222497472594339157212218559552364484929269481286996116961896121459751757584512291612296366766812776732489731849919917643219799866439567431324293194767977746721353118731761971378635231814465471681453318315332275586575911458415449661499811928367724394338168513468398369359176657985317294943279197714648636291788317127411737526297559413921998728519259211853452916847937126787647552362445671661354846647216868612638861327383317681245854439271343128141868188847851344677684618819623798496371866789246713154845796165893521486864777347553945425821289531568154421145888173593175183945972886227239518415764961369652149127538341381931596871917952155156717521549542682268358844848343894555598451698614528392675498677931471224363133474293449879646347364384619812948467692569433955572899351231434259817954786961526616631543565889761555833428471131682635882369235169552783528521588642229345156663597665817658796669661585999545794449839485255899765714393247715949922958374742628187516629479873864969886151312128768429346233419894771376296316262914928431661541817934453174679778151793768713683265599886244129915873248997265571939717321522512889192982617144126986617758899177887165235838339827488243931827615311723195728689436241443524265684655954535283135738772922428786151535877384587951726717949717312454731459897583554935718678319334717642631368513894464221149973333996247263913193438749754749961269763578859158381954928282187192968224998893511515986715892592687398686464615664153712292431498228876512862327632792911933161872658298374586248227316418695672736644461819423234764394254612883347774754685818374613928488466789456722171669376736137755591268994665662617544116629484933847736172447518353553214942324597379877911669585739939333454793429286777742689151944866191469799698366839997892985262761786655614431814893582569185259337882353775666935283337235651562341564732296789297329142586541764721183291868766488381449983958329327526511276815632765653747678681333872898588941297652835691459473569648485288388843926475419436581454383899617481773228649582138164481559519247115425189937129915252297148941651273681672273154568677471173227345582448654769216874691596828531979294858334344739179128698451447447632564787168966757616559593327989125493188983458198543581713391381831138726159749593841711949968149932713317272129394474477353966858129359866868896233558274468954745659536922691313547354789674857413354845914144387922479337611341466849349643961651888711472385431814738792976842921789817945377357731488576269351337218881327842615553399816722644364932143736886331459439882945369552655917585917152973862855462326479861599199684771156242677798225299259147995463478972948796518938843755435862197884887556296988672936479845853622119754373851727899436221614966156831257532594274117728677163668259264816155462772343191796953767774964568995152284583552246313979266622411725733271315528249436453894134995577784724165868891335524816216643319672977464243266616187797259471447534261573788258866425149977929762177124293197883524927814514479577268586776464695985566816352298815752329855224692157537151371151425646522933382486149644761766696159612795923162655519885941411996966135416712866317194678627627193694135784861481189447297868567837248697183921929853562257993775487247944235216991246361961238765389963475885484597223228341995533418646933561999621832645633175415169751116186846928172533739259765539628216699392998941322226183444395116766774864656577699387532941451926574858294742519447181373318298845229928483433466265182411129813413394133475511216524654656545876195517744394214855218674136693212643316625945439941897119667867121351823316747741711419374151743766747957532394474314239635698854426212754773218448852714272857288898973449651493367438735829638317194348292239466217179561413333933356955277223732439474413625817221626133744916248974314675156768829522785274797585915362856421113853921537896644124559635156256349642674353816318563524838434967921187413793314169399672415711492499249397538933752718859329258498291231873666831991875796611449258271357593175175152521972115921736849589796293697849946956446528993941911539787462255739273724623795895747594241354827744115455635193575125537463744426626952513813168679122858922444815599641822236984884158859974463713766756758446634949824711947327582956631554917411291552555276825928661615196737655781745252834234179138528189743292275681763175372274126724697917124562638736263378671342791499191557691473888225972915174193113147717644922633121391616196316591271834126287589518568168797336343325626144883633478274943665389591961574942115242959443517136976871936311519933928842292994472868949679529512792585685774211296189936888827987144693169489418995988575256935647987383221159859347184518291544242751962176941875573822622665987263268354948936463544796753241855161876369252687931399864177141546523948953111693621696993696741372674469658527788846535685257274332767513364942725458826341957469435165392684866291972494587213156552971249514122118158595296591955152155895396487391939559198983487582971499937656749683482279527265253372165838383241488516456252776883198461298313441199644358415994183928137856181191954377117586894185887563271269264489289838416714282838134159966313211193833493711994696111187596726725996235496585755454552191572244533245684233617142386476533746198213671183243946163611153327816736872871194387874135938359838491967145154462249541833757549378364968563898112855838193836763487874619799599764356955227783829616957836675642855449951639819869554336892355331774668611591567312734293417848816261132171126746828237468152832548541747748313984795432236328462115278842653859119632744365191112528382557621621583657973572673734452696258229257412299346594765111258874674599239448362811286686691477624173885627553634742299748776538834113563218569823942815782324196497534844589571664755222343632361923297546482558823334457629735726945689127361143355789451323875477835836463565791269283314582937628282826962531556364574923925675484565151283247763929412692149678824437436658414696535783887854535767591155884334786244422196559924663657934447715238669779313295559715516831582914769726556774219181539122261461725687233718229927961872987913875432145215116817693679666447533965268689179761419766511255797183618466363328368134574698167765915759376697424215563822628393883258275734464685132424576214583797514987314662164295443153491661212698228574671189532736966112232371292948414393145317913414526644652756575915118538319459811365629783441929339272993747716741393171494485327323422595255737847253283521152663994153567949723328536788773739928333578152123345997556323586388119456261363576964729231468996797632237353589186446358295974553295327942281187621136954442796996417111217116767861465898967556197797697418973659585963748484982661221869657912859344617446734988919185149749725648988622285573373271765738719162851611829266583719775257117823197956128144682842718233824514612317828722979253323236427667127348828591787692713136567233824647429277345883964366812533624177798625247726912337918959221617386138651322813945725429441392939632386417687781243684517637738581729458916784898155495248811768839664454922491285625129719765537383728929159166528929798565917745197897713698241942891746247829329899668818733735814878583154184173838629372553933219156262551956148789616751843263167773838813415284954618693818194751133713943451754194864133843227311471765999874363658152345456267214369769656972247132255799315926343297253748952664778348268659373582296469154399667481295861776914933658563972948676584161136617919364118286378135673178971631222137437246873775232438235387499492235758325581914156978485125964266549362629729924611348859235531175991153123124464398172974326434823827138339655174879867299832213384186817762268646532241124333461857448114229174625748749162397362195795117994266639413318437154242611111711127578419748561264478639731899989547476249986992349293175953832875493916814383526336533827299367886186656985325957689879587414182588244742173657315183939761158296911465471626346853945919825724424441776838351835138529411772193346314887692784287127957925124357877355815972388181675466768283869584965352489387254679354961257195481815943851575833746143247856483462855131177659723436639324742977152663679325186417961872255332946983348371688318894982996428512211334251227838618986184626566575518923934616567356854215751297757448731999545279645165429449294837699698632158123517148982882364823871634727639778473379467573764931982364936793639856781538893286275492793371534518987128718926534962932257219541447949818619252537729734444498322915886746659792353235669998721811498953417377512834379268948929958843183811451523849756458339225998215585629661844618253985897387116554116953936387191388777515216762251756848457966185862512122587692655338163759357733863964122661735247943316231793988375576633795128813133736715992818465937286697477671833493792973718391818567294859833162241327587317397933652136999295318331179789498192265467957866485228224983823632647272767553181591392789861123276883169794991849969227113115321998214174472555441353953362684774583881127261795729924138397663912389281896964535426729647293573691627696293534175636589218456615565335844187583946584593238788245666249547185479826356578346259514238162769395187791357171685535957643899728326886811618566119513366546417339717497448294895655971624154866647375119827287752248199514881444169579341169724838637587855898295241165971843235187745421899628222228525518721128782333213163865976737276948949628849959355532938699317891785656439324248681683433444933182446878891114863929252585788175219786664664141232146375842548158916572827221233346863337481285876523595225237552136369198116694245383614236861863598598298848151579739152627513862612331115729857739634786436712962994194575349922873131673243339437826262686677653865822135457298871486644292855131523625959678555593957376451853994256552417352692986722256239539833587538343512518961275788739523851593327457417392319777539581866814226761581129349126869616771252652237376277291191576436993117163375992519228218265897486686482618297348168879585874612161797848647361966843792377727933892575339955942525793821683265544699112916499551921292248364817266266366995748821748943778259854461186674147829892686843756532967165512815687567624298463125211896357447895541211521356667167156771314983436446587422177773476953873361494928467118295862199784969386334616552252972457566424721638251521165261356381935676937989894745741256171618611156749447416779243258756726575671345187718375287483257728264722736243814531937666881552367738792414685946938695263227443915885915473766358116523744367468845335652927541241882144461216998521974166698621698892248258746577574879438291369138253967721368915382235943968862675969531566456875887371576451527894756792426993582218366791832612965545767366514524449917989159246798265882542793236916795699513182996475417586797388957326266464443178529267746464349979486122455662493319973528933828867367313767916337224475267459225841571756446968561897313147168442588553186572227297837149735578726461758414425235817411484731582137293932464975346186114576434536245436553849474881581837368621244776321484321698647628245916138485816945376435387948863364866794284778215648166851736953338897315671481845641225287763895674394641788762115127634491571937455719777642853354916335472374999479346899173397687229747863353188912591398637375995859544759956847986915767394793288932496381854552152518247515733525553262257492595746469199562713366673778327577932566466322492617354522352889681637362784722982697948163352198152877145327414663266961285384199266869381831377492187116634933759425443325453982281881433725989831354685918317314392334584183966971347738547377596638966474768356269932786313152624321957333147763656614244449611932936648753418663223647981839832114677342672337548792389372264455611444581623356126344261476691151294533584718419833249275734739747181328698328292416322785167931738859517338247387719877373974956621561384197725485272897984377948894923322983521947126724141834623114226324666748449821224395656946367998354718532423334653117791337916739911753884216561671459462962625524489776177713671714641745887438777643249819267136589552939663539273586476373984443387579445696613742468986275618836573417765325698624413128578252787927683114563324764965712625684484932333688711177463833984443669152385532213218844126314747994819927469679791674985615978778159949675543413469756226613579474278226668999235181691261528455761472947736648946195112253897352499482154697499918599524792537666584698958688567317258437669334873232916764599239845676343265642754844419859662545812426731383458741282166822956445687259177413277275371861166519167662578319525133551436532172176733888798549142386328879987174646834684547531648261957934641994676135387931885691685287541549995588916698685943192518252295283631522179746339638768584693111364394312384896858625472632932958377617734124789441887159242436144794556857225159136741654785388667992576287682585158113371898555253381917566714217917244213167571699671426885215995698929224861929987818496827495855646468844845834414254834453837381936799983555896211582827919727729378376522199528557638337299869786613265454294148891523232117985546861285515827697649862863549994578587927318158821686872926924261918691329135926974551533124429521379392314784271626778879322352288117127595822963539326247263371171883532112198341352965671817914982234234433265289376843832513981293515757163561598962154283582491642125611957986782896214453582645746397391989547626226551718962435955673669694265776332492288321814362526566783249871911229851721246386833419634411591613486467471999662712754193253294432877614693658728894292515725157234884253417378158377527188483195474788928645541366997695434643279547349292645662251811353625733776399217461826931911935285767834453364998189672562654962437119454679979767723868914399432243976343239295765142931261194297395927331249615118292217217527356647471474234644543653463914638283828856268522964239355556818726917872487238324725651196586357947614753456276547993182539164757518872117624357955164316222685345922132783117793398529141288692194216374583251471222925833683793912638867271297218391773931211411553438945155755574442633754773727951754347722259693664948295577262236551321436486532925734371986199654675727445886978451767755465329576147771159746481467132566986834527284388243771726328474161753914723139834212263794431626781971431644527836943191533495952948972134475158641851883222516691487489736331185268246456597146184722694235323749543276735438836296455776398662415522284616597926651927645492522972198459998688244335988438569557756582471248162384873725469415179617745758463582867137563493898759424879624862847649386524894657598865616192266821747388757921669445816514621292165883658248394238619249519528633192365179887219969874724674427726741337215835732718961437758421894927638111662732538559224156944435188787844916158893714219692144542319983472976756926436295498752782671797884558951473991441215382438416185439224151251374293619653483181523435749854871189449394542739879123586551827936859679122195163974231766747439894861762861456544855921584225194479455532556211496886725146645973917449594195133511273686231637817542489789182443459617221272762425543412329443677537259256322452996237257181447181814619231366545957672389413211189431343277812216863889721921838761784811579581256443414386367134182562518566472815245563199893291336476313948139542188486364574596144764858741693781529144591841544799183867825184235939377459583862761946627125428812748473322596752745386996438218372919341388853136564953695315133323145164849132677962319749352463666263545458595292313385219335591216351895643253274392811733272282816884238552759988179142469567657325738472647436343246272128772413765591545287711813429621398427683132176583253243485436455185844246353712927231577891435733316629244414515238265844786248479121834365615226933316683297934826818243514914597736494614496777358162322712251734452722941627332148269239445497732893987938651764671593436865538797185677433517875814256742384944642198741882567148463925153447792791554631887581315517112345114183147491468916937587277392792199392932967758252898516245215313333525519275189168899413933453665916356363661575465394586721986466191617874839465784232794782428927977654846862349652829297328119696362755231355229292299932732682317461883918428346356238399458589225293483214836551173793748585486715143353525271166446519366785365778882244649656289731556135551117795818273227745798753365718899478858766977741211975391661431367152927415278297294713668711736532623363671481198458724584666318359584859888786532384742986497233179544522281832951323412942664769713254362244439459779874939216166371796811233178936813296115612248317997911216918488788298758763683371951862551388256865639596654869865849184922726492864793357634619993892282364883168436652314665545733941165354548381845965421764246429424958292121194599931916329842783277996297197346238227748622789997786395994527149759524285453442919627916368962836877195639853953894584221915298775484936811985265523934815423189636919498587913464545836367565427118856685484619954446962528159649423982419769655989574725528473214492532498352741586958498325445784836965789853911495134956488856238724283178358397819294632516128979488686411249819728182231741548466324854876757728526638613656492924399676349911752425275431958141469336759749715935542983968773719632296269938522966143439396467438448944845687872375627537272795547331614261748866327969576746288811861276349125636331288752369249325332865765228641758523658452374896972347858622696447681326553722398433118868138661338351994265385127327194995642663498376782299619331939317861926245972549659518441433454139129734122274139861713745971373274146548554956832892265652678885288732586971453632747292358236635416454149975238412921155967411841475769766288819911995581231194141517473989861669659197198197491541276465342296251159658557386331237853386414928913777523241863774459677217598378656317522486663998955666314131876515256384749148824489819312498839343861244137929356246156285967882177281584275199692297815319188294992859266665534743323752659567857931946593945418539794859795579272265814118547289248533392759665671152452196713717559889153897354468593791271542296174968147761116865234249294313818294897564673258562875794124215114483138485781536513972373792292521723651128951511797934194312554526771762566516685366676895131482957933189738387793469858451388483175483245163633958733677696534731257461856117393266432289623184998734718329157364895894865163453326586417312137416985371775911241699331951953684272788665256269237159144138496613771527142657679284187489228778945196691755491327735373285961855243892866396227989596725229293517796862481192788638299591419659338825952951119862771521651526448339613898818784851893857998442354124484274942335395579367111335635164471764896425773798517429882488725781269791276546275917884923793262277146153785292692371672749155162765379538157215433489553457854921546488183793334563497641425627661288996256588933163726757228973882671395743525821193667378154442589418872113585683748465261694742683569679828385658494811869144391446384265893457285466442344663616334541129343851497939164421771392655646459745774376372623689518773135671634911337854915263114971174541593782725499789295495782789143972251422951728637267635793616994127159243215876672244613874463664368263463859517621972359584749165871127392343994182316153426322719711449664863161281786927649729689723788954259366434925779551418471547342657573215596963818848675628451516263474813498788463229771596645261587867197964799921887937482996944629338914484375252945672762356617438229558865389473839995129569293114958733252998362261562517536636932695919197824938984925656229793862252152743235822313668369339414628724996299689719964781612453893675164673531481276654514747827284779145376415333986337511393919466269787327759846559119147337254869628449915898533434346158663139992735726114847279492997762155954926477987451967896185751755349631268855581686365963437492925977883678126164699975217847137425192457169655913919429983686427736952667522822193923922279691374958913654735934126416524373491684474638119592714343984211549417845298998848118332629839883733515934724586386218459343229582642223594843471991825658868797861963221615732631692266941829594581613652125286145361745725664112262417528825539954118489945255461692242924566459851688572186522571684785132675551519266464915162121587991957592543468984375871172129718793452595631528746322219311279948273432894735617129349259266151967289367631991791624538444958934553468212119979131473295581373626862663754759552488717356262434918264539784748987746361886919218934476344617485948675562253173775292734175793297954311524622998497559855335534128548481841939668314289611153554397235129192968798296956961216534247747647732511329815511521963476149714476537458337777628625952656536864495139863528281141525771332817156649515656574487438986918187791355216762317545187976455264823857467833943787395982437842223417133814198465974562594276387527239591899635122478627944652394926855835787289435286868224343634319782159777598116683494827188519477472347987887445584866574425341187111899476191658944581931354353952932878478434226564556561984179372447385926338884237873761278114248956357971747969746112138827341925549236191796569169162944567558192194693771316221227311656312111219569636757377489129174795786616653415179796435346242691269639283434721789423845369428435376284526797855876951576417258576285536114889457152288628333189697159659946882585694455268476335939985788466414862296613349962455232619444975359468128351147361674745677165489425126831934558616981436133571592814586578813774361294816153183272539176947394539647927512729947188185579299542394186836917981697486942861794733231613212899858587989255235587711752972151936875572587998437216272358453556942379527125848567264398234478962288931531125869576995717154939137828872872457394884354958341233715691677812531818233527341352533972148728861941853995639653895983185857643636692991553426785183371865527779338437463614262679896773323999822664491749955222191768881179951126464328223624833889666564358359875315137388651938785421756581467878479997762855632164148676622499126125681766227334637494155274185587944121642364627265669176464922525927969195467983448445961352492973569467884581733656953966116283448374163411383637221317917536859686882212149392123154844585159918595695719638838142326664168949788247617569243136367733128923881694363919833226642414615497685534869259241442915135485824472934219234147171269772111583939112432354648355361227437475667468592635988722248259883439875522351313711672784599467519476837843964134272349687524263119681365569863181215963714929229187114559525733743247498789611618327572424885169362192769629679381146287465979885984959911878716791317144539498986371362337116676616319642671368896922144734381849471334472517396887979242671644671513851999629296974797964917365415589578539358946316991382917337775632465389182712399418488122699251386615423673691622469252229935153512943391451512648553665667952191395624658699753496662216881899929379735583458586152252841818791627581927243991695711883764632673431312926115155634612987349596737758839449855217667854577426989754437371254664231815262893591566798435439886218288693782931976545376729587116724563849923929554982542481191762918372362464418696759888897853153771887133363232686663442136222487566269385696664219543745365414241856684143698919854227543163577542118492751541535736579785922576665514669623664237774543934271736275532483748152728262363571532159692749993817978775891257291394243215995374961737215229838757251371879386672654374875767532146163149966524678915473857589683398582387938386286614887546484613441569251989697157536278616176319465271377237841573981851457878714331347168632788976852976663434765799484247315292786774439573848326254667397716873559772638712432136382912672258593479522381433635254454511626466512563682624977492736177149666125261428688976615877475177933435859882638535185453299596278421915883935777364719838777384925915482675141777238229896514816316744891394361183785763224584224687976195422529897263573922323682377886327558437143399682714162189767388143875669898756926212319274813696872338217982563183213931419668245467287875821128328621551516321756465242623633455115159199611675311614766928243753258266137184513574931522345599815511193699941396788739752311279629629789772691268931996125133184956923781859965756845347849147432923281265151636299733415328952942261376779832341113344765649744958875442414547558872247692565849735269399643387163287836981375237643663526745541758332829946459223468619282626791422694597131931177936745996464495665913515598515287761241686925479969219658318717482485353844381266186931761542278397832115443559156659725678784614386486828163168723674241928368697125616412718578636941931746694296755296466293965558541424163583947566191591886331174124511858942686276334312735842243673557341498116538968232614727865129743882682244939743993254849351234511659763255137326431724658671119154921236529349873944498254154958449351893726613786115721124419143177156328767935546917118448343548143753439123675265766698523666579745187898154561936584336582138992499178873328221768292749753532661666444656367343242215178332488443176321947569774894491223452185471912185632517896225247371578826915993566516385896491937974755334734178529157535165148745129443815112954858591195499353764697867376562845685684233248413762438165711785344691913217847113246942491569982242331642225835158632762817715838941195217598183845111182752234128126537285983276767865841143445146788396794911565331824728952455914734392682547169141522296431831284623762825622524565775318389418868124215665716252628948776615389182492957436942283186753313631648777863695398315514277487759713571366615134754314529358913873231265716218683913354378168346559564834545392582717234939753497234526969488636797519882766185797159646574435915554332497985364158912569882473727159388867493798688744612848919624642438957226875747998172962832276317192623211674363179266347554975665726945983428615521144877365721282786384414264626639996732293191368786126543984457446898917316343119621254542876419978878499123223274298542728267165832761663973291519352423238834426583659735144194817958362144376934178942556844235928745848274856264857192585897379253535252626222517216364843561475527132293714955675399673829756297891129289675132559417778653263843843752618191255286752617823197389544694394497895479629291511137171431758287867394245155285287984925891697483112426839348757445637226185823223353746769534268731352859331542777149515468883646779764786631897581341887565819476251628281369997932118753144972596557374489378161162737139426575129647174992788784766469312858459424911499568346722358378463217139438468314137787822538455674476218144873276835615767583858386896799966383856316771429714632229778674292576917474525576847848815662979127696444794241623397187543639639399923283596657976675337579432369242568627272868525846684426643556693454261346197562238561213357816151367381889536557493494638418912148765834776231968297451189889183768331518122116825651568545544719532672483473164628674327861241183251287424621162828249835748847941967698159956127831613166959543637386181966578241299496989833175813419486933747656595183966263633863892494767322862369655161423518888836393933218345289585527777655447956247367181688436978545319732327822656364223946643487817779891573537253673867321658328985874722174688835121741715626315882262259626399891874944495136593619824674213182168552882383832182953319729936132977155383455564648878831722334521235543778333687474355227359691612255423255493239555167791551519624266479719933967363931976926877283718789661867683875962453939637798575432426974261746889271124794549183114611935998575482583852316213494765757246983532679954174683823388753477965317464259666924395524389625321741466882647237546197326287618682628396449962615214946554114862933751485279349859243886187463665739657174196971884151768415651113178675174661648943128858312323611377864218373157457232952283343379954365182486921734729927159376261686185123714866247928634561177125734135295672285886739975981783154446866324422718461258656614818252838359671651475599354815385999162885642717633282215585913392398377841199663979179537917346565291984874848935933974674398833253349727191993486663931459123347571443143122459916397232134367994147449542677576986798812336936339953917954591299869559672263785671869554814923799654411525783241235969451643822766196947514727738325349314484559948532173454226147562572729164958899997242554167713851922936211991988693747942712987988161672779757616779463634822599395262338213853439365528799838768274497297472724549981751542417134463173721871234122187931251863298415677654566967165667673669879619276821277752468924671936713664571152267743977758125197676932277273388141348914794214861442569376493287211999359678854877123949578886516695521477251538341534462241799449781726441484226257584697566581458439963992312826665924679227353984878177297388845326583493127316684591199737511932689729121849317646646517257259397277169943972635278729435138967574389273469632148899732245939687995821257118112891763966358215885366371861779769735111545444833349866853829894667958911345727951737313585464839534315348729594566396534969252194425949729758114633276662666765916599361226825288594959296762263711637639122648377772571146253523574237138281818685732735458699746257751568649486868931456314277773557413277115681472517127444292546386593193651687847549273582545253712911265224897649546675738343612692717328617251193751134857198266337959798494413767879154854579282876754684824181766662147493391488852311682981956613726345575512286426474562566926187611167417636367894241386877585246252792553979557962899386924438943921165452216882961787489712495596693136245823928996733584633172741843556938219198661918371578742734979661571481235236152118883155451396343479383885489689477762195125648875893981529477413179178689143939498686736564294581497255159442271139592258566815844558964987194117956279815585969315219487287487272787778226712642942879688435943119867587157311493581547269653863849587283812752919943657613898171928637718983173966131882169867958711472269466642154232348324998767815921745319423826948678158835515995879389231412196763657529879369845774686636824499655396283218983459726389862211265584112422211445217845831849855394614844964197518182664547532951322685981379129838174327169264384442829856748629426748534448666989261156629481322885737951716495392415867884815993454149229858377496982561842339555869779564381921698743726757793279947992429521478343514178847254157647878719756669819216989794188752338218974639419339837787185859973782679922863785766545153547434613769652846915489924527661393753839784867457894885227882812175468336612346935313814592672878414136685799482722993241317585325526174644573744734157177726146588184458794968341534221992585234932376145521243295516695753265458675278621535733284843317523167923431272333696824297426168374955397294326575255654285882617892411131442898413858276654794584614617641839659934642215574823263633296378132924478488935326533785914521334425852689472892545693283524546876361529356445588947254496759237853994828452899593218647211223818986467393463422642494914125295183628347573715768897287598917416658472128478844633232979769318864681692428293655777854821749624873832973872236692486767732774161343439616637277315971653711916949263923675382922519564734725328123325462889981121166437799229932344689667666676663295865885667872131987643198754963549926482258362459993312987373637417855969785839728148237864125746531936915486358142953548949513166957647985619414498741434474669165818616157987326989932368724739211961665254965454456581353725735721776381677122446994128289652913179597645355478866257165929129327276939344771566271877368169989516298122388344741817524339228278777568686329672663315536546343111656415945883957268529163786177142673975543647443295291469866669616713256528252561161996983538599179394845658894999988676828667564483765239919398396153734599234562736359348168887582754192125472545268971876664392477885987423566962769746491631867445932672838515671544174235212845237384576327775739135438958922444163518131798261962515299181123528678571449255241472899787789942797544487492815942921988657549518253581329399783875953627352292126364386295173359744985721831941557884484881915878277738611614659436765153232618435197857827381114771274397567491798583354972972357365695249967847784199476474598324772296172864531831757394643464741958556533965947922642885121494478334875951545136388477878817245966333737871374793539216986699995527879566673953194914412161859319977933478664873363613797773713699483538495671896145324982253413431572322687756261782271474624747784915962747363321447365725198656156543715339562596232583192857452195254677633871394542741825569658973431192379497752824716353218915237146363293856937316921142721234837563861155737467159253234345538174351355728555269174386519152869394328789645951757176637642737646877745688172147744416159121774361924472177382165495988881867382474711817545731269556334429147274454524278632747583125556441147482633149812965614814358872886514576761651756296476711588655195441117162935655182752619364763116297793885349747912162897253463972641728242216795881169674819216359331154254723311396254545455971994997323785815923648972526913993282922289671163325122353843132459442658626522742243366551763887831975846397461564799434499686359356828456172137595438767624349164645471177279928551326977391395669296293821791545567954583623278987596766736771116812259311617315144511273849751429534464414143547988915378254195937362793196459947838246151359843478638847562465247861555481474519373956782727239825851498326676693896465536257138523552484859519698224577172885646871929293244192814369966145597175165885298497677813788492741447744322649579126896165894867891664875947985786356861331615394359547921717375811386328368798112964556436143523631163888767457653187639243593856952131895541284483945968117371865178156599518935239615415143128535338877727519123973513916227969382978749391291498648938538215243348293132942171743636378298512634534835939136219452978686537698942425818611321255332991533281985225695465375481893181134252341762321755273799768977969384418483594468975155922897593419651597736172958463854934563894769717479976162917372664129288565324161948554633251316697515361782176261814367672512161711246314422927918425962222227297221831261262952793299391413132733715712737923991219128968369333513174247829128237939734559573722138442123825637229183547474656748482573854316937835268815259724651618883313784577974753267148484344122341519946634818225827655978279313362256819199811291855443169979195328889787678697773216412389299619488356113761438547187215234984923737338595437171888518911397688851673412745452449178959889647532588828982317459366142939884536674555333454988813517611588841417742264499796587728478436211241995119448317955536374116726748728219144865549992518928581153834635638915368367418298136942223685137828344168798527321913934271673365988495264115736727919427475719217946441851423984684516143513413195649724845943489841444793924334797668833335674557581858151464723377261393849184732796691636997225931859222921492462121184672483875851762854883928129227485523818484568543929212912924762213493242577331511531532723187198437759896517557599541713991711544217296636471229173243432492546756454127554665552775917157399764419819554819445522112716324291631511454834767228317477918428471419454736192813623469959881526557472853452531683928813672533277815888214267225595375533675782463851752977588138545987244622647922976163721523366755458728873564641256418569685249785545332477742755496142999424371725237474137112631234333264582562874611814623675688111326665791887248327567734392192123688147126749551297979389488589747542243716551671366385224962845578693854418464499917437614897345193478698334773563295965344966366592342275531886195571194498925673617713265233832379379518411856126796112514796814831782531416927585275326694375657716747887478926524945413739284854428296832633274567997369277652983782364327633888576292128763762939245676229496254652853629884885789245756685399554739889767145514427882359778614976855819514954386955189165815212796267217513839435842737228638797314123664946877252414125877646377678845227795529551952348993529276958369138579524499523313564471875711513351282532563784849276252633762196925167223482666683198369546735336732433779835373683318242614135617731996978416753974888948342711473572159899454751138823636617644881185963898264265946298858512898816292571396512915635419249229199618755774434624275595499321211171835312644994211749289119221226219739873272681655562362374296795767545761818763119346563872351816561136196962172915549727851932586578177664761851494475959933171637434288555549568996589472679632374672426869716694243178345298325672723318278637141247161679499857828137854617399423938175914879669363146496126157358246626113859885988636238632455268821339695473961623325987233658521442411847123184316715527671423366496478171479719479712568599725254781597625484321381437265137642899847689137557575517223725468557441299992637384734445616943786439538437681217671914454957136768612453191111767657982366177654413447646736792465163298796451681934687261739765361578447172141132579295157933457414257845947851188986491183238968463256549324322111649748969754691795358289421622675448134199447527933741681743789123834334167817481655613775844756138461766446174239589746339694187922997521137459397262784744152644833584687331358965133486771843226473731453466362653992468543754382464588724348414793848772946364419658428732572849123889963598837882513476432515527795582739413289341567999151692351798761711929842877676471439454514289259341124291946683625658999317222145156465458116467723692623235337842467912792438918367428642974757772562732854654479111954141414972237489465728165965959353373679772419346717513998393217534789756786619289829118847157791169934593253971942852746351129125816256369566559735998523524425785491937974527581968711141472849379471168419157153823727853937965892997727623327688869554846442829818579331461129896751924566737517464387324324394858859315777538254572383614934419284214682434148595623873376516325635193235438378639826234764495867356568911837699581193479697173817554244236975833831967837634813557762273661132324419182644924267843849115118248569467522813228892285185586399155981733813124914911518956566469858821282493783173223927563298173764863992169467678859515715521786173351466382858723673134574553158274328836921782948152589934148965377959541618683597544437731535143637682632599648273625387448942195853995934997824176514146929228513792284674355651291514185996756816933471795268278227525914667358741178148553461171723322678482255263966711135143113434581328433948245615617211312643981812644838742212661471491453641729873255928147193229248183446317375589972774473684598416649278985333239286633871239959513328117649942959412789892887627758668233126291241318187356818483348251351861864884791515185734956861786862847126485436835497892578657233296918546978561811571626569163382862525193838928166927553559676743894483676467352843588732588252441678936472197371519272429225367325117643742468597424545457783513923676959195745576821255834164464612297216669117688612284499725276386985541542119868177416478985413912455499519485383933558347778968193632582429948139375218775562271433572612695318326735592948165197344314564993725397746931746235869289525724185594166759732355729537579149447896293868721844316268895699634312921296868932353867647117968398471489174757982167721422917836772711517973651666337468459943598668718496651627149764699593642417378218753724327193542581644785421321176357678287341478533999341472479194652569193239983363287324461369624869678981878194313825151275947413379157134932442633138944538267494399812295438571772475827534363781561779112858826963533385622788835892793886667353496724365443226615765852517232372842278713824463849225365187213397593462653978352374699196716135675891164352176393662471142734291679685199216736182237221384693551517817727499986197829847296342383172643372269869539593212745862957112448554438272231431593889974784828673895722843865915283178357728574663935117494883491598432994741996398899439717945175727716278177695574425386889477847417924822461828259766253179753493183554691672485341864262146375573827276143171695571986989515942123831444651699246234832772256467649682845914728431793868974498152811994574855586545721597747633813711158523879433894933715368659728823664741673861254514149894665557713176133328344574877856123657327424117349152398685359969224845586876698413523381716693615178536914562392644862832391551857689279425644716173255274338224872789721185454162366784116927395473234242666161397855265856676992324536783298317883497882437937147599157366286775893581633425128767762587184661159397359689192857533661269625619548253111129194846191116966427369984175286186569957957653283818786294611218754659345998117486245754914125889343267656446173797152453854343266572235779286555251395579893118665778255162716221259596575776531998713218389991916864411877319498269479317285286761991176686636442288197726234881788794353915448545455225747116984842377466998753287697151761357632748384874749956625321386311164136855231614488148569687228215416182415455784677422469271981311928248684152328841177173172993983897744959179954962659955944243422976479486461766711615199413643731367295721896467427926856919372397127589558293725516971572498427118866691399672221718755784625335191559589457458538383761112533133167125959685336155321331473774871573967924447852373395332598966123218899333817134354776824621312423212133423116432898379732741983293315446755397367283265249337547758292766285921539745258281733598218365983364427271696413475724534469747973394821889418645126469795658445665957934764628239765634198832487862454739281193967421629492639316441613521629714545596445587516949111352313173526975518967698392192216246544775372712697357976176286718442729235296356961667275782363296367269778394781746462831166265899516372292569433968242236753232262798917953886182995128583895821188769464742349439921778868448446312157521645677559526211945767398593343496853418359969163539368917141461145475119915991344269851563699592139549448938943358242287447286388232274167852976798897639248676488595989664661139918651563328866615194949414416296952897128914665163457286527136621689392291546842177885446948599568487595539113321998421924773628456184546457668657488479846117843441794438994747476213287786461594662995683166793313611278825863229318777964532753813921792177488318275961214478558758718825453273981477577813558232193963497514892848585156492223333417747487667849587183623633946186758576242725773571733894278786261118712983351697769847255913638647318586621579235128833323566329958787358314327817681811146678562339953783213974631512615262917139924392491688941191252667747359242459699658351359454419164798691746685541264398334764661839799752419864781218141416762754622487527584862772666695261425776914554392677743919468984126583163328657815479768715593884532638969723494741627476835114446518314275415788848566247658982532451767217784466312726571368312446513223781926647727474481221354894115462464127688434753664688977286613847249898639194369628395923663747551439282182416467396796843116751792719817848583212871453664148197277147731579789956882246549349956669342488356241739732475419395859773919734347319182239758687153139229282514235132253138885681874785712742264566781183861327495663124398494751327325591522251617928337976441363184433473597658341174779493528716149386645399224231516434676446959867421849752263213745293726311296837912786893113376785956667676258839917686886923691185741497192884775423192682851848313241941138516847236275469443263586569672511184786414838762887134671536776774143672855721898591857891467934438584678148127866951739665367689438795598399985579532487824582415275624443341777738866548995135552892146368346918884447226628152142345871614394961314125566461564797264234543738859261617133289547254675928281175971931634741685318555146744741347328272555413832777279744128141762578733263444512228183484287254391162367512852163951298696319638744951611785891185194854484356111595664623192119698183311734344283748189499599458256576438762289452261299157882716243876642759695729729624412662285462925189948429491452783848956492473981875616555579647822697335472659747197742288151732981513948214167776449558353426515465658558864431164918733155595941494248815356352652324629977451481694575819524688711262968793832799147427368726586691795564746715718449175836385834892448891471842565462855473855245477157274366493938112459533946473177795129658732632767628813549757426727672555617874535426559414145616374527987754116437972822225775392643341915495146634795826373792956278168698982653923494831119284711526375173126418648131139948499349966372574215978779773676595339315842979389686454429686236668588152348167935569891758461835672487591316999455435499235117574612352371968713345673576976632192116133229998213569816493955144353766968856777932713343636141356622227993558131311524677369495957167756891614634785152778616112697363952913365533937184844554593338513613838472663272656999359572423672854781836153217896721577718875161437511915335913575522271967573495145235567947383735743837574714227649185778497759134217954425636388276754573248151471964486748466384847295418212148144462845762288563272511311524216442535982919855173122243274585128361759841725231342545752199591327482366237749763816372481449461298323846518565655373421354389298929393843689944451682616934853543462645892685129978139511885138374538816174665562364124293695421873664261517153278579988247789765121545695299516364362175733719211154694923963588713918382651461575824225419557337528456411556593174485726671393155779329363892198436888555574768235156872142241172661494841216129513189293226123378317691611292142331259551162388118667726746739862877822928936836682353826588475552133214916588147262542989816351463674964512225831975262143677513761257498618291287683887134884251265794564362379937215817275581586865291526643526235516323761618184512544216547969519932396247155395558868493288148131241864458888333218958256969851975841276954787997771585181866943425532127485983751798296281775925468679217615861939748255323715331986896665152934987611232591824713382837432533812572695734815375493576219253544689848311791216645982693427751929993723882792356753993243898999888959237496531114484516886574552347259998549549977338896453896921636525267221217938628242312993955596823634644436277981112291496746417571934265773469461571618372813558541856433677613659529446526661524618331587247482444277819475436785617656358887121447218955478956416161685573175218728513931735355962818365662173834673776747262767848663238334497655822486113267749596797429858522193232622737412341919652536287477788841913743776757712853571217775558648893261735495579726726493846699589894767296633614276715998667516375751469933272588168557312152589954989972299348144778388583641536833821928842534892639577731774356537528492454843995842614681995558219938974466655148398666656219811793581825371774513468923433423382649511148925375591373524745973136177279862387837755996461867168565272257375168733233758733339184592716433738591712876658962778237297629993641512788342138215917636487376449589548463475384775448166694347275128745882319777329116665188684986861448569446157157614111958357833866612545241844415625799624317472942195498573813374742684924652745844383139319537891149441695768241568761789632311394137986452266292177936897928947449146771886485582275664465157882685342329768296314769195511388436761972746655185452351882818642227194277732249773898876956811921631948611623589868546231711812864856715666914999842455426495572856326882472861754878421848495461993489527694657945865739677293183339371949284987363835682382599722647631549937663834483519569431574236381274828991428568523445482815433539791598449286936371717987429661431479212229713339318987727574626643653775745978897785356113464927273459822398177745359869185477184327288317115788394268966513111531248979789256175471277726937971194882768674361798715477169856855243397164481459221567373148623136355151588623525572298492163376899394352293555992112849946362851879214313658946156229123649734799629149394188682284195358121489451264282689347555854388189128943967276333257993488795594495289475292634958737964734373612921857366438732694389651968328529595221863635784112976163894645685916182434713213391816176549887387774817387587816886583936814542219699338986767344883185676928239289111898364987455663128619423431239319245434158614915755796949852881884425731589861335795487263459428759321269245268747275991235166831742767682187759567956968564146291367124123697643337833678872581527218499658223535217564351499559159798744664826347983397346271285954728175546169666986619337335839199997439936792499949863585866766744387369848977862847185571136699927644527424289274973428331779772445786426735732128259972159127259627268731213324128125238231735796312174184314626428749652635184523631838359619242815879933422763925917742682595785262144375331533924686645883241656758166598531823271744113426481955752491153234449513823954582576151279283395638678849244592648143959866186548315189983232375188373258756391121538416738756254861275941569672624455917771386663688173128185236562852528556113261167368276688234328459214893227224749645114825235861789169371182365229729991423999867874711798834335316286137426313989348317188412831539142683313499334144742582564617512678898937959243417554619969611666445248822836167611162957727784417831512785281841947122793469781463514673981964157658727163931176316653852746142897578274476573193658843816529788345163499145335589363643193952875379629523946484329664773166143669529461654193523568845941654711752777742249481727511994948328383458123135963125874853146967785829711824428621186352665259828398258348679521438153219524514233948762528559592396516558717229514371432277126246886432191713753161192329931544223655765745919215214345237279571836212675164965476898329826874856565532137514841521331313881174711262364995388439353363652569821836952351789522446663826162842725329545513453576133224719994165596449979114452944164445423739277729597418733727123566997269976637687436198479161227715321217861538261779515592614273693723489443248195955594745962222583832754968867362811275659761719181255551237852132159594471552448543988911775888172822268212236189478167135512318381516325437945862577268619638567517928452245611657463234186932771463217419861926653964362864921956176715781873327424741826297282798368846813135875249129638347425341124694896473876687541364815438538887276793171638372397786328151938645214411463299239898429335316161571822857156177147888619939635672753737432947642311961963725372536719343536288419395381562989133693536667276916836354399497389458691255972562145669998837556491359265652817112468356239984423548354718898589625358961848289423246527495243194438314488195136241892421944143574394622431823547625666749952398628988122113456997463926722941883571472482726215931233893986164391248466546156549562741938544854876613256751484248413416258544832581786261189413342573186941222458527933949779913258456949961185936628792678568782517219185283664226185142988655715415323832287518115518796441921552983355354993714244112655746681767182517716176491791764227785752459589269876415464439851517982116965871757397733165839988676877362759725534196312795682549115641715675128428158227565797698151121688189731625436173543292996918155854736876318815159268347737522915377844464345748644567349982972517181536851224187433147925923263761813486417795436731423824128384364413142711244826857948339157584823917187291562156741563477115386686385994941234818744971761299766484773266278548312697554664428965333537944888697757512857199885427559354642492166717882581568918654569832161276745424572528217152418391486592965597835976796492642461399938135683376763332861923248377161973331646222444511511725643348235456411922244695546627261374196432172262376725377737434462759393418524742314821593335571535564794655118247519458661227169415885249649443183927884885581431998422374298395686364741188131221951167476295654289444553355366251357884583947345389534758274798712499737921645253915389186465345474355147911415696123932667182528843446135165624126427464271322195327829326776177619455762872882393975996473179748673148116393423628117644841614551755555983315476376931314374719673227524835363879572481728178945256897379795973728957138736411825494231199586767542244196647638978479379226783446569959512274969797624535213446991886637853248126787131551784373341914588692593169873727885111335326663422661767743925682993115636182333479455118491768857957511919132467281692521486361966695784686621439487539676293288757215674235258196858616226544218839475787293892565425837489799572417975584773818331824461339376316193652927288921993338259187627226581572379171169382117915666487924971998895912839139739284713414891871661259233225998815376416875853818712734835435124649369856421591362434717349651114931824455494521753133747612792185966381731182256348612373441649134653725733847471232458593555457723984456729465578614443697133893982325887733371931365524236495783714282954371364499732243772231391629814331456686568662837841878839719132257814369916287861857649519413627287693594992778853516465496656364924363562639314554299639193729111426662724644998397251968339149179635617951359179884789693416213265725429453359137595445684214429882213148463364923457815225656633754167793829219444123535989433797193762943763696917359746689859657723916272442132746621277253917779968586729822985646663477577334139977548339437872536754511133445333966898731427561135565467611133228897661692347351786223972974296975741681824438497929216494713299763721692144973673573122372592576638696798186342679879917156292764423983881314562348248743353527857256333364611634547312546688363167699926476337661482536293829126875766292625472419652169451253821296716967314455391496431455736735415991622155565614237262734387717286346442888247659465437855415124557271358172836752294877418811154772795592774338458744574345349626785345312634569322768183417378847451881942398229476274425141824558535529657469396813244647627952795256112747675256569823474259319834534517264688224194231645566448682921636194816215527571927541417519563161551951412259251894835675521737871855895119924993476833284255822816486885776956283865973397868858577146693297726983489617384277125728378597358746984844662878671242868796421295892275521617373386462232762882251457898759586713249362437694728753333117945416739555677237598363585884577927579524871684243978126594831621368211587645159355256894187248364974933696291935449918326929745233526785385377711691423194977481733399737255824873924224511358221441312125417884175477728842643686617618248826323851532314468726476947851642263457499428854635253755439593599743572423387631155329662691859624961191318962876397263412387358644544555351447866582821849564327661915331364949687658742787118764755286212515462927791858559414889286716847282473242226971711278987656231747874287388876755762559114726788466773492279743218453264624283119686914932885115839255416724135882473765843243625639169741133599736892374588749192117861863212174653779127981881989765751861167322587498186164152917482567553185243972779385689781427664317515838215382199558525557213432263755555973972937767213823955272535979456653745311121392597914956534578933397727738748897587882535771563783455126981669217885927394449727852354832797617385877595849799485619982962721359726466948718755225193398359474245872365145799329728937763799123581516919478399359153838987988336386876723452377282463262849562289776338672799426461776751616815681314162232953697764348317878345465751863967127873217836613335861435311596397975384876437661237169591658278865383669291856869574434478385162588735654639225951383729457954991874229572383777895167912796175161562318446523392798498457955359495525459999219387115841635969888439964743744571381774727222191833717981244592618675847557656527788475499748999746229864528179847674113986765647259126477263146793293481166418224225652357561138447585571221122333776812558451385132578589581613881559793437555857984743589559737772631863698182671144282246228885147133483371546449868982693381784485533749774327214892149378345573124498455676486765768785518865166595221687215772257926566242747476888846656914228919445968132869548222776476787567591986788964897518584121688343192179648533823564321723771415713891865598878224445516673722283462456886573375618958515785994131364843479796157851692168657961875268496365869553512618553249226642471986362316566726561874696258284273718828474935682559917521349655915786533825463426317957972745225784336517944274795489176259671247569919793991461818726431277299935825793182127116887318236844736218677876177677345976888363734445292888476142776262749574647971581667495998266671845673136733671636465854658225388745858411677539266741916826355929594344481143158513613274897398248562891884189949199317687415339165243222529413413333891432953858262582634564894927296248333517334472534971249639249762594744465793854232144997911786825298534193286689783972672639322721573863189637496794869122933115151337525477227785161862145345739752493849649317713888882314776642771953817826587754543574951615683677856538275741275432726767235382976428325898816358519186797125291742654933813437387275743443863946182484664817434941414548825118696744181469192486535978759269829492799744643772223621586591373211379243695953164434472819846256173996254649846288615685678283781979685958933449289658115834191188146441323456465311221683982199783436458673218639549697786774753985639386516258112861638195469657291938577283984178921839364239938821767475664969762734649962944735782427873169134296551555549811479511298594497717362296741539677617635474814564189218763615671232884429899245534443318469926938127358337241684927247973865456358873695498366647352948224568273169228758574147862955676921748944865639476679455541997589653446712274119666692144133771635858519535825882432545948214366741582444825484536678161871296769717849329768111567363349368834784477398264954999626859775567936463982896281571432196974429113538735814532578521611396648539782464845386433284243263726568337462755263715924337633895451273828982498667258479133492735742923699839695311147141379442815196355337286716719414431354445843467871678248718758171916441824169745793516387241948137661643938892361512238852844636392455647426542693726599673936655881344975528677737377234435981468381667118865637455977319797733569536226112564399786416384957192143665356492711678299726112611824179594133293258968939639689662968827219428633439222163932987973754454495147489291397698775472746172419814542551479138896432595192232212565599646648426859118527739841975534487939772457357998761744741284522214271495129719485459713731172283698538139989837363133394492519669522213212284819121359779729785526647956955445246261237998857397941535221655168674686385168797472534146182586354793229626584222454856455494137486617457195426551726461899292849489134824454989952686566576658586489761984472377426172628173922659425414741967788285446354635689519941213398877795329843195543493376297427213971493276484938157375785426146234362579226697493128596838432943268416227765495596445916659832158888498965594153686987641424618386935821379764922498253283644463954445373248538778584792945371565899316539372147985254357775711399221762689692479884318185465483394261428287434413733531966493633148989797439669832174169699852155843612445311283489786655449544918279393733741969937482925777267975814176449435327955247623338126415812435368798584186637961762392872915541218956244817693568687764955397417112636116754811669336631159871489641242615185252174645649616544598513563172586583946498348883332162328524562111394823755534766863973713158368387669823475741226423783988714542297178315868889429687975745188217794524198777599567144597916716585847136993652597219559251629368741443132396444154188992953978642785887916549944342941136423276445832623265159463566578119326951342583798214141475122821743436569617877796199936427698672813458418186755444336878426284464718538435811334656123865582826276918741322254597219495843813521122975997121369971818482662923913191481181116913173829976166357556684582682181378669656142776422988437586584622466332735892534521453181648989926647719188321572696995957736737389859757579626785464758532994612685569326278745272537378477727786331352878732258392817654415183515639726578683411492155486884134585466114862192941146684262574733378968344333536531188414542823959745568781143785784524868949345118564343346514183424811694428928674986329771287439899858299982748137668546553285965848757745718592256999544752248622586349719568574263117471684356483916967713569775975521579983422721397977213989577838974863215266385172783189127718586873283598137635792991992652511997294354156728287377365431661569178513827487296924651183138274182822192731548131475473686493889872971143186988925451628247426393489583781378161516566379911639767695863981686736272818618751726375762149918561187258927782743369845838738575472197878557622948811394266893349458235161631714585513829498632675486883845925363794985925686733361948222613237596884375733315631714435596718446925342825944496457891358728453154578658941489925694628489234548885548243361263721172821834166944377289416411572677748731136628946654583124161228883754746397181745183494781891587642125645343216715133312482339193394756269489959443672799732742959224739667552576644813775847933844216272835963535995273546348632952558531136388868364528242813986132874886513389195346141239528121318685226533333755369362323125134871392835167222758674795995487764893165569272446293572871419186454761216224256856193279319397842297116617932697196423342262834954644214996145654184397423696989344564853456811218638379538116841386661715485496149967829519293221777857374814428414975835745857833617234614955774162544117582174424146496791257653696195744849262665194762677332581178643925942188697853119741888885748938432429277863173836824792266848779821728514619983473733858332198979942881151938275548623445544431235492516598415858618842386628731169299848669143793676715265128134943826672685745912662987579281565755223361744144281477125933968424945152135547865793593174371292585991113455121589647945362372429818897242644682555239655882824713593396468716861473238715987257596726351112696624846626294829658229754845194765949691211581446257922495895169654513513461484998699838317723667927268494532821689563382953329991626465798889938884912216526426477913472259143829229349872312848539766872875956968982758879962814779356333837424211385163957147494318841223955264383788863675215535329321515921438616473648268611131953912383336175713865671339433427517736967474934111576518532653413176563319683983841489333498638935681799648836119256179318971762319288243925536359947867664649751679583774237861755431997459325381239396728484467889878413433752865793355194438116194833965331425784119627859759358621826449381858169921695569484245226759777753557438487733761974485959826581635467185767934921458743725473445879578144745126951734116544776143199884157658253335625278534148446425638474297429979487238533476896458286595225122959662525641139654572919322822927873924477589355681881713784965752943389927952329387367534839394587615596282313242767519881719257816466974194326492932919979894574299797986427956158248135914351769638237757542146768651951475349382113687432626291946149976499428528786527679187181684581229242882761212958866564622969989784872147167252937673934219997966353456152766868525727137926613238463967133628479841542244814227962248851113848721765988367788373587461462544325371868594353988337952188231552988855613127325247742941652797785669931232852355928213176345823468362374457572174874972594985311146262487133228596983932438749742356585187318267756957179853626742489887516332186671377352513276314182632364572139166781832147758157221347773875781258239344198813523656212489956871784617916686837182693831725312469729419966549347496768631259495367287183646559297754626541469984693391554198927772133676612599869288333532333199282448919148134852764927149448357481371184977261436837541565299938856853249855997579222258676568442827149835314159961176833388213375178959571885761876359586385422818613541528984851475322849382562411654796583968915425698536672712766145573858658989549482948119275788345429364152914833126836734212934375391686785268461142795915117434862821488994739633812393713445721792849638991853144363632864425595667529228314616832183178518957413145965785145628726934765659288482988455858319972663838373192839127852336146133188369187386567478153274678261467294281829356173876183549256282899218278193591687295439244852832841657447786754463995829284377451415149717273527826397215532275295699569386438218838538981287697166992839553373144887685682442956646727773998213679338795839124567249895184894952974734226127474176955464843147234597828419955353848473656859562811692423317742825642995589336526564596826579561934114652575126653913583131166168468722978479934225363674571176822693879626517828354691947154545793961832472154887345339924376746143135361576764487899892128793396518834961647974654623734512721362153548682288533785158397569686671835673889633991485124869716364345693979743922959462737518123456926193176267352386558198899145725234521135761888522431211213564985327231795683435557677587733221642364233791133467224862443745799825237496487634345621763926596466789437966628942413468669398745393245939481275314559215235917436649123961177497753672174574216869862957964694468534732277587163138234719278515366528735383189382284564361219535186849376674492519755171172934432115932588918158923421438531862862455592382186878221153895771966181449678776353263177346623598197239285842377573789494954214923525533997224862139968354674164325767146757134236132857224529849415119674376789392386196337211259549596833492219446845568289294257186558787816731323768586485698396852728498162993268115644213932625776515311499614415868278461522988539948986837377754661416457545396281978652377942287228763415735352348993119793812523388427999324536335535495675736955685474315647268612231597959653911538857312927877989938624577767829595325416183669552323669235996855376616214479315446791613193778295766376712633166635685994351971555972632693999451918317723728753141394353551396476216966247112315334649783821358868454967657777398643611882926713446723587254873737987166257726859532679474651823511215719571165917173991366347587418988825822312918317322845574324912782354384475194836998546867256315531858385795176666411196791321864737555125532287737726485426492764429911463561242814332664292458698689534769783853386452772896655413345621689873282725981961525954388749788674873154442538589975483255134881278473716968615592139345757225242178358834685144245169543255768865678459898212525121864287554338686439499128259751637935771193952484313224938893955657134133227344674886277956251796498891121645191578985781394363992671662734144271968526545972271437484556968376251113657245352384923377752687192293556369684812294419985142751959195721678958166487485788953158947428474279975623451838613816511243871396273645969951712172722834912839447792278162141138298462852844877656773478572675393239394477665329876123869926355666586824578119986587662564198654292774939829617254811966464218627684976857817422892897432742583152447932692343333522154227355651694386536651983134238549274729787195658293291583815658465747614414877697816855225579416878538858235984664248549986937514356131942439784198852759442182416929823156124524298373317415546138928233624965374911331861414916697519661966474774796671511991569299955142787155434872932821966875771374332136567855938129195681157174416519154748321122832388383189318858753125847838121147875263193976751952435128829723599996395573146131264665345226465464873329524126133488822333858284661892733145646874554776952779126184267569833419854221715872773272697233115345221432512178255472539243532156567519658666461817958872925239776426362226752833527413515927984524141151726999141789139531328568963877948437332299292144155711686763447279992921729833228798756322565373253343325297528477241762727243558672893412964891594661732455799556636866962341391656529653133977521996593716845789341196497683344334883953535994827926455224446868156341593192483164618129444829733457597795733939378288913495266592231799371553381287186316722461463442267313549458156776247363319542668388632576269836359866187831175813656712227299714799497989986476632292313932912261219898876424977286226518697714833812679211518226647387146817188458696527466268732559243723421355195756382898779824637898139164664937645635482463725414117922367559213675113248511831342832957693514779271584423395428592695454694951876714135265797646794238587973948629912537996559119522369166351112982134733367277129256141666665744745117334159752665268334788253527137769954938174589212671395646248814799181888237256394232676298178457355334155661378692759367165819534967362736754613788694399878732127843825589859116775295973845146621892341235135713211718882485146116249251654213324484172119513113626539584894216443849851891911272814763141442984358342322312327498863966919118523256366486518247913198788788539744371918548352942252921888631584821799543367469575665543385334614573426643467424779223551973233679821484611351717539783779192349231368618642693456323589487512423447298952212345856195843683625858666451651685269768242499652146892536481548844719633752617719399532179924817278131395455936954886983984363979772691235638123591188376582888755724736388189338336153692879534195577114813735558963222389242541978678158422765561882919723876863621435357333878846946818184668931863497929396981674254961226118175394995824423479684869971569477896175656187213969455332287225883599954642242437373785913624182221215567661614431598978239537649651186753712244283181893745599454353726996119528725794867397232556737226836867538197574313835179641463934519253952799911282688443477669911935139288188996244178225871862755166975772571175573284662747892217814271417425852961336498188218787114244875359445477897685415274873286563997731257936685124631817126662959523536329877378631612312967952993146777655373135295335411195395618275828355557966487818927447786592974817253948565356137751339978266545359443299613315971912788695147553587795765975561452528367761526664333699286622755716633318349715227576384845911471124353976856467194623916486532534758146739356956217597946488621995719272287682291841423861612692262987186653862734866151911161266363862535692773249644634741767373568691259236549593866221285812157816822734377226592113211591786466147219526247786795196155114649243752794427176655165668269523436591761281888354758223128869192741715714793527892693984779678742712373641883561631719275133896167284447526772833714721324513198716159881457638998279282531739511114883937579469285194256229168169457638286212129628932543348154887531447968159822694847962765152814738423228198167431136192597677949772993682497131132631871536239196276444674366267329386339841749466191346552177798727249123297142639564229226985755368361569164225271572493981345771616743649951466414643931955432492955228914941681944226211644873968578468662629622934554526914299946762538689539633878328818326111676727486329371567389178881581547918756377284149857654542579523213977594213515481246588746787987284834244384833847395167535223832213527845327592129626378789152272413187518258359211838595591617756945695519234154226875323363837521189539543847258736256483674316324256219473997869365912168489911335844862161746773153358186986818482858164927695891924823419199848923718111858338238611851751734515785575559383195846921984156396764212756673972466157146441969636956922579876912416199632627671155755893669249489898642812669564947516772686515493267236483327522362828976627955269973529632483518689377938524948826166928266596354281863724917789385886793342857275252423813571598986555777852569973124294541589368813279954299977387696859887813673799684983971597257731619398556726773962348298912675735664518179546833947766546713176532971777632313597272725375572134212388131152311927177595142253654671464469588578365925429433797954181536383139846437859793161766163196633925899432217175271356853153614895474217327825433466139234495673298629241912454589172195523889219959872773997355262451893172982876754939329944358584563761858935691983894787212151495672756548197975264532233337366833898341131637143585597821446118387919123175778926475246189789597198198395663454982594113979829628428247713957346486776963855616447251821214937555923619875244787492473472754518999249236559916555682828984323112936848483363827375456254575676868442169485566373718323669136612435641468824541812633798799368592956182873116286338417276911849144532618828426949771488887972864227476257188782659587475962148568195621329176232289826392516242142592532429942149921651881415617767819131924127118173142181441295975777768169771577771778812821318875649446414451126194974155185762226258889124135635922316814389591115883794186648138169741178918918487565962426328124987884774564392857343584194886174762148474713887621767257636243619712549899186747813627279693943713956735643325996247864832116376552134678899388893477859959586131344591479296976224888883739333456615642562258769948725997921255715368423537383387958446237252623149871122751168653496198713864177954866131236982139729589675172776252854866444555427466233729895411575851584739369985517778667297254737765247973972422188943563376648395818495781722929613968285738567937776235217398259435253626462154821433854462287929534784229323785726991327534134166344655586854324913844587989386818374622295525896189537115133513439781791241621238161671163423656525584597558661476333349561825466824264729666692225447294265791372787968724363475817435752211348396992863188425795437991112234163552637836667135677266277388684938181763328932478194721449397689488455676568696414765797626374292947494949698228684963724451761854573866725546385781953486462546883169632274793362357475111254722137881987456761884622132137518611387386829486474825927121661421559267758776323584165777733865718624387145766914311787558725285856273976443933343329973744143637143349974275419531427789293345949373261476816768899466364698182998214251742416285121657115714893624939912143661152126616276566718292992295451556646217824459139839838957482536181619371626517571363157795847445495422473823669686889558132765294635853934399257625679462637146517882275594418161436362424928558246442892322937968585626116752565199288319311996844295796369416915724534463553136545124649671151621974319545757392792155193117178155574427892511681785384494189894341773452612769638156474783761194251496455622584488826383559658963992436997155473264682937772567756799488183529634182374941986751429357145497358646854246245718749674478716431285861174676947811777294964516414789875132635316382992277616257535392695858379797976993753368999429588953779658346735919335124154892697764718532914494226627913382551136486239228658968529219338483484933634455219986737737661497635826179414823722374956612641393873579329691961188473933286125493639669429525512348532741351779943887839769129344285369283251154332194971862894213738646862865186386583568558857239984569545953662218454398973686663919854357593623548856653911467758633857516766121796351631776431283467917584285254687641616248156482282838246751128871831444358887984167981555557334316449764542231536114268693235545278253596618651262476336558912328233472841796612648372827617749652879963121681855672853513286141127913115263247714888138446949941631941357671231628422255847731784876819566489539361485768531519776466392849682517646112854993861496925199957197851351435714181929511919814414188112144615913914754745615955253853157497797176441824374768273467662392179666311472787163961186752871967834553499468263458467941117114786131469314919344179762853563832443469288688592818764948285466499735643591249429385677586822561443996135159981818475113694741673952564969968958874365534997955231376772657341117534986384169572419976121755745598776414811648878664266341625263931569938893569336742365326731914969942839176997461686117669661965849822818317953991511266923997462353434153747147186191793872617642864278442255743342411587658312498715549753216449579537282912151829373236447971927869677667772753789992635323313989845592278244511419552974194483265724922735985115959146345784819369762835423923417391835393682618674765196377517237211739887947795169568285836557257219197781469765711518981534249851651328354238688639438561975849894826541862721574415252247611591972536511672628868473486257396284436876843995889617855459178686929516999398666617392727624573164993592319275736455536287535749139378417324786321773281944496418335965786154675742959153382822634128686282458911196992228311473784531248283963162762864793639896259263189276582646833181454323937854941867416579142358473794186651954139761216121245172241649213297589465585186299696711764563882531375823321839777447413869947289126597739711577322962237132739631379952811868679665777579642594422415586661428384851597452582823863411966998735111259884132213388528614393965575489367669679897759518737124569196933678635425289931813694959859431697551881499291371531824888632692435323343161288231112589443611633154477683781493413551585645686981337975344373622867895367736435456153576794955231811336198539855458685264558961942964553395389614463987333227222397652871397258695783516628438558213291238953792179419861614448359568471265524631569446596839644499336342783146182135673356211558471994162374873975341656276219946946342367745932465529136547532124647763546948173435427862623615177644877561357699131727967228624377654418424173976856533244995322977216148535822496148352642162359879583335716845548464626622847733762974454928562497649291475156312499634935772899563482427723452582454747214284149376418179315453696951662989383119748456476721961665611799727937889734251831926972433593354936624575881873863541582821944437887235713789865199156237232655342165534792677976971494215451784979332781857545232371589825882269192359244897399435463344832947946152175354174815331565847931624229325749246426959115578272333644565949953574178977525332454617954447321468864559392724857297992234756792577833752823297827515627192662718471655736946537278749437583753589455827491153878531364122486625559941689675742594619921148789234138175932395454724616628487311613419782921456836277738567286347486355457582964671343188796431267783336975169437349657427868865533755342748679393267888574359793157579744419229535213958383252356994857286197948448633459665799488663471961764697441685641919847613839936192351185942495585577237421412992136134527666115552255885816115116729161816416851164543923414823574389459989574579913194434616954381225122168414285493725176772999911412697337745183454862437515496545685317872479614191242873413856493924611848799297291388618793343434784776546344154282833691925157435892445969374571754823914319952529653139855313367648737158952993847249935445662325987792476665858553544887244365754422668214588333567845668983457698743654912724979754298997322981764919398461766731149848551648613913832678543216299172936871641841214469113423832739822518462455464789681822114377268398234377624971939921139457963882695912663969953843845769465653892382447533527611983459396769948167391943275744722156975542435339848832239512984188665298341763656438542393579877643253876942215747681729957844597612989473583966613785669253582252339266415699251428865778136241263178699267173113888265156651675871631556242442629335829584439817979924637761912844336283535515193183446112192276519116267717226425758359467674224914539299819441915721656392724114466375355298378741796335496796142678283612528393362784323882495652361539661589625892224482631185211153928157928486697925267275775889172886576324872564971786253631628715253773151296583551965327477147551727122941488634531952679373137199791874823765227123379296488187856833314571973784911729467256849332652819997265445426351956539463516796775381725266781875427353593262729246218734282268799424672888159874484356665782651583749937622598847351827285339277452334886145828433514332745662496438827311892545885216371737866498279891868913391799327489165694411481357258476345367815892351781728854467294717344933412526495475148475283554176468697749379615118956355598896342281854872631242925559999768391418483769823935917552541417135165914278269441842687739679473878467674489323496555228285211388924761199929359894225933443461262538537428333313633236459685791942694335167287451752397254634617876188584212945921149664127477154663512821925416419475776514327663813984976516157983469111321187357556843493998696831731853859575228793932229878451523497673518829778971982968784726965732862653521417314588467729225777764828159299729167993665576133618988794692663468147393749233493291959328575799614333597591738947943854799179921343591241114986789964324331312336485598517796463368779212223346884323963743288423281289211425192323619882189821137136955197486528778555744725626429913512239781546399664935495927727166269136171599565758277768449134741644241398233717534191833746119163486414217487229528492765274279416935346973775636575532857254194676298696964426963415491225523871479348834355859171529449871167184917791916489486438361248243842332181982439366998624738452535657745833875791389242514237389753527989276645673687626849578453684372298752318565237811857682749167265939169816327997962728882777483976872751372161657717685753381677254329356442516176824389527574288519434877926413195424464112429269113489169611919551777277318225225453359329319244311928648559971496621551471285615696359184971129572515642759218658282989477378326466928184993848557655692439341786477275564747583247616758572649176883339693441555315889646781687275586444678623153641484152111636184638175837241384432637737881488741547929523659992263745513531315258831783847846951224764916136549422481564246831853229429922555586624669874556642943784685739278739175963317969154321679132947719617993223819723133199982186846796495617888668862271168365849319838298966623398515521336819839622441225876116847387311781754514648569946645239756577455518759213958752296728583239864314288188373157276737585797574894291199826921636299846416153333742742622213266675558278773915279443493613818376739537485586983926255595876693174926745293682873487837213753969369923433671657985678297453657572463795843818596953762416661317443712385565314999264394849979524883811366896385191529894881832211391326895523922163943231213413342463952493693789973285295535668885979119368636432749259682257125422422347919551614527576691383724856189779523583934662231358421715392168129267459815927931773743262378268175828698281774849123429556262169441319117184368279512355861967991121929617134851789723318394993984865825628882859821141969447745131412853542636618692696531284686626812154316765535684336344692253733736147724276724146761128234495668362134349812325872773585834371216398623514725391467626197425334843794953315644669429819641962456625818238682947878858622598733284574377234328995779531789553861216643245676376743685653616873883436759397823486644919368945124456821839422759313613538312824158739713744829638898142873953358139999364634487365269235439645546435351613151676181114546491734366891752155122639728152691764181569644749239382152867926182371336299653466484598685476964191913622577713242589457884479778868231376847141198132899146113789691518281885894696866779361648487546355342721179646212238181829573197529689796759269373171153999297749717676231246173379474663573345115763375289786823851297444667167632759368126717981919643888584256421346158629218317261549488693224357742693413343858992839688819224897957298511795584566434293115594288818558526964311852262472929337118852693288619675791737827841651335583891762518177941621395359382649819964924719413465484819737889871666958338377694233523485163131195681324249919212354691116318317866996211199919245584584214144621299711728618532179427737232582512573444215167154985767369497548784818338623327725371916945789456847669322553224731721214762616389945866919221693654674849119727629915495427466521968252251113765754294734569121116821935135391665184456793613613384377779399355763297867126386514921697416332717925791493821471772821461193263754324452734661748728765763968234565798851227381953828383689583748396182293731824915734181928182812419528782673163535843824723893843774553729815168631723284363656723268338219624577559767183337898214936746798235979745543765455265557121689593979844277453887383727429487425613676994538715433614345283825484541221552232654825347856137455817929854966131522945619212847328198873268762712894455365548269868645851726786965391726258965851614298279758334853824338225699761968875749571755826359161521376373158623569534926639535666593129234186431372663125967424962264176574995923277379776516782917314751149641847664441981668757577843856728892558993981946629466231315886755899588676669229266678698185651129978735381213218674424222775875752525143153353918451672738295769822214318633734568534787696153144144574337599954715174733328611824251683333126587884356487137229444592724925653341666294817619452782853243698823867587857617441529694717166847134872556296731871739999715388981366411829492569431431389718596423952944983129962983912871521262355559846156942139411497448344468993877372975166187136758583928717184711897493992794268126297958755125214843242391527317936621376877388652865984135665446816943429247983268565868224658238822162974672878524999722176898679675863329596247647518525195851727383614443967711461212712187158777927361656227152272342448244811412137183514229435558692595876726929627877287919553212352828488971831417134725661881194176813791674624426887243329329626297466423774295663486617539489199835466633943419637287939777785667184656839178931658342218877342139394886783575629453474351974977995374841197658574729154131437917544718826571327688584885927718452722514249161838776154544314139292352664671652428924377787299119234289646691833624959528226126938346291769732884178929632333825659359325287365661452324447618272987918315831396431552984545352459131852344363885849836379794848749724857272451734626234213486269131495111235297557269479617223114153643664173728535451311122333647881957354625467893833834157311198182716968494173255447832453451257327914654941364788471516752756586377531925841319135186659625263788542623117137929428973834349527451512811513115146833915248288824764855985295598261352775584465732125514123572378413579127353726927466668994132762118999634895486922687367768845144734686166594184342968633517819371648245784193426612464625395232385298667976128779896266685197225624571267877635515929577976687148485591276849379662517315862565393743659333359215266985361417926399554475691511136514949979652279124452911952954685877874739846746272351456549888275863135918482988914148682561376852155545372571371584432487314999295658175223148186528556387675584848635146359257788544152628166549212715431344993846242394199653463534166179579763376595885649976238534132877754979527196659546968792114282955252194892447391886756766174268673772151385913182657233739144912178273292682871935656729613113191827236273361363717487348638747728431958274399568217931783566338961154871289136845538596741354259263548557451934576335898824239944386222755747185616185966378162479171255638437787495771497293349257262625556235953321459969384298914176529132636958883887816125895313764767728493271368138649129641815161842669877812715568571424413919983948925595675111956898338518497571462712277688574262174834753419435516623471237543759131496636669229781928939773847749888441187918866967649517781454341175173773548134687637315341764761167433677469638481991534589855862694849576538366355397645439995944327374826632266675238771669164386913383845941597929876832726154645763956439489971947439582286649925218742779665649471429538172162573455522387841677619652358454592736278395968926685549764598857929536354831623281644599948623413355889353314523675924817568718934491435645997254636996652522314654676131629333675175649771711264422924884717963479833781761665116288565945522857831118164131631248985577939114887896683185157151848485277187466154712911314198983731337936672176456636566856644816839522178376829563118683256537119961967784366211512271585227738713719477793323454579527928792461621467137368682839779461339355417553256771439691578524546471912646861437478348485135579116196251635777314236964566913813322936898256886297783228828998329411978794372881568789551258161989187966383352287955799714528417495189798932141745214184424365115512572255358322842148581897396656892127552373456451387367996561249341985112335879998525214769763677675165187675554315726182957214861257665311656976547245249951325431986427472979523236659534455998976517255352194315969913248736423174887222321659145125248999542839117827948893897398711599542534435196799678957565336376119352683193572438222868481916416432481689846988798975613792443965114261144532391177548718931226737942146598616614466236838841593296311848698259575187669553512722441334273197834432297132372442675618115313985327436239355498655115825245433954786398124553497898389692134328787396296552771559278126229651417937556299267212227929532486326118763362387917128791633761382892667984912712392179933297326385551339631889929925917236956575931153815883764565156778263819412416685964349785279846663843872992449945267146563436182275441631775668174877423654243369783846892266973359181245658784652934514519295439327321785553717899248599598941862584551185366946858718657541525664927916533925581441194746677234525225857947486411429772339142483893378852699139969837159964192371697372432324329311816782291227376913254376698517587166274296813493628144583432271876393711382522873565824256463331959228247487465611293417932264158869773411156517525765358454668554421652656296857313737673848673924968123632196837291846931787978474275427637118817772474343949766173514165675545323449773956822328569875442874496538494689352483239115448536955416346693528656868759393145631979684144484248734697537821373379326639868362144384135716734949871523518345437766978448929314191143482296738595181825616527825838966275647477774855396837519892787385857494161555974557287176254973346185591535932276885583117583617215754786278385963312621358619329884152658476862283254268138941818222377914689718823238931834894615732432871749531743536518897347729852928983834917241891568283844728819798882372185954998827189462251111999125214618897778477314417518597398818257946613549268497248987625415221813474626543273986774436956467458685947589816914571923698134868626219758549139476467626328614476176932884786523159721342193448935428595864515719769783883125818451199675924494351328596797377221139186487727242363921589227728821628265946548765865993813685466427134636171946421711191359674316129372889873414583482516463784375312389265496743181221756134361771818724353726114125189682917974164825259411111323829767957654959421834775766796878754448183487318382657124584261845278177425146864928729168483566983781523825491793653569298444932219341432961938273529438262554673597538634627433665517223267624773516377728351627967678784445822163589241166217713469336671242347584417413134784839753399312436974395146337696178943163983225621151653276945432324429617828389393347564247578689131982562389318532276589246995887865121259169812928566468157635322733837634623614451196892655176248521284434794238137617762367771623631963442643545316881996773824186962315468713223719719376457856452572827787888169939947481176691748838495164968862745374481138993775613118495271344871118191891177527628546963896363363252342338188749584179368884118334466579376241188585411288588412646394321925933761211338177997161699921922494779781792618397984933824725944321279359328246745137318689974495422236257861533935655414399748168282786572525717253693933895782619687334475855561729112391868819777489737311765747637756732693568217279789666238991665347496533452257126982515384349764492955189385985684733251474349679763371289577135398513559974831696922831767479998748992888261129611882858594484147936124829931992978154992429733435936428399489475379577699662894486926745773599926873542487667995596968525765657333576724481969497994844419864496634295633627467256549969745274747166528671427932674469434942315911652418349942189534567751982461526656489472669512956522618735866331868794741681775436486359636358224992356324381712351864736241863251476997334385519595856561446651788377899328768516191646689245212129718638395155654626263187516718568332241655119469186484145694551362376331742777775223626975429445572194176243891321672279719634179279586289468499447554323386572589436944879618542387619846383532463957324384947255815688225467594788411727921534915463274629458736566438119162463898116467313275721454255251396574384831559756327262566871811348765246191166687393448925114948795219827824471119343135534837687997888569886886719912454825473173751495473952522422545826353659824763291484546686631111736182863338437375729376848848911518694816659375856773355238829869728998552489864531765367139925877677422659545887852367161863449196737873726294878194881876929827571258419927395114483469951732578582222193733244572717692664611458568668942354591561229375735679526381174298637584615522884451393719826235977735185426615949967228218721118871377729461853748569369129131897934695539624878523548531442422193562815866233984347171924255355591772247651848363961851276781149295318974867772867853868437431259661546732499586361547379113926882835597736684199243869769851539621169742389798513888754648782632638611739698548626481743511663726575647516349111637711151116378725378928532541594274368468985765182983636879929346661597285652161247418986777691256394913557653577218996672341255764264499154491111819456688693269574813717156156136172528478684539811171785389883478539467135377348345413939817944896622434769573317757939819594873445676852889229784476456396673826363856935835813139774382849121637711414786266379246574756667511282322679286713636282546192743751872939857427589197331841914289365458343864522521244226117525341876598774135266279591291843366333781657869375882831739812938652829874569586965157129999292946927894349287873377878867776869361149554472157474151937694179114917952278284919215397846344133534217425233413333751435158351593824655167298431715647242866916387641936646588547811624691381898551644316754597387437797724694447582713477736454176755316776118756927155717341548113543129619474165769149763817517761961822759155611424399669219876971153227922473414732687598475962956267958186335688846684422817193618394191523182865323744923623873782982133331396737911293544729987275277419439912682619863125123721247976818888936197962374784965978665245123816494181397565859446292616196386825223232888272226724884484121582114327495222242614182429721869969381921333545615923154924181976814885827151522912215516914882562849321935976166277737326615741734746638225832448191632372755736181654565837971771742859935596194158494977663641713897871228726232951357913276236425192914885596582516395513125756255356734163721869489929231695119644216423783679616418311359769623133674841297947686416431397369552718283281884542272715844461414585483512478822139299662117947486814153299172265183849141734572953357566453579876269163126573556779416852298975689695816453597274295688798585854814384927277873372641519257733112339531246824141294254167839931153994827598792711125421184975969259531379948218119641648945432346288114117818628562635428851974483393683473134981933574348335662982141377688167959395629442817986299135793587283112662596676474973876334582289491556695262797185361884232359389234683298267865381369782815833746994213928614133268935125688952442752953713115321114614162946979144148398699139131471686779476369773513362264266194162638555271247477593717124524838982847244357984634793584946227916188693917595957226565858469258747695896545139641387661417321285855433986478332459915155667785169582778395228242143537193652966914979899312126228572169415411999396376196398729556651582113991939546256666337282746794995185276121625282624432496975363661177677639157127541679166592758765321174188688331488295843917673114211617365188126945328518275585895745569968679262684333159697166549986872638553612934248116793356234721873627976959363163733866489759636896573177193398652747374248981579126323922259995168785197996942953664766879868365144643422825128465631217183918321674896978488215767787486667497564944531367288545312141696245989373625649447291631725774388776692864416441161113184541968635295389619344248348537881867629138566417321643465398885862533436271711432385522932728395446679286257399417957951122941364931859465183823628313324416433726719646944226467388428658372543112165667168615323954818635688789985349936896317692973625183851748162965533164713899161558733796512696949346516785699645317577136275879713253722271224655392994612177947362543559661925354543713711514228453617563554178523883163912433357418954298595436694819991222447167761171738352712282161972215791476472454378448555651647767236264611855171714568124177844466163423396784863228111418172327823144373841227538428458145276748843369443554296928753546143626419525458613921412176319894155694656182832113152369879769165524967575657758943178145922816267553299653327111427221612772297832151915246747778479538595613486581672184767434279912761331568116263271646378585585661773627437134351314831679926572539792424237452571754811611357598467598712456592667948917832571416155836961429575268848631777717392874469481347763647519566146865943478327241926179729655168744337564385117188686666411927682815651977377975833388828999757747192178796583865183874563438292899997875414689197374621863672752741327857226135762224299466529683615381981583968169478414855813162571468526812526454284468848144292337978658699333541876661464883995692446215938372359815851238417866999619192838154944428321251837426376276368252445676518513586118736343878673897364894644982582344768944811181715185458736873917464167546544414913546329896185712917661394644934177698466974435536291329672155552221946633975428847867724928464575568122318848623397979352186534879681719584436665442266374836213171941998331886419536954336857253147146768855486429914336911525729422988773319841739163754794265916295962172955927923277555862363871466564668151741958693269395582627273528333396481249456385723864671733644873392415359876348535972854998474693744267145669522898973373998358523838542197848126813229428353195377929138822523292514436259558874666567448599718858271785621316663118842671531325132218651669325434317474417548842141715861772225535271612464247342311786754955398625776791225748868835519785314174532191192575252933473441751157599688688845451443779923987193741699467341775698866766955653716865791424481831616172766129491976446477725897757465521132971958692238719288863588139123219314953166946754538886688589799629914329793367629487945883752614514826894121872711593971246396656937516827893963912299222742416998649221819195386415326591621199953875844644163612134672734644529895378742948298491667738272433223639512695414144199672579622833185935175515918417274312172254453944442882373193728149246361695787231498524614975888782416366644465495245616994462249369886458785323636275775119213138916651428839192698275574585787588142173855754814729166513872619313428683167558718615164452592433663522837562342183697941181222377637799455478587736329428428556298967892248185758379319951786414181758873579943761681674643272561435313459453628677723177383539462893246972343199661968686938775953166752776974831825574156832226422176352748131193559854336447987175691864665665819775197622319927476452718363752618116878989881527252212937292352163739528415446161272364983117312575537356891585512628815215735982434159637566916158849249613291343538489235625321994726777986119353181992554966965335893592281126215214458755331754234473599591112522855629132297519756995853953994178639542641372155734128313592998751594757775879343744573722891676724189756244166221676737927973545943818421725447393966657444687171359992163596224529164717165752786776871119629962967237842417585252638638489475561374867197836249393154893749385312786394167571599794273347265586644272677324374243659874599147591828965697113326672658916719459521316665365697354318198677613553474941456824438758657323173327555857883464795571335956253464119583261596866413435829534768169817233272847487619191833298994885587895979616366265257466254642999778155825441946459296611154152118814395728723367367836832336436216536117878194829412184296738348999489156855327157355564146869548585481965576182716263565142985743369366793312462186332725813376592427986326353469172253633959518649437958564799697712964258998862795488234513462932127432332118278516439679915198299832165255972631352228118516226298384618185257173394184844555254972242941445243371779152517922398522694647251387454269399899929869919363177186621135864753654538428345542241711794189553717158989814356479338497715658928533421481616243165794554817698441682611761274579858393673342275232392258274612596325563796793295423548254695643264711968448658179332237676941355625611544298996838931788272216667127169578367849643691328427972683388225942725678736867599386444762563966128575358834682499143397444748241987412284531661563783427889793692331458791857892279422989948217431465344319988995935224918827651587119439318197498999299872626565264116126826555334253239371937344653355836471894217429347221945218434816443322633353276997881282134414147468521756163651338356459689182818659623129364396229754612428589244195416333661273147498538387281691131753918925229857611437256215127272372173684479238172786287798496533648996333344241397926675415948111999533746158178869427857341942131162246731548424355931663657759655868432475216632134179444198863448271317727361362669593883778991618647398913948214944232588278338982611412694594898229258164887785845765824264644345369176545112586162534858312636152968691992258743886161971133638723462551565448717313391313555226453598545177937558777796942453187345188585268812779348942186385829327165471252319343236235843433255951396312542365568281564716122516435966199225672479425785387436968555154965422458371757285837423367672957589633561435252633364581156242881753998931454516823369374987176931239922855395876913929318915597419391475995472161352263952491132959897376612717732857932271274358347964424684256341934141266581394988229678882514597791616354363551462438116356695374434958275539566697497923583918341645562815852411959741188278992955589679253274178952959766555651189955751168465151245121755228217112586572317722746247212623534223361717928699762375984146487618935994686335311437835339868527419788146669189123894317183834664632435182989881259589187361626168219618895784689536544359221827526486165623982743476792622683235853569821229292528988148295427893248929941749881789472281722412614496389354242298945153224355415844461395598628411926228653983466793721371933772854464138437562232383499492577743189491333978289228548477533217495244265553369371134852494613333846163517733751752147175446768133548899462637792895482935599393547425251423172259798889248267421941466596794718777456359275715799835473141321277812347254633212984422716747755535658373635844942473544117772224679416659133436554717916673884242181645547778324684374941219524632685138716636884211693613555816164567336888576876835185449821526962594272928516288696138911951536685992283832531288881671676729377776974166319228996164121582498176753168687599397883284241371277732947786535454132359653589597261343991544978372595449698657352385585538926742781225273837653771328771653225393314631913667824945712766978497728189969334916299769845522261932639525457738257124996447554646897739363136751552741484148481879633458751325271344372775494471423767532653179193438685134472493668312456753653885743245571511866685639295559638992215652712777235798716251993793822377547614326885555259158328488616358918239727262576472392131991515396118971686742478417691699739368869756624287434264823882754779555421982319132347629916172448484736723744645769431421927262981363824287451937879891883687675699772181815897573442329568226675642759829398945278299245956423877151823742535932751554859581678362454528679263237262556413469285419761526532644351415935371278519575427159313637667159666573423361791596426669315829875422653978857986636283193584561982156343127716367974284422878757961483684354889586884336492276851888156572851797386617147353827896791337422471197657361985257946496438269297396851686664178862492843648567277763829475782557686759923878586252423359727872538284176452391714846171142627779578985519637617981596481641317264941482354894692739477332453968352489594784242295222944968264988126165433646855466649846751149942547969234628144618582156269143286772675945749119768863377371588955211595168967943728955663611495815954351156849991794359519458948433758852436226284528458483275118382957288799318668393141457948666751468238148813723835951753598163218922626495766158644527767664863753824363738433385736412957334589779115377129347899449534355694461471897518521111144986311769295232111859581691794981521586485817927883731891959258298346874355835623896965859864673496963387771332519186461446784122517845512634674681336369938229461143594646914261373917898619436438677932521836854934613463315747694496447419984377637863993466136454196737524851523189477523225659958521263657687995823573884359244985192246815594175322591924846333823846536875273614753654946468731924556143651791175339623368141122476879234293219633594719513515642327249449759792959329279529973995797641615475569572487338225414774436587934488335463186817336613945584276524346762171659273843137685192642976653848714721994296754243396593147211181352339649214527746385588119197131254217127469233751219919929522537837538275187252362362243283335828561377775598725841854152375757512549215653515978863267485859599543453826256633428634462746686649774854568122352224559623271723591884139932967267512474681743182968272253258854695731197152349336252257572356615177165869973996419524362385845341947523428618248181416534917531515257487246951858898341641372423848565288874757636358312448561843688996873157899534364498344228386175652866635478893332156468295792267432885332111334528254863332556279357781889822262976452584648245169837715696622828543591953667173945715165635816541889874141846131511916478947481469347651625217366356982666414549463126278599224748336592131474418529225865775149872439433579799551552147495999976919952298178832866969719218986686571589386177254859728648436984531678516194618993855617441148481347287886256936211671415318247171778355869542152918148679482988956781375139334434238184822129815473499992714155468165547647527164382281452756282987431174735529848166191375883971514421783245229916525631118496435677745957468358819363463211634191763258993727696522648857911211386591289451219749913687477488416855863818717671561738475214944527913373944691746629555965358619389617819179233794748234648497326277757765767946399111565495126633417273548232759651796325726388529226378282266221289612273781542454981898814435543413419778732966354334114456899228469337199195711933433668246157884816495414864866188444167762441729368798274459967799916761995866782651477712697356355711791376744919835514774388812383352368742121814454711149719947163279953154244568938933893775581798583787219455338229398475923973831198698643155867776623914391473462231983288665332983283593539775888876284949363559767996349216783459157441367412477176791711267413497231256896944651228278284934164766771359952296227923742234528785453487361471191683956157398277793939655793792769154557277194853145911571839815719154871579765168558584567458827722198236912516251998445179861422631344834974498486321728713644796729193489628466197179738992479932841177839676275772654443668542625622394352867345498642987732873334353777753566814777954527794915249496171216696163757217766147559499985915674279443142728413157996885374742257991385565396591189757274647653441478824343871888753469723477612547428742139128884119971218757719541424516596275575452452237717751772232862488834279315416186761737849916953736242962393991666638312293787159553749878167123765586614872577532785673487189455883453739886538696153381998832311544726694245815419737636418539573843493796285525487149679522368532779939547998526131996838964617783676419218941553541133829289757914554554337382536538719626492282435781114731973415375236875873916573473745831172588191778145344872127381763769827627773587891377378986162337218961638975655572397986581724533329272958413859878667225286528749666752581656642497129546187752696379318473836865677429127791851476497134396873448981881451535562181792121718832639696649683237246216317476259321171644692794516237758485999821826879128387648341995633223193184761672489253966946597828918216671527666679864467897578468289746788543911885221999746673581453921654954932553551524971229143435389784166311445486883994717939466334639359383732399587848542377999263287115387496354137872818687513711411837567293585353442299749199138122778576734259483582464363156967234881553967895143278684899595398585539725594897123972269199539266729582139418921296212212163869531489482422392221831841946323355383231361481682664746741472697125337253391359315578253279337828451165485418238686419626438111854849487727539497837777311122115499327187741678451126757758858387328916771647572464137712686415145726484346193138532292369891384865483627316528361471585465583768397467288739465592549985424699418954662534579928153149582841761565821963411282996391238211286232513699838747946564467388296898958218189863546282526345163632427236934818153769721445749992243866458838644799661783267155269544178851614982748816122726242285573367327695878559151322745852499525345894371225931953136511739681994484729722314318499959923861861388569531652871691585586663758676422374328394363412859415671326968275515245669999173923579411195813343766122191997388545475475965289455965965955664416833461856364198584179564119459142378353878278926323277568394396423246423349131651866613542751381514246468361325391851184268287247651186812823353337335751558262925823493674897929752215151876967548777935315116171272786774368912878562983383988995163739164854121966154283471369775947843227638515299627864879736229892113655415725676451738691292972262527857339786411483242261457463614389921889419447661765699336585814795773614547293159528549188668937413663997615811662415412258851589735924675165221352782817681637611111568864475311469558115267827826861757975514441294995499172753348412118549982881389629626791825655754617494673691662423182163527993343982448698555786984188339138343549673533387645233432355156971124981233449114525758862276863764152163317217547122798915481755169265585295858549618498836791315221758267641585345274856325454765731556128256789297572993536893465319821735393212748748181761996426397359669978142825613678558188617331387184877158618865799417267781818515893598458233683623438185176827496655489192469721952661257738467933451469515466451525521283929711846771621256791741173192382142236694666671348293319518636841142692957414527446576427168643646795879519851575121652368223375845322373257295616769985616933417749866161689149515583953545876459435932989883843382676829387831763355343222495622778359277859835248662984113474642466374957749353129117417654117133658834617532734533264827217819974867218861922374589851671242148513224998991927474359396329433263485774663654381615524146977183421787143497735775336631127724165133847967748215728389281853258651935631294914576283291375699364446798896297433151269287645561814473353852594788714722375822912358564758887256925386513994285318255428396911593929551759257777572924633323463553418582497154791983354576712957297144264968347335449886465651369872298575398919454233879334341226445181511491436758925847271372815323473392434898681264781898978498635953175454312228685665452181853346633177587618367823346455449663125433171832656347452195627574885428625696762275829938489245413844686145691727119992649652182364623326776647448238392156254289651763438983726538458453968376242327459347499952776521716623246357881813543538595146116777981595283263526859517912512978665614122337577152912692732838593143545577215928118167139312961365699155676157947753365374369485744539985591284958274591826854327779668217235529336675567232564239185896518959871436881694749152951449989673551593279238592486672595482359585543759661519648294344762986835387442317447391118441797996468886621751575114124958937715252149691775713223524897791361876978838895476577728118876793788366158938455912673484269839196933437339165555513741146928928591744565452815445628622223994843726261696775299651312523723186257863722388797662693734995193728484655784453219367539928328689527762339665876891444436257926856533754711196665719142557358733475549991819565135138283717589817361259349196598981798978626696232156169968517395365251922561274387873778528257673988968224322549216484135848595793488298611653563292493776626184423232182147393592631897468966396528627721439688731711555342772422373854877735517578513137114235342625913665125862613894514826349511981347647223373553992384718657746769434144369594793911371145818483325527853793171461497492772519739272956224431467495234291352223149234736277293742344664777889193915487984613976281555723581599781127716165352851795366415453311322973687913186165471922456667697895943733832436973164198754323982474646829862558844254828258456583746338214358923427719514347875259781691914716948718658972759364142199289659254913677564639654958967875821845225582137599444739525211783666178516529258273555496826875239736577238953851995434995582994966513224828183173514814242341626267468859657855195475899922182698445228173757157693963953952211943354142327122679976152446557441654168288779837834438562116749715111828785778459692448547222172582663431886621588722466276384432586618697258295166213819447779718479337852762256866146971656637465276851926131617291898862423258555141132634784394473158389584338733734897355684921234153991313286358737442719291113517816827135659433156236144254494174655367733665769483886392621937473818579736212238417946998989727987744725225347268862451158129718472743354787483278314218919889527781815273812127838257958835887545536143323434227832625317885539981585796937348821963483262613511558927529333215291448655715155919892443466776185119873333726227296449676243749331117349511233832465322835997921822644484595678794236297696487468422851289746416727326985622347288373289243784264986574835968767473681694863287565293575879635263521471855163717226564941893329569596571176347967613986166297143193641646251846595794489918792981344297813886436995243132912199123432112489922412934136326325326459569687469619691114725255676311156914659591469458721236582222226716161119945879741853392413634294799898783179144117346576648167436295164361264565188626381185727436932267373729226988697516187729393428145396217814664414912562581722425855365945311642931177225286417892327712242314396493115532163842963734747857386816116559755838924376759345162643253787652134835252717639944298412671335437719224384857849359979236159582252153472765338353241153657495519614941927559464687672946676126976361361915831298966249816417995621655755138256953666536176775237282656268973666722355952527949758813328214361831965441682484347117449159575568464997856174497118841746582128864253947544874574367321879162747252336169556793218849825721795498532228962539841524494965133562314415111264137278417893295539751982582696918725555334554995961968196265764626979583936226711795585992576927424352654265734783332731766357878213357662234593715877844467155765999656768117378756421757562938427482957657474358789854419692433961255719447761538414843793824229324794648313456285569747929439451721173793937546983856557491234396293562754517185361815433454773392547713152759275255688833318537671341544528546159417289419262928833877238161555395123154878969842129631537563992514898184981864165837871527727866236945342328513986773725485961673257689791552841416676994499456761418478522685525973663911955521551488139277739236483683667117162181993819562483921268414915712929897177124251442566387778248329218816517822856991628385918831839619259731815494445274664545416366271143133562815412667812432967575689871127116536792473415591247694572563272835494531761299224883239376593665294456532541563849162978527884393737379423567741755843684362781953679512856511575158316743991995242192166717864268189563743832355454569139715121928874148311335768215927986598478355658378412886786287774413259965428256196173741348114544758645976892591997261394194447892655152632761869586516895248817963567739896872729478957469241946272943932418571417281835849732459434615755612642251233615588612645896471831984198111372829669823293739713799119819945116873744163236216376286266961552147311616928538166674381886821833554613395137942599926994586568822282491894587646547237564111792918147126365929652363919311479469253955689161926141331251277213127423769766647249262387293914226847122877442955871188617997398982573769483588974972732332161858115361218456232629782814911184773399219153666827684774265152439758669464729382959436832246389243919744115943237168632754462276465238539133345142894968484491936447291193325728818283811351354777596595727388267876267372316573221871251978885571176794814351673649663641528964971649921345312464321684625312698751632555174291631587839459428282245381787297158196779694546254466985953653256154622571825549776463758912236722282339421864721357632332543115123346277252524648281312545855256569986681742295914943187562986523529978152351641924322967265617948945648863716717139235831499984767231996377837639551934953941316128128645327971824916392585426928729572894581571862481539961562223179259418555521668791696632744941855784428879835694653315489662646114446223196544819129647414667266699211429863343353196846191796466377417283426631841424933993527244774593733476569482873962224828295543616944588427594888891272981343694287435367826384274181268293451868591926618326632939146854999974822813563285646839833497786682863144381598961653525754323871156359677626312365696161382668663398255796426543993598527774539748553833455998287336178645977852685867193492299832448192588264312898597846946838172871927843254332971754358831626793694477682914292267572343214764133471138227626832478583613189482727721431192665791649711917955916777719718874243396266166851352828489459145458777384899474497579226142954488255873252188427255975669753982796383597615445259546992876173343769919669193527461961146643956121121176975236761856868413597199291197774296772756331262311111929938686185542526148254375375267158916595158118613526843369775489179629113723673823486612578196913874775156314484733383539348829116473887497745117345578492273173611887526289781323761689696892262241882481458389555513373863167271258377312139975426642927123749844672492594491832496587288552535882921151498472511169776621674252332337376293354458226867823237261483118628943377198574356669374223423384967285884631145691527838169277573271767931924483423196911727464681647438429747878288767748564731893435256129717625489153899162239461875476346917435439618624636663738276799389932464425266438183346162532559542577917524166864187682843988921978768319715271587255327525316413369999958476323137458211639368674463457284715916651461332257114459674382653133687723746869559784641967222334582353516982926995258244946177524639889577668158563375769266817351138975621435271396753778258963965642193135532551236483217993288653752954397442554193393193299955229314643287342641961258378263675595759177691863858754661486653182566454123998362246493322886973238764175363189283722153121627841715122547735643815919322374957928439662344797168568479596981573324171393762567313149988566523745152171345472191414292958599763277364397735844864284478137994211946365937311776194421222911332325839322143918517948868949972192575415699899741433119993889198235775234113966997217196375363186553966365562159779578195512719454548165611614671628437867937863225121571539897958779466149825135537573426415198776711314186588121778818448748625284215612161862928718543316167575785246442437428378212442948775153666189222862688598632835583196352851771956125853726887445534167243219394896371641139852395699423533551931467412523387417966787149384476412141282421259845424917835262792896913144148913543844526932119389768161365256419773114697796713579276312726356233423772431982338255765837553174215482524613735549125697342548858396447796969414214664377521495214758427193933253618945796735346611441241534757118792369832345895848863894178778537763645768148612497667974749593357691166879539667424911274132257916112589432387128419426728843533143382224353154894735297181234436754855189374563936445142954396862146644562827199633136221548214327762217388898751952554416327737514523232111785779835265785358188349651852821477268664933566365178843917297125739586988124749246921221829621984942528431894797398328489241348622774515574844463273112935158829987247785167413739939112617388377999667964693865857758998636553141196783152337811585385947483685684253467591261217736218856194562987223872887897668179864553898187799985163642388185971315584383152849435697816625111131569897992175998467238688188181236116715822412247859527426224335836415886926139623664495816138611141618199692662817346627239189283144853711966247851523245143141255538619795398983135238642846959493263132561357549963726998484313528721876781534539611189927257599361346825878319161178969674323148153744121839846753648596837249955218629593585159314154645258252663424363412916935349583117822177318635966966548972921211893898618462957443986873954965943133982838813646844411786182566768967238919253736265224722867443248759631445627233745117293737141714757792263876139641348521214284659428524711414357281132243451825746588867898224841842156391272645294971669471764747942552567632149426381227182455248384331182175926534545353486991728951947155646299543168296885846641634448992519453658467955439984957371178218243498334928451458642369275196899249951343278213966183119618287191885928235845131649849799617317294676487871363436311178939649357615253828944277786793585458373134457748523839497166315759576769113775617899748544964539475942853139671368123856351784631115388571437453353548173132483494822668612346461714599793931279542697557671215275634594777783737786441187117525976425683361624293725734424266562294652876828346497961391697253452626793375287737413433582296432592961387796568198431569678211349445463133668477319356222932145878314616872617438362873965168645575726392463285811187373888642278651271315634125123649927771887752658688231532923286277845723486542219922964956264771444825153787817798884288894262295576981359929687465883662167187633121245936884631198454459267728931934536115456455381526532183984987329829363898426568111218416894415397223412243789588599338897248667478518612989738576498268972638364124875153135881528335212365982392578974275652694525935142649668725512828363522864355859813869541879951886137213547123193478221118194182784495647358657774685695495792761189453287931697166516945414668567411628212371965615199548885641371422243278265625134976855228245277472697514965476773348858661287824883623819445922235911766874555933194475299689813393369746181664772298616565445664879753352327593713462118552996284248464494152412658758594583291514251589884114268933781138348388792741627928324127284386119837697869722412334625242661261144783367338378581742165311336339688724546363199174289619632353112884237753853859367137989195496573886561755939845547234233653111488924998391274728441753127327464256635364381752485451662393828233786312638684721355311439611533811431583431692637247281141193473315353575545796411138132132357688193351793352883884685787812669469683552776854933381767548694539377632698273665783658392251493431972241957213671836665879718141137249334845291173648114985797791324336619128235488179577846615635957528439142669476323996556918494145877871936763494673238727567861446134116672811268471243997574528119429177257263981115284931372972813719324149428427845136244331491672493895627369143555158471411466595774336162965119515342272217757335667253339748679193129349115736282886128983849648841773563835533612312189353225999156313595147397426425431542149135666794217936567218641684687689244614924727362972724783141798712262554824559646718275388248128124359649974937517314832656456258473336333616365186469423157663319532154414831428153885189745975817922351734775479748256931517887679693765132578442356848988566334184351754819644767341238974696994338393584446713446459346695284526335683836596731364287636144484917465647185757673181744347775165791255763337994393366689346742322326792925623142266624547112232253732924474677772343686487499515887177315661428542799336165826394991639195126861141963558149569748611698211786788664919793658522383442342229887553934914257919247471595616585248531821136827741477416867525847681762774356838865616182733216865841998323716591142549611922497979969671951419413556417489537215191958943173913166786424266977487473266463643958416957454942679226432967132415156659384777725645278364966987591165882358131584181715192781348335813937739677165945554513535457827111783658345737272621764397869661537781525987615756832141836783745494445843693967539644626384557986321714953247889743194623967654376355649763531414693154359994331865318383626665124338563452784769299127369835337759595738897272181982618481913576425888658374463461511359431677328795551277614848999914847895515274728735485779557558732411842368639593931497252996668717782826779617891849655734391961748828585346125118153525844749792583331854465865659712374557327575817773298783238118126571212849328996295973276175877323333596427225735321547144521232463713345956429931184778128232377637861445186979166443255957185747433456853449346888183677385657488624188432346823621878595959687548847779893474636714552946995647532288167394757327562765454717559666462181456276833887422682435382827125269667348527358316548166147648244211743684497238762557159724537848811177496218964929614675937611399396134655431831691957341191939958442815348321269253986885876771515695118829846761958536124699641298698471355819814657248497461478247974118489468713437367993839744431721568484255597213892175147388451496233558997597786973486923847867479724512252738426554244427194841792943157221941596898331941323382565779481474423993726719741178224681428444786965236617581576287545576321778364777436174121648382739361327253529252758259212139293127159764114918183887817919828221935891191581388577246946737649622119299147165822546229791455216216225128725315557969828954464984495816777297542337329194349627166556113822675717438338651423238762373654711371112734489521733598726971351376366548986827898148999487421447963516393764443346135973514637333574983368613827429815266518231576875991851142683564178528331278845344329223361626923754577694577992212132358329899275623382628396326438654565454461822149292922543274948385721146127321239311464772164972443346837458561482337684788266399523996731566595627374642568186938326888835475935563927163851553375853736163565911393817183137444838181697843433553632349543286668466435118441584746969924131786512154554487335619395286598565116221565893526186825333882536137657584973234623313636813955557211749146257518728981561765119819874776291851613591456512921991978245854747798947982533633622698412887259929612499542693954114954121645636496535479548832223417718762214753385732675347568789469246356729158429676111755524459262797368362994951651735276611525794419135335539585647954514445914444447869321378723427667191582825358835745863625866531229278349764656929595767242784795711645521865457396772485553732193256597673117737394422856228237542191747957718446777752363186728827892475946879446111235533195776554582976563496996818451751228673111318853182671161896961172737948967752959196111199685582654447244897192991692611668217362616329699398497556716661471286346777736655394958528974121129643229882347866251992798198291954265143265851465455434244142146552955262647673217659963256359993188695747315525279165381815694992841215945486893798325285655953227137522949537617427936582875187889649624576246877661318386894573425387624246723469481228717155276714465678349665513424284987395964389755578425875216534711431725144918565386773273725175127198692983738256824139391788291998757945117823584797725884713692466149559241489767538127487655782385239142179945688479218862441467868762869853411257168854976811697464659534774779575358655236375821275128484861618133877399817398416918646932182884162781671399139619473965164342647815862991883753678955461784748538915983952125372157583551934666446844128231657752499654735182625217519411475949278132484992153563224154299594499293342641745981392596814842182181225367231628657786375748846144165581314366129788314778652245651198227443954812632198763866331239931674867258391591365552174196987944321134864893829373579778275978499392676945327153389357964559279117264758368863291125722255973863678943758545745846217312818195453245411353727291621442513312756861381325676285356479529641715471418438876594829557498253332769618441327866258182721546758824774527538314938636896959415186553894557367759422992685524833477657191636482232421478819292537183872844463584615652422341482298466449875913364728969173929138864417384764199462147945235137914353979256545561765358661173863196374387941486553868734632817116733951635763397684355727797497959254216671811569883444113842536452762218388344222545855139273826871992821643964118574176984154742731812866151462317615294618972244223297793837868628237487275397598717585778554315127766574892651532179645481792192868315594748789797751299258258444253512965643692366475289995637143482578931271317834342221683387415551443459489172495597555873514958983227164162299648283771921415293415921426435388117475466396815136637559292621439266592122792214856512419572513429968261229348613152283139379621516312333156916211439742668519549179282497977598531384448388133128945175762311953982335953765957641247613733737125137532717292855878538791964654267819989598673159992759746192316177964923779183962937991589628335822213471367543745334273235946537647874899544717331657869344785459235414357627349394169993461895716246661322954873269968284254624246783714898374581575283697859263729981368186533461888148823737999888825613244471468362943115893872552812136553598314597618176353596587788234573293533392999524763211978791937346599717796748195225313262263977526386165728627948558864879266798335731293943646492267544448127739312321495758286312955288989753573794633998717436511939727782938297459757518251782874755523516415959823664378356433697147487837222294459777591234493196724496217326651527267389618717477826427148693645351178928699336997638333282455889886667536358848512333542676154922587329853637576599853999693895144655548891547286161369218597989355797587531248744779689548137162421278911825789156914947659344485591282363831736326619264188435865983118489453964524549858679266563673492445522963326299957964599666914937479666787496481175525471861252999845423952589587937454439454543415836131168127699443876719152383766467464375944767143513417535711346973318691957551811142784255278766976634739474453566634949456221697151433369694859412895631242291896938154914287226395757651778768352156336654355874347993969835658643274738153639853652947829374148355637432774668833916698625938753115857915471253453923774266939239614495832846171462637942534446416746228492999935188681733157687251862791989783371948919225873587674733722789116199881792288446192475647715615394382242369184582628272743292612829144169957396567274456554715997989396181811447964288844314793481318817986929615933716136496523552433129611562955224826455917242385586547583687998479914593117335763496945213813639539868178799276596191619871133175952857527534173682551538541747232396157711117366511564217261883912517277276813443497727433421692851557265845978228998631861939194259964338826737436278264346255559446868541113745262176491915561483969722622886312417147126562419786566726995424563366967594644513157628397649985319885634998258453194822576563883771234623447272471753819445523789892353595292338293473396647925915929268777789618844263636338717117113889557418192598761383943652353631565315124254928145339584628989836356857172573266789538881767749464949655782117665626414379943869353217675775521973512838733118844244811487829816955237119499283585776893574354758369961898796845321891146361635351346326175758279258253878831365397828425889795729534712483318837527358636416966919479417648511153768622361856546463394166897992177838954848483919348543223812828591375759586787611364675755835773711365214672322457614178561137396322722988129244814212967959688219472561362275565885961655413334251496323431885373759694245467772611333476454979244914428854521671784931455743756246577252682548617999934417673276723447485639488167859289946253624847585147875771456474267862123417156558246613647274599365467797413858752322475283541366793552192466141252397796939965643877986123526531658327811716259436124724965427561393973152656578189441637177824832139343597144942776749456126499693436765468753939592446946676535776433868643824763896489946488965587762525696163332861853481276524189341789496627714777996913655963976955993443113479168658913397585171458682883228134889671781447845878536725836738116963931865658925877548922583283878951147591292678212193141467744539533172181347168267371496969413245452669772378284819849334265488823978845172788168943965381727498796469966944849743828346217957825362247749224977259974593388858374387969971367173969228535211147465162167183881976897749359263889494498296474471169732647663841678917726353799785657791557639676467139654823791345825969521578114816761153321344725211161217928398854868189113485995891911791429285571368279427896386276345366284639646562493173799317849355762134997644783189259171753567143246535387655843757664528674368682134562316791865611962727154712815251371849834375379431234594675181927911982219625658551999457755756546424643494859694583427181665298749183332726575823154752817327299988321492147528834118388919628526348486489232914314142733784544268995543446646956258421588831247926468613266761385117155937941622268939346711727327822414197159365167979449412143825154354158974579166191942244425719244548345772686285278282523183996349262539697295722539581888977691496649597217578621568545231878828471329129675436482234547624595243253255112555182183547288538841165479979114522639972571423116113549535536866938715862893193693857798231617299169445524833282566235948118726722655116389587643246638338119761715316933772335558211943743697578197581857189544344336599748495294842737535378692924563437265764158331973411269351796938554111425337334664589514473966821212153585317554711652188484965966971227748484764728826643938424912923796524898251832485787528828891178639898794677725273714584364371132911771237798224485734159476477678655656426236655136342268715562225679312823578872514521381726836384315385623498448789716778241879299526177217149818778445149126935876374183797777644376761672264641267576844512255582258295321773798445919469574923947867287155323266657582448821924688316911532646292849963744736185814514547511221394289462834533922453797457467497625561743186276411671315842671332776831138645275332352735781713889462564227725247363324893864241187323644496819525756136421625733454617946526467723436856918571715175758399835696839314814741611296662581463812484215594877938947614742867137275686126412285978737191276878695152754394522918671371388876625129384714954135882918946713274785514964268662949939724494612178528815329165258951922262621717558348761667172866868173143114758672447493189265731538732141415262315934233147611653335428558964183686998292851716137568323218517764353953137216619455276585435981315619712322882716233771292681721171141261357428831117216374346343446353477298982991512148561294337861187696585574524537373373615291398957685942373635453679839358277962629113231383827974856771586273333233445474645323616173121737969263415842295726866573774847522538768352471842427964231614356499265971116189221815227278692232947534534133943934445262822134226869312714897189424849121123344921731991271978819282174165397788762741856843624621827124542211976949934517877228281891134344339834725175861572471359462786129191363869345291428454399458168867983268172591532377695531236111799914712849893129678222145635794584854838826237984896998352721177542835526128827285775511672788433514965666436955422861838985628868253728341836376453435223783569275445278262787313555965134469377711227932919731885279772117844593515317417369446753629811494854214524264798522275447327367632831373687855616724367977613365447475523297767229644232982218642368619839685316159572561771424541391373232552157994248215246588528545857991195784197927431979721574948637646295594395927915876923317269832341681118581271658248479185967181258357296223278872728527113712836661461861176864925866566747729374411476383968369846482155727553982919548834669543171275737381578768712484749683889895378986943718568596769727896874391189672842678537912863652128547545492686743475175259514615459112542788352589995321351511146845198166972129998439445485489973461277754864754585438767295182326433117374748286618583293699621354553381653361822668868127988113458775731956137194879571279968213969532636228927294159266952872178121272683573183586493988164362963178236583791938667756563988975271184721899973738413948136922349337789878755827657852663254376299857724498971636321476681917617582154583479432953989546535286823937275512433528615559192629282584211641763913773328237377286434734797753944311531342959778319672951626918339272395571447168935229281671582418627155187794586987814871928157899594892669817496286573553357137976365521411251658395449675377965581933962176142959484431757543181173268465967152189421486149337434641486773587675426544158971693147185662798366796351754541599714492857917743422956121464424493722996697361692686288324545884255345894419467525143863227694998432891241977738233417628478767699677671777438141382142868643383158815872415318436428515257566769551127267587319731681115851327361453967715435398365375649671397332437288629149855382845792712424566373925927813349423972152273528145436728517731662958152268421324756328177849995989794899739752126748454237126495363642514569561235878372972612937389438765721633918836822173176793626592853825116989572778975454796245429691192798646613481834293716247196296265128688827799217378982591111637138886666245946774453692692764465243788412995561916165234399636158327157246582662267589918861356287882695253319426174164849865473951111625944876582887251136563768868729213589226394999892457623499171981348141768158927952724943859858872775641444246831992385661555332398753786199672679797254397729948623881489336493352176395966851622799747661298424621241636311362541414151168811252265227858774826856351247126149156677342218598184697622223726722287812923662568728479689851422539319491566612474211167142174236256185131681837147954747944256752369862729692385979332936441916132897968836164551484575118197699789376267653197925362872561339396233648414692494729986143165984495759588746875356344838144523761336174947533967681964756198264396893287731126863768234733549867447654426338914189992364417384927682924556336534533647988616918656747182614267419653451212791566139837988313943897132252331477989962651379563743446559662798386262425342198361594149995164891416447952161786835228116513871811544338534492974495296845923193156479221559647976595968569658863599311364227915554939775549425664595421843633166569436889711367625165249391497143865552423448198594117826966759946479512645443273562344738393286614653617949357513726199828245695949299992827468729328291924473866785563735579232154974164391485954519772228132347523829248186681821797999712735487768662471927118187766637719346812568694586377285751423193816486632491758475174458581789969598251389353189687931878945832881595523447646693296372165647626674115359113563881498513166726373683117998354431461292497868585643944643457689735735863458297759944296439198159522897222949695498716359257962813182693786745184854588494999279467537895458966242588317716623558211889325199623779411171632876687674595895865132171977139217865422761251536938134129712732318749895919852444155456337599629383262652636671174619342189932869186241383959866227239237221287184698625811786417919932632649258617367847925554155947999164978738354937628253558142739535832684418711462276422215377229692769199869895112644755272983843918817883672162336592918986279569349918264479692251331229735671595585291528578682614616579945984532841982728586646197545337835266349247318156719397952485967474998812532346816726521648944782169859993125615267827862766134149124913194564971552347514117329219519799144441476518358658279191149918823356393834768523331239133934714138556829195835257259163355525936671343251643247853767983435816474497622676889555731427659231677926777834422367739771445448315996554246567784466233265788517997542865412179415826232699441239773957478584424715418667691592479764591249679158589334973932269144474497244257995827215417514416733162876181778261971421161591273478546153921835822853868817824259994597799873354449725585275679568817677554677922882239757294159839686242498299378591456966361353111724864682517246371866383327527589865223273996523699228448279828794315422721361529431264961952622942483544569611452467753847999183232485731672616752427791589587719756228384435918251738776625485368979697141531345317174735263688475434147179192532338692997255991434836533443685717656755461859882264716159498867533997522596475581852556476242884182734884429957932176693116395614776244484469162257717917627176342856383629424538318998751357871955473724565928748647492425192187524786133523496148777819417516257424937288317929787568488139634275667264994685653398136838681996452168457814369597389873631629354459185766182939658634886737752186994461978161925786955538283372871216193898789257841293812238215215815984752766339458639741552162542939315461994838792654619795758941862297286568336382742612286969145265782448162789864124231816711226683827632799675977388269739741318678242319376864473388152925955612525546462146563782587578163422673116653755491568617365151382547858493658988144914529824852986659588734633425725256947322519175922795257399769284778499641447838117423142917725292941885838592392133336325197516698776157917135238451982589239798455161759453875519516645557425251646611545723163912655919741355328878822373588768824324287292523399271217554321992422749459592721628637373694693725887732771752713466293442791163441112378343414651268492561576719621846769181344369199255392952822796461459384718617432959945126385821856784154894546632635945563145129697982251514166228692957351752699377493453768478228324947912161988728952227144866787971761875963734518621324789258844819786382653984745765134957622193161678733129394659262556227436532689452543572737743877499222673732666721967149794981631542618979245796792594454743714758717515517187656714949413584947728469829517263722225155313586357294984934641822933537956215839448735227582563665717492123584326289691248473639299848948286527236175198835187987872665483935746343652435833622418454991384756371634876368511659485673712176693655132566417461489757136233782146449494133658787552263786954148782629922376144799815272667969737888789797412779658955211816768447314284824881735539149119686419129446717185157519593493352882693626197715211851789129444423581833442121631516584475318759987861294295357397845283613576465241159579993533316724975213758163277914993244463944321722896692818418787892337521942124292751831669427117239971975265475659732777629429942828825322868322294361922853756837728348325147255579662745929592163886728223736284141215615554751848518429582211614625985439894887637468316536476837325657535812664299139663219771492856498889135444346392521478426691239117999433766396446474215764775676355287464874517155465922298755388787423819141735379752861645162931661841653626942816993955451643598672526878473553142346871844983849982578395551755888555537925298187234964518484872616958749259156779266596344721871476238153858524429969593955931957569374657419741636585871362367914939385125888751418876792827527899827317696559699567136217858537419129888434392237738348923775595317285817136358821644435611241671378768572995866829252622736882818675412519975657473634896475554212743783671125661834193739175594757825163974539613922284191458714585982177529579652779178112882239527535367214169235131831118321273934551161566388781863873785712993347343388896663749825184554643866689726516172435316824269433618266938687294326846427823755925741343282799132696337818184676148962379459351521234825523979564369476321356497399762223429455681628258263882522588619741576933984798523792842881639593559153341611453621815184946996241135359429354525694282476964566579194825759192659968196581837584473754238138283268177525598255572747258961678995781432872586943216822617765554911844129267861181761831586831221214615422297395369442479963874895245687696325841783811797184463876335894536199967347416914339525237526968456452175715295527468972723318944679766236645186823619761971874339196697251668341499465463449752769229935989713752677112346291256267969347228572548248461979975582366291711548692415249335223661677386367312251381714627238474541269874494518536586947558385538634411741991733381874429347888742182155154926255322662495173837135231734125649251216455851244835357229521184889818444827831223747458418416875654487668451371634379918748425769218775619645788114914887627183184761221174632342732119852569858234235243596639892912987132826628942555694256935235313815186747441675135449832444754144543916749785387721614646912314757956521389826578538892492423877661312331112749592379418449637383313535534797557764794548391919248381743113866533882234953954867686759151336977166278663857232991565569483879675181747123645834779225263348395683766467729293569472876219837496563118668667823759747447229958514613379235816172955578399274924284512424894582677934652669151567917958426865922514968123926152743436158735225366653454555259412654169932342868324558894317138283687489613788521865644953666474633261221488349224687972236864216432454472295126474261373969369812146473483884532946864268985865968585824112354438125439328793187835397516742274876317228987285967487936619726193623344932641136665367827787386537761153216318864388969637355818664568788318183311297159774253118464233953761181219794572986286112424629974873972842397385813514546896874262558633752589968218552141727934167821985223118928773865836638823695793314514396963249622363954313772982422841436649592627822232519696737891834597437598269473522371843612784243875414339157318435428778847249425866288293822654194751635249271766385193284349647123275588315362879378586829673484589928757382469286125695463799947839514232466384986345882249124796656968195722191634112224125485959645443715913966376376687224618552985356646923459967635245696449538153626298442348989494852475338924284693437661458477652888412294511861113878893639385463292311561547548734593756775111429541585637472143483767435734666619567129756759197373995367733383148739694277976793882328981198411274933338136685863184862871722728121344246794189487763941911163973197491968276294878962951157244433162958875574741645849934646979265369946473756611273166529216122647531157321981998214855655256319152157778856756565849495818449343446114878453998482311791635448682382668393682428459518669994752978934763921142985836572561745723624989371374562943599636719272442848855782127112451423973891834996862449549251495326614992874373859983836742769291641939126444628625786459426435478561471113365125594128169691138775722721156557995317123972975842213385489934633253853949236519729157475367739934218512424964735739466882554446755495625911483855781369414747212759192692639814371397237499229284183252313284419538232771681518817122252461711653566633681741521323436573542596742394542515556577711367521761324443786936472138789725465531442776154546273374143913449881824192686949556872376475799686667166224826762338546982451318864569181452936959693282336356132487385319482986855264287711324451187518547635318824332813833268165814758311649522734814976392197577942663635566638128416834933671264428571937599499131624916253278419356348997826827878268874181821745478257828391177993669967949813448253825754651349514499284964297922393657923955895344251447867557576832433527196511825969634389936599632873682221293797551977969519452448586697626875639625311351176329166626487165527379899834941462357828556352683429389271554688714595349954222553471287232689461798333227538663899818531688614583414516257114383263915963713161399741365966373598789264445639658522647923551899766672915477322173235827171951825383573918631837959532228223294621977268931112716658661582791163159866558558628373149187246242456332876621482328512418123625869482568121159269129158959212787525659552565382273186871782959691165191146564771878456534518577473873875421777764698149489236963239325866933618967769518522116439251636228578365821879721822443257229831676581973969831913136451171953919458536722614694717332439413692637371842992361731462684425684846463446535761733768826248696179625859413777849996777491261867618283112288852841528257253237997794895112896989931845559671368138417817996584476559985752867769599271868416843497476759836592441267243883577815533917878328453568273451616377828918686417341586283328377994575465324764387425944275993672938575987363681423815121611868961816395911368389569172122197783763471871786525461466467566344699737823882533878814559295727277141721918152338117352261643359154115195898122723447563525649544844243632533693837572723375238492726978119378651397568676288137298784595422276396831788317199818677125546663372765724654263133881581934678896171443897223426694641643981861366319589299431891254218416372317946784683526514518928659186216888566834166525965756692419921518454936323874361834594645545586329792324692927991449793145674294164185544546224257926328775185589798242684196511292724681189527596218467766216325396654653583133743577234744266785358714952353417663374748964533967837112136367914141514491743938611391393938619923973392264457396235364556316297394613638162792313737172693212949389542248397327699386455665768676521723643275833752496863337174635586841168449715845421643439683242825829563543926566429643612825896377113355646172723777947119498915626851314812983251844534473263615189119489578883766119555662923421321368225983267768612267358489412437147536741416266381116844874816619362836766473811919593869359899715887464991171161919285119878849327953241347343434343742628311133726949963777118432696657477588759433238595295938277642478926889713136785294796624386423215883854157625144513965382922243631794218871383624929357538643894773183869876248429353985859127595613988865578218244342826727557826225891347168862295377838674265875364388993788897423196763178554171488276443232863152637834678165113711444657723127289872338934434614737182764956764659862655196466729437592886452725691755254889341282831919454614173147641928752869942933966226523826579662446512594696882493154336973939952593642192579729924456833225918157311591657528529743436647927733553692566328958833255718499162316556611222826798994464192918138673134245326895684829229429213979271574996576934415326257168244259297586243834255676381996619915833672395477883339858947587578861228347774452674568451919746522534356923358415761595684568219461775376591331887846395741451376343868418449528112631194138156589865796529462271333332634548986862239762698714737151113456344921132917256836398983993347871262265365869542161869148462248363468974369214411495399135248964298176312323653581111993515391621427957278323671671561711339372312996613434782648695665586514534733383525973947895241698249592854971322718192679184243955894968366387457246393311624818487774699227852675295526577857676353512523287343852393949524372796155287495128394533716667174253746364883384224555836481988393576193489628939374756384372192347947174134837744118735151269394197615917488952252924319436454742492882429315439621941882316779928187238148571422415493633281171989591394141263294734975393291387245164577673781244441958278286819415751497674688931916723532211151525554111569342431993255265359391735145289114256235449864489318472885214114528132565452889729546625145454786687734368446317251822325769147595367694427947653643865339242982417265596181735997364785618896936533961578542939656914564343934477673729553645699189436751933371836196942295654552394968851177169678262471835268388684468574269126842989951476395153388934441333816993788824443858266858382314584283562243687862576142979999458757183216464259396811997895829694383593238452462942849538191968277436639374519683776617517492229951414441679538794365195633753638677111968922671116495858123475142842838628676676215679472619113286468228875432951417345485295394929631427861944974797126544974356298148824718285564365718194419828622593862571936342811711141922773722197245246861841992915986153334423235658334327496486984678899241454918741951781338726173853866991382144149997939891317581767346454457751551342121131888853576192336111165178288392368143381981922513517114733541666459787664554714965655127261226642518264529988374728238834846399441255596574219672483365739258182196555283593459687813465279987186641258498634583262498816713311964988726678937142382152522742837225886443325839157142393376558269647281413885789493512847472397149858998275754682933916753861575551348955529876159359724999145581494299751537222246117517391858888216171133744957567196736611488298795797862246782591162632669478248616382496863112926268324351153713441569956356346952783997992263595442446959483188255445234359589933156642579887591145457873821612917461518476135128563248429471669296346173675277823136967894848867481887154659341443128718982868586574289543466499792572369445183631148882127766626773887732238492495273384948511277455227331179218524753146996913647148661766567328693897385876131735581655392823782151688276778751199954564655923928986793379134143147373647239311998577795717911213831194795716816563342791492411693692971442921577791769889921178338425458459595254239217198916838669195848786392623523322121693448348722598227378539742843811235158721878798426257222396585697192874751529461985786825363732422598963915859836395886413674896955731931415297817285825171459945497489521938618426797294237131561288149132882624293912225926962981784785873934243433643135721818876245711193426758812125576566344856226325566221991292549184618983514125571171969978123939389168318719256253348245947139156153883553467882195818412924819415682826261848947438367458738679936128634617491133858583355192984596447617447349624463686296384743267937661384255681848457974356563256812739254692675411187422167372752724737187234674573313498134287369642449943399655764994795114829783916799839783258558827336628695876446328186391245937759311268746379791598137142543217238244197524483442234838982212915637927678916249352745533643823275976633323936862924576728991317894456777969544636982554453383952496853447381743241486711937232351835968786769172129679552374588461966735399216317364219445884639614277686695235851262114572833674199658297629195112211657628986276139859611699111221265836714321833717676636646547554945596828899261727489133686332624163655424331311939942289812963369523155467397481283491361457672424628144764493419648665689235476737531996235356319165513336863535276276877313832738278411977239646353849561734996623552559263136752924978941321882125261286377842843339923144123225622638256841923245136338731931493545351934815237539251124915944288613595976387149844945235729127777136423942734528892424884786464165716198252412382313789167793999468966762911938159228233881271916712478568651456367189366474464933269815759884321927943679895297513493867846266267941287266686326565741524939655238256853521142798272223516461883796482643547716414624965591477647375428672342882233628967985648365687544567654767918714483856762329863319964439121871228493968189965285272414414481412341446244249657264214543872812935968673985749555865218484664657253111287662526992412251696161676866875631772379411524664269226712378731797814754814151456277736964735794475848128524558975658243616184521995896648884671245858219716158247616279957324327712621472986789341967962683194674725762859517442437122279478725186562746696421563154361197968456113287645377312426742851555371881198652177688731315481424842838927772978647528549177918382374265842929783333286973663582618935519691458781998595859297368259691558583361449287662671286192141985734968182881446693621228213211763968755934978536687698419729674971655147534377934683423375143549493916659175758216448666971213951341814712376987621476864874968982962443469167728744439695982889975228453358128882124173661738525935769984775552763169325477139522987975343797964168181517318151358936358627393517414355974878893675111951671831552886273659538685194189157229264451967132964833332739644355161485472274379651764836789114529558195292529473559842419391741686484884935863117989129149993161687166359744145633534437336532489285611583976447681923644296324331792749936568326318463871492825894958849496227747683869888969447732516545157631478664432127152623864597191664692546887998784855231579179234583637194893761155557494411233671833432812977171526365685617864856188268356153194618267638414687285912736431531881797359279437155644627358312289358983881723437882343967777894729516785756998676799985663332793543221685274921699587142365434677988946452754713762355481833289968662296471741196122568649858644491529155127127518654418484147477428333624434974839279197391948579392553884282664471479119183841769814173499545873829729637811786666164393246734995966828688666331837345468921329796477136981593575198533425455424852553941179337736588831354885369324617615447119658449364743258989331171423124189812737291315293135133964375573443526235245664866368544869327551792413727373558273927293225868938168449156491216488116428814786483225129559569218918551321598126247649694449359139873895843655268922881224148942829198572725231923199211514397479278935187599591711719749169796623595994643583652622685582461921251638983341595556614253377368483446235458496842591814141857584827431754593266216296699675432714436492849156666175734591933293535164137132677284756115197316558954257959116724188688187717343936442946847498796654461122745847572665348868647182536528592184721876299976738447589131879976448425144841493236864776853659384924417891939142717185751914742933463242223936117815379451733825252465567859459141566582553734248373728493348242287736871143366174455285417329338191578571895513737355685317349138175832811451633356714334856759566948129154916331712234619174129613415319599223293495755662953914244654513524833952437872867157571736176437799985236794881595131293791333991889391859248177589598857879968946864959873679237176741437323117694977753911822528283234944345894281866246237487286497791115593811896419932558367796465565824295274614516751577245782237618937444615155628665279757859519312945495899251916433397182943862954474743657547189319197181365459887251514358165196985693728264241755615121715324712261523347542516965567548958237344485618252492997444976861684427655195829949138761168534682113766265646549332117192954323423678194657281123324834928449672837647991799719122314695448495478231839789669662681941485124562373355234188945993186215626972998333745143936335533144585182271993376661962585947241589887913193328875871128522225263142841131362949436337287389614928182285191294236669366195864355143259769788181745662262656189584619674531338382848963928525553723679932154873947643934774329591757649843211394957259427738687652425399619648934638579242999764796325275137829272937741949896374895412714485392584367361349767256676756184524652877693726692216873448956386642729488549199229886121814443986268985749738659537238119543641346144618471235177871681635797812415855592525131618677729297888928494843984486556323174984762553392676874212855485573971336482699766242562636264612997821457517473986232394911352441122166615432521123242632656679782886345877829921234296359817776843477844635426339647162142828413648213675196627581297492673492655465622121663319438167114343597933484585531762714599291524763355683931484558628967876928273517955246183337288974762343169399994598196337145843398423628557446785584126828312531363514357172659297598971899943968218544232296195844631619592797518451754872481764226176926186836661636914141226427934615323895442595185388489831633884325593937177475813642524676855175514716413141429782844281776273633993633737778636829238295713864263514686253116677599318779955361591868584774232889719676461887837813751918332319378126752738511291565556477597314225789762692722766122658387927339897773933294258869914742434266135711984192317282163435667972464824912211331957154396752448573965345566588473277595161193841135568194542388696234739647821823368178523749698122474447928199326223974148187888935358151848871482678972779558249675478353229267324111278122736793138863175989521822839639812479672357655143184175257919989116164288943446634131545245233134639957742984657941184696198411663557232328673466374624223943199354966177844161686947358552852675169757441836784388893757731997414469192175642969758913685665394639549646999295168959317863293556489333833742257933852537836181628552824987192684878922795392353196268457156214591472441761884174799545148559987825158124991497767719113966745525821631929958634384185261844386868739712696568886384791675193679341311479925792419779847236493236356284275643863749513236765986591128434887153327377589156544284284926394998321847585591143452669941569958771754393742635969924818854748615768197262324829799189855238999455254979212472342358334757646471895292191238352485297662225852731238337341966183613358579844925948862675771379628843788673864366241298764682534427575431626952555663439886839151818351312995959495736515287183263887928197592441993653161669875264855554294336316669855722619115489734243455985531495966235136464346659895282634673269873374811235788667185347614829896923494417785642438963513894863463783133699163296172432721186322681882142956366873915975973594653631734728444921292588175334799852823295838329438587375797155948919339711632464291838387892485386317177138274584576384873911438948546258164412858387664964996779534147843384558486133437716383345658342559814631234456937556878233155191981333455781473137514327522122919933367634662864514935575776876668875537893977327619966533119665543885664759472132927569869736279357813187124126227953849791327253823231722234644429612572692417587891862974247569438476534755314182968155468115946774335781299517783598835736129797928576496346115443236687199958548486925558158482714253851745588326918353157885844369443327866687367993296885468784618948524162788476686273699467727591251657735463121736186922593332357392164519791664362743992225449169265514474549766841239349873779575936463626682275297921996353191583239399958175573264253766976935247165951756192418723889576169672278773637247477247516362978826932798962766313125766382577258752931726873412693177786833558314495466854983143459218781924855174429194383695749749516518872479721619137287669533373922799836897757669477933874912282362244723498144179762948337346472584846184987285151344966789336483867464652469864877173742663111386912475511486854561735881281318718846386424188444417894712832613485912544832656196665946128377515915247538684382748242753579221629134675544962235859123469371232134492956242345839731956973885197527612214347739693687274352851692351362696478427575281515681638744779838465187734152182558511375732524448847611814923967716833396446789664314394574679349823252686254219531841287654477468673839354664616689597253591136982155988444694242281815144155643748245968337642741721234539883266979465387941124976998431229434921856474967977365864687718641933917534821516343727186745518689871523895855468749447112551318376237497882327192144735869899716228968656778577589852328216167777563327784531277162383992698255981312889222348933161359517322711621817728833625831865794325596457547199972133515589859372731365197697594696856494488396478494893453193452946575813732368188567712121356449196475647864662418178379395838736273746422677727524341269643395822175625762544186519526569799371488838315548855495457984862798836598328772546975528297473642523162884669714391752561218562593898987352213443516641661496546735523247447681739484459488933485846248773539683621865893584723196519486549588749734293441821111761618251199763534954277168169226175999188965317712918615421332738227126812332993172943374385458259961541753842958243369787222847733775831224218121256124736919683868232343653465379972444925873158971185341575112197222412989194879968592457857956658698887896182178728843627311866535424183699897667451513234319963494792952831487122261473793778917377472544582293218355524781672398935978326535645469912389246455237634465997562997787994727342755417732332966955623213673497572912765987173657219529686925661859126494291455176927776366832896897437845771377868645162644724393945619286223899742248412673992184634443953341215438258215593512964397582725725257161872321661756175714975447852566544764729784381752147562256382935391662639958923936772876494686115262424318111392878956585743443958179499298237394188636118343537245274183895534932684284917351874371678858311683859267667371267685642525346315589495251878983742184236751271728667162157846198217619273199161825521636498918727568476675682653195256695476156893639296743898286592251688293772934843425694313962276144852228311684726375716991117629914925835893374791261759749491471771254634941319325389363292249297322784167997828347353572685695326483779378959783418654822271691148495423217175315279441667516629457989199696226523566511262823757446344213725376612263378449614447869389551986447642868612562896573499344332974528794453699787224462286628694956716251491257879295424974634138598993142957644553984361723125774574667852515769956372333525992347613478428984778494527768357371139367918896263992433118843561654579379158663753876276969214368516432336982365552959645465771522954276774798243448382726273235429737283553366598336487994325757619327663889448261798498721394964885542721554369348287959978364742285356291526449257942739545818827351969811544458132213156536318942938918952386199229423955676461553234928157656567498783339855818222513397952697245993225991571381531761455515228526727326364382434498433973484135717438964382414754586873119513983615411638859234471947248987285336875838614425762855559348956489966448297448814988533456241788664217816549431718451685199166822242712466288259874832341147619822982127645449337519632635395266355456119544455115967231658165688124724577813423919512566462831642994451141372651412557193365228317633646663717857993591826348167821974539781565144394475918694485461723782637131559787286146384721792969121723768636354847565836794789681753828671396681436798367746615569851627647215237796523296745281165125668488792452193211884213398798365293961996194325383613833682417915191291799229658998289348377957456465433344288987785618345939665312644966375963731282916498355874838223849445697625814343167434826538812844384955425758944777167621499473892286728283986354949719649675854162733532738253547518471338722227371524685511754584321343914224842883141589554893314337538939322581793651596975115438181863694842891255314781291623439515674966146159661948956928161191567852555969926899694285991999955629764369241731689997497586479832817243157128187976615253791684754467662264971657218733192959334769425632837983613464664859772146977529692488647774249524481485981632582628463141454496734763259221469419346549684923675952266177212143967522379761828423538135845147234884811766757588749542925318132398688664238877659593783124915134882636148836571439787897298681967931624595142184943632449198973676637977571668151223345244931397759546183148834854177691974892566519117221183368675424491688844575474195183428275695845813786133569868266417214764356736984486632617423953674949264735424852424474115491657951865147668944174511821451415199164677423217414754835869889389286553274495135399672166145164962416624152554973741845447943328459929325459736911184437221442266157978422375874973325925958174668356986214691187318799285981457272761382641638459217125623647263439357419572316237838379634348571595136173293794476193956379126165667164463643969578773398191695151765282346632479346454364223627693291424876914837373698819161729938969436127481126374154951112914789732334162963589984478379468727689822117213461347674311245827566447448258383317953473386876523256899694332551246473611296857152639589812856951598758766341945198146826119695654318174797782271984456155915468799516765534642638974668158594363393878431774746533888683432766186362194261533176354111343418925531649145987384818218233463263615668563151778169961873918225475941896981157953849716917818345738896394398983367227717496221783453982321228434146717446157925351448579589323635395839434124538572328266198361779252974375528365496213812636683597694921462288726347627679248488946437463572243876528275198725418149775912136413954661269831462266932523625255431796712694739845447578739143575534194263535418841488242155392744144559712343916153866861481464767123983295395799166653689626982783889199527186183557725775354422611699459158756999679146662892151991835741594974941934579667753751724397245533836818256111776951923341854496778359163664741235326549534963538454369625988912332866727113365199425475864743764951421121346845787223697952137422453455487152529139388974176727852187534229372274292998496967643841584996832948258436275651324597536825497481314937543918949278931513932679699982734125797625417557731798656544626117477148579223886955629363624233861574412233511995547463624926312358678791931838463998268551172315963732824795632721546472488528114486567836478559593231378129729257793485113867816128945836717722481727227392963474366759329981128299899628815952378843774663575383273124995489527381557913269698814126495843783312357947354213183384824396564784828522236556744972354573128596878628731375849336451798919857434285968984578391935915795589322639115792248977969451819367277339239699714599295231121946663386298257137477396898791784448766285899691338967546425383536482889377237359155798439857198646624442254888783252974858557391861315329687464679765141885514489418831788434789566168145575823753635594435694649145948576957332585145377836289194576423918631879272619372889788945566856617775691851677755524317854438898676925991957612163584268582471226718296281849955284518456583594264874492375368886146971628867263651978915331118722318468245859194182872414424275315141943328228526792743163581911313397618438281649812928267157187317877619517461442633449144741562148798649375318552884688952187272951894731149995964421215313929123193454358346842163262583775675874918344167631746842191257614181479313618462425918216232882288236256425351373772583194273381114718259764792968216315732849951311125992259345145675147231225145137526631564967415928631542144647388851885282922493254218312755584367256764864994217637467533962377992577843242542294938661866974674639414627761781173839925412869232162523278357354547528968254956161293519335151414146743546841446565615647143972466948193675629264635187881177214788697854315121583989766754563742591275596918965153129685932394554561929411295699999858241369695941132161979438427481195121179573575661567499331868968369377323561816962611533698495222157668914895581541682842671183186843534922451493362444611618715479732132366286421555815875645273145147352859491436826392755263367879584669698732212839995511846423371737686458578652551992975597734896454988735688633722827367948218752139712359122384464181773593356559439554555573818317374532757383135879314761951871496759913542744232952317313379218873764917171574578619338445365242497797395443778539351294621134263832569893151892836745286198414686722711916996177741158667386755227387388877375948943898527282593232859636343635438617558156216528693445169232764534268974674234973227613436591933358144392613981313963295644736851744173233532552746956419772456429726948281335418983434399435966848533351373713591834163985481163895129156325675657953252578585864356259772339784578683741687962287792679791569817665837886563781459527485432411976458136673841876836465917947134669472948222299772398797391194441387371171291167386965784792135153778776795711329915474742945448616463132592533423859123397741581136329468411642927737957621678662383138969833124686481243299166275487363155455714352475684689196534269474798279594539997445354997393238597324263425413147572859578781539251566717248542287262128985938854898569283836934649742648122896185931848129713177141193995175682284267978839146739748147544813119435112985897461334937772152353294794883261916929322988194229437787176282371953874963762182915784379897924118385771847945135583821799591892629186268753154613884853712781842749255129235686863248498676658713636237141618284596246992546426688289894853662991624122266897354163952436783762713125341711445751954176634819961362775756789153247444916385282217475848326221434177467985413523261535455967919395931729259482617659184579269189672743647575736389287524539537484547799547919526434285427369988332819844543475918315756572561284374367511847337968543289335354671996646729442247872299112635992981453925758862649657558511189376212593977753896762416166164982691751937711989656686291697995154128112771768713272771831429824335135281257117433591563514495727229537651342174322268529857429231983657761867188394154138779672668924689665473293596999765622887668936872317626766455321883959626517185216956633278699677872833473171581986638945694662247311546743781778241934483748852672525199367335159132468632426573624233149772386189235978221656817339624581629126937425237281762593445783744645236967579186253393535993367529831536163961566795947545752482374316911297244723216858434463588919599519333594614389211456693584433382214453723231959975544883116334543777948151144132575853152575817184887583686188235729915251642359626474532131843313314628763876848475827129993334643994768956629356737428317539983262548432874717378919741593479695838571757927754654527565692652234979835536291545896443992256268545427761379423982435724938544387719585422362541684955436279596267996548664827875279612328168784583926773154731247997229135883131433999394556661361971872351564515795624979535551547524748785934583944331273726761412774643134482676998125277833863949492595833189689389796479665958897946428637685412381928874369137722364226864394432523399725627488523834311639971123441322673411252424755617694695839841917237242463748217956325797681779383916142425135731452821589546475665279399793374298389427362817363779688658775285923854579559385541519354121649121295553416424778717643945197989918452692323681461123416815593383226476586745661671912572821157458975523286553619788836927822646434885984548697556448929619763396674261415274829452234194969388845259391716188822135444739657342757675744343134337761133178791966632996429523845511423729499486948237769611794345275436475312895617373234213536153586123543722362998291621863457615325468738845933753893989215874285631583377769943212499299676994455494631287171481529428486864298737189196793732772524451837356118826635394666723864118292825326197659178343895272572391372893391146843666955353499628555624842946429775369795844795551912286369811778394162645824468457565182872948767973226616933766423811988172836533744393976142773963142758932674746165353866133328532616488635918614249435926348191351798652142993216147439154953967947712915284314917659654948234828597587894335615378324618421813642389877399659176898358189268312441327935899797386111818625445687518292781661388889959711255613464273341395324991886757752222448755877896427626693367833943287941427116637399967273966159477961192792455174869677852467394989988166381788173929795832561948836532259327923325374666711795567128333245736156563838418566812613445747221625261543373129619751183456267239644687915215156831828254769472235683383793387879851665931868981438765845263839814869342337125157823416721994863258173395897393973393874852148353169478867486573793179345557472676494288826473752958772125843899539737518145318494251262745924866739479283613542756672746337713476213121481624779445528152722949559752788749217931572376437522466331419273173775722848472123258772821637935293654837674776981858938191783291366648495763351235928827786995931594322787812824416286855544845985215473163245675173767292584172481938324547984492667377435722861952673925624943118845467938114189155447917312521384739513313612626141731451591629991841262432572176148173133174964946153284331537131938241456743136641758271224936119823856521622275259967187389789761855486557664179166654471359125298547282837244149595833857868277931737719523726766258443118735427481169992273848453286586357898536431429546728564872319844613365917948882353219475696589839265645348116241551496856493285291655167768472436366941471798296151557223851983697191136994794319454965249236486185986686154484418693227139767465864532936364694554865567433258745976168785153597773319952257929416922881285424192422395419911941643819737368777718737368359343415576548173939619472297922746976523967773955815842861542725412144339896292682955141195275614718221111511667653256255662121581393392352317971286711265367316335554688798495414973988514244667192458328158497695983733145582189224146849589357735998291739738741144526574497251648457429383946851212758197892766581223241435928938913812472646385316521462854736535815952915534154695539624987538919483573935221679932993381923723551898171593559341439756848129374342149289334268291176641442357681895894626932852757412445479238317685947538613876526649186189819476969512372559191754652251131966563414631784674648993118919996642782134191558922799991781779433411513823867649828817874841774124164445621485255835513876943343659973435553868441989177762975339236578813198832821736391488822733379159359132214286615643524696812716731533643941511874116465946116778721173467317383784329813413979751647963694331588928899129417261235831279492559241928831759476478769887826851774775657522557985861748421185162427982533668365741824655553958181877919265891464445711255459357324114821319335668238152596411142433714733555821734438677118211443613966211781853185942642352484754939559437512729293356471529874367213954693864773817535566553879578674133399676956787144788864792567851189956531199893161945395352126934917451458327533526946461563154445171225946789821414949175289523121931424971852892295183591551743735757154938128327825974927181454828613916826648218616996614738929869951532185796656154714176857834738772878357713327777173768431883669735561349561237844299932919365128674596553565247667449549454966623172636762386932675528354739289587648324542145281642556738557596259961415517826978124785549287792798638167859346246594947866636794565262936869473912316182544993448854156631577658887386438738952747932584539385163789333185871943635773135153558726647846324217461938231735971741415287718939764766479452849713853351922724689155682626719689763978179249598492861922472339215412218112152789865855983125935475584475579547533917516717399736284411867711552742482952582545143383377947871155373368525668163281527111887992418644386731536755797496475264284947464837881545113632378774993386112484172135535798914782189327817936334447979357238596713634314115638962648574286935595858268478931725879726934527166641557483175146633594296557264737762581697192754994312966662943618847816515679869298374939933394177757497755649458375768651878285869588353727661587943718786684161918834195661698493762539977483463245544919868696862914992549765979523893679438914214583646512118159438695428228638977249781891695527366718429371168781648637695146763333974912817774628489148542217331538817197654916744647489599332383163761415615178433161929832959255531551111427358454445417693427858894885936661495738378928269854733122515159188662378261976851233534674168166832957764861445467619165471277748843629895829364134829455472945829279268741576867249174599694185982997651697273896793142191397885164739898496685253556556685363768231298947616939274828476793978782791685344736743224141619916765734882315687252463767738627384656934154612327453629392952779934526821381412936388117293368259511282228248341958768477693417357365585399122227993741498628344969417937749959638991838689414799739523186871833612684442473642515545753338221472539963219364424868423545456592544431649576817382123367893341584917969926496114225541219442488789565466995516827369289133262938975419999458939656564475689883679119198933735688134462838897153953852754915563375611782552266452536719111645862232298454569984146616596459835956166991335233537286836461254657353842764386539247729354369723357621696933676489152986412374597259218799166694618795345452791424334193198658928787319745814945367676965721522381899863254537953718295776827944823899224466161322131617288772264544445782396327431479187954269613847415424945677614521115512362555284726911567227558567118133287695156656793413157794594296424163578243692932226996344654384691847559828891112711334787916355348993864654664724756114795329653432627871226588852452821242295438588266277736591745826849948571428224732313953817388961864621742564826155439629348925199452435671963457971731765556855881923478464598385358424768443921991238154313131656477753685876765887672912214358896579738315871358815994224559439877859569946961731331741195127814478435237823895917872979562141588321643424693184861967893997955777739961331538815791469768443929582577699652422899836892635926855912651514655734616285357738213693758797262624985594917671399658723583287449836365755313341285966113332165846573137667781889285885127214697254447993771649566934434144494118542332487552416998231535964364926138277921941629542594989315615318134715719862615764162882452971673133614479549916212399425512578779131466311399811848771221367945946982612531511484261172298892285873833176116154559567776545663239422628228623967823489934489692634785495347542223551443772639882159578993656757992934212264242446384173326882581584984111433666274472614273421467856256188453159487556764995931616222721554848877421197487979138631692545829686437546284762573425375539911869493235754229275516943584374359199393866186913544147475711225133962148647237571874412772873475671864727349187154484561548876432418769493391995334679723619232462238168386465897163935284197323435241878495874489762289698229453856933672159496252271229839873158631887191929545761762545521726588657266348191565532675127198745681316821739675226384784483256695735317278246557174453789994664126447964876411227652729728273565197894189739842586657528325661971751958821883932585236958514599564568349338621769382887627966811256989922772748667854516192673797395376343526483967396716863142769287712953581665385855431534699617386471619674112585928961339389917634685432841888479275297125914757915348521599336243653354754217897332172222955558823947312522381114129321424869741944664725834935236166197473336328674945528811323827527154485997863167699489411682423937365745411725574312242299321613337711242123669989193212143184217977982193248135925336338627937634323412624427918432963714397969489639682123714655631991331125863814773874145499953832964866441522988275668217182375452736351412411236683592399426841924548679719622279437546487162152415351132983191932676314919914135559552649948839196727198888372726671745638411429171778566374346813777238969999896762616234467837214726613492271857817521956738438719359598616772461123116669493262197945795363498411691257186383482175544969298137197112728436665762216413432225833433694437183467668118341452744176336668257493258958772716878275697263977526731525492462148845414118396946527569988233345929549841678163614459347141363864797682548454614937762565691866236894146761119413288325773759362841233818729759156888355529445537541629479255241627551893726269812863791725128189735813985692572657827889382189162532729377314568239928736845739772843769481846559541313886359326499664593676131974994273716528957922372428929927316624883445231822937179861862472943331663185256358155832817145138451316614118632437929119792215939959598799662714495394264373864758598378224383632151467793969343282918629958211315451928315148356436287282992932465457277789594146755562651653779314932598558852427853918162449359753712546332462146337943265191155225469981126219831534641149243654981887888498281323677681484748136194781519436558815463492765567166434384316852632967396361717492933351771356497494113547617246437763739754384123324467227841462228489354672972293449151733779882628554811817117451254227583361523357637616426942956467915341372497959629342945939665354778885934628679594587979824248615483885156993843291887759273934462639143642825233291875682974218362166419499893212278736722132947253773622591711828672243355549154321572532592673338453777121826237274426575532764688855556647269777228756118274533317862425131998628574974781143363848169563552312158455733736942224931966112232347272633815489592883978579682724329473653181939927224161928989411448613811984786597893984682622565325594682159698378665923964229651189457542491227873454741152816994838572711832617742295198388777161926986958197772881399228986782672368854664431418447458356724782998883248561512455189814475843933719924671729855253242588952355415497653624698924237475171385825454928379638529842667973992463886287914966717689645442639766845543243528178637689123274231723367569729527489947857154476437662298269211748631315911257881545664479381454197127518533212255511857886819218919669312523626177151848428239929975885146398895599682414226127993482875594283632588728939539228557634174492644692563365317227163725123451515874929155565277973244645879819297687482847445932355619985976984532361353187461684144832427995348554488786322379572954976765289934362128551776523717294761278961487599344391952222831297214911938577419739734836827926536935817764384356228581972764316898378944473798499258344419841419247931467636456371184525497348251844888532176592691933462294818982368292217767915997234233622419535445554239829318121433585725667191545858739558451472721273639338461955617562496334594622774616442426986632761383633984151421954295772335419437781877363414498717264387726659316293929241679548245573244898638348638553499342156592716184856779432266416339434983153552946592435541171582525713117362554194335678665623855335435161295594826363139581766278619115125663944661863811786413164164675921315661655826994434739935382784894251114695284636988881419566845259269519937388866653773529193517422463355973758313669812719958681735959446691531796677646531499461855797357381359816469113152977152439245973897888323324538626221453367763943619442653195856367392428183376547479634824218824453684482629263818851233553325668827255426332413397318543765129992515146568799817537471646948937987572136896876528355328913685482139231719397949764385164333752853755825854536392719114536791884148521995247866936847288767744148981971484171663336844719483886674662619816862184678938976354811267327397883982447241137542922147878498176463597219392855946141827655562997346856875958443956137682138336949534191485329525116775977698373124524653184125535191677246953264615969377578919519666369864289549946852518318348194721516913857841326565475189898269229719185778699244772271159876877746735211979884349466461446824486159568555442666612136261742179774629465818164623636332395412468729765255941212574197136566792464438943447466693812513158618855187872914649288377527722573447755422522885793539361933279414178521652738297358264267464394691342217478288823638954589819358383413139848628862766113184818636875168152822697762362661849693279784579669728484619865738796923871237184964792162137411289779147161878164433548732372389166161656632437669812675792829825331486848179835725972441523595926954547234226776163386437586977473725547858415929348772538215842122556331962554567244385295688779934556542696833556884383741628511845599657239484952389654615545429968823535463767894759219653195981762995442517296561582346545922997177429561279735873885438831919617247294219182658746379142132982616425626534778452168972174262432862324976242186282878175492524619841227641848456544432871923273256157821885729373616673774981196691372369732658817375541829837477494429482446115842285365247864594835863916416988116531935621158332717986536114913555647917913735995593245746137372736536225498876325638992694221393845456875551273725624764186115488822499854872243784241557157586367516481777899157462416211958574235753639398394949279689674522924387659678488782588446313754835163727664513269327151771935217713974631979186917622687671191861157419395313794556514372371455451181929449728163613139156982526425496441312117367669574262313854494937156156883438384689791985424716312917575728535883853851381742472552219679433711986269187251387433633589521782889395293828955586749987839998166985514785568927589477251949756244584852387178736664468352226729177552671477248883218843154626633267323359963741142735139492943158789194989253347429832661844158836735113138342963845119174379151633143345168255447837745172967129323545152866399173855351447949761915428584123929284518632224199171521259661842659999752963462368398324378353426316289466792828548471786512752472991936595776439367235875859987267169619275628644346724397385982697557454925777981553771489866126679314685252749884161298985676142973421845919887392392178446948235467431921818426645752585188981426148139918851414888136533222252766569451335375652444196427532697343278291616151395614234976135768985783753358378747959436839495282659924248975748433365857686194159141455241714447653127785373788682726229289523376588156564832699751353271222349977771337719878842867984184317293861893463449112387184383713411786766812145956174872299468519667333813916491998464584419269125746927297836735552818349165966439919628392864328498322236631354153114943129541389211233885819214414897298932159861972351649549889268967661855741838952996851838744521286262645617392581165946719161969684747286826973169562923937134971343852544139335261362555256434556842185387218625649895318852287879867495915766239118437212329986872691999566167977798428549538115254253298695291859792545577377782196495254673557526661117735483591221735182336977634634295644873984857455577164827169388842338417892525962678958655584477588329917149646883587432981226965895796499353729177791988819586865435873788961966736714594543129652948316192988651222561913224968262882582679434445591571792187993971218265197441889837896914683979989786286828896787566956314511497466875346225793438122653992941666352786387756998781754934227283617885393967556314388672984682852528157344877598826674761938122274968771168897689246413495317413718586572352918832462691229751831778226441442313358418328274265232953577511731855785596223538141235573133185178646176597858642655113314512919752359818572336592991221461651436651539377599148137149285241282646698615345247951664662175983157715564888393197153418596993297867393681529727523762512199329184794862913883624789939138159957327793884171322799683485289274794564632938951129177215633549818254616889674585472182544777667471731318266514949147191468134761734755651211495388197133935399352736271179219547336948331641676737245342353186728312124287253626438752976275655475687915629971413278455162526963421119662458597714559955186672923923978123762533877771279746837938225916282334411177174857431212932423931952492398196471222133225456648643862181879317428511732267721474659857825756486337399414175923477352123588926648368119595996333956148486387832757466316795317512215843559333496142762241662411521914349253382985141263228359391381694619847844458363674599328446416766539223648373539978919642272746398311564381533438218162288353872792646164997349158854152887964143196691199613426311796884579873972541549599631351339817254132338472424253226232264243857269381126268583794417522736911626544545259997366595237418999852495759263262878438841561349234363738544858125957639776719632947319163447249624486253723675778418494637341113539954315673131861681943666666717692132587781766735629875421981741843981768734486757633965954127992279255927456822673879374666454562576977692384431617544998544881137635395412745896559739673961954716244684857436879843719115199461983339615446933896276265664511487711671194786875591917553812841511567577836314743742576766939889936772444174347521658214797784686153386584816657612433792351617212429177467921772814172296256876928934561352328498685894429996588389745759789529487856288186625352224678456417334819537334876211412768612252864355117828295825746823672875962476885567376766331822977155651677266611248713435416593397651618423974996765188638267487952113843221429995583345152789484484667869991788237441945123841288644331219288999644537928212229973484495323192955497189898921816135565986285379718516476276255868314892319836716545173689115681519888918889459994491658668126966944635514448338677632586278774466839369613435182744872499266591264998968281698672158287193542658947833632682457653359159213468252834187146161824949854874191815187484187594475869753228428598897535933672828494368569312152931572964222313132447283222336428366551963192395438957268472913838384481589718241935659487487661478726764633437439884713459215143913478841264895774154288188582683939792818177644947346154893159242211471188741234957553742136951179297215888991375121283396882888897418985664691282191429997286955684462838386314523554444151535893338412339859219543887272335624936877899775584538715423544994387875544311768111961313555845364949473714779688665694858332757941987358525483338688162884158852739453295742855623328516711575658583813276351712943784455493857695875182626596681967383722896556943442583142718713531683761416988233371585555424655724881939528332548596941462736318696688539451595343846873946676324972734677626241534211494941563959923379942555696996935328375469451678561625175764356778595841774832567528125581815483222614671143289831632171241677798858326328537418462668572529288172893424266896631887633774593389478719125694266343996363622941777556457817123656954569731813781434968738441615299545497477744676972845667627126978317154727165662734299841553938769464725522886869269153287489356171453985963657663467685312237635778866352516252587235645867421777663287337752789592956431163139895193725489667516699132247451339639891348194744484397429245276128918831641913442661392326632334123716868848283348367488941163464733218192999134749477371276493855265964144155329267774899547713229714128423934859536896758529631591992732935328261849394145998957936219392722627691629124593387889599327498649318258259499627296255976624478387112917856617427932438999336254854143728387929612645543475889275569841568359211365718946523429876748795619519536996789339662558122999341381244723391223169223915983927845858329549651957767947445637311896617652516599165858482954675664224879929478374759587672938494715182983919746919857414697446796295392573356856821461821553132732251397522995576523494548659813816836576656113644983237981961242834371946546719187399998193197289516699133612591339229827127844684332145495645668569459142734183595718238682146883716721882389538988811579772359629289257476328197888934781825776784699436956756424226585576944691861793386851593813461797491651636694823497546716952112741715767426816955689149744834997868344965445948597412374556835621444621253546495124141585177538562923837282721222536573961613468549723531691612854311696667893647628761721771955375345881569723374148219276161688211587524495621934734741346495194152794232593674956319343962371765844257396553858578392697735799374778397843136863792851622981917364193777978554622896857946935562961247934668139318893597988535731743435782685495374523121964436489622298346786313644954841282811672781614361781155349733749829876143993329498483825787951843718313612823761598679257832915175995244236483442299113784784282679284516244376486286455822241396395654267693232759384755878797427773288847269343161436812671412188297971575588794835425582512619428114962519378652273629671731772563868917835689786847894877743988165845627174843436216573156333248623964651143386885432547169483244439685689916484826169665513825247116554334872253748515155336739539184517893917262121626957621563461791479779386587549944784731966835872837665213856749117471466849325598354764148693593239265838768217932396789459798911925398954864456675243177946746727347932427753419823231825587958772365415181329292493484832417284311749246167186216444725966673894866771486183793247429915552732227784732239588812653532977159261839291422361151394547735349355337156177313326345579342675599913627325844165778335249315744734986617199515972783296226699963442811511449836894113714363267482561521544416995295565782117746872833876317895214741228439183661743139559237758122143875873938913215159962626326439616282475265474878765827548171941458685192549926892273827524597542399799943734412529891542781534653632515787127378256389368321775937978446257764587196123744711284771524127794142741452725184193468429721589883957891952359758885727687646523798386361495461348719468121662832668285233768693563388299256338484392724999867193332949944577315535797985861651873975878326837389667354731885763858335256739357122846328287753837751264747562273446177884547731595492765529646771366845388151999539695947889455482165482297286138987561159974522628946255873475263818913791242392186611187315831911889969964183282742748579942841819814619997225388362218181375355235595384195514249359168174519921459787185635848764669477727617642511128571154921376212873433186347349286191483419929296548757469183991591448779661579223186623532821859893669425462473661222574645629518854784239456512534771934486335191358761685246388655647964585185929775734347775639183789137634915872444668344897695973875437827395438784618987657143329742423142574352792481245748958833964168295638787836838393197971265661381733591373856775873669564121248211459585751227694949896397291111145983457468928213281791329429414992235861652472589547579491431629723398353489537381137976999969831148764992945673675363942747511514471779964311577993287359919959386353249661617316524259148934962586811756617337878383186978264312981855595137714632841438344664751846285697367629893735558825289354772339866526496778223995413427693715781342971547359647978291868139617631838862586459146955831734583346427294352886789274756728166391932731154332899627192563459188969233136549618679277423667555342244455989849686513345519344777871215693677436185318758672948625645195452984593913887644837688141641175173522712899553834582484558546852213263451396488745874318152546656872197116654427994324128263826483692292757178767188399214475124363471446253928627455266694194411637771284466326141566125433763735392311655286771627228759126278796926872489145116637493493921889479167215998519263812149241218135932642142871886966169972982884377531535612799375881777875143479112254514773691278255831324459341464715262422438233514636161985829399896137279973233684171168459487377779376373476734231146972799525182118645883446758752347427359867968811398533986752875696331116792462491342431194271629352352821857196128351359666638652866948933632233947961926589343529113896157269354951132679593734543822327933957341333589338692854226346938123757869918831781874285728391212476143142735894879287657487387524128212484963249147793529258799191921958344556561239472386165974955949863227862874812849445832226611597718484561841923856438549219148718546882765756931564317317221982835312478843336472712423144931194533661544876313473515717111299452716751926556784143593393292137297762754398976268418726936138747414588918694291941793475887641482739528377686589647765153716743816657463131778532388883963636915461116318375126354132328579259695685225943345869272313159954813472882466589965873992296191372617686711369264741839949548665725483954979875348322314258814475713997494371694526556961751177648747465783753194558144217214957621267736991191454358578288563215331994582582536952717525371582995984332579622297366918424561659948471426377586192782432777733737554475112658358326557725496767411748248392227857582343671236766829643562662256984917265367843335288434589613292681395622414636154887126175385443463925144596119487198585924548673974477717316344942781382626483679196766485919492561597748286452342817446846875921978543441884127287921514989482468321555633943661453484782628665586539882175341475693961133997435868756853366313652858859149861347112686913532797961655659425558258417817159218914958423364728633563143747768547832674899279832267471654329163746883362278161367994867388285457945269467263188877144861678113616222248845953738433618675576846447659424818172814164929476959583146178458355335731923958542381584191935759282644545629453671629937929484492445897359284451493386987824243387765589398633773991588279674812577115944717974164122937975355491192686955632948358342137543983982148533986171895739832575764951154897295793872245127264639824918487196475753966377973335317596335125762236322947744966486136668268635737368352924419847541115832683156762496587827811555556927184489855984633214983138573964763191975473724144333634572767233343331766848332765836363439132464685551135857123495132353266291648282295689381629122246353872825634744391138289181284828194176638992212324131138947328127425976756976198311493296927727458845421197696427456665356927752536967966625366891467873464138371867553214628398433129355558475461195225567486229429444988625159149561127656267198132419271774768615725471996696498538454421887547918555544293733575319731617361162795248567729967476348319935929189614558129115733366176968369377137361173172635759356842678685296932138334376852686369526364784385486399636391367883825342719137475194847565492278459783854856583992375922451567392279554837576764782373427463283219255437164649118135275811219438434875682944834537943433434276119396843946329762466797921247858776349643263249265733425449223881414467573875792273515948859136177413169337717833163556331243849479674587258739135281713816181927984323947729613131291571279171758171374935985297216253251167233849866358637146756361676582295477354977731435911536683241358685421798571513193945513815831787228387943982381575934214786655477285788976294132523943391965382999467255754166127399538625142131167772246443943563526376771983988756758483676933283711377465563326892731977569777147975699154386864936923668626321996366362678255656137392143773663398924982896249843563677933388617398785764487462618775467686436164833397636351491276592359882387769988651275125122661886764882658547491417818319475554129497652315945974764484421866267216752983576963238666997173589399875164211785118864452149497326383688998976567243566671619331959217996773319132277734784716799691288855186978175857225595254913932716223899617171793251655855248218739819869457426639685178682492253143918843574136985491248376482684975668815317915333347265793861248614384715495727152768237313425275693964493765471535247877128635184379698864391243767544244986473891659536865888154797919387935294268192587955858117816745427736232931178873357258838481922593196288296973297892673422393442741359268755975645712932151384457582497362859213673665859888123761898524789618856121496374975241229162449388164556584211517932143149172989895349787187138731734938845943921433291999793565537839514896187119339418377513955637677866464263186926743384668939686352897192499981544773938721787313481981139927972438631412569188317415417499196338981131266964895435964783593915713895819416785227613972329521999279651699277588349545667618697614669528425173997751326876735385741682424821219884894581943572944992143324334312581938923279354543635867289619747739522737753916369844552393366938971234818998523596941271386888674777957756517746339436444923779146732416956629251283727218375278841979573935959967339949776282966954899182686572285177944562747332511429576213332639423768822545785735672382515667598764545799257639187215455812561236589959774436434954488968194226764649516858372566995689589791466831762446273328897366395373399881846989495627416242752278597385459947885447176698764981639357782676344787475844729996148973659816431697335718279977562359623682225284925486292988645769621868979488678217615893666132983158956884651469139598754356454659533122376312393253927442886341184384511132241555756471567172179416756858972927482929874672779619384868756847565657543819176837655932896478924579123393388862636928297645436773684813131816967658468112544121488768962952556391137847992293341116992186239849942525314334557556945144655639414566176498742477171674938571421666263712466613391257649477427574181349585135445469113831571317625658496997432966756139186197857292141549363347822425322832497217319453268483175316728991949649361385511449545164636425497361387295636669523928471911441176184813366832773964891782826923531892227799965152531617787368521619721481366871833882549276137187957185112688669846189917418116891597987146891674262152892512171139837531199165472586664714812814786448438343779827482853243323781224156779947829657842955277444455749316399871736418683199633166631661289176248788547747711826579525533439143812655429181961527469912254158437582914922898959785575581884626364565855934729677134572469821457793376768239987688935171943986646863438231228877768366359556111686728531652428285111535479979937597441394546454744786223219912651474413756372655923534734634698625955229747781282435897251418269644254127785713956325129959775539844245814484788319611696563116189493874313771591461419965275762681977498654594649669556972336495472299855315657514359835958597933943927547892632966858333172764167248992782845949524347645711195729517665748131172515158528537998958714277979977236632373125824618378675372369872424441752232673399167573797684725169934146394532347894264822282687579974513755978666961443551718466344773946423278663797942992837361628811443661426685477477659384346917152427358716333978634552874465269391824694217414366511697934549468449717227848264715864466811746579449151833549911486622292265722756652524877667595267377493954228762714281846595929746485661971646726135118668168931658114982155627329721575269963126826214319869582452398815891982562173513388336361499279648637882189339567389895844761725478966254177913629599983358429947742366652453515445442576416291874999565689748272526772392812977366212669434352592967286366453178689755787912951146754361894192959714172862956959623948938426591572778854949544596689582322852998165741144897335884741852147126921485498787498977339315598111691639267935665441964895333134983954861553998422528786218512899985469314593335465144654484553451876716266379815319664991456781857427133669538159815195238795761513295451293187967376788467933173382716735834611246695549142438555625387779129933592936938162816377895551352244593695278185265782461815941155594653269966472841986966551445884248354359976151248834568493871284829243149744657329675314572499871685998852217849795234472511476545123897927691569962317566494956458626326175111917128765495698323975616313814993694469889257989377647267538816976412471394993819572297839511296846973893391489337545138978998572159449568496428163664351259996111145899749371176232567571561171174563425332439952197754789787883237469883116999199753131997676887623591611281198964266266923499161319379388287173478984575694619738745673489186413211446916265137982457585583922222265856472874573616365793884115222796232419757196523982261561962132553783767355917295211255232335381648723447937636256171673796233177958182784547142748795165586893578386463797411574333639176755992729364624354291623885783457847918733285419728779957435659433922785194433415272167799355286477646145378618125221989814212759513116633394194516514483894978838138671919418759319546826212984796553653483358277121682213481761315559797932738439498517646611531976945646718642479329974534686684277631211954289111998352619267584247256151459451459284244269896319923537562595431437742966836456348581236375816848513687261795417164176614184567417664479448868565962622928374914679117949826663168329312238539885785478359926122843863965618486963491234215726788164241711458944372294614175653548863733867651877196466874238473357529695351338927563238642388593234193626548441185298142279917131429681345167165674478594375186138986919415111557885544961358961757447288688634313755159185871855678496154816336482895893289263629558153543954483562942368174435489284428513951397499514311644171978419269354473912951472435632628558464398725825919136268621883537463781553934423326842794762924659937172364594825498657833925371262859975234595935771452753269276451347648187581968813167283299634657311119857843622827546754716161782791776469632713465949499995964943119645497567693296225114599893993956484139898116617917357325514798437639628428168768483924565934866439381221817763512792247631996648677687767434773842945798798352118766423164331694698258927742851627248545776826285199889454548698323256532214731139117951394953874988531641914926826519638833299497231394384685266796758541759778491419747184699369733576541418247167131748198914886133776715438135738791599389566268425886427321783452491428364978891388829549518743882822648835714632323266226988267238481273644916137353965443357971618625969358862586862395421216165936423347234461846175516426923595246479272428493998448189771831435951968998837926851757615696628913189887651451945999649198741441748626472396498887851761525568541392838968597376951135987334177186368244982729215216714436832449965779268339149661121463945288174451457278182137149986279687484828853569378561265152679547164545229566582337343748895748444787218244692714547812691163886364174887246426878548597492781316693989514246712555395945213232881978938432892146575979389411679776479393382475123511448378436383939748966113595856788516348867158932728327676141719659173859555346517348995698768624511795649964524338937487253993444313766762913326127755379578792122377842932363764438866712579671798472675699965497374743891757726564729178964513329583861836598244414312118467689446722794353157387618728553211154715875398594321882653497727821182669978737948136281438189769868923721683286199596438336192188969241398516115964586328938145822736755695295589738459241944536797273632132578551485399483735294912363476423277214734661844452752867294635842662934389362597761857556829393448542859875924681764429199939274936111988481748715245145137834236726895643516376681284685368679251831384543161738637985511367282254272525819872734323663678385419836177458445597929284442171621684381936769218819728152268228277485576142863644615318425236153781238822197461631151982394917165287969268794845759847867347954562247953721195668542327942635179274868939138574327449233295682517973775677425756598311529177127725172539352626265895945742534215712854668731436825218782934344714888255127951633942719893327596874789291895847931291279382949626985894772355957866964892986857445814282316791485962351439813546937434564134251657762794685737339862317729124278844814362634456341472242943451224614939982416831976279364597699959241238269852758456372631389375198191826792965691227371297225623333314873968427438155175786238459671857943774416321717185797432387272974151482113164771239963182718785298336335531817839825113273941461373795357428111971481697981926944213647368968955983942629712294495647373268952449633885745864113576213428214447399588952437636873582823732165785633427548211797945227471576143615746481391358952454271228622962435973982816791844252263924119243731128198667652166273463764687959941649415279375882937393661354247192141557474742844463637653955764766711437711875311572335421786252721754423419849777899331318713984948281522495363942863883763949334142273322746931116394568852875288386527689282373792156831197525344985644651767947132624623363786973446782758442145295556882141648971648694537541959493181285247134987846198742637575873881214996493177775538791338824183914313831247794346194227997386576896188282861174583985574391848428925733818896254532987216389132813385654433936389377188616517688715161492685212238846687247885656261191259578782564122835523978583672687444391547858141572778516773921564883937613416353529261836127173451743494724258499316388779586722885124485789538559166844872442521921358726679423329893261315455447462243899731162941257277612155791714193866852945958565326321879851349525999283687433854584552435458289788597754486661918452485929748717657321669325314149377768733482257768834655975487395969823962275831723177574811639126997382318892763958694185947948547155286155231435275673976668413118635131543665173539626272121321963574537773179222174682782713798845388845252173371638786866236918536311624829147198866542144634476196967438343942726369464736164562267889723996168695532893499654869547518797394142584673813676943886526295923227365612982148732911553172562784398759847951623814858156282358578443327991961342525429837952798433743443428433584815786571649583756989221153292572859596661519775373284288516543727676323363239666964283822575736573994229433487873381473528982629828339273392987295233373271333113835732961957666279416723735935227781875869435142872443626198429286164548471964152285436845677585281534361447642768282774232878496338664688353428236393626794433965822279194245947567738388631836317324314636131776448276139111631362673936527494137853456365328343599782243973275859284798229943272141363559676159968337148132249453368524479973968682485278492337564315642438714672711238967279824254597648429776937859645353234548998643474451943728672197219664452395533867861232878987696662895924577754429432598396955699789271526281523454594324718368225132173782743977326737917633444846143411474551281754434196331614217347463728736799233532264125435167794165946496419662767169612917786993475115546411676383132223879478695116559189946663865976153189849358893792685241526993516825898623592761939443384863113794364125365431423255473758959338743945462894845159496751555477241534969949312716756221265793426469765667587667321742767326558184959414153828539584668379924732127947342523354213568285267538528313946186222531876584989643494215488886596658635264563425653963412299749393256662927158623718149257129848264721811426367647541355146921835296166217743487139164667258331749355954628946548444789314226289114488858532174828386215526124124453236989186577385795346858258484695383291746554933446121825554812431648611256647889481553917287411373133146581378226251441158889716118211869877687212235241928888379189265243891511624237128816733532457971241292353655366236798952186773776784819964499113662566653329586254634429768567723868423654691116458781755411272467198353612711456223288728736862561496655726749252569431383868124153697268733647794525554829629924283888661815674935489752613695912389255135683875412376447686185124128431978264694731453121519129421252259964324685621911962963894819124919441718279251355441629199991482325295192826832365335235125253365774264354927943375887388792928486692926318912238616344194394122672774483282484345868268587898966123461688716241715622361141835447662629499923983445671663536179625786726628996139585531883379242628379949629232169512489617631681428391362284381131278239882839872691727834252263289182978151137286247839244259576374571375477185699362375681436964399426853569928844961529452957277218773829819683188128854947663373149431292169258959733917673989283215125311236921793184751147955256666177181673652859234127811425871577386242496571493793474415882938647261499945975144461791288471334849878652258662897967885722635928985651864629798485173644796288167432316767536464771934393911717341471955797333619692921112282716743736186728167926117218415585159312921482287978489298828466961881982139238836664572363199685663751752755536993341366665523887243227373735425648674129562758563773499672113575421733688654489666895852963218631794951825253118698173377577341419715786292413351968284822654675644913522552776862579852915363716116357312478954211185174691861479994635762566876874381731617654543985441586263649977931191754997285629667374427313916994968358176527484299541262462942437262868511257466311326452646688385571221236872592523257211867696943954967554592653858578645393886271667311661715188836779198487893849479525595893785352251988666941887738268657825359465452217791878551356112784317233567777347424268193794862171883948694328959266974243629626794187845367142968554878239981569958531157741947781168879678623618461455939123681796463439291551386321724726973952598831649774792324385656244428676348313369648761178443145487133766685712764539537361574192714978536916172524456172128427587874727417913154488985287939667344625344935228557455853645499124485817319721666391785938477488735216845796752472448842778416278788372639215442475358424254862529435497328752898323154468743885727347177742839641845371154332793526123897879833927343448771841182683971657421612336678445328326474661715357417631176999331252788233293637366819826495428343411223422675391971752381823655885896137384723799765892874937515173585324675944811289466658418715163574841234624632557123853523918355538551912363418219484624825531974837818945275185923385765118216487278862288676167385741251961489297972299866462189552477552591519117317282728827773919554713744654374972244926572762617977341515942338432823471546796484197158552563316578715768337865255951684741161698578834665341855249397572586546282965331864838352262928966619237423855939293136253254949599412143338729739922537741145184924128349111962854996669774162452744477377364548847493479765799964311937754997872512747793272167486389144343129169243712928214833561455787979784787867167878251496432818696473832626413288813943576666425962245315945244923316564229759356469789283785177498953254139145672549467645243862556872373376634687624367779855199586613828582859699925583566856814364456394578338228766911696377692946565912734456233823972588157341896386469894326497784823637252231759484364584133799172224848961934863377525828197993914388173976451778429991691398588926613819345411243123182111858638298578413742855147246356221974783521251534617211825448169956414666572424874584575119714798339684241373659898344844625984816664177293457346161434885272662128425134368982588529818226371582223625141838187739618429156993115376879953849423373114118617928445923896171111247438738688379213514774381381393146818666483393553829237264293486966623261489734114927633131368855516732769642932324975278214198448912177131223344632147858356289988995697719943395497283817426313213672332225355774572853483814223479592713347613151225463654964291158229542193497518844217493813797628661769998638423832571752921682446412391253984256393466468416558288317221529834454599235866329227947669719672917256268644175977669436285242332957562325622218764795314727849144689819361371147517928489173976335294231256359199792428426612335645146161785674443585416866188452855441518965318557987463952795779314453149658492189725991179657567892115969619817778167275938675354554949919889446253969462228553888372362138973697793638739684871698724917714963732193866724191259921312871257531629895476765779651671666782424475255791357734688746612279311647263522646218577432991118947992796857192612468291289381974763823517116367493122138157153439719941651366996217319114718141819894868884473983524523883686567546721698935324574715183441997649221271953575821292691933922575586692586734195214363355546693241698746418727227454687132789993852635254925637462638441598477663725239521873698662594644572247418721751747897753712265592515355936982955634399578684124375698281779774236566492261662978448256324289493147677892757944778592213431461564321189264858325964275416442487728717623116737333539978612649411171733932595217461356296361289397469553792213858873493928947956572536795816181868197498282776333476955436134119819538257324836174778121612912872725549169343849216926967156234496839634557741761362858553275594187949285968934159335189285745232825634229922337359646565937449621173475357588292956682175728778685923448186895199557755126873641132366164643132886541942528772785719216668851948583576638595663134154598474477225462923762237521735175812348869315496762884526598995386499385295543198385637276964482832748258612911738281817493822913176882641722784491581229391481677355499571539779817828747784742466895632774651421111874441814949538991167412353343229664644937979769754485518733954898163565261227982429771633726196812157572684282424489333514114684889446694921153479313654853222689523981372476524544898184494552494682628845496759128825164598637986147822451924826618114543415283786477513595976535335578818317576113863122597149563919879699336847224334473176122313299158182765477798135342944174384198995162598168961494577884293512391786845751446464611488817957176144638192234661122259941634332845317916118474476481473335758732242933523351697235262594969732955137388614563275782831235998283586223163428645214276298686484742263458691453863289798567196568774998857882168386255192691145812211185653859686192681649653134254242616981738447495359213515939343393871854676316842751992484396525793876143773357322411458877328897974577733157778898943618441229795252823227885764556717541542422845826237925381635395948972114177567261852379432859243931239547282997963189922997921313226268786975761969852959642751173588466952438423497581555521626765691185327967296844999451392977326434855541369944333257385462183635999354378363685819437953151313793637955681938328252846141162331683377645628559354547942957181148365938489233168492286381888882617119837759155884193519598476436145928583587865364424463289733336827666894481997237573771643865556212782131119723468635698875418828196117117979215978537324755547336835545333143539473994468811443916559972276337255443679449482682327213321742557981247182828976117628948823167756869556537425925776569451667331896642284836326873429354399922991655773155685263584418747639729774241445894319558888662424486354566681268488434222177218647262427186182939862172379989743459681388896188954961277164947372239358937524318715722428711438541465257899221981452583253385239274698367278266291347462799393199457373189816425438174343252552395932221191632174982394519654673265385384347443739969311175442648175614947672854839751666189354959419792459434715771645353168463493362596339799366229644951686825241388811771696217252546513994417335216273232741556699149447877511121637949924967527432365142782683645338229415266887124416684742995427338368774362163314851224424865487294972397483722997129541726354174561589338489688379124295729136472329242989836654565874235147764895729916889544889366688292867236717697274128316233899698784416167626333634454976145115874113799561983245579966671171566876135971968272638625362369324899493889885682754615131247268547476764641199375635136141857689237792145244161514825539593142164633836351745786967418358663758112474917162539125866682546611421557848633776687264731875345376321114767135584399662647161597128229684296744173929972777727427328177486159455646433599361892624531269665699942673822757746997348344219658452598789955538216739663974928753793561455896526289945341632486666993937317968666461884846974648227511131737573227185479955228139779773854419511318845629242944929886979319259289163525438523814772368397213121926267619452541818125744554755747353914848982962862346581855428144234526414591576789346431852655168319849378434982815447422585971792685423254543623156877935512571639169373617868972659331682837889795521882657354518431488569348216667644799514764586634469483112767521881721186445896233261379546286355236224857246749955171124532167479981375178743647135236678774421319445842616869662974531387738758672265425991956143475414176841697713244634728311648179375859818588792164426245218195832416277125894998441845454243635755472163542832654647962376528994439435788861826368964191543431764616174858849466252541593636782942547823717633346481328681149233376957226888993621543489483495512117729496395456419548576715266365137866486831469322959629134669162738477858874616819761664929924197734518376645236211266557338627399548466821433842956591223975694557483965898182376825826123572936664859448246352833314826963245791174127922447629841312717922491498898579523163955175245846975914783531571777172577172564151552828169116173761816513659853917188884885481756736376639524895592279656995158531157618658128477584448136422273378848693585232878312915647664871654422651173269979279624379566521852117124329227223175481346887862953664984896517814253366853538624879167556186766171396771133984269276829428974681699276367555771787468389186544493318834469845923547466364897245466348684577958211937563842556182695453799484394377832115358756816439799548956284866875499264754286256119785493778365884791155464988688555985151977345713617154441289834332746723457817177872216324197439592173417987685451552173472114953269389177735279234322568579953268196993676183995426562317193419218797164651841372826947656885796565269414598516687272835423981436752682131782331947931552741883457525627794827712493458512588724465825683164634763897648776656883373722926379645833686354918596713174165782645926274818288946696883298666829321848229137729469148366133695525698518319972827711536137386747296837766654734394457941679243952545111665937457781475332255439584983959441176744771193218649687885179914919673939949359993962638145135435272565358272252446519313715347854199424331435669218148498831595884635157989556456168898761729297561155654697122638417364234144888874348688399561291916228612989667181848568423531621242993172947635628475115367419422619817999663925851252676417248398279868714114488493551291814633549425286575823752917116996468612643142789271455545345734369129283587755563517151473845372274181339894449689284231525141257455577456689537546868818392316951497133791543386853532452582187226937186139256822174319357555256647446849863545642962895549955518342725512845389476555918993433266428977151678515161561459583897439226921968728324369484341511252173755751622443778616839981815122487751893936384153636513593193231715885187615999251891949349542621199497167565371349443366221272372221726562988923855172673679616616678313491192366763928176145695363984224332448124296913696156561759171393537337637237476971527682588527769381133744371868918557695436112828822176512588378123772215715887767865415553479279447557927415972757287633869776621356146776363336134797974941691636131797323554247526313685544686298256877122425175786844397655274988565267398795364747265721347625471985515284798973688251184835372451891328678564733437545728345379358379947773245386121592315642666483276843166584185134254516663291428992117655953555769111766875917696616469754988555464331917487146615241296594439765297287825529178581581149473348757365945476283931179172928242995531915433951232349237427131221772862295498422535447979672783658724843472312455889585443521675546839266286421719557192332398652334138646377237281799722831696727139894419133742899762854913474176164495317579659525619989237535139559889437482344893782793355747783669513141364633892971114678346682622735851223583589699946878436578652127938277524472366843775322275387979896447774919583759281288725312281724491782628894792721582912929981329486448326686656594784785773794532275986545299758116484851121463579967521939894694332615716742989975626619487847169321799364551437898548486151766777647672927961758592449954839586351827919694569318432425616555269151741688144863695627187731247142116174867243412863661224347131231737213716946232487499722424437499218478163675713352232464716446355273168335786821933258528161695193299111578259242457298995953552772572628423337561279968363697873819961793934689687584318578244424311371563821878636856693395646166283239421517258833482522174781488691533562286968287347454821859617659785993588396921655136111961624593181238958549515997518494555814913125819664523113752592847417717919381256596787952291284915675365283117647225991911137328774391798198662472872862863593361678648448214332417493569727133181944686595818958698944715417625599956595176869627422782133883332227765262848619439598619787921123697224486155998948798767457459629331669154643436285951585321272194158153426668277661728348266354668464696361177634615427333767214959398823929673933364187362963457386167459415698924222847143378915512345275634316737811415733422872985483954485847538578931272357446985168596181733479263388413156644941899486448685592629451655218512681427152819458419444318738579637678473563488228253573245182144611457682929742546783916314598758892551642515758227427947386162841985849199454376816499118714987975568456281517187625536396674371616541159119717378821349896233394936831832712437299233292714933315797889841982712534633893386417987654648536696847119398527157744319753596964647348367117722495715589729325668482398898561618179536597328784632742522467517323264793524392654727868894545255372741882211374645321119353768394358336456473746367377293578386711434968685869475191829955784444486782549925852361232237615938367835977978343458572685344646573355641337151486332481714177633847391323937165577716776984655939648679861466814674142739183575438285152196677934447419218555987895399498966667981632541385783363782622517954741793747755214549617877827612875954227882412645515272864514691275586264293357888395571731189195444159478613382111558419517417859245162832159249184835774495979983599571675689697879345774271159297254112668417294926583889895714527927974824433724462541428888249821517888339592727979911699592373333129832871952649529688527745878288161247233375235183735598985783498511324442853442624963859328667317428763736161222517783714568289821685858554475525284454799618499567143877213663272525974934773628411587318664981932438721197358179137856693971173115866965599317198783442629625824491177536465965732175237178569998896548964561943238649347183962641383189434327638383316114389453471678629951693431651252481425663629471464324656611726964896442513449476896251622692288666191341574429898494555524742487196129156487476225551181454482181781686224951562115914138377485452599921416561551151453271818353492394425879924128153379341164393531863259241532337553477383611953938343256319531176414931291375568392616235168275714997116223668487547169566463832339949442617536379975839466539651634678637369887774256272724588641997659376364939355862934362136225879796332624638114296523725335692562293354716516925465636158517653772196356916596933485989749495761868494984632324463951723762138214152349793815349534516772974695888122971362675528967535613961447148346361437869655497757843967762594931962758593923696489666342372773768843782973143779626159276243519382559647841116968573589114354273337281864964559315543453777185316834928295549469923257425123543136316225668514484798439831184375815436882632978337169143149467847369847991986829535438732566341977849649638219252584356493136113697659512322226375519149341841991554493535636244693596419494582437866128572285554693334173511753438939786885338787119425666621853646524193425384984725379832995358999397449967245626953935934549347257981885699141545737328563585289878765315219262634355212348757735499939439255417731231264138791231132155979419962985191393262274286382777618514691299129345552869397454225875134243155977422587425149551836348753866353983132762266191284816761845569667969136241749867146792686223288873876389364359953513779392519386553171997321196356424442582419154251349971971595136469617747642957182977974922414851791464226312898985671972293587556592994623613591968144254412166615795156326565651444759988284644214618148694268282456354152425836287892651975783837453757998371978558623619287368183266846672768513374533441156864179754221376137454686938934519817761281218721444793475366616586163269381152184453671996657214719826843856844378535534177687157138512876569876629161477236931533484661216984644441476289862824262427427925378612758377254334749871521223738599664381194337781668619739882732676914913425993148799562549612768258548889279473242187232182357173827694611547769858671678792598779348699743428393159116874122889813772545785515718618286588776647714858426966436387194743428972643136868554977595294567698495658761445171577227636972732571925891824432378999642248312457459927898331458146991125844869514485274996931835425425787264114452858347839813344775244969351594677482273154286554977354368226463292217593829465751475691412157357377126397333798746114244247973599211839452611473983396629396555465446481542477775984545474928455898526671618375873216553945879358291856896533919329875268535469278153632184473394371696449864672586637746183412738796439215673611374948545776847526248158614975991385138594167628342245816393781718111959255927739834424843211171881965889371943836257541641757735721388314298589985748793766439719738548957784683246825171613583564318992761137332822329381538773184883958961774865187194956624932391595499457743249739225686978198146575519174386369261638225934637384724731958564481442144547899526888249234971317241445888566427196728741128957771724282938679379851623625411276247556649485323287258519159966569225777516147455169811715681347257535276878413819889759217231845676283651591771659534344966949516215471429476442384617913697547258575515453186214563354423256869626166599818428763188338434929871466926986727584772594446737614641331828489137494444777339199363395377116929748182358182872716935461261762525423457345432483176511626781832364598222754883189539681159223358698429673952159911859854766989849589436721825615789674959458422279212762743313671538922755597623533699763983349392973258687458591859626924148966264477236869619794755346759546252488291676647516782295779613137264973121674425982192567327529245531832889321729827864584346258591583771792653534221667971485234282458426672834345289976914337645869599156338642159937527948612188938943554318413415156659419616399182336657388617113676516477916814926671317968758915655382882461852399338924888688133661748874868188811612971747531786859637122829689559736699452421896767458539488442315865789921919474298951988622741236614595475312622426514366439442811349786217359499131365987732812825782312837666669695173854934116575694776442897755263346738238775224592125215779385527981812568989338431741227145585284253399996927749723734337774283587716595186761731984316983491548298847445821882871211898136989899673317788666754774743534233292967378946712477743117369772882976693485945172745946662548626792361598983499554957513666427977292232139257293488149494934522239442434458158486399128311752763796949373288926545436265331316675278994313194636178585196936584981689119298541147986386888536715762672582336449128746223964534811167315338862764437939225676156262872395289345687379191547242757824954461385844469468512225379961465681729282538454294315733637753321372299442177576796368431285416434643575672318877484136144675217451617153273951689981584841459195155651866261229927965358384272666232117723834626211636463771946557648319681932442595141217291745518248986179293353746767576639171983789486296521784359916459446345512438947598556872761315238762112344137887521198274183596462572696999666318427124532771327464523911876497228839263349351985336535412151762544551683598597929663113297272326662728968817417354653762489611266337924694343168423688725674681223794263586893524662443881249259339645974552783149272451564468392254652995164368375329465782621726179268675191728249176554595666164971746136296919826369619165761158922524134524585921981886352456138389672823261652658626251474887695551733848993148811414542839599144116399188483162193447629577371671299197836142341574226974799756865755547942954112424929388354838494736429514915946337264179351178452993843334726349864262186184827916291422784317273697686283564365864716973393119259917526763178455835321651849865765597163369115486828873856732297745342657567195765452636398428971514569224813279714876485326114154491312792818878155693224824128558589648737614419768189461862616454318189849269146844768744894448769567349255259732998862331774649474918933447399498284217374527465854556789499339146556274526251636979646576597311955562813328369856829466815635719256335666483378849775455716377272614268717924717673997467994611772177956638897554753479278538594692386848638473746983889622471721947532384121384972258211347418413145263574413788793693636367186299616943482559439698851466164683543137355591433282975922527975228521246785716835122512664449761613525972533125526666721155929979231627869162513169639635136123936987663568718914757729222723115594258415365955421982893964364724928867273777298286376563888358541316933399918827445181268983846877458778669549284571597385559135669526372225232479427155699492857798335446847175916621161999174743566918583289671231247136133396633122961178835947951562255583146257434331123495299255461798191615348569562612121125459529228379792448493553653655989932743659538662412755919364753645718974815662811965455381755918389175455921919996431968822413139946371753843841474569251471573567193268453636753189914839887243742158883244728127897289268872144249926131482283972589594362355768559263392429615753691137151637472486525547596972332323838989726855496859588185397327511318269834373857695413823544384324139813228494163693885138456667168948259188494643939422246812417291115923753115398239344914945655655936319419939641674855247693947541161911883856813278682351544288284273262436916323972196149457166473787821421933339438932856661198365946977979293135716891346456161664342947955147518986121644151215539514297712542241741715219139662523832512646869843913324215161222395455519185968358579881386498537961411319715529367255373712644239369399269621557262688767811224149968874834879484543317997919322317985366734573926146825416336555343667239576677279742383725359773138742788345951925933293727584795659727541935926428638889548826472343986868469891643531374155691714891487222291165496533837285346636764384484599839472553271795367824151588838891637772989958573155368416288967129886974868616811446276794589281257744121881471495813371739557552315627684621641121257329263817938498157527572574497129934215988626422162818955285987879299678439162276347232659157735644591343249246869572636541222675924857169984561418672124136283575858564562918959695615118616763348185441621316265535135985461774573915967187693155568946482458796886471179728923468353899935893481818924976877924848117911388626797497784451152335225815733694154782469884889922424814367625921398534413881782823193528281673591344774853929919319551458315565698854249321321352116231952416755549944776897912911523518648223666649826416186177238478222933288743724354842359961796428611739593755178363587372342872722795534898296121268875118295356525978247165666571458858668182744121845441986543677453318915278579554896875438585329449239756584537727394836684195948851725453795577295578125425797682763297467993592149841372741598674983628317567761544561534674439726978797354918952297359696839799387146771161956175799658321199126721387383378975444218929937729479418125453239654964656647418235275876411613567853228661492114621197636687834518839686724735286195757315187347129977447819327826481122529253845742475155976667215396357261455828945441847413123533157763896377951595478118419643857523792428124252699498138183277829178221821236384223935724939719627428311332859362453934227187949681511433627642677968471168853611641684834577644339165171845116161137411857412824629225298798315317157922761733194915434283113543137838984167366647978496687941243824613917622376874693361954957249699798461686254523748832227839789658484341965316578351462155922966714137123543181825951255555731311713395649847738223237572945165125354718673345266368115318614215639998756979375919691211979389742631515992938317377378265284166229369757841669486914839348634255171945728675624224586519362577174167538496846257595146972237825222864593275781439834339441222733719168265743675548771625735888167953778241497941628679142521325121377199139823874731523764685175193792614575762134275442798296796865934472857959365719878787347823325661745421355725692468283765987442425956871443812847745911498943274558125258328412164565594497613867668174815646632187546976625911666574743216669867519216668248214849113434998874524524189883612985995337536493754295593381541748237648391831194493832969913176878442261342242579753959859256734466671794998946911294179983555789446425894777267186574361615183916657936383198716463699759157347992694222411279716164927832455243211513643669641146337191145558778838173348392295737537531985753634432655474593965627359357822175598553999448633984718632413619149895184927768967336198328589572452759141796591113622543489337452537439389838849211353581512246388911949812795615639787837941678468452332492752314183854557494338963175214388418716981334974386182388798226946726314436823151657765644446141612342664246441394179523967561422634681194628546843784978525555698965964325168642899397247583942637224544849613882611334962164226937271564524792863875261376687269876832273542727994319336884411387869976229471969381313872222249824722332259255283293461582685566947961285199416726163919158595287973889489339811496585591358657355433461383262291758298112977681134378217523533687516217283842944261181721973332871571199374357662661631638841936163162987222977243186157831823429625723433529222521934716787128869431564814735867968338816617494326363643914591196928817458186417944297498837846446225951748389873282822694477811521925989796583811183142479149182273651529177347345538675579477684858891897521254797563919857516881769647399414773427718783332811876639358287454685464222454525581143977775521888224535768129558462747415847714636879435145179824187828382963424991734247544535833694323597639118182485148471862121443682444245143271674412486697631887912335728935982432461119662649439562933726224346571561436699523578661832543966413558591159182338284276321596147372129234943165873289821769363981982984486593978297268133159456344433761418595424129723927862485827183924863394684446548224351732421712187316653197641452886748979959247867332629274218276751557452355942664724631932759325269884928512667838391384358379785574865615851534342469794521578935319879354396531666625966914796237214929447989955596983674943656355657481278263621328675868223748294832858664835946783378289443262445629485767251739155863796923255597535992617688574969238818923563114694664222169454367137938265465725171493597432857451143957473854342389438169355898892176713187411548479376391688467665135423963915753669279236972637148561766955419665572494181243757583558142582448895944242345518267412215364418277661974117547363993114638978775441537737472196495515977754531164996769396316935485962647898884273848668197699137523667345133441723578288947859599756569972215266424341925799547423968845955561182515516965729451645528813458366417956443814748791242922347274723497139219674334446537762478649868451471327749173626482427372156992938969624521782319551367373962954739791143119239174189817982186468427431621544449758738326534169882633675628963837698521162468246487654216991283742583578714437865629939428536799848295955288864325297148881459433142536944719131559253931976899283344837298191144959152247726535757239848547542926739853524176441243127971624615287252493798432446747333485655262976995373116249793435763126443538927544844366226458824216648881782435819134746381162472946724772815384287659278274311493964422512931358993821637967995292523663756779569749793398977596658915281757693566435663551219753643151116674821453927262272156399593694159449475665371597591131879238533466494769276225964966953865617843572837654366652147632797267851197279835351815927769849555249238955847361341633497372227639653537929635758821949776887559514846447399775555549417984649588853596126992456998938537981747623852553943177576459292889862522796931324532278713633711576626895477389632748518762822978431998535254126189839784876952793693445849241749631598876451531878912495418473334384161685647514415454974721933351646615167728148582879259232556591151456227121869936849862997647742786397999974867451336535289753821449138925392145177629128894175119912714243236622483485374661171962131343656128355693128475372357459583848359174533724559986111746684867681588839192446444943916564848497534316215348871153344978352191843254763287953957381677492511675889165463968354981937776826873341255682986611997881647228714938943491688248327115167679339722516745813626447938434289113974224688267428941744475673683771182459265986779833171537775152969283118696263236423475143536622531741598114416147374877929682735797746655996581227584285133215674358823492849969517925527737285519489629694678539221662334942481328379248596457259224336739868899716621361894619539863525482279141792738717158919885136565572475444626486992681668161726163311744296635223371237943993518729693193664965372495988277426398267456521816334553949667419948743478839819543877961927757649314641523492344512217299864416446699651871914445554253138479192762626693683826279694897724533788841499648731246295583245587755638667512374287896253576924587141716545672971669274411111358153122676222419455372722712746551762927439668594921183243316851836917759515464755843956277753834425189931466741124318924798972313711713749392313543335695573592762832915833153395528987523672748922121492787915556354894241424295295244492983446961258663683912412934364452585261385139388578728792226559717214331734662519371259261715674385517671846186113117924983449758218865958456955356147325657623423218683427922456948671925776198317166398989235728564566933531351157586374385645592837439573687782348865383646275467189146295863895781298463979495114116616193371848857682888727328537187686823886662339417278999743341198668847414535475182871834166956812686326668195583769742156732212461182656445894161935138682711947836889533112417499891759729812575963824124255894774838699579736222413894229798175447117855726337567737258928724248848533994536261944648348119513296947236477994177321254954894294786419946735123754769154432842191749733215797973348253495578678552514833393989214918146692548393453836254452362751555113357185321682196531566639765175491997538587696239276737694191549439271828667289996579228628671513329419256854754411322274839879191141954639994334364462743631641633527979869282516953926277231174335922787716746429521137749846179659737487861483443436119973678433385924699637861193693499546478697187446299965974224452415142891597239858645231552787827321588448149124987388333591283914842675478479657386118458465656838196533369315132542376213667148958599725635138282329929275869764493363726338945266956863348395633769122654446852456132365184547712724877111686729323337735189759721287786854325337569333739694564573242725155678324235497457693149453414818465286498947761331544377517897634143682475242265218445285874536849117244746853464217615182534117126729994679895214765273325525226887786133813413888396416858479857514127397627896624155739666559291592231872642192516889736379298248359346599699849428491827836649365287736786768691328319982635551869642211666524546376274425861856819928874425869495912334719794364156843364751688178392672541767262655872245293911739885928994611866243366865156928897489288648724238453139534126814542359213184486231423365666155488624634832269772713138674187626587731112128994164377124532283831482493694493818235846287395577516654913243412324797315134581221785164487627648117648131568488557852391152715616368161296844778453672576646185521326326819277912359496959447898921643113929629734663257192779652614824916968841196411198276141291672163658432449961979787381319465562726559682668655533261282136672734478345492257691816824135582765293925454658427398889272739815314494937393124853531437618588918257641478689954216249898746527242986823669664984417386159791314592973239185474723431945813833282478681578114375528412872165362498256213894322852593779874391449344864244574649898965842262214138593816152596475261755861961372122282796946573189153437524441531759828413959357252494135578521685566396692516231368762218959817453983541572183118974175861751585773925873971271967465841816854321512187374281286812395375761182141239856265372863182499975983176298973688915189477527414891298617593651542949977628259648748598237492534627513264988832694444256895948299959256554436486821235714297126911815569782438919922482611492881971426384436126117235485414593678629248579172681292631271529667528531287275334353425422462328879722839547969483524155191212198958131175669597848143642562762447359355712641324127371436682736461275645798719122748889458422156954527885656657622499424266369864394882446192753882814329845731141537661379443632712134916379473425172197931382343445635362298429827935628655879913475991918741722314856619196986213792782664525654939571578176697866934979422785277124152969428214695992923981597218514689532341519998189377427126867335278382331221928855677279855477985713845957948733371997782238827387569955648321647527195397188716453447881623665317115435233892536679447599655185776318611999133699533262136534991521382361264433375592693344744775713839856288416854924247619977457729514212853427728922782678312984833334417649319112279336157345537848189843764664771694298922363857755738184439716755175776883276951423312545414189477853432557143174494547887375212886928163857164492846423249651738238134499115444616257461315477298991449249772932645481511947646436458372249442496933963955629251686514736659698291477663233947115665927571431348375832134338828484865412545569375867961383164891177617751296913588374312528797813463937946647886693924164733414749941645288865425697992375695968753816324199531181679816356641516885417716768675632512126589649118649311766523985236337875728739573393379822228631143738299162919248464246356218192365984989168982728242666375975281688986773671832554511136533941999776444591573517967859511794883769484744689841536212152121589755784147595478421931935136274949516721558995736718711223729123954635661468831591362373544444649191457483274223348465618943495284338866183414637563934727846464877663261499762418791162756381767413638667534774643649624142217848191856618875238483344656766441259233783551173811135489145689693495763928124495497735729288146476843244935354883566928945648375858161453888256491983686259976452257383569375814893159655542177192811166983463642845789344441149221126724849113186665588822815835737498673572881536973765745227699428285342529563141415789391869892619933283938243273651579665534685577786188892118363329265617176423181698477566483613528978785226424473228974593653894692459769492738959736274539619167292177916979763625243675444349959256835431396668162338763285281995577919938584399412377495994882337917811657976827134662251448661352141985783363955222437469325459452449927244428949272727639173916151142855295999816878642457636341354439838427317895648672334868983325297938659437781647761245933245665347112835513466242155637952496829521693144289893996459134263744785744948266244433957969276549817361754469873314599294111654523259214541528659188897397361793116836379222985774653272817867157649357377575141396514684469965638544171716291339979346662648119844241211831742638552297451151135438358329384347191311835949131453277918926451969179152555446482689379161685671577463617941687746663467526983948675845539586351817153794483575343626267125739719424694123279793953568268522583424773174381249444679485346485726194391727732555812749163792262761181152823967457622628988114279287293374569314166238816516924743552667914844331742633183664146272347137421843716868166331635341475976697771941636433955917431557853513279263315857132522254399864125323237568934645787892219286587929133877661923482171281298846537439626383274513519528448322854597557174381731971923765576551999534239667539536527773221774754616139976638571221888199965431691382288741587588567266152684554582699463499247983618114363627154113148277182869229139465626321722824731448524536339364725346317388751793645187618435885318848466332211554851412253622143925762474594539914145258411523715371417766119998383798438489758275225882581379298467191838713629231728867883793627437311179342354325181778947289822542549573687928426383276885776821975811169751692339537226773455341732727693651772625335883927441522584243498465626148527729463494542866285831382885646417333561715999498981819197551289813159128517447335325223867886666961772613356968599891276943519215271322555152881779686389631531847868913598685643511137199133116692581831587942283295883886196555594665614497495624192479878413862226676915554995314441426157433445992582945335854398338933666899488536628152446855566458614293121863415211253737274818679987299265496926841112738919765654462377817398872863934824699154479496276995882957149412779664911841557146623798591542517574763856892495166435175218468195462645325465951583989419135935469534165491995843932971774266793655951481379743945131198424184248722859886769953555554386783995777853731316211545991318776965533216479499118143641552228814356566113142842746998133254935359915414718892165654556772265689569999369147143597833519625173819718634537341488261421372778958828679132845873699621657723517388156957131598756618573244484112817592294243116667423627864265455994293527627373913255849265791198418648499126396622996922481498229883723713443985284774722751663441712873116484712269431694658793753749158577957253996855311168344516411268942657846431852857671921551666351515288721815989646637572647253113511383462859793464122275979281331468594678548773273389786794627643582848672359556875754322784456685768525759695272746977156479138494245619667175248736539966958697111571336933446318751646232981689626648231473983757711323511567428983885831128483963995144279812718887258369187473771174581561631418133757765383658645983838882821613887653181335189666958736727878156899997921438284868732393978783252241933875683168832952248925249343446622181286168264377168672695838389587596292917334148896846428246193743341432165468337822453267766939264396492936759431665779546938844263812885559482447714766358132558827115559377412173447862775829599291634552392598723318565946896824776131259287959179926421999569836438452361955962844385384239113655378514418884968496724136937281627467797576772591173476967685636362931678255495491637124872434959943119824453882744556932154449442653544868946129464867963497239485638994697298234619215544156184546336695313125576496839234833276798257677878414953436358721837486219866443264558792426188251898518473916322566436667175771769599336537148295848384989467432361283835529338791428726751383518537819241163833874754318447587439919833939293489654164998645477477368642451787652968356919547273898742787855519784428918863479758422699364714682113894779925881633681517877244345525883783252394462522288991424875263439655864199249258147179456861293166433843756762566262187672772877529882156622857372561127374362923891985557622347574685392628719977976529182295852299638891669557354795793812396416378156112956661138597667886536944758448532188191839596374816519873616459658456448487915486946734173727672496941868568997571152459629376516298175821619356451585447365925523329811851785429476911646127468789779755623254981671633334871648615468831145543598561774159113862397271273637876621778183873257377184992353938589567254541646462161459585767616551266529573118314359386663423857974424361662471716734398429714491632167112149229682111853723252224319829124136994184278359464675995786687981578777175918854291571148616313359127834324197496453557227747961962644965363913548784494167762758812318624923357934454769434519489618361661876577913278211561488347164121117655345562361315444268974375374938442797823854487894671996323715538798488674911799147126647926368238857613994162964676221812436348213764162368455711413484526149848215599635469949971318659262946856395357782675562582335341545919537142619866412569583197149439372975235121642776733833635578395592895495458526189372534162891339427856391142641577729124194226967643362365538574245146555757343915239366797655868463916462195296617633293957444279468915114523173744154347981397233122523863161344738962769788481682834921326349713618773649578546727998938553423672448693549373844444236171412568693552615633896348561177197333293446497858138651417513211844153296735518221966115655856831236444926366276263762216682374286721112637245861146356815832349812812975789264267782462854977858938135592327733482427692988674456269629849511849971621718565899515376159199173969111172826295146663277166962167167164245754366823128735322436122727131595721492713675995137738899593642113153123469868461134813862124215429621857633469562742927127538979822996568885639793784495248934815994549327781658827356869551831421765596253327118744329264356377254692227449148812243958473991724964275718621581695899725915865362568948698637796175146636993428563256925868447154547199779911656861451937679364718426274164118594648521386313674415832137437387539382299829176495887999641358191918137929826456834523476591399381184775656381763115451181929937945492766374458769194292192985677117374711236192891219327525973773599779772371451462282934521697936893771997123158266359692569253732998887579774589124973928943195183962518476715515993294976276683968129856416765255473769376844131932816456923447773939866539842844935568149383958342237771654847139575489316491335437994968433145182519339968972413113417349543949981913898796727927357871715197995986264133614295829517587976666163678971231549922971528215851356513499411445436422463183667683134363392346669211337645899658851186396439174984827661941994769777397738536925315852856744211167886458391883312686871354663679346871619778888157633668124479213889959816794499163427229466386565548539988428423554366291737483736478366298839175499818871517771416132641423329748538425465133253665829751182946798539165567772948411385473566135877773139796888639656984331833311977379349836689544232654536856854581494366934876299244696271856193142468851227735759118615679288381527392324196661459219667565393444964186385939875785741597926258644152571863749317672722312726571965222197461381957228248311957844355464189118193823636455441135459884173183883164426951584585829897315513791996337821758216598576287737915885417988164964522368977559238617158747552848189395183736648499114878423596414234732994657487387664395555175487658757192731559214544188585934588452161334378178532831569941398134238241478275127298244138157959262186233848341958762265961656562668271453377372147343748793358414222256463189183717171859275995316429956364262441248313229618938561554189396549552363574333136972826324243885639655992234535923214735148326768633913234576167377648943764439382683785142747464916711186328246384653155328954345926923445257786149245766541975456847279695364877771256791786132615323372798974741755414373974143555871841646919174514942139522777244238282882778929312414245312136558256444491382222342666197298742557171529458668883839438947891155863894748594461754685489269263637817279128364438686223138844296876583485211542219621913796995571128357757711829782762949529976877793468127989966133225167153649418533433132827519731247831184924666898299381832884896479586867234613422339321499668315243728532882232254275194169798313575427596617621137546732691529866296845495157168712383452484361871554193598194864892235474699776732121461279556845157575843711373474519416362945439177551722858985335265781863496392937918173861383799277263482821194884682867885254171785924214213682149115694118495463954364684952145945415714554189365681958443546829468748183471386744738552694276193965763999928582844688657164774869336525516255438786551346613988921463814537851618262285845134825759131372156126732949423925386661654581685275657841782882411975121378335733297872949237467353845863584156465153245157773416781257414628345741154558336466123138668139943427323667579125627811676478363685325581228229571251227654489647968516628429376282283958296159856596257879716424533827636241125564178766636278529692355868869415722587249756487456582956843773244392116971528253811895578745959378578165196821199179527481875712467264664235244141192739715276312136482695117422429482352868489482921279579311333372495662389238428336274293326542571136165177819732358567878332578672187585364237342187854586732578686344669172795813477726388436284727272178248618755527145877396666373489393154838489182458286653379517546732124752658794613267393234976648741115278947397494132354631285957148465257966616817942385493897591336759446185576258386626895544575241983672137653461133621165422925823179273936372375546442974966547654662754371497931574651955589144519574891848621567822816465279418355645627469415187278793319141965538879616556855562349569564551982769621265748284318264219554532697568564837756176993323257411569315141434297615394514729459495325639662871631158499871816735156618454542594699438425395857263822657911159497241172591875691862927526521459173189228215674749832473935958866163975896243517479516818283168574862449953214842782352179365213698622626937211368484481426836185747987679298115953381322794482865453199928839324542563642171147581791782564575838975238445449987165133378626297985497241675473178571797658267855375998945471687434493258964648165554357685632375614828613977773228543299753879231512372658335546389498463641644594621875687131648488323575639888349336884586531478199447819897712643211558111137947861452339981953264318117111894569694626695589715144845645624969938389939477348651134488848345137955847774498253255593287191613397771457776581895355572272222552219253829477556961427533645878889694974711454141162714168446324283461841884288394364761584124423768642519937756972446495695137283146197181755352486125674276795198617395369784832533989386865364123653177156338461659486163589771136233936658384449286871128995997429613366975318335713825594983734684899496837649128399748146417775155985567321123941825628268925538926472182284468449892627498751542168376573729654523674294967111226844371652515856113432627328329892238283423898597629881522334223335153375664393165932983215526749243461736155341633721932473145858195157662175127398482528622296114619274362763492329372233342951391217633699847959985117222415534544297456239925813393124254697131459184615596876216328733291794738645995543231731362133242211683345734277588452468571884914952375647164891634871637615995389497962666835988375427977466893733427664155644461992588325793965216863277731156145283114483679289764871543448142451741178335143999386329663366499354351174576865783324279495934869285281436912579691917846338724622931963563691668658343865626977169956391561536489213498851347933838458495437875885224999933626898633461894481768378757548799278931267337765741467222875544552355351984649213338851127571925139555552825735948832734472463964719254325787281953234562697773152156488947564658869315363931244439877751316661446366781973186519496162982648571196665663851492339825923267824922668123397236367348838235825115352162382995439152824737117527133137255445777681773235745585288382117549917665631834416845443271361913993648911183422996431646563563842196886784925213756718355419684783361838121531895456381621688956271243154116284629237299256951558571876275773234147755669254299845922538995317621285631635854737228361169571231247691553936399991726722768772685444497681398188151723988755813256674332351268173154333197578793351684718825622836348547284952277144424286657829353297815199317919359668232814748147627136966746561527439511873677339941636291756717439479356623346249393892765335977994839589714336145314489812419998461228299511125556874764984883619531448389381625313577865343484447371198925987497643338752191424149248849437166721144827936866271275967998695266361541233728334432736415364779394237359529452784856586912369287611345287211488872319919135943713636143654782468688577471864123485988354522757415352988964265493871795156322862377474169475823111279684395381517135441277558858765723133451491283627633388154938599782937965174436988316111394142121213818415737325145555675989179199379199571383687231788165173971896796652679947649716513919196286756311477369933793443633542159724245271796688856181333576771642956463433981765463386533181244348764186374249775112544852856278954343879284151559694988263771665989166174478333383579486753618296192518835658886932961425686494894953736382169551747688245665154348611138224968133689594151454876536548359655457625654858783269713455279144589231686171859154934158656558815838896382466261552857592157737299177515641256381575224319981511497258522635264291612943821961819614465527133533593695867854844794239672384536775923498174456725147195223565132623853758984556968667178324836877162336125469865721427258621197893825526952837318341944696794574764216791974683426391669238665931442811997256586126182994741233357437436142771471978166431442667291832544612649636433964918153762755998359513456997284563378444618198923752187575393548854698159868649725923651178333117566351237981863353518515336537273797711598574798948779112754469638418346194452245113812976212274894637346671794293473661272387667921643299368577814151167285841532695824839685365769674472865828178658932788225692557985171652458293976154876334489177574638862772968564949463799695352594381547533478662598777636941291527552114441296345212763357366317153163495415949449515741456977673877117547921864695177112799466544243985587653923429239399225768182261727573874116918936947313129336396954239538139721395935246258778463674526327198228619222647494139386638359957878539542794334636553215829725592335278347669922666866458328776899396139785585632218743464331829749332299646119229983228641622484317336389789791688891754715753263795213289158116885941319774991359771889784684172655675543932956914892759927434488945599782875565744899899521969753382169146682155445214166252126435441444982286519921326831141664917931338436987878711394387442732425456288776453223252469993265497833441227742964267314213429958731955866639724141761989231115987962458992874377343332344354842546681571557874596828943268643696254299345822271853746952815964678897812393528593766351439935372151742871112952237652684575982287251336436612623377445782379598213235768428489726459927155983793996562284132892436237922329588767313522823893935557338459296172793145125415686242854788517214363677988527886599575843683393739986673514292839776269428748912798356586815977945659591464144223947585176573357792651786189411694343838485799469534581299139187421614542812847788146255157855686646971169233892695319694388846499997892815283343763633941824464242831911428743997169354336651974146247269142222927853374738725239843549342562554338444726677189152296229255419622566737384992886916516522952724858431959447436125566218393474758591585528259751397717636773236985943474188153173753496972275752255572889674971145484871987463586923199156444447985352349985123724823828552896573998122118521672163344188367714993794894755613818143531356926215475754118578758662895829411929566821331977853617687168998889824416438436212452229724613382364714446388897933144916366585611969393819688372675155579237687573482773621558694989546358996652891156317362911418352877566121318214834659759781614882438931951862244598463331371758981774678755768917843175193167955913369134589289963259558764547947263165394222297412367132465957774968497728938667884495622126883178927788561336194343795816583691472149876888487711971459987345373375363741578249345269157861388515121284239154966382386962989738231248669665849577795382578352164177833879264122871498436359464762444722737147225264996522357734978349412115827232529161295876262986826836398911153959968455171268741322841732736921817642148155827747932995167659739473676472843527219417814667421357614241315657377216886232963887547851881235762462958552648926669235312325791837921876929721365188598719389362853838421381397814643424332257243425256384412972336567881994627748363781921218341986675564926689415774775685428416963427718357287753129578119849435576345961679334544572373146168525138634681594856293418523939879363125472322696214445387589365382683111342411821354772428255782839221244274245178546577492769942853856264477884737385923288972156331946383962334951352659557652384377895281313598632787632387414832519917938377149297961198738191249231923641335254949847719419422434416779893217591474234174926257688155134244884839243549831344191916417722119482384548511545754844474245254171219663494437813286533845359657776631851292883991643726351215772333418317596794748821545464821953383193852311674565518833315399527617981121177423863645865474425985784785772413687942437864396784342518976126484267399885394853275336224724353658378355673148265788398651175239956771146431356823543497494826611277279822846427661899528899569577284176349861535514455334278126734241674561513953487899296917561874831275124319536215125625451348721737248669413113524964499423184157779625565766917293632574773277854716262737318937289335793899674945559722453135852785354443399673937998134246619877292444652529622491293425975952661714178211171221239471867352418478775686583614515442427141271927885252791951291625656259376367145449618693592554918533459185787232182839289324624477721618176798895978885717169595165116924682461857635196892742246757338695821794556965535697611375998766237296541235678137798725224989412121674687244947617478789278918211177435148532293939618624514325222854367111229392262933374695126292427228121959175268584854254753993694316392298724463836251526715154484913123874218382996958627123451851142329639567656342992794928993195237989934688212312569762551751363961853211922241286252296371396583566676767871787492512139158796942598174749617456596798693462155294999353223957615274134271474783172996226411169676969386213671877966578128234179675693223379456142798691412618666225336553498992261929859111866467799344672361567568443343228854532365613837874629454578799575826141691774561911946293162918389883943119465456439858154334152849243333369893345229923346631824637959375245477887888212764735297782628223558237825725882355765333584395449353943425913938494836165374818734817249638931761242747275545328699314276957133937211927462983642562777363966258868959785873146272348164359875569455224699893411534339745523868883314663642872724146191642738527746292455522792196715759822662235844977529597797266739621876988472667399248816432195966933521346492231145715457656142635775719448551644125469125728971357716659494458741285297669346359921584412746529438946691524148121978318572124156759318369662553549379116317613277197923878923367393194734584691418191377268485114324675923382312229156652489889119567958266387497492957194972882827513328847576295391999387554746475796479116736254242269715178525174522432184518822927987485236633974125214563345445224962565927215625136472795148651945181573294644146683853346292185593641949293696264547652261369718172156865124639973738734859831527622297798951947118772157938871542661329123297796673677369146281345365266575144581857573586185927444869516899258333979226725217941236165645669483561472143664248269865329875712957994298554866583457979855326412111529453728477592299964585225235286921373218858976963321733244751343469689474261857177239353626641876624651966949645358263424977854424879875368322845652873279855297573451885616789343321536491829477692689151628531862894444414441119268262122775742921354684927927933748731916571562675834235925628871753753499445492974296577138826781964293237566653162618422283651656165467123667873934865873146291696133744981676968334722824534693215478756624219133483575828176486823677339558441588825416113749421677491254988946727256866939961918548553851643214839494997973864727462646699819383322621397583843487542191181928139381229757132269924123121912815723743618391426317619891999161532785155964995635385273252267219387782177567929447853277384983911678786532323167732159766965345492271823844239713916772467792221447318591914774174651786555667681222171151438725279156691147896726813817849612119823572675354725314673356326316196454511936397737174419821541141685935137647329826356246279274233624236871581473987591217124537698191687546673879529538239673332232279933499575517468371237469462579451688546186623449452287933279914963815423965118943259842158848345425856152552255369343437112934366841345589593128842275875877313776799247195487269476764241869146615528226644361388853267142945595946757421746864537842456639287572146777741315658333466129827674787354937156511433578261152818276811284888537651816723627817624293322599342197977638881579221439751899623823519163941987898732696675536827167964147235813575634191644225829596811523883249612921964476856796476337516729679769765282665345863485135696653437313622777382767915428878423655375536792321587286627413245499816368827958996594155784197635516942824518387847252629927679111614775135853636231383274931831989367659143395927945152445427415439184987326697499894937479111543441749559118747726229855855798932194849849612373884768244623415514987751611848925481294555786246524298359333124562571825384796348657463395697843188169597865587343978317766449637443382967415138326145711344287839157243884395227711271294613274179882271498918679686615955172579357574514394151818568854359496222867327536831811766541755675396383193756238328374836791358677214493668289992738911579695352962391666374354417296243192425622651716443777117717332431672223286246778145654425237279236447555268745549913444847565577919664271845498288422715461897597562968151479397128298634524263818194789837755357255918358675855654123995568983598188713679145519892189536324663452132378381721699617659181445661763891627789749699354251295759726915956624677436451766775241112792376946384936561636213725736894822594223525961124533794367746137266568718295296549728135797319916552322131548982853655934754645181391414458246422687279643996414334464798612154322837782971511833367635486591912184853859788771986649277735726815279464232918997652567229791471798724146247136881836558516553622484897419123682574128869413765812281821821179235536392233498778986877858955857398928132451136925492185979454183974786711723314754861358283591887255625687917372656682589748726332793361951678843599648513464987265381384342225365318258483782397716744278379714134849577846974744317513429298682175912795281544764524745664422518999958566519885135599955485536425311157697475987436331759212743363368827653132763385359261344559875555199492567776292127131475352785295134269936546546258276519778387679195977521165678486935892628376274662413418865613286776736643269526755885761232439996477932336287752321786887831718355947169777441553521199882752665159655612345389541641517582637232196557671999953997856594657369468913669768653943626274638255189881156922686979221638181895394372266757825412213376184173591827133617388728849167555862911192794944661442314219864341531531698983348382412722616139172114162859174882922183343845742842347432437626797816129483766959964715838688268847448367533927813273654413228811634461993284874181355685996786848264163381678966989447946594977874189317463259658682385924311987395225951355219968275577987975713224617622132927835372969656926237586348442633325731827762353776434147871934265527619365499767318693379462867329188815244219738588625651737459246926539841713652322876959774596297641624674839862148733599747456229269537999875988749189852696217123974664542848621619495553164765952426651734585556484838245499885825571543882445863255967387375856414357645677254368863581128692322647391757562787562811822671783956665639264342987257248485453646113555472895893617321159485749448583928187576735456541588852776424725524261633277822859644891343694255461322538399474347526651819214649671832642579993554117978988343218182345493272436726524423236337245259778995236718359679873515118533481179672242167924991232732574691618565688774475764867838975235385232598466712277643236122544972475534461939156711122624667155292745172154158629521762237832359413829824319271132188212883198938319291512328429528348335624316137145275397147979892534185415928621238758351947827979366696288859952726541544315891736486995878674745388332743132294822421788655838465287341453562744965934788271895323946162326499776279437244233754947643764313369777629333545818293856212542768735385317551822641825446589654426855374118281243115647294959381866283683381394614968677952881965673731159978338614471175253247695967862758579341786782317521379766441416263186154622832573589555979911636834438788871927366319617618659132463132917918635245115865529522647859831622484887398764125965118782775725853232851616917383883661827298763975168128618347525879842569335523128829671513265641625669582143335125972922337699641196155257481882478569683431394394889314151938255912879192121549937757151153957547623413624568441225829934318961622953214569394425796688919784745939148594423753322881679438712294198747189454675853891643593612911875583427864358528481721872962159587738595838669416568555652755694276915486153183728473937192542967458986689887149986379977232217952649297286899877494282983193787951861577166933762189167466534238395251956548714912727543996427237552646299961359422165364985717463426935921855887883427796267892134626917172569257477147753332534875374162227131758462236458581877384691811492577323435969728794423781762711847668811396268846277555519579664321199129725418935769221177934344253264926566367834834742433757162376678224749421794266298563168285853563947778857263782527733541125372555233117813171223975239321846181492692372578699786318139113699649899926173722789329922722971934713794289462631541433514691683962231539575627562694744193162247359493348789545515878277572586311239363232265724181817644792322334159472577147446535279648769881396222378862696148565429295173291713739625764368124556465772971942324165639956667111647923211294226522174959525125187778188197528971166452493794312978777677317195919544674852372468345182692492792636183377595631464851821149218361769986625988124389479463483298275253815413113542378315533752667173354783994237464184536691756553677846234646372579821489453997354947559813429565447475219598224617341211542398822558978827647987519531664783565611496278931629369211366744989449388995777838754665781345632566484283659433296553929944396541179597752683882447538532851314421369934182361493146888853884224251132439555694897475251438749164166299154592782528934967731626922631435775952193885271743714496457491857243341628236218479818443272266779993954866376214193827934138615595799165682292689862555957818357726612178287445421565869539354135685792519243765612196948964275623272433345592162159643439645217534666789349334539484726589191733188666689512954892153791619672971735383143338616722182942997184156675887299958621727811918617912569946655541492363944933893583638422977521559675879152432578732673779421455322797692725863645793968899835356414173344721974443538427399823464761984355443775928759588359585951948373816984574349276892851345339167447124371785682371455578992896441133558426885912946583362342984987132974552931125652988922119597119286539533635181267967267117826635278139481788695381116716477949456269988156915334334813441245979585483277777381623813246359646584931248814622664953266881743392684697586847914398614282265584641999647311191329169377593841294184956775765787684521359533541949244711376754412652666628773856779139156529959924279821797862438341235686661562888769738414647479372739495441518384266996351977713876725248298926331911535522182479959464283174696786738181289426321255673869239888452358367218738754219495317296931945872581344117427366887595987981458595529729462286764493891598623362713674628636291431711759511736917164415377876928199154994167647344684211788479267163552957611325582983961797613418753736576518155244431399959291964246884434128631174982987797783295774925327171186375553332891119667967488286173719265477567566432917754552168339344771437973695795359795819732755123264769119578913872362244498819114389379227816184211323652432232668575496165663183914268491523577315853349816193374799528668725445938263143641878246188844625259541456649812889692381174435749683737382271458216435432865337196468186292226847578112287591319955642351362955592492519369391174437653688873322362421437345253695359517394525641772724438853192436376995246799757727261944234276893382895364239811516499812238796135314749152932972511491514283896215579574666653713742882211489999556383647283363536715934863752695124376985321563134415882156115627945533154999382632119314815355958481685974892855165975455771364113159557726919415891325792628927223166748238169547669138299991612827471293919753499492121119969241877877266141379218319399295198174752367961887797617536455854641115141826813582132885429893256357759732293559663731262942266881455417537762626988994187313881724255916563735213982491219387358674163729971491699728739656472349544715693631788561423288816128973343792954923877819237917419396529688774265531322123713543461913961637953486417528789932368467543616211538968628486388514349984345864896692453291728568881879294578858417542752723668446433342588462292845129181446269792934182818127211712629643267137228636896618328378439374489181713664244894624432274182328237317563976354695138255454485397928663859373723326129554892329112767142868241572963827286317227373177253967913998279998528249877273777964654853771669312225191618875562926392567512532543942191777234325944989648772825918118285998228692999842618771271982618287919768856831989857864952122939728584479951959834521815916189951798125119293975425495894493286255967557366653184524993322649264659294829484673924313535777684149867349276633724144397764522725511334251713174478717472714785336359663733939467147774934311833457223575777693397963356676668983514862227876295782125672137926266542553341858337427974176767473925171383277198739536834419136326713731958558421463144385286718478642736489122256451878286856583437581938831945579555364748485628357338122995442486812275913573297821721829464582162379661796116797669749686934139346112171772231896769726319511425135232298211399765726445286238639132249869988853335867376898569553566543531216428893529198854798943697739738371159412312186354158496167941777773792832839355758488185768745413682654735669235972769246999439586641924489492889956868458371238783873111159227112587321948951628915216219121821959671664559521391811321322292386133298544485425485426437546665277575339557188527857489133797114741363127835667242861774842542916932243814471183269236519663854346449629156955362174624579854277811762677262787883254512595812482447694329487966362621751231467511359681528293829871955867914653678636667486767745749236916361627479935664239893356277768374335962865311623592716333998725947534628958199257338961259929414257517392192926658434458249289593243963162252726658984717526575788164371475545111989358199546913899125152596115113928637679179449359755894495994376937593488323136191589939317525128666995826929638676558489131531386865346848881758393131932984112688213896675738558761744931332589291479936498243917972254276324134279162592315594382396613234647844848988118467875913564876231814277975776411187577733199623683991687154584582329982281152399577545239577835146934943956176934686188945526921513896191797379536145838479961192381881758476328822314142937127245323387134654436655959151752576996325827272614268664577543789379989371987147344118345199367384163199987681315615449848774592817217194852872332766659436775754563163547615636893367289765139585881934684247737952651426738676154156314617479964128141523388984387827388915891292996947165954372964682472761879868452157543868955222458434591487122226871156841362486228667685386397874869453477695227973631158677355731565712461872569721725572396768814274399486631493464921949515476793132869422551787178162123541119292387228362431237934224477367277415916742884986688891326143759488979543622919566254366761935873669513765855781415821497371757913863237522189929589538146121712887189841938829757719513114173252869742734526482151992292598814888842114455973977976985234814292875165498986174869467779251669646142572469966242268844858893657259497533427942147831295964238854884536667459554236144621943727985248715549495797319662744995694217976529358738358223376776234544242773717579294915242797399653957133384149968359652731459315698292539832727532586659683624972872834695876538666212169421617775866136613154819531526557597165449151611715295246287732561167511495555526935447156737963978528567192543145479274746332528359214793846249776683947579629355255534727339296854147794645678983435896428336912315973337774472724283724556236256642975632978249557738174686211865951424519424259922828276686763258289429459764766747643212877183799642576453727291855265442139218262398823184812876391724826647553672453741121298627698969634277534568722723732584243948891227851296967148211458762955834845529539125718538663337522984468711753654125766522745595684129881855991392767328483832398699577542931959125846684856885644571334426412313887334799487851298129441972192379912472419983193894847834933168958185215113412681955637929336221928538839169227211664356277788779513395291112731787192528386153183222542542613762471421358843141443595538697963189131155838133166394857516212499492486879772987416871522131261299438924882869519177128131247266998689168245184991593314318814513271275989378657795825345236576894819487323178738329744356892479759678319695478298163387766893777624553392839637433641326896273745178417689543284448569148655827335166723657764218843857692183715311762137782192886259729827187627684795464674742356227198816567325594138475648862484983864318121579873719163849176464649979761727684754761944841476849636692663332696172964448385968821471626858998495589824642236918144186661359188537428772783483276674339364262114745413581818136673986811237327781231478459251717186577678311969971917742566536224872437258243939929774828571182458571295919292182969332177165298136256635544552746669776473892685389753396541724379246873161228647522741385246463386963167289133685858866471915244739146754747915489264792683296669563137491181538344714862179736672874513512444277647824932894451537968218353669414186478556881833618429243417347546972737315486647478282423145887485656386615268895723854967445273537154715229918478653148671288441144514826826653517711478485228222663944524179329979117745366167323516857364184182972555971576288447923747145543539684171136735468269432226669812779176977651187812735946493383459355843697615384557942571617932765359517167695131723761739423488812752467216719771156919841278968233378989649416419991874781676489616513457298827725783161228845616256482199871452921135147712362976424423399433514415929688625892332563893645876317817666537995927274554716284715385141682279661478722982691861388793641766622759521629768654672441584559111275126177944697155287246582482499991497291459255663476923152289289229837862776332557149344363379281963758815436572265298524741669765128899332987113513354737883667968738762758557818933314172237932815661646482272864184472594295375621784232337414721148187496923474532854976797957161869517288335767842228898483298274124732564929612814683322631457848221366758617787246467638553247947174638378956651286738684896479186438266149713611374141329856754396122615485745862155286161735164765816343727183297715221283687153533257527126235996416425672387549845585397811399831561818145887772219637417446328264345948526282393265885528249954377772513139368574162513327212648415455658673529825865286797859781225779446677658144542121796663665122155522376278423524683257513815999551678285136488636859689961469394461289671317161655523598535454899916764783489544894154996332799699255624952895275688977519679427442893278357774332918667613455288367585419186398499264815159667483131459446876614629899315259987278224157745295646536466872768476377682455774227861416983157884412179394671983778798296391178429425445711799865735545174261912853477756815891364717214629599784911685276746772142752913862731121178685258725829984164459521523539377783554135834249564425556697525283348642133436372623157627469878293965177419937989284955671557367453959679662469277571938973688333517464311445453199282978136958288724244287711911827914726391229981394622372463344135596135145943963333449685899213542145559143438669894742322232375478922835166822791274416417545882774856351833192118438978612191256531945926325325258944715914839562566968679211725418878468741686732336984893964394282916789738311533132411696925332423989853683626928148297687229351648533881251751455154723534468522274453467423546952324566993734849384539361414198331665254426791628171987937336257214628968538589485484966598113713175859793451478996493942741112317793763816834734352436599591722481756835528889214356896755826954928511942629539953633217688274564314397459213297451661418135472782111735756954689544585377813981181164528914452396753271752149246252684383628747412618683786681314452681942715534595452529278197423681574645188447762823739448279528665928417249816997169912738678424815646269241729335325487253174443817332234295138559987691888233592134357666269914892551539353492614939694211191479515667683721862354222532431468319765423684661795195247489525345111552799955934423936664514928539474643538929361544119459851684531774936818643787197933816964296274665236899277866548738313633248614916596312187632494224376589349649378718916669697918335874897749776536327962731321143629997672548181712398551582585647526374426323383412356213341895456163314835253494518127352421864561689163576825355167892934819255213128365855361866644826116121532743668942568554118581191781634797953756892647146785783652715174778933421674277846214567647955421114354492718592113358192896227337661981162899999234934112624346991999895985885787179489541875354443333721217675273291944131455789913375285832458658653144988556556663172464498354917111418254787453649776124749139738867773951674837895497779572355229986171137411189628285232356668556243245975974734643954179635488893126493981353617891297169587376577116495419779348458154993729266876515855811744569463862123938415955349711864229155231332525355749373233229521426847961111445918825247458399421813688598631131823327161889722712969819562664655866463541412572677647493658812498934177127364439184822176867186978285987613944953334431116725392129617267452846168491511173582683642358893187583332362368616674827133722918666887994139881447738522693883648226996397175219771622781968322132612141847347225276444449352444695787661384196414157489414547896264939867356997291838778123791327719594319818417481257958237259818657178847678316322916828532512376973656413233764755336188228345931296736148394777191797428252735853315829638995614664395229372756977558521399668125545945873947544288838948814715258533918292855164856739529889384137227937212727912565525393221623235828538599389335767296527568871362295954961794369988539265842877886371667736952949781597181157744361326988673666635684371376949466497995741916658115341458941867416995467467923724157282985952681279616342133394618317394899856864814337539648918728347726691275555888521485275936769539178985541928761797224616272133129828462452237297818278776877179151886822133742422147815472188183162653745917149242833361567366662726899381184998271315242967523684273291197586293222736822473631947366365913522743915477524776861585122512754827116544384661337385776825179462962615934399313831496988575421515665257565586678617295153584435891314169598166826645249477721281121515454269742395897734415513423554888314377386766538868329559885173893328947524155842662417485781979291985736931414651899437896983892899351953893357326268937625894983818992282415137643445286665953243832158298689354596994569155357541644452211235465165319214538372236679781783338635154975336153364721778756878731135533954458674954122776363225237678854288144349749917533744146814678997692135898898531894318987245934783885374152914984494182895387656834351655845333653969949567232694938984357869224491393239841191483271515172983412432753637726654961919427624755988953314966531927918858499874362157386782433424195878618585921126643221353684183569329168568559124345379527825161982988633478379593939872453958946234996233959998281267292496289793271783877767675771491438946924122178466141697255183126818499791898644237297913421711282131999979732155765455685556674776875762534637294548987432898365851316458721529863661284473299573614347919152138283291538747695855268968864866574893845519367752268944829196742921394854679344451343625623287378397672928852396329672934341158877533625411549161928121333428196849112642575572462264285527237891791853991447573787996537258837896871169993641818597141754546226793717787951921761564439882484963232881585577543589822789837223535624762219853191882151943554897358715825799999977172164328697432283575944932729527523943792535633789273565736678429513872123476644561616279746567417595686723487623784391173629341998547129456928376585592853676665518219944644362819358423678245576487289544969959973624861775321859567421796591487648924181523696533274134783629473274583523772325521833192263191397654896163283645618816932239269814282887916368818598282294229189316575265799479338236255666465394951467837773695417122577123443737873445292461811593631441774937614757367483572522785717763266816281816445772822999359926341722439418142518591779615696129281333163867997845923862322822831853157334923617197374494586658534737551742992691317546985548482664398362451529539384982325264228557464619659592529717929424745689325676539479521599182923386834655212764699642589598689818472746257422681634771721577356184267782413571633888951887622239435292333588531729614592244355298518731978722783543881115439849699361357229287341528628162935884711834546454977939772676778156527491844478765557334482958753494943126352917553275513697462691993284717918654961421679315454453751132822676961912968878424757913925186243638728914781512876576667165579832613583851892178625271987443326585633997986173834351438962392839492681378976267571514411429612532699627495929657717147188948181349211949331286845559256941749853773656478496871435349933915771947382839668345278692574654231223932124179892419167315561882813186397694474613528238685562651969579237564815265967725261325499446258814385699195766272314632666372262479939838393999239482648275271327399271819299192939283989416437266984164172972163971358298732547935341647734731126942851534667361684647311783674377353414761486354618438396554872696835312339964324156885539816866458878191876297593189632513198633429117995525254362315464564315546447146586892227448874329548983625328866454666399986498242149391822697142487917815434157251179151298892931721491834148844741544554443525597537611823787951914459682834472135874766923618797932989962319511998363764115875576754651871611799524898399776223788252228289258119389218184796963687898696522312349159768127713971659419951171294198164876436723677617512527537835741228651212479231871811663346718821674684732635611582647961541422378726299253613761715591544575682453153977237482453892945382659884299396918646872961254672636615914833422175753749754119363822312685937135699863627937944134255423914596965739992784368779194525725164759123112271517364262624175589944855155263222848254315622169953336832346567642466787148244238352934948694348374941544267669494486779539953781973137454191939467944995781958955347982381383218792982459554337752449576494615574762897741964738863619258618965331411174169431217477381242946468498494799533643278896791893438267996365327561676466936824156862561186516253391835427898213678833732471995124197628498217475256528555644144443114834644371785236179423726261461753117334492724411352533138264137427159478558889714955267963365916691538364142922396722517734224873825741955156275756786558869247429783887382788262841476263176718676854671749554727764369476945792377633696541913677994941435994111763931564654811699883924313614679861827373642791778869389549897873854671734893869654662525394971255592574854939893248479918395319759995379673551774611591319739615594921977222198448486497369221658159146758856599327856573594458254157722596255176742398437753576881553692215612265294135691858435579738748397424832234793866618155926789518348522644913288848643134712652474316569868967859713915366439576996543418215888749128545178934513255386116573357249193591382623738356955492726531339677585746829544139568631272214951798263833677988824687594714118168983155413191873341989459759656333647288487574787675529584448971325133761596855522163921454241262664948987563824129329445758775831214192738929322343377642517889911398462254185318425188238716795625551776173484225624436217875347783758256584815377729229897431188353168516887414274286265796794519815565254784199417812372859291171536931398697537118335521439335377868878637379189813454386218635329187849577574454688916525477888886561517144478846636187624392179725666369617471944642393622729771246753622459453716835195367234246712963287132492974484819521834493599798411438525943323264247577825674314245196591723938441186757194534848457997968161894891565175526891634423119824793162118524855444585837236998466663853594978421769342863542378834218457745575542475559794831613923757421866391346771651832883174348978954663696263237219487694927724518865124738151761598347739389631516827289184158116931682521473434994613511724525216174315443675865316557528869379885315758195481812455996672599486817371161697688612212668817656225951967827664334534599379144556139925715352684936386323225579162163423947296588126636858284189375526721438977788341914733231948589151183871547261262523635639367272379655599324239361534985812528645489948759272197149446827968822259242127924934637661252848518634547748429622174629633796557399653326148918195366228488843562426647241839639155666595288434665229823815867662127666184726172593464643129784885541257529126274491855156823291655668319222737156132536127337382747667588549355957999599222959123779426269294678277226138222123389131757656912738549243844955264176241895395577321233417792228534148127646983714626856525646398792594157744914375861413866584344583797462752278763782977425848285364189164372136415682333616415849348244671674293651764923553946959774139276485649714996241534139996398115743217967466981933345234754554827236823668256248462884358694986717389545348853689766182851258718345388612596764531138323337187821348997157712954967797919517378292881695355441747315985845563472569528144567531259648222667795731682585731473497351161216885368236464746783921645541652348764576213475144234387741796918885132632878472684913776655245913425578666592651141398863276767998546312859915918948714931686386139568633633924817678159128737238273936287588867423218119873584382684292839625467777577465612941198417681551985652318134584676675415164919117562781584822188745375771262961627774723994112974492977973168129786257356756744263249946342144912526249814477783917791324417797848452322758426797475396646325189733964139869439167696251871379242436838614557553211735712738542573255995459194294366726888632788193582126915234659122619553621429668658349652916927176932282334288844657522622293899582519722938713267829879189368317467328421291416178865863788519235857688696626333928485663512434819467126788319591438783934166446372984552472331353231513728352778866222249271295418448618533799576297312128147677311271823183139648357359262828549546537744946899625351266357192846398162456945986311337851559534162877993585874595626391335278475551249388775125576994116633569814927846713214651259451912247138428112673892257352396386591213945745893971296821859478937946239693972379488861854882563156668527725841769435428796833146513353914397453386737595978263813936327755481698261819315222491584225899427385292171912423452591912399232859368566655686831979969199911276211947582949522519495313293199619692449534376425355675874183953812945977394744358724292599683964256734352626151812221361338623847591736987582562673718721483667415478866524559727986748875242771318185645989852549923819323389411318652141125258951231152379329249115299212626412434328455376381299719628779319441763487824533551311272148868811867115786238383414421514399978155755234837664884215256475472366741253536281578899414951477584157172325833879668588872918667862578691173351325163851942887472628587484718649154429422491237388126764125878783215945285196725526192483879647848343741249722263662711986949723446611614675781956216214718669913552523879347341852562832687686741982358271714788943126284833415413528326496874657869466849171611762594133599855639475148955995862129412761546888725228912491986986927172135613484885686725793289871478589941277556113574933151938164713715613358858115488693686492762932592627592291739478736265331533662733361589542478142666179131376447674711665782495559257159186728465736871349487833747542451911847329896811648429594257472362346967846426471112951475112237351846628259787787872818217429944837488284261838516696527248133424252979386468318876517221923165569666584129749527167769752157584448986397261212717583357352919343132661375485665293427153242265458513541988433942183787191296641482535523365558666844533543996924976418644179934417759983271762157698462769542882546544651626812671596571425592545278543593184239279635766295258766598758946359356228683383717573123986779414328841697826176722934121687627948822771442958419692813871532226187263217392132172252448481613112726937665767865981224952192292263856511977763361471756866965181376827824589715741896471877366493974654993873336415842937764293388743243328541262555648313723852725128359193118252726555816991162564287177387913273726387876972127435143651452567849457245622833556959124259395977823536987259494989899315234621412664242966895293963993395666796861365351939447644823153527176661677112194938691163267317925671638438526928677773988518219665637459112783559225493243163929472117916185349159588713998399236346946545957751719678878597591124617351645321481336213961699692953666531152998822522716775724829175627622711591543713279742233939581242393352495666873746867969996911231464583147525799364961859549553588846139772249965351335289134462244736614727613238251668669895998372841312961264988944781668157875967987173199486388657513327115492288885194942468313963285884423531398618981136856142358747178311321189878871444948163945543373394392278955978363168252715832159468585369656573778593652145249165923448213751117755111313636523914237946321311985475396657399488892585116136114652171634344282961118518112722165263134558755942942782582654751367468713587961154322471635891815542311547244257569686647926916549579414227532377135688481879414459399621353478182649567454494638658529545772689743589325553926879622564842199963221132586778355317353636735621731844981557372792525777349781764747135289817986127583216275142415116513594272773411629336749879271832279487553784745677231197124986993939584742115661274284875274773855893267477823939248535942418583172498934694887812653256376925222341132482778358413627244835357481383422698424255526229593128756785126375116531971583443653428986598125425967964893236392632421969651982477253642855473535666651516514549365518583931364739384435974328243684443724749912949362658979883149483664928828122137292988856159197252644435335338956945829325213837981322745357941645925846256529227149322837522685166558164796627321252424166223629264169339871412426547843454615519715737615645685139813957497848728282832386744257237421251834695523516734297612224855859842292733882454663323434719385267486448627751127347589959867374921555326982982515363268143861243387617395384544969276878254367475136765272435711727314118444171473948465597977949668969712199246539365824519294159855635844648281116587837746141916468842395924124761443915518698244938947538849195148328879539443734638371154954456278155917842124376192186471626233937427281292527126334862823445627368967185137738352636827141413248944532144615539692362966116329112555567727379238445549231762662896242813649551385737741616862941563654997752871333186156633725671835313987164185274878442693168251562859555853379746581549645558585779624197223187724768631275134581451649352568239596368365767216239284118254177936552387863573175983293197494196641778553799897475694894643941514581325585473911469738182375315752763322758948984867655772212677754974138823711186752229339486241548842623993882555576398247752885668621918187222768397211785863328179959868479535355964932417737524428494231184618994486526198841272111423529769668996648246929936137168319286131839473386878762364969789597199181138355922798724198967815415413416249632881562861757337878399549143994173118294358971657476239123312728919637143738783521132944364425216167762934812254166359664195596192866859339535739463218617257746822416337269543477688458262736397437958775628855523267163235755487173849391976427642437659114542359422441447179643866539431775988731864997795558725367118266555327393593252617478885585491945466175434658818454332671111994539947461734595328741998197997431323958819259781444533322929742753947737753619653995127327191356551222886137192372873494213238782713971683272398476625125348116275353419527657584154556978878486821141192766314698143639426344826829828984613963776929759473754335125923363559726316282928384616917518723168939551257359177437938677459755446381316931838561363129854728152681611213385932167368243513397465324334552154169785518768177613234557893897293161611486273843255699368557367572633661187461575924959893529266428664671496453855248128369365895551817836461645158959776692971425485168513567962766733272468419747333973338924188661978294943727538626847638937893889598982263894666159812715474752691588694774149643633883239585644673522789193966217575797645197454596765663857378925494957556292549225571756574366794189735443487397745819456772241648421855283793566946871447551415256332638918255847425458283323747468432322137411242786594726188734676797881531654711359621229972427996675628663942967829939827859658315766433726992583485457143896637193645795475434661195788978531128372652278611967875443221963964782945951712796484816237123329787772366446425143334945646977845512637259781284426698153749422863924628696515945495399663413579761122871511814443762618748195969961158188178412678828693312797784887595392142297879737958136794163611249452461258921795597165451522545469515618319378727323858819863488348799529446217949214884778117831689531464174756657945411211783842783739125499155648179289267542599851653182986541447455369112152927972271477931865598925814119291887195933715791149941421821649627316898159528533425456428471333963632437279922153577118845968253495637454335438665375257643357587949673996338184611925678893541334291588922619179161527296559472781828628789586481522141575522689562423281147685525639687228276132263462475133584146893515222834948385422824151454943283614686979718238329625659932259399757344323936857718162164278117973697928321896566272367774683471648331251139665281317974231578421354357359215613643339643688439454768383314765828949893252984828285923333598178773662965153424132423646895683558615691194436738979244722279314265524623855437225227478595525831373634819342963464112851312884811163433356452778177253182268548444687912555623319925133348172925383863917568699571983216914286614981271826675622621821511728479767674765422873134916956937754521287642174341543842436938693954972525723146189363586177836121416558929122621655884381164664514258859651822777265584579745276581365229381567172429767649257795721143951815592743619262276836216311495575134286446352468942561281129656148456189614741643789716726671275999598448822965234193564221347736775429291387799998344756688359816446355363942841665921477312182625349766949233197578526336444495928883477371588236186619233573964742988616654467965624446784879234221181555872568819243821296919232329373859986775689861868569472694421695684151628514589444281439662631999394355195453377694736683644743562897496841168736199757819373538698347811825687286159631557798658471962953591218613666611379135963958142291211172237787795697183377172291312417428186755125823149846155275216946745311621212315288783299711384966487348447577975743162943961356884527342987674148434538823848415766471578235548371733595777528184621567371724541514753229861668919166772754288239594715681556346332799974381294943313761815448959139927345445648869144125447242255145769314767643446847281995119513989919275828152635343433843783981972788261175228652884157336624719778594499912666744249972523773759519747637883367671567617875959988962634493628384329978755259147723984323584212644531495998883564652173321641794146184564332487732938251395374677265521844981664846769779296442258619674171136311866843641285391159927223315745832394557665284189989791929494875994448194693911718677559588874363697495755945995762516455233568727457932424914588639354767912773417998139429667519445611381458688377179911966726641999128953719536333133228779433333323928287139743854166933856188399581398912966252557148424113832779799689785399355958898289452428397256124544467762441258173215143747448873119774917932648868361535278956255932323196158835661794221195528911242439835718264132443343783673585627599969775178313535693959197658217294171587397549999283982746456265462518248772751569757821455861316547349225389325299779714299329962586417824846355223183412333218457886557831545166255485527737553139774466411896521859399962617829786123753843474468287283353933891592776958276592329937262354633673749434249789812813418643986342516448752629611679919762951474635267943194153129919875179127478984686885291582572359856657384272531918537684722856822485914429553454296954325418981127618839784137456832353794591691342224983385918692726185343481415515814122422371443141464792832263753154285322455648675943214421685878287618733285952455665987945432341999763972576719164653447878112981966254499851666121355823622711715229548522488179193585637897866388332163311117817265627296863499231337557547238933384193779829742764417152774556784193451333295261411215373617376684929942161577516526143294922479861654759896556297791111391437313467732621255764333333353385115332994265261636869181496634135666756162677531115923953514817262837542699441352742936175566173265818956871814867969567112719835394199776655142636573282352234564963739384786848496595639843398574845763942624544192565347566313587143445496849249475798454164322826149678252164182461395691922192616564268474663798727176257356416942267984459629482297793437158652758455791752699798568791495158214849427572641519355115154558478663693231483344368769263418335199458662699933247923729169783393227973932814128728181986864273374872264355656527335423817315533928125448793445967598788419852153854377257481886525374224999283377694418936913555182493792519847595935728317663161299457517581239721283812667763772617357995818768776956212877144294828517997763531224734911614923314154643318651662945235285566796281554784548685767289617963642149194362624472848556596291443556455771842177351115645164188333967333416423247247682996385128214736176618822634373471989492291574269739411563971126215243253318515577417553749641369764188398158584235779143996832798185815629368771158941121792761479951411436294218992994954139276171911143642152841939324537544131121124377463645537559912654957948949266813166428263152117411194787794274468919725921132771779157715133368259111593615681657452231633768573473433683141995649842895261927265498656848848312175364771662367796461945828638646262428484519288724717298952725421563391551458321692321114276517543762715741553513533532949489133399458923966397449692874793614933868659755465119178144523773165331285961596916893617848225421853852457397886565625319121452436721844573251787247767668613735316379625831897522297853612885215722683266145886995689839917437899966373877255745293165955687267252768935558123541646131678395998175768213115357211613679599879775151861162685315375632571557323827893819857488824476423457988261739119995623393629259585273997971761769211439691515454862162847714878789712562592146522727719471757625575731981984636787457484458119566938926114565944687325659461396898699299535929376197553587417986755573425926744443187326956645399755986577141483672313898362782646944571284222579698878694762725328666773284221279955795162243763538986393625632426995591614771923822341692153285784233373651752823946995999317776187325689643724917586985896573962793259113374674322819487935231219425315542997229419357141443463494825268357979819734526551786925386612436123813784135679758249667227369851131398791168122845712523247122124253913127729993463513726328529734134325896885139271532163895776178589978566957975817923292669266914882536212888378961278434349839317468969257875761777519833815735461367271858334381932825195667994131747722554862964146555911711112264736871256352645389688658668863235712736349314833791565329186397878841564594877136181512511931716599446784251864461412562554525164196574989965291331385331762177476923211296525538555188144241876467787686246788533931745958936572248797421977721913976461254699793672323319171971366882816164134372592622538524549127296792214542681753894645998899518278388732789754933396874753612419247199267142534662249593754994817517333936178435547497763951331972693986593334778417183377391496466645283324782512229446166995649292511831297348559373979478841749991873892525359387574311184257246133311552986914651981988394997519749785882472826823912639129661533411778825196587867939922987839259226917497944639332323391973887698388937612974816927245143411171998781431528997589194516847844723689523665445183992252724497779936887243567964253267338667435217895518665352665972693468182513282632598923988475634869757818126178326917295942594878744514315823644345955458596873746986327798952474768293942538782379911589373419675584678839597625514552478698655914362143982653193557674434379878214397586641849283841274592478187596254718682699974981341467275815438888657727693881924949556137478247113764433512693186832423959863573748961321479578169291586473618881676797834871586595533179339917964643214681638267621826748749435787918355428225975167731593335893582317847559945542294253485853191221884448333876985299537811211212299533356533921549473963172183292154468912293346274469666754973177413394413636352677524998385581221459779943466613455743661119222256114196343813156529775875775881491699324494698241127594871459488457468717167881782421716752689513249919615383351493353927174815239929979497623541875166764145656536423252813167134539196499863496128443533838631873873412387635237161313595347423719841978632153758879127551182442435422374388553338231864872925147669686114768989892887164255657314272772158746726783597892267997494679764547198567715585691398138374241684383238788237697626518335659717945247915827476247678491956816518922623184732434982831826497947747988286558782189252233852456129727635271138145151362547771373243995412494218712638882549575789178418537948617771557592449916793632485279839615649498532411981144372798571531993933674794873886313473139162151342597966334522242468679465579593653337851213325451217154689649893134729839959494414217466321198391672644549488738238964585494323388433777615377191876324752973391232419169587286373884158346565467696492449268684852266989535979629368592498167432557155987484355261911239935668722427915733156563652575568924785926516977163718963118655346795186736323928299974284138563122439192622813613598817319155355488387448637988137928537432857485193737588277169759493144328856365638476392887863792916336222746318146564643427677877498911174694487832395545213989528418315663991584693946566753694544365621919157417611247622971323638199991885414164178749827758912811898766116413718572544117917186165932531272352298343543334943548949172288222432254418721915158841748857767819924353225315618582556349996675667982392712162891944577466133588286214365569649634971626218367164674111455419362659621231165661127427352883717962724745741396397937763849921796977242624634153845521784686654142854915367662745386345792257669644134459216379887411781986652515818343242779648378456544988137627441654822675592346878177981642375439811968317429197894582555772214184179898449438128465619966276574771649483315116751391296713348614667684715326891821849419633483849497868489868941923863725154327266842671656339322697768253574289663829864497437486162875123431397677454783315953558735336568596153887255586971335198421157716319688293731338351759581685355884842661934856671654613551976454847993985379737892241484582127499279467984866534557696943144783619646233528161515153556859228478432844195891831346691276287934656741139529592625275282799473846418512454213354861278447375457188937153473517874881624441785583265969396546223592453886864411526923841585116345481768354673634326599657157681128985798156327638388132736584584382852566187749567269343989238666732786384957893619543621633487949927555749538778622973945263856747492775727484346343625932116779418575936774298731973464574141171827329887297968956282549843949822642629338814718316468343535426461622634425785516152975237668394355518839417757353531852617447872322195935699323566541692345923233343725274195451984944176677771193375792992425414718115761437437654213312343884253863328361993667177388422689995379592327426572377896747895784291149371891458665454826685163472476392382326182416796345741976114634861983579619277712285373874237512699746797615486413929196529169328282851591137556758657398194125733816955957693367122741549941414794288763433658359423477361211569878644986241966987223849858914871644132635611299811184868648926981372535985814774672967832713411337469858338795163267849999239262997882714563868274856746668674663259419655931747922685251917362487317362854818519668173153787835566272346727468333139335583365619226439981627458662684131357627538161158211734689747949154725477263267976959318262955851322767474789376969889616781275186352987356282867855794373389797322411245652838513973498617576397437449914176826923262923669288829464443841412994318499556364144179312585526626936655699125327715536774226776359824373384615485937494725392827698936244414841333963334652734483385797237411532827139484666995223591314944997277989827273852363412532825315822599469985361485636878959479959918845744359388741417292948834833716388613521394335855148931313573199959292221644137532324344482791685595627779972724835267696765723372623389275357639154893569949256327446353877549454834161953968589223848125668592965269265559397228583385741598775192117452471191849166439488255754854589625624698594137964778253526965725366735574876463739554715492763289842388565291374339689138284412376395251669786118856868576815123652165921878579364841696276677833938529597443259634582188755438529361111634959911258467222745497423533586881679685521241495834574726954532598556818731859343689949635988137763442223218231489383236724615281335547766578616434656227568187119653329875636268523134881687397342554439982597358551838895424137382525492542366112194863314627445585834177293793892378498869582829492899527787965182831615443635563643574252737246327477822284539883139434516229651488978176428395587439869482256374979877427256695347214241265682989967588393852375986399416874162867695425618826325844873449755739589921381153784167443667532914852844861875142447161326169151445628895871474616312343848743786247926313341781392424797561738442134754186955165216665311383226438693981685181511156486414726247916294351759799783331861242656445965398363222189422497411575119696924758171179911948778736246995487761657764544647415377871479917584547293656911641168745782663319664374528229163269824492548678624941483393218415396635778535396699627846147978497959425177596155996679373879519284136532381874264711738915865673175527745612136597569349735282588949693163264794549454436845883776634731945425767693135618197353815277272613189848142511499134314621438698896769564523652545865226368117886353288448693846212523139931618222431264923286796957351133193813956151442769338823537549848918312717742916839619862495378269879149713884366236211341877682578472341629955566976191168735972718842884878324821529526398784845727915282814294246187516374656928618126316525938437178695849532382182622253645577274932495458566575626832195542268551689224859595967541549984118854722622917856343185128827226982363324514289723921413393894582617748178497468559591718897246396968776614331286234185874587926512377838351368761268645983584134351933767782567564236614861263587571745513658394726266651766115662626266421259529946481567258723875381722726667669198254868529796225286458924668678472757519578289617233923488235862147897744452492914116333146532735514277521649741949563776327499849257888843716719756823445184967972669434613173147628852358654332377329569876289831615739683916134655512578995867828381248528222486746874673158749567579332234262845422869974747693349263374791764314471376651399423448675133919229657675338457298432288681871791756422744578286928136984871849914455629965764264177665942825815149619495961387774338722814374788648477873989656988759948365633486224899998853451225918843395633244524513378623624115788127679883144573791552792993571263728796818256525579639727964971152919599414955491453215911387392383232273458997932242742751489517729936271159642865938283121979641534159254928193695493695691555518812717118816265595865213258617487658367948644194668979385155773437153746591818254951869363631964667841589571385679756671943128374967195951878434319766861161888284784267353986416382868753831737116322946345765493478254435498298721814427893322668473615254962734793235713145291938188592887159337641111415724816514353549155977639631751132591152376611524911663535589592541636764323264654611862319258392455921242567922372257477382111246647552796497424548375883183197651315364983635988794282481788444463899288531838798116354212155389569376929112761572985396499816852688289179256383481821458439915964771678583211358439464286285761947994743954988821756175782358332121495779167749794411768973795897836293289762622851926714972552234742151926177262244814111355466641745726414128333514914838454917989461192393216455735127843234732668766785995431992594277371752918673342731373262411617445319591356689743668875995165799121179984541415671557946453911822728616951991456591285738929181362122626625569218227789671578585686748389635644455133981828767235897626588932277761967149715317796446983776992758654346217647396839327694273337192425935588217879612469776998617748249787517175134151937517376941753721451167561976867617244837792164918124751747323973686968748835235935491473185272549935798572973465815731128545677571949796874211689252264996554299284162649959828724848228763172189584637532513384567479145342458396659393552679135761565988124942596426761837739294339727628992241772347329192919343314964753856724858679578658572781177451736418794541487252998167265798862482359593531136225121726286162191125154396418838229382899495594595919329859532454472551481739179568581465318552879924142914829765513549979624891772165266546512943396274145324481587912545184378417125428859277236725969466884624325755631548351722217153621182313888449394117989999693855852982269983821212918817766941425514628517788819899679445839961521773633392162951816731313119249227368687684777757421352562475476112769527894568391325369496834434599451129566375496732762253585835768879824342771243418423771254519497268682758772112844211224565594118967132818118292511522877416726613215385186715865817983724384834154473972542126495184345673956351787974137328757365699146331864732429732543328954512516129996368591572626848643193332723712247896833185678533731843913264477965647955313254326491689916234839484167597792132769628697311592429825465134146222273932642699742713248641945555772154217276249399423266351795272466777493126936876183617577983129787335635228895593653411997399368892453874643182336576555384219987912397651858182647173619929817598637383367256228836976966846586457174399915526398985471164612146733162152594133811358353713816489595799948231422446262532713341398767641554595728345476547771799664327363621973896333987644613478889616866863132654931685936272959919475961264338621778262679754643681176183415266222927174849113469466164214518111392919284193229154641969329221131321238427738544998984824735848859862614376229518497777149623597473444779372231969536348291438275419775692814899742355174117823453321679769137991125523923593738949817762674463463915196344616391189865821247473664162694945574583358838943561735932192586932471595376251496469953251298781927966482116935669555769778547648324943142735181125589457211863694877179342659752291136755732171468174187352325334446811482589625322721455466998321812739987838369421456883471293273355144726451483437915242251568783396567292239461951464588625383592157756767693788734171933361529615479855614972734131214449499361786562122497671962973317145171948693695834481376564875588986989737996478896832587765214182689442242777656139367143553862918752865932576288114797943229219984179561628236935495189491311299516342492224716234643581511629569193223244594117571627678638674572874196446757384346192765512867154344987552279593193377728814618132321974171939238455217996446248359346543635557481892472915518343257711963427945134371461812644748419495636331733158184165227482333161523156128323131436837676788894945259642463565617289946595274567972835861226676384266726333578264347633634299728944615226473188512274436845726428779281827126876982335999551192967875846457934531754252187186172858433866668911175488587285792877698885441349347764622321788965624492746768783368728941819594956376559135984229982875746595988626261163551963852927492841349189795891145131315396935118132931899377361763883312894394295388268184711786954264353662872489316114483449945351674831117156166556894127122536583865965678165729397699311353892176663128825386115764684617886894559741522949549825272633311999343297148332285166584646776754676986691424521926575728394858226814463394645647373755573858769348675813266629346611158343118832788268574135968629725547757439617523369662167928881335988532591233458395411293171992489343371384627447887896993981228242368397648372948638127325427231366184647364558319122632264876792399753389625445345417523991669797653881853286611142793182938817663749824132792785744943236815551635617911168225799194295785339382752432337158518597726394716634717931963677426376848556837389659333338585136753445181753381244267481238541126349746812129943458177189833934556321999191985118925523396687833544433332429731612153482849522765917329361332273387516688631687187718744756873191831497248217815485359623219428491329933854534961596458558599327359342526768265314738684332363998822963638444965347985218334622493498751684979392189691434784824253827875263181389348372548831246517194628826954867674637528432872572843625118583241593245176254491574635145773196245558854469799746118591978277681135899245215178667427593329977989469483894399156897547657644432368296485614629217941516261693829538166537888798582433158917388141847599177946774826911711439233316855761345813283784754876798819583959173453571848212699268858786171877193459442253311316191878565651351586428543764784383368125669694642374126483761198225126572431884812212841116124945437884126185475486561569161453886664955453989328874829736761948593878323511432128481462837822671867688838961271999935116898856731597271176972162954555134717381339157143649755859294587967696628522126371245739638987673332783533724352365726779567214437594755117532566937495449951483943496897538674266995529424463655884564116863388987529451796951547883284769987775515451519114147835132398295863214747787688182754256476184661871244823671477442756483982456434448819176993646711458737761413747627423113365835779533198237592153884284311883359293311924763967245554974852276976315396672757572926494789985583192522178353998199638996894333532774771595794583356155733156218464632689147576711326778974583229573639532369831952618395643954719953894121994998949768223417686671749241331628522488299339987544527442474335276395114937825668811644669992428947458731322778667621977867918792536319341417163714792477166845987518321359155336695731337821317157778713718231688142275846876571258928387119977871197572148695691393121721616283282837931789139268351332382899226398979146159955881793839919721438236938623517984954245126996939742334185336924419732344733335298321628141633164836149313534143764825628671887258852773825218484765126874961685551626898318146513924511796764398359928749643273464694773357676411382255198315541819266481147776694829328149583562488126129787447728638532479636763674275143775346198851178831497744951454621155655538525317446191385331682786249583334764596286124547615782386334456733172789291655396664881414759423529587516569978544813832397138371228868424311163544626846448365276963793123129452613296631456864548627918319135295493966899575729571361972974382722117697644115852977174152589661761429173462857943639944173947913944849176351943296289586779468652126933557539858457394862796559652355489142116941569935994648513726265177177761616688987341182353868355961726786234833665564788863798184245713316699854319667354612429724393624274158488335168328569542761121538833669593888621466419575486539411576515794554591139177515157888934675154389748631536276672369152419814233295868811438975191996235226448647132892944621121121633135678423135295487749742742795997553394586815244997771754923313968276615285718998664649121352546262812331781581246618491435478993174396363491314774614545872762967386711141162547787131626873868687257351256388166779629396473321936551566185871447398227754976968512558155433566174885561858444173238922464699296685131114738945367959284453363911513493876669185778576921356546586736912567565932889471485948686258658714449832918845783375123638482363686468669433811237739992741865114659595437627639393382455331721175925347199762671998123554536523924447147912179158859995446987388612416196393197862862395892618479519129637837422617636114255183123933876558281359922522946444636837295748457572572623716249593174773246982639665826175699548855123436125176943424931581545318719942644952634875268316259669441434586979933319725536159816858772128796688817778232736626289156258827575245923735797358866762266957694117588852331945722387493988646957715681712616277295834223986671249798657827423143524836123769773742596277819223364756357632499762821437297118443717423175314289369412122732565835577774294513348378369442587151517273583923256173719742998594543251417619923621889653741689844259189858749191978844116265249554463347211119197871271886491346773915515525524292228296735769326415955596947457467266838494335755349888473117632458921849161636169947784184657881673647653726321315983371634212378433197258788899396423475875993735933647415385113654891367866938421765495924325678957874558141881847386768199447232918253857835918535281889833444434348533215694346754733616849282515347567926339914385646118926276691346136659548866429938721426885998511166829786327211981913591999831836426485926627614715854853826817349976468819671831325799971542375262886567414496437815783846963467646382923362885574143225811957711429519635714159443665135231719731672534115419353619112515585557515657946487312661461611968493253517292838548614631681676516729871588671525474847795852492963859787554695132515175549688764947926562929423552168512459335638219765847888944248188234146487217173557235938342139951344873593299455167559274386271394672811938963478113921458965974339421313298435235437461256644967787727937769273714359454117393962733525199916266699525825544839892244542443958516548939573855634846181334427367812794631714367659358281521237817966229199516271196913854976656343954763723339448939295592946579755131392524556348248687771338293614633875128733656493169283892152514781292964228767953979158254495673772878289955749936931756175442619785594597962954536611198632692479918367143137471939139873142287178884587789537428321398593511316285432299133774595624553713633349772971974149398759194364636749625793781184922886686111373937898367646544845113661262397579368984746381663163329345463111136824187794661966288111556756848329637387753648256857891474148879741469924288993676266293697374237363155563252418124633873519812637832377593523324676943293963135717725563824155412886194281582952734179452845375544152471417692763269194177614148352588528387553779668175735139764912764671426682557345728329295485551817848316441274645366384722276147721559184199454881317768875477158194192491446724654419286524327226426545578139494725632274495296846381837631568831283399638248611338311954999882898227178882652674515599799676655566163951295362792131119966421976582775785319478682781667218295733819377798635492559615335143526785622271933462527488811214554123564681763188231778557468713214361538694883695663416133794114539482241518877433552165344544877725838888755387532737259583871542834612467894446618322361547581563822968646981539469585538276322414699444931984819857398126746976445377671668847822551452825592135552297253847629763897978428529965174899163834799978665586247233539827724916375262826364887599743533295685212627618235512259213465784242642793453264614728738964431744898967291417766147819696837919397983612732318911799658232732752459719873893684653617419673856991861737826274538688338276451949914976667265517355177894438432322619265861429145542122344275397457462858779763296416541848467912636829787652862492154138854554517287155719886126121523297543893412216575553254755795914767836276287633188382657126617972754461867529737555611422872469644868954696568223773714881927779165959397854574731991388471158954447466141486759849876714618493736362864813576551337997357185248864959339576119142721455944566333637659486997899152195688934556727362299788457463461828691945516342441328254888925196865858419932266188793279961369956431271263267875655751747773657291216223348114678934117763138737757357589379746539839515716579243777425453425978841691161617522889522955286662446484381451192369112216724279412131568414412438449459921348188272328157387529454288289293811637648433161713737155953863143114768611995176348952537714817227593253243759373167219879161762421635849123849236845733638695745797372373556479953425688347829399927144389926729151518242813831723425754645215299249863133216376518183345865364267152345655173723421654129544841645779224622783124177489432716869336147598566777275813646716472295817557314881687167431811437657136862492769736433165144187831423199337414276818194417814487538748651381617286176326916245987751414442492129715427916539917663612945274375244666457118919666826129536854367634378869658624196616558134459912338194968721221679224926251241363162457328329375287668283397323529653374115932559115934243863115969187586979114924515839995394889797346932833225565937836265533492135626798119455857529135587726828271849649475968619612159831313229293156993489249189394266386498317692181428332231158464983532243992119142873976982827295446669859968962947335833894513157614588474269253976558748988273833279916312236433967822528346538745745366477919395977128841493265628154691381219796387172299315866662929957876735464279288228595251352246732495841146954765624939153256738966449443147413865266961376849635368292495145422737332449933886392912141554175147679814715974583684787732239632399278548135383642929692614467676583436239657922992842911456114562795417363853951135235368779125294633358534627731343758534436855117442375547319333587331773368878691728272893615864696663898574334485212379541916265721181847278596925142975166672253352235741681171673861466924127342453837974882947223258741152776719182778265258961274158942218689577655451865751668162856156813761535959946419465272456952443718859344338767613218343837879149814747151826575686418681367279251523238198636194534392328946841881193892655244596925146939423491599788843257516197512295135364313279153478118727478577971496727844858175985756583249826755417191465372651124753965746422952561597924278289655841325957133287237838256953818391323717421537241813636112382121242413244196818889141742761961984225527736316184196159236233321632173846365864273777689282423475563846362847354429177196237553999282618682426757665363874429629526776445465149786121388729679432188621967551528939147828775717715575561325366157962633419961642187544555981585381542772757721818652916494452979823189254924915769758487622718799997713285674149825743594575343332911329677161951324554911434756856877833429413534879368291656221716388621569712289914723778279241878639675546754534896262889793789542488942596848237654731691967819848632671255968732184153148818893645712726222173272577679551338582953124645731138375942987818656841952414785888515118286766632295199239597985746236143729461471971893732538993514127379295342349328582633513754264982781215247268897968219475781168337337751566345931742778346251974696362316839312385453277792898158674794376387526951267747815728485753181698349724749493183454381755152111735696969998297441778742246336417766362241951584659333435968597273818121116164418331564159798525795495595191431352318592462313772112661169192127356995141262438648784699599692315815318424556318276434483242362741261993347768575217544757872946151241454229876376931395873166661774618121997534216224512827373439799581571222532134585565283425484332478489532734182547956288626959176814866939326469264672433127825596871453384919814272314614395735293347465755636143174334752224744857693967429923339551825146419785455641373274385249231623363222765128146242579184895957272594659251954477624522992487194242617512697843595945135263762175336886135619968352854369534542154641244713588323497723666928123476589748196828157829975676477614242115815585389952957494841591824125694152579564559389662622692993453746784739965892757828978177311584162424329698764555232949569516811143463422297532844136971821411514639962179822815117794766715745117993191962941552219575145529929727127993186231242298793144946817617296594217221339288492785366825644283593214236134863139646137681997246456777389775967832444992889593138615332398775356589878965914326176518628475811448324119599912518158818646925959761161929919159855634477978553429536526316211285556984779525756598138669379488743439796637193641444219136154827969828481281444577788699384656343225953961894341929777784249763874458555434757847693362665639727242996437712476245561636979941554643275956194696142183789673628182389884483643345344622667928626755632951323447961432577269922596857953964217894936163878779728392996372792371763379656523484224413939189227383619464115344754174465362283811161987497821184582717134342632637636364935943471441254578641892564188471855191135249597359449484872618784182294617556282214952338488246555763133867485585881912749564218564876143771229796686869714125861346841127138898466942922423798823495397998778414917198229498279399827527474225525224135865671511483233851261612133426993359499437639714739771883214792836866787441312773641638949218491166635378398565739791674593333338872318247873446324272621943175853973775463696227543685678874358645812348596117759918364251586339719933671372946937763166214636596588646674866449114319929382821468323888364998798128999827918944765954869258817717517489968763228722998992783443283829696561773544633432699723941222181737794937491533771543836846944117676179797859926169342835529911576174943617618315239321762752719315699861521431734654631814964894352338278211284547991881277556889193718629547871651537655299687686767618552237283235891391267826581252196118827129518527432214662786875476247858798548272493758835492938442226884637435564738599949921865166554916658295476316298199265671125415968887223734343143159415595945332299829282516711815744174668181291971988138699689142459714593511417585388246114998133913362413453181618323923312115386421651885992953874166386496925555519687986271457753481829411755315163759476492176293384224299629125399325855942462688191518451362781612286669795863752613547453531581798354224618864134267813255213263987498759644946452142246656962269899764627911546649763328924129118874335925968523397528319611591288599991487328457198818868798826566554682314148758548414383964529154423633937692455395623918269265695748132791836455795176892717265739433592584217577174554723338892744874131431288885241592824783755143434477485263586525516864138542665991638235472934473957351183248747799612948131367563376385518473942992995887723468686215764692795874173542222568237747213562639116512655756913724487998243395295835998564254325753452265484814486776622125456822165361719289517283644856382963168484554371322838293676294389585323667994915198927274783111948461625414895315996712989289283929881421881211619169358166984274162993161981849845779486963281686785971968842826373329816234283761146133816976514625696218526681784396566964694166525935776444412729376962332627259652138652182253179774896956662527638493592515813679158643398441193931279239619956769423732576475657764677446322887828191336874337193551183724892574372394971213812256254426715852269398686586875989595836495871186895752319787384224617146633631219585795664381693142655217469471338796353571648843917418254281213871495652615488777528333551651737876331482938696447361515568532398831869942819444178129564497436298273967147961377177932352984593319695288885822529211345533872192951579347737979878712354531631734779614386163859631845297159122488449667354547498473771575476524447212827179799545713769197747961689862678637481852127936589275243128375127755841941733271198512723539131615288282254461468218379532424574992719824259285195822775815253542612583817735335716873244748992142281561133664134691824288186289418345457693994454436754542151179813247896195438752226669764761642846535935476242453828784159213396839433769483517788556852762981673516782629869647473967143232387537295256232185822928621943961612411835347535917197859842137197238319743485875674368131234833445264137366753218524326339612855361752487943162993324846797982496362598383487577799283852531568185244851189836416313588731766574986361478352882413661433399856244869896729897948294226355339742117996567447139847249773284157258847493126738612324291518814628493241543914764885294344123475214437361561846214734957448775186428243189272783154458173849347888683891717875979424221493416184942129289766243284495543764473656757666631255463712355521846192766422975989435615729269244843998531727115158517179995928393682534496217711452248948538347595637176696356481585487248963792264852429944582531858672566626841215357241588639625562597259632742366979928679639166225831792866972668559226268264786268227412919155819829446252619234846676766562952923856369421233626264738285379361545161913925276883155963381217359856756957474143247722951171696562245639366769983554739746785341344897722398275538992854433855888267729958676228916182414599166881563548315826596295335674671157293457177647296715238695952845655888595259868539942791274268734312151555439383176245253678441661865711243261467981496652485451426895719125952658787252399833765343813715291255123737956829195628989269678693184356149621431871659574429288476712415356498475441286528525363932962587136954376393844685111394599638349835252671853212721749188142775757152218294423594667575468535998594615525765125479135551493882741192543918419847748284223591664663716996737619373182412652717963334823485245962361419564733339652832179673178284123179441663627799895752157876277475217373524193973447552237735561982698959357644778422634497754842882686591254531362523853527799988145585699852868911375536215984887345794777954654762223723321588212681957633996362473644755814725773867531729445572735219689951537793545426449787869279238133174743997427151938694529533335432716994545239222972423356578911971569813325346543664898346126223277158381613357592872714226728935738556526732471658728248719412984728479842177143794517377227314776593386374177346687213934654921669887415812535284814185441832886764494874836434794992545528596272511887279712171561695147886484433412229999295341399793471919252581693582391815733791138927832969128377485466749918191791473569552277816452926816695775712167913139721355455835594162532537327519379494737221668165296358161711548577841652528423733457254223366114786842983724996321945256572263449113292363662283376882347553786696995922287395622399323966245793373875982521873991833929622191427685974225212411573773635734766525192313723852999166428891376817216436597873952858489378494975675317966743937223861787416792259679355819192713188956685264278134969449259328626412979475892595989724747578429959145973452589888759123758689574387865198247224899719975623671918683983816417886766543915261159717115485935794368813193418313384993531913573897678967297838256445787787143213878755354146851383852431133433629584829323786725189321223455617555846657835596994825736162522266658214886346834396778373425631184994383816488817474191442883982381717197536316933442385463751788759458191621214437465991166134998843541693613936672162277779168941285244493696354459566234249832939444773141655189936548742533735678945148293691584137812954237683466879588847996388967153564112347925872756445164859654888399423114591665298594867822111928959159598454863722998779978879754669598343637899889665543238294558317942293862851615258372189435254947956243327377773619627659964358143555787413171331381945841265968213771411628641669653235249636456723743894567622486599914966411862245415669212459997897274714789893323788799835623313118368737626748915864746198427627454316967539329796169668399961695915591142954823428275814889747238677671776157388195485853637449216853838334951769397673934578578163435257443518537295377734681486618134877218951669197778136154614416793413387354243719613317677998577616834658972243213333879568315966458813681813224436613568488974528497656636946269731985614411742669335877561176148935486725899945877454989896489282621282662556142666165954683599651679736871475549146529877926982849712399336778782233111712389474254473315863729833143113232179484721949525687659843252355562389651645576943687562776911346474338483739323671427584173117644166994176998265287845232532186482161477956872379853465697815443458575371746864857184543223646981747254237723198796148261424192175788191861161739333157188497584962771846952815737941759577336632717772465556828513577425147789758535761215686536774496718467343194559569927679236676146883516615151995877533546194697275425984497476854516841549788496847335664391886236719853622461944756222539628239699665837963966331851994955657626573955542747361354443727182732479664117279816931364635343315532397688416396887814265677818461599157887496985664879447127843882686373113681946423456167732919178694894161165716131636419499496165545751856325818871411249179675128572556177558424455478375232532279424921766497832358984496648764696976143572264379176525168834373879473719725941858498994776193379216465337731826655334791311536547973596268339874317576686647382978227833755523833589148612438425236918264725998236141891933774286777673844423236849828891166484141718181423635117979868754491795865553595747256954728484723883368714952435141634995744215484519379665897391363652134434962312248114574213228573585827213423536337673983214842189562271412754476943221439814922867974915169496989299233113513588285575871719498217128239561718526962558628647368859772728779431926161913776581366244415262914995611692768316433956285682772961511568745565198392819357424519569526489736335954234158799141986937565548162566879374143146135727573937722878465272575878471743571763434612446763819286113185432417641112135691882898599818341481235234237686663753592562386333355758161638285549698845154577811466152114722165935817423769458474978178451556157538268445278916393199944898413256962795211111521731615194844258744813334323465437487787169574347617848361595947566343949986399951543359398781547969364341861645789924743521554359275598664638197978242592446761677125972434142739443582616372349941537668952224967215465983915898741596381493787417843321521991874813431569638378951372323412377567799845798635339346466697715469149123592345776591136685365692595416655889346884997555961539589938684171994572851595982844781673331637626963148188576669837974216268839415618416254818682369689295977828379121635815763888646565143823641543414984451639494958553634987132271669984156976379214366765456663728526939527144954381855291845117958541582195479817891329393794478232361371717697367387215475722544659785755414229757457995466619974742316836248223858537963622518882112685118918183825522773913891981149459338246428869146337695683686521343146768555457879439886243794738931697333866534476254868246618391458182356899247753139733483112246945159739643317519473621721824517812874738858518436776658729169749827389164924756414968731635599571297194484758388675438481849786695494632997724681124851835693352771134334995353464638711169373541544866155581715167837834661914148535139676647144836599865965369111413369814617979427414799235125165481371639326168898267978471976494422474395811779585282938825464794822241631717656154246938463642134247319279933437852344171333445758378385177419275397613536778233161878384924931459919363848651956833551952245269169184267132117699744828941357243242558259451119873245948162786999255868793793679894387183251751654931899268425393621328533696752153132847668197348368122371836949232325972789413239131257231724637758246213153355257272984945496161774385588724248855942336764361347665114875288172465687253679692357867344752447683941755912761996661383647881638832886385459458994823287855827799778216642675454835143638998767634354916973498781274446235192754278568244574241258581114692676174738543879283287945145394561157429262449447656358843361616611343257491324879414277484543182125239978989367217524252585784986498484262298817568883932519897446274581699481236914116257145778475834894732734425734449942418245728196479642973435869653883697168867494357444766342197374533228995534968681967681781417758969859212696355331187256186751656631541689314846844658257632686358393462382556141595419162331855773897925171684632172977289264541721513129178431647734432448791762713924822555517279422555423379549841213257717415356599939267112974994219869611935465457363153151459861647686578114548273468664797672536194741441784611846791161727961478733775754193176636732793488416388445818317524166639718145876383226596327157454127886689256784195545276771516897475142146614114567964641681269816319414164564728424768826733622333273468714175916371142614874987184439299696977594518769136533242564474332839479828684596138451486823146328364155814242744468516998392824639934523727882237968666395476639522863244813124729566185522274926193315796897268214712162369651369681969548264974344449666431456415399243957254677812857399334864284197483216563243228846868245563862691791445659861644329132587763822781714277154117439333579236416584545862666966718639777789229767219696742327997759727475396272783751225357145728678316736332591774786111714274932852424947186154521932992317719874114497115619951944133253923819111439239689563566868174455535534567489347284539115812236688122467196928636979879368572139841976775267929626594318255357231227874389982832479791615141853774441778565658785755725227292469613679425888657112473895514741691856688166932522669948398763623686355251832974138923642517768837551875857934336226471529286968593589164667979591228169177563412659655129617556667363269814944119964354325979434151376257441841637163484771723127945549183177241845974351422613416851759156669652248564595654884558533427974847151917356611187433274325913287981961695244143885182413913231818815853377771958446687876188168859325641327392136694371979675568481744854574687246562549495842688652927474732444899143873466424377569116569593871875152387837155791799335185462548843951633338716666597195531663347532694826676242689498831877211754813293741263322359133219829884265473647652883917919139991878384721983638727997688589488465184456443695565265813552588324712157589749275789361515653563834948585568375753668629974211584876524968796269525375272572529896448734692118959476883941282151694467615816691537215317324419577793463944593455955575117547473253497672931264668296695359987292431187161985441149799224911521642641446344867871739642931182156398242875252738711775867965168678482569165247828984469155551327256492297612383182427332877817522941169829158355387929286856587582597588492116644444342826464213363919749848413735158331776286413693665449279442846768735343873122277711627561644229982315581783918569521376239641648768217275474211163989512456418275175783128539635733673717348155443911222965928479647916739533977268279365856683556246798641937743459475869317552265734587579233477295771691255452724162898822148758325374398823994319489269364149861387625497686116945761776979955863524163621331814489456953848424666161333354435763698283575217573178299433865432691328555966613819538461646279238258993589941222163818863479392115894142136147143423398535454544923326438922536777996658283626917239752544687253833486214465954766631773932545827256766112595961523579872935397912578977927513543881776957577168394992693343486764649325162766476875833156395762125146441516144732213418947512614926551691315667677818611251412693357296325772338918677782822962186696226774815685352929289476574243654332511968484684513449987399555867127192839188537861758477433828428128292299852527592339162334174884693612586638376418415537834212651821168722547188928471153463628699615566511317199925919256417177137474123943752634124139669365967694995188453695816319164991486146535933877136517236133532569173615118275777327939632874929815276565372758479162923299489371877434841915752658749149977913989711185276531785557551348838225996193599153121464198131812614113612851855956172472274355416826986961145549146363489795245617195791794348242768896865278739348717776199914179768335752524447217874482373669534457832973326126693949266432374618481488619211761953979591617177895942792522697582878627678375954447516767816664741682358176561894554119889445628777891688244223567867746761331988667725528848285879543219231338984655196981887264117337238252948493813591568274575217811725828558838188134941487897577549922777569467178452489169716551442519254189785521668654534278222473288585454995961725158465376493619458892282677548133878395844294239818926283745538725544928326638519391818181634494847328941693343373253159913431823435328377612728133337326468438772193928668649442665376711653519517798544417351526833413567716557135989311935965547777913673227828316336328694157824595742962634463995516376579359789153248482637815365772338243211915338957228899215781813726836927448234745613533112182352834415149852236686849238336451633964557433555193785697411954196482737469624924182541372265664283465191841333641793718834391718944333326448692661832614133293986318539973833197971149452551747367111197471578265258982146919745444454182127833338236339739693137562878989662995618222294153365911187875741929588391329514741231338996468469497216237187552564586385922757686496928636471427865392873157715235735687214355822449527811471974455913622946537551492173129116341832983276727463493699881681224396384591162716155213172939141368896236232313997427514616591437325838452671861582242592242275895487132288373222434583686894283611313421246556588935293873181351472513526171638411839216425449476416768255216847929839561993739371935649159743324216253132493339223675589553774193797811941253264432788633898317567256249255462694772544723532278882495421746915372325676827944713953483467946563684152533336797972229454947583841346378691269957168994487244417431967817833837433323569263684437422293876147789112266272539852493692788372159969174782734618847996273991196981997456427787552251767156155653531365716563217221286981496849293229688224434156164753791375284486253954376671176541719726334762286469796443359893862833356612738255133757883863958222556917979884385651448614718621655245842729157612634494764525679193586656552111364693979421878788935581236236342791987838896764556994195528942211298871769325651249548988773893992888753775239234977775642822921188863129531444742417862144134132817118951984357476152255557841131732516514838556251265619493395366517167558293898725375124444778429125668587757538955366789956897789254992767421195639188974652321236535692433332784693489644765768319768711923181559686651925482222178857859258192159613684122333431215899794594618668835247459782692269138578737484265787423279448455357285957685191467298415349183518226611368758694313133656454784595154168934792921224577112581839333639522889971993339941188179893155996174951159362256154869838143631227522525531646241436418222474586137378721874487439159861917344857564235212549281976962942664148784296615759656654248333398793479778348893657212525448676446674551374254318129271615452995653916943358587489385445771868324514197422178815744267743628551899219841847738291416971332177966966749724585284325922944141836413875757194622944435528932993534611276775136321653195877967329679687354755476421629116793414361228843217744365327237796937343264947258911237758469138621344569853666356269834668561323446782565722437953835181836967281758814476598283456864846442159134894341798597832327691144249151531754732572255475935137442355497463734882996323824326959274613349513981179592783194698515965388338436434374441649999758254671584326968274518562551426239486534956541257697454598539142189642127569575344978327179873971934125761617131427248844731926918318675645337469163746117218698518375738261886792166677476235176893465271259837934589227738236815141557573354146395315878799371765719356571884513843429187924979359374821918348532753651441748673589872851684426591755779842798136913988135467916981457341419293883989872327998596422244264183251358226456136874525528835223448462174698211698138579352863186722838287997966668414438415713464446254843638194834357297566892235751933386184465691219965445647122914332839156625645621264618219499723795791362725266372632352372243421871896977484911262295423425657744714391938219224333873115561233594922914725636969346536982993253533723184547143956489987176491643994212655258442971869576115968348557792225948235312258757253966621489611184897427532396911217768797646654933665417526116125771639294858251516946688298798265228237512325466959517216884789211924673715241735775486873242252244491751274246713241827131354457786761877281751974945658562996665231217926171277562925771869524837957748356352987289656622564857642395921554743459414855192386941159652695868113143437737855547452416456942743946268949535878613643387861935238734528561848798952279845937449222563318382251845952834327142862918237965169943538521943636812992614398715697941782875946517695756975855214997965132434174743317895378788277873266318716189319988426385182768984615486983813812742369658724513963491998288457522647692373613719948127744579321474133259411789583485957494335462764978818876725152446986418755921318188866536822155653273957448469267953595176261525733137651486392886134549146197559752317355975154556988992591245219231965453756192581388427441851873858372556146295222163716771666849667811425944456542811468324797754434576169413956136152983353937269615292141435937542641865157773533143256378761425667554948625877172386893678699255899184944329126144623868638544923821114435336848289476349282473664664197428112821747371278216461826315957756936891527534344979961571166749321999141784116594589437433195826925928177387936373215757946528128519427945637253472856541282883734664357719325651735478376465736192416276196551523159877413775473514121629255296491367918284612962353314228648276313983699159245259581792566473992281439334337752789768913441638746789611933516774649429754716681258118192242828372223188468827832621521534725532632939775555137298239183453816968142918443955664567475621999585488487232416962317955425315353671328129369856976761292632145312243945851845432997117278373783916299674767291389189695523782161579447892611539437386826194281248172649781843675393885584882994691754633617964383561918296475743718271439135453699689417935499759467311312846195963783585123978915645565639248734193351651957848391757329243914394527483577351979144775578877287438265312926914828374721497295847543163364745135752223262872354917394418883495769871286353386786395636524743228214223747965622351724354737948658169242827379584455671143837683388192273999837272738742114662989798725814787414567449539895983843614294562291547261223193699973133442787796849556566766925812114447495174547482837594174564664987637933377925197756154499755134786488616397796562165495368772149677337856526152168697133899993859571355897492517266967256145329277392761419551176753567171683519227384324268275839166772721861761499721146852235231796867843819858819823497519823881576251432325186167296836828196143657799821429925633216786586181355923883825715167378747485973997488667948497814631314942448637365121714544323565595888922784499811861113334671238517318465715684651659882348251192721457837385649695683726632731792737319137491451718989642714672844564367916931992899743712178241587923613215393373336496514317455146396515844261383823572892536931659189673979996288434514745348392191167444344952784133487911649749755488712996964466694375337311276613463562967383943269683412429869116452556374557774641861192968877313456973428185447434522518396126351848179986421152494544473973588563269257678784823275693788126771997892568337618824463531333899998677713545295966382545557736725471242485813389818961316178649176188227696815795581629217961877466276835516875423365386972848674192773214799221457876462646493792857267436348463159685749368547513218851473218423371743678413152463157184294935352235582432546762966664183485891922569593645221416963361697176967294253417837867553778737423928738143374955631375552325156348221914231535987914558789183617427418721754241841296954852113744463234389593577585179554655728164376794644899557954898243724418745315658937881676955678839271934454829613299345839396978985877313785644764676158977563351747568726368643981595382848263246982763279943322361888172887111698765972964285321398185253853812787174269578998117715339615896964661976813612412973595555934429885872453613743949288623115546424891925175348421338189399643374643534142464316338237157921347691843356382712334147843434457916981325943112335648212354788488977917481591723267987222588225912593231389351666264865993723213453564683517463187464863134443678735273413158346172467569992349122447577773696194339985873197989933779547797317539437814113891692968913562372834766546846126174268159394432414881433916517915431235955487636915846237877567919913418956698398672384961617397387638322862789456674969129647376138758945114958515991883657483875641535135429369759727982528896458511912443369233195783944724358198998222448361569948222684998798596317441366223215936985364133872412146262873183575163488792179218322837994282537834263142138849679753451769813594911293316171146812146112183242631641969577561251444854953275337382387233978892826212696713246964982694882669842452591172385871268238615661645879829925153529545266116562635992973755259492344668358915956555742917332262374649464344749374847938669774882345281614977814277869525481869984492462759428636411353781766654984128283215176527642811776332729921849141447188742822889422573474557442484182756946125855913348693436464753937522223518118222981113748213315156257317916728895815178788928422937757456926795265663442222864156721354745414821476619721817292663676959589862898559421499928175432836874861949874696645546443765857434811813779139683145579755338962442421588581448642288962484379413544682331363126234829957464395558916138154355968449343979489734513126821255741475399585423486726938599514967915423272713141513215954793289878311526687981132341735194411388297159627315498432493992223359958753614444863695733822134357242927366791985245617888981394118218745495483897356935732742133952825354772952775268621783996281452866233338394811673641939547572647251473212683559713785738375438154189491648884853931493321653566864713876664939122261382446582258529785241533544649576699257352193962485436679923869527432156265442588922588479665516348444959583542334471218975525148982366215468589727837624966469246263774319967948521383778314328934212623517112953979146966286978388349571289463559464949567144872695642669585831876151196719196265618775623195162577577147946561922888249448944992758443937662653721645568342541714538739386541813965411325478449882654673236316492832953489233911265622835454994276261588411691616967141565953259775624553492453959652598183288164535879118344537482531348557253595971872695947775728841674399537134111279563229799463431868692393794729664875743779992976736965335585451728392558448535116682114562895977695749474225626375475729819486144617555865417844261732611548152492246622143726133194155198893942255716929282795994317717586679785355846765943332552321169627695919594169543665719831926878537827876262216462843824816493235827595229349876959131512141463935785185118994589492542646771963421729311119557386431684141136477449361461295933665514827821456199925841869251416857238811845454435729785698639324926897762215637918776236997928329988665685137736593116695386117195942498712473122422971388998517981111889835136358334463253992789781678559962677311746959159227185942786781938568522926921833549943111678751417359459951133276168478436282331856779674565772387114956454477561938975231617844554838574811456548326739799363716198935215259783515187846762942651432843356325565852546123215368312485629231676161315825136543472591162875832436567957448993228468374549832975521294838736947764599844717993343363745417991766125198568158372697761391989946656155881794431679355483471455819415783852194251185523758874464384762946244469467918183961395624881973577914848538446632652223619596744534717669493956212222471429193335616362391595115136362383381514974599729767267669294423631571867226287953669325143564717764751463161744199821434689141726291146331295694576618966859931539532254264623169628524919891943795899316667874736667966855839197587497963649922478163656139938785425911364365392197352864756523855444469876315414239325681122415748274152682922335245693514644127925339486677719114664824277578251682439177757657813184399147863719952849613367947345575568254314319493344568252865422768672913432361684839644829352336174264416633681163936397312333841257577141397393584113734866248354992694623342589989163448952876265335686929168946951284988975589113469151966659345353641536874875911925199564577892165197785162553453842797145834929438986481436669844924637118481212911548681136119591762352289191291243181993594542517742849758677681989978237572722475568423388946144831643499461588943775993886479762826154989837621887376553181167248643121914565643369714123127821584785874239683899769271372144292471856278246425292118136231549676552278182634142242155578422378933149947188382516692147888916718112185784512752412514292183663452649128468643773724243351515741895895632486653935348563613986165454996944598799223968328525122555935527777546558755476227627773355687464127763526853475146812927485121421187228813239532193394831232363461972852964816116225597629746161168233338618228739278739794391486119422272983746653435494623552162883919297461925258586847283387376666575221212727465958766975611367814424535695321715581177537653332664996454876956484391954618831976374819397771419738823172855752389769677255384266938236411775912777624349867273865778218286676642394728684391587144755662217671898369928348476971355791812578657464465398925623547816896953698345679198889341584265754338687322788786654588635942416728586318376143698147889374513975622332158653821724393239479756227359554499681742171384139185597322266696554518614733134933582194321879423763523885187489736746257133974249482669167715667349754457743956984949846515962775559984648842449734618258753721375163427282334396666471146417425829161769882221766293316946668941856822799811876596725318964658632223381272258897368888573847699712939946162931566334171463122182264268764756692234531566766874989485241515175286538564939616913949454594191518942887281141641934968317727757552639347351325496792623473947772845758483514834412653889282859923487224465747287342529427592493639342687161869482544575215354517521688384359198241587998423763494553271696694418456145886152381735852919467788523127414199237291775755699457219411951441353972938494852787497337431454579675867686961138877519241286524479945614189193988638652668229556441881289298386158993158869713447325443352161674462766443323557288512725922978225471115325579186846118519687598925825447894692384884634682239922314647226685693981443781813885115468188635195393336514584862363798696469857376518148586861987266916541326154793497255732839535136678619214574623337788861794296652511422757128349928783752162526666797863563387377946311416558124673359495733358143673713357958316531471732967872137387512296935578594477654349432959619728211767516852617821853948918869789655315888148731695998778564323288617186988751621118976721242468128727315269231231927587582726527488918424337239231877526687248967657487819533445422263722444229884423213255388729825186229531418749859154482253934432143986936689665469897812213546649937528987833378248838938373736629462358941267181862665472655217143268951976664541785223377787482587372368914467336837164722459517234459251585126688384656891741354788693531932689518874442515549797656998991949981657991131573542397887676761657623212214361524743421987653517368588699925855229441447992343868615465456732343277219898123397968514938612735942552532423543349188572342494987932274296459762569397431569847649746155599554691521242296171733686392741585944985999927624686854563646684277565955856527965559886149796114751245629269856389268773542252516439771796569198914871134247378829887855511499299576678992718499467142581621539486144832893731676371418469423351854226315477434159281927848163146458888325967262279269744549744468246167553278375291164417371616429125659976794312317658374224756656222197666986116761476898273837448447194682291876814494221484117841549898927993573913323351541224377257948648874274385518563665181896589432129426754394958225623792258282383225798218514325677845969767984116485385235556923696181167646146684913425861451599218213957561118599639216141191991711196741741679543453955153152923932495478525468594797293597798872129566318844683852671718366254256292721584732826963932868573797315476424777768354646722569738567984634981667392645316461333978676938426563192156676212335522377969711447646752317727949391436223192246799474484265769788611332521644313249577884458236977819952115435748684362797619396976871971313766524951129871789376753849779135686971972968926744428692567361728315493598471944375233378993164894424662498493739132458257443732263429468397478361415218852125231462318128754571519939715926438574694495169516457358329629262198456795211142676391123984818118743312821824179718721918388178852972952943431311161151778576351547643845168177174188155712436488133215611518216513317787929447331541912952862312632298878823635578578673747877929137825796858286942798162747438342922471944863367445232395948761752998982368683226748768352126182272969285833145718573317498117224319217699994464192421159959661982882659638874374414419494349347326561424399627966496335559483223759791921972567296818363212312666545536433588398878684993933189633165617965784572329629811119971277728494972417439381262362168274846586972113745673698724921647112661157347511178347218681643334481395928679776598218856811233562591982748614243153737427438685733711883744957352535366898656128399277531736551693128797563154882798442423967926237195741945333592435466652344866456939824446585617153697731117753335325559298659354513385495979293623278188843767118346866262171432648435129385185827483819126148291934536354652222759139831434253244586112465576641543536468772996343944989426189144376822589778291485773625212224542122369135844982468629141262595616821733397685831583585591559828481452672441813859997437472363191135393425494578568391937944152255674815445892636455447132446651127417831399363897331932176621521241923942758946568562667218269274254447522395852697663483188115321755415535118268934151468358889845375837237142734148174818786769297668371875146449247537485852861415233319693346359891639114289129642862632855569358311311628439483569631715252176817837878612548884736716321327897581266127171968332891423544333971986687385371192262312456777974962429247663562777788923589276562613517363517674453244482419954123453178238985429533962191995295531727539426848791186296274693145216868689374143152659257516719229795454489684878943847597958879738374512579957651835573378155137844284341325989962417744548941625943366488875761892664997671743235451988766222299346724382455667192188943455574587159477613168766774557793348687281128868164739495741529733572299311977873256185559699662829928857845512826424778638474655556331914454435966334275822277621343334658991486128425817935686719141496386433934765345946494975778818436868242526141533162558824714536111935175678621827951743212454955947434891642633228382682727922515137426561732954772729981682732144875322473577735817795753925127494936954299963343912486577879627919584714699823114233881577328117856326675556657179347293935725419931577923687384228847229581132923971773839658968642452211313314681667749795481245271481411631179234718767295399716655684756653556935791419837798253621185649994485955985768537352513611265954383877265741474117267327323727945222847399447637443164786967651162245865817561294599768353917913927593873528537866742667867547848478644885637213776942527361944781444822375995263845996623515873827388416894311574973624763358539257177667977925321572748153915828526271878561882837911895984455397724891646624616396375753297726397676639271631168775251359121648315968875828734692195939831885714399986557339688677179153141511931837473194152818515429723763765736573662967247188538489646811384921287483186784525353327718845327245873172638971495617387969571284661867831627656226845449486495752748429472135646229663482121586558399327321875586532871872821475214125756743192643811896977915435647212865164137418476964754286659268345842254873611296571889543358283565678966317227863842775919718964531425935656223496563953824619862993474949541789235519881242137226353736689747669129187112214924548722378233888689588387417797232113139942229988845563293872685885187881992889662118338614762239636314393489346556378938494517471991421558572125652345174435152151173137764756321434941372787881888179745121741684176994262849927625578989954112397997413496487148586374377567697485116255783486234762178724583211611225583821333698794575823133273184542713645894664929492793919218552623875355619192931189379371125276454878347235327326343268351777491688392925547268682817723799329476296387821437284364945394234961679317978921539956258767188485542552149939172867482268866713255381495387375561198214199569774313332768486721729649938884659979293267195567637481464241494491399425223768311158284517447875795746157433263278977426169736315778384915111327214745349223843411237437938169669944467388562883795446239824689674919537473661739173785556924971269123759994967863131585177455379371435334629396599547134768195911144555927746495248842197816396489734325997427839613712592121659422743221962555515785824926961892875287374327868235696997583553748246953285961772132621377622785699285494889855958111147788866425333763152935539331234812697239652928323315847859872242411223977279981111694279155269499311617314192212161477471896825755715435744744849975613691362737296749192565758755296465489663472144853199465238757383721685823117491788634157821547819777368658297265927422113156827794429275994699191733722825597266597415993352241222383575124629378818396511625535764111592853771451279839771233699188937193478414331393171283442249132642977798139159366374417531434586663442234249165681922664715953619752965369275633714779141445786569745262188531691967961814372737682218295948986983678759975247816826525128897484642425212726586976428829788327772712233493942438169851728641317477698728112254949734895559579227766637547651835717276631677588255727361924196567273746783541355616333433732387994367745188922583126348511648347652336724525762973596447482214878191673925381587736458197117484273239329758785467992789489117425637568433291736314573511412143515259992219272813251481431534773197186197123283596445477429777185774373873292441974511242219797364581777176118215555578677447263412577275775685139576323166672912959765233681183139651846413592686552163221327511364348878927285729725936156887713236913613421882853255649327977271661832163141225439993813699417473555552755665217995276435366992335889953499819598116548174573796174967387267226916461266622871487773491126828417954979529717744411659651332963767953914774447788732697739925181786976353775444116375838728137295771215462995395822395166868577944155581579199681718214899646239634963121929777847648126979582453849242233299873637428915854897289293325634511763484274758948656565786238678654783219474366121676155667335178546756693828429486181547268575418973523714546474981124639485816793144214557995393394657694274743946457792491831158414163371643837462132261342246176473699553845471683698522734331867125961244681747986747821333329911596519867721519183763786926817856416482153194892167435826516181721357442741139225857339878486446471115378371293767399266893447974174599327445691329245725158755142382323856496437341812416279673792823197627269973964984582557817987397959564452646945284237917595314997844188342924343665245884414694478675499571894159463841262632958615244181269564399583599742745496819217213159578326665529683122692512322526473394859491358569618769881943678717182921945781732596465458516375984175968436498547274618459976464769356198737571277547462368884269284783546382399952698823592817725272435844973868137797947137698916147622918395186764558241719699113864955873272836272975955894714981385762987151777865358738198486413779866672547313637518317145575843828465427238392831751454911583665491841654473565539554844873138568452517844178521575759245347184828168741957899836311123646453734549314388967841351461615249422765784193998572596531582895736811288687775522661213359348892381499257823475431431666688568695634558138456887821885443289947491744556381969541638262488373111165519148934877831636763689789886336329922399971934599757725693125735737846642735264948799359559833485168631894218593372286131923262666429599719658875993595587813869591459229284862359599938617893733677589496772896744637397175348695344183741819473646364861474343657154337398136489815299337659815521842652364982862281194858739279163218443731717924132316168975871199823185255746948267764559147936927325731295798513379634536229711423985895263814222274436147127259337826232511833931373786577382124796317458531823839117655363464843364118851721914994667183339613849249925997186476732421643613976891782279877415977218173232519197265272259889466977774985136845651167371168195782369657251744299295823838637185311275888852361279551833694313834849217183218316261243492733995368289987198929434448777858138564372269868759581924681454267813339345221185834915373417613493624558961168541831457577348576838282177963726798832589214851433241337924194664446684584869812114146728937484727375624999879881283855647474746362824113971858865141514131594139322622828883668162222524464766797757838626883699899831376653211885568329997266934926854597618686142863852468861343926365936774287454638863558682764389772248666391653339684431597836793826661289234567315647787469837117564672585921551915763398272962727175232623667667123342968155217815326386643488988313318212623294625253825244842753983782844263524937217711184258445613896112353544364125223447272732912511736989315716117352167121329361443931961421931665751563485421444645621652644691165291338668713166527572634183988597521286156353793441512821229958689618214737887232172363464247916866676847636359566681916221911586143626489924858416496917998946559712449341635555984685474278722783826841712247636184411836597755946611689793455952293265713478972532578446662155364579949287173124361184741745261517592428925336642751214377683743471513493825389553463779447521747888927298726652897154998548523392183792564218286882379124874192399558594815632319437338715124333277126417869989922654324726148354966686362269251316736218612437822479915112125145697317968191672819798319391793353173768477544713582392221199414612877623467726964183295183923473459121445996693991319617998235468469393893541649659429298929455382211488623685641473282972817434545572324581135262389477567399643188211568551966184121776385348436356282947933631932988526939773386895997699852843132863566423641221518367241434626713148679733744695421235266628287582338211474743174187592144862618731642677941357664314527794864636779736539544219639981759135488954827479423633685672646558186771263898728882149486541185983449554633484271375213866774262496341692831257384785961437843882495455538543361638914957731827156582934787993965845249813883688235327685385589954578547635873695126774392758553999644485873132533191429484348527489618195497548747779526849782428379188537162835693544137195127945953895519793252495797486897592985265514572886915474113693351448954414761937528156366625748882686925381283835738265826289168215697225233526889795167685689391859569972223891759266723261199965991887918297252978549755864759149128819617322529253237712167971872752623334474399412162267954142296257379616925965161286962464574188714674265651166283779815251559319765182546553169337216621665596452958193757953886486147114552997182992266849117556149749284474182171286768669314728782698936324532549915861791172739889781312754787588154923129293171938868924482148834335526434531623498389528621593714256789242293432259211862891972496965867966218324223398477465593198474251771692914233869615155354191515572522611824211969565999388337774916976156466452497886714427184474961565291735963741299642341587973928447311696968987949154912687869693323273879566359245534582377236457775942797412335667926143755381167542629449552927718311586115919663734657693794455174232622112967248684244513838245557619719896628466789929293915459121999889441167745736656836461362252248162177851223876358884719925937733849524434692236194473364766439513544885345368857284319774496256499688292637411128349215645348888845655717446556371281653967845728263634278712448446491796489851567729236896948773412472919974938619412181684452681818917885277826867956914458416486276854251942627393893237967695222786111285246966145357853593913182681799313797482817591741941358317386296375194374823996989913823559169685294412894973651551733977973842459891968265511555537724421694738616682417847982333914345415777537275425199688811191535154439172688129519477157256298513945852919829761697392917626465659123113184859928657737499935588489599888173954727581329122459287146113821125486144255166291128722423694595133547952556166177948161321779172435129264861466259946976834841873474389765691395289675367531527845173948496426824671296748791575971174824554935372381955835772169276546781272599727822295752767684237815823172933694722277354913225995575662754914375583317597728217554191265555873422632481952752515815821465853183255273278343472852343368843942356763178792839114337563346639654139426285377288591256469932776187938537154862612625252134291719412364969345494555969162472542482516892635974418814729856119248379848992397738518879755365367184867757775447286163938454779577753526283627334829221966233179745995594855567758759655367564347736375658185669435489815441874556974538436882724253933476543897584737558247398713916233777955783965711623252922312824171666234538999849254344564645142117521863751644458773238482885985737622896849384251352191277675138781868442369563588698616462864732697531656592749517467913188451521264218657721672318187285129161176486252913959189778486997714811449963152347245913652239919389423218513736449941194227117945876296937291733617525926637329716315897616678939589172624345314935324164622414362258429743263645975372734863288314134997213456853479432718136856259447258384977295247327129695211143848577774584897638338397717719184832618856346998631549229979877241481275689287948983814781766481319326775593386173453731686324444376843381418126341593661292536952435654694585919169215235477952293658128566956763773285632227326689572236712486653862324534166624652674253482945221352684188641996162476614796218343499787642642146373843212822555684643496559554172354565746889358511751485449656871237689258283844818837371345712833571486293576866558175188568659887835444692267611528927652416485976491768964534674455111352871276715781477719175511991925192118578145172753558198978979477568325118516679725624412297134771592992642198169531769778471858897885848957853785651537475449218886379173747195559513248682492361887784167767212243456213352467556215519375895118354764188235978488848766245645469645133744132861743518123577912974367632943128983333134381981177513156248449337659763289177163712916431373216859736933839546716817539566676241223696978822582961714559115628639998585376414519561924725386158937875392933382237228699926521423199538712838941763412313854896195947817999883857188118483862369754434123981265973683412778894878119422699716282459789847536894594535594564982226184967628298657989438765163274762158719627372859883758254469736831699541377462331595319645617189148983199745958996326289739437331238337211695375917534496339953955787517465973473926354876761846325954789277413614138515181255886271538455186345658497995911488995848673261684158897676176914782376132348317623481148645334593738332455374135263366131443893965886931557859366682284138397493881473438193938576795996726466644671712512794442111419172717369516687837996431531571477557263113761442941673736773629464179281456489684631992559721756163971915542418762652896778733338635625969219975138228784457789432884379289176488291168492961813989317225212759679565285481351558478289511775621566985423548592339147987943414551147578723462684587276869119543447284155381448875583168978912355963267784737594143358145935149535841428881639924258152443847789263394162123915429124257531218134363659769969382283597241261153478534399385214332572285111215432284513421841263311528138947481597947378362477697659542344173131724431256384154727661683181382463696792338724985651618927845161239798731682981435595376869455477336119267355396836252847773228841541356872311873497571348559234367382878997984123878892746658974693771479257568745634786351147597855891795451224776144778782521115674634168188446949417374416425883335542349273777717333764316883916558672589856517139316725293593936793941815465158988559978127411989373353798394182836723634454342268484752572889962533884228542757596871137115899952239549493558217784776576865751864727745998719586843371965539515776341738698435199337222754693169684665424257756678391456715121979235776189655322239164534924922834391798753264276162325726117189417486251466773369592852463162992749244389856173933118343458538591414733716324516716421664497255396679839561819461992866215811439995878813783729628894424985928816292963232594364133574862353923541737959198423736182457572764117271765565396668165291946213524231285731169615412831825536776988886459564525955247129561137635413848684134528922634579572233654848616817358259412658595727172455115694319123943116966326113257646195526436621722496937538742495995446867528689638222864637666255698274825674536447533885651266724531813369623246999187632757228661741966827141629537391365975731894778351954925968687512919472451627553557747344182742932978114175829964737461778842935131931337719694967713778652755157249361121881286856924879944459153888971957965649241426329654559646534528125668472523144918344216758189891256993134348637452762327124194118687989413176811185297818317518376954884281671677287868788539265851238647593659468143821553569953856719368623558353524578825618984443478129364288339577458727616849276977893311144189725485155728545231829149142349392749254615458861942935848962991164178337863658731814388285373388675498175339192263592318636853729348955477475582741761623218579384188535263799863848919228966973382133638798675958738659445832269352615474231615487232276659764698858385697568995618824478245514478297656381188549321557461811238147611238226979792855471462585288748651463959938992538575612129882546582776667456499356617798676729378444811536174198657336983545572296685638145544298921618851398497865417222665974764724498517357922463174338725981452899641264956181298529471778893971835851335724842694521486176363445729832393587746977115722247581963736866213876373963435549297282455949459627244431773226935653887361315266871214271381974447525242351676343353569587574817558972187153577783948987544814668446555248595264467245887278533367921325163678914636195722564799471592898155945297896378424883738767946652145654333859689858131996671335538883195479337323125113679592144722931558571292593983138988171552753798535553781878182988696641815173726372539516324493251724714299572197249181722151266348617927855854677666636731747361129792486862227864326989953678671559687263383168499187882248986839787414531847686674352465253636695334687661328865291236641893553974423177199775374386859848273378791898697473889218682465273498357345294729998898567713229358184717215686675345299761972815623993613169615239648695592562933222482687658261124864312458551873911168733438529815235461224292482488259492244135546963974482429657462391415816251856153371522376912131171652276251655882834141539743748794819414567846137322375247512371559489736519112733759273913139974922883434323495669675866267955346434756187316772638124521325748381556153874441594394746677931868813427683936975494758314997972853174633925521949215934423129384481754134475568478771112393331669643935463897635491481521833888752944469548399738767718782171735817254198726787553324193188169531345755426184838149549657362315439983424923385289123977592732274252584875192599412698358521537842189466765815845993727568521215492238793273656945317952714833252474242459694297628493563745959186489524474792463182338692186994533574711179315523754613792399642788268266186637711151419439373552257963579123782787827759677922137623971962239418989753629222313975261357361392988744996926146334759874498517695579778469963585851737175926665112987823799957532594291672137548646326686479132361671637741484247669327854866173139972644673176842673358723221423399463821127582758972644954195315249521423161235923175471878389614645686892814395413839816635695948416985164573913395266838387682522118524861262489996579498265215316256542567695585143962677187618223777822681238632717964563323135382974122133975156842388519792339516718811297692275483132112133164644324333992218646859949252558712143466665774537122925839865634737164529897349141142524599862224929362241774768762913351236258649665679755121896876191213727571337794668169148526235234585232364943398193996658159562721334468853972772152725521567647661996862968236332392854781444199288755851653285395478746771171978733226272398718145928684589577341561168286957761143991348386911845851668253818921219233951631515989944768949732752654858899841427221687561433517652846634528549251328954886136772764326767511326446221519211678644166632472393737349488388456229625177214433796339267986721231182599219542712333349827499411529667577522571614927819647488528474139861828877269859614451193839322398279156873657617841959232154263889774451625475159254156251567755533878949465971785188694641214757943626442838896394154517437781484645279362141669974214836515543895413338442497384714287726279469989212845174711171388959566412381281364761932137266851796345553472487764865858674248217749375522659336611286942355176749757297463384844853446562967539485195631868242616759385489932961561933998821962545564881883978824815195776762825259538515792583853453821485656971913753223379655989262198644241222486698835789278284293146469461599258931518435343553866492347486391184135867481636712339462199618717129595233275755777714812853624325274676883357734594774958229551966324793928699939396682493447433853312414162155984543683816548733144284599794183536794974527481584992341219518652339517868686544822145155195761872823497255798289373868366732718989229844424221148434149722892679692575816337322953457227396463322569941463284389515225844478719945938874172519351761244681461354736522829968883857872329355278532173253148937213899921835352195193326521414125314294376781891419531283223624143353678347437367219227347688972316573396938664374285817666453483129348842796132441921566192439632565349418811143124179788821773828352282962965267565422293161452186394489575981735167266573528625245564411898762366983531761423935371691679445561158491466497588915175141974521534364289828466367855257145595437863181153888414289694297645178754151146334165473321641394611474778873395612147369324433792738196973282651764581412753913175984571799864938475426589879977464711771565757694134672647534269539686532916666967334477129435477335868168724219843279871823359171557463224524517634412493627524569294315657987649989927378929365265595158647392288289817698523938487772636465483281269718469652589256328745372489495376212166224129551435841989829345855962572874739772145143114948433918165243614571574987388671323614419933183539576963581348479629969852959292148635882916732694579454548567561314791882454612849784138773529531799887822261455223535412642585554432112138253774126555618856391633734936751937329864324299628771143346911192734629959458311188173415896985968328113147868865563793272759155876676979655441987256363427333719277764739262361965691832554735642318571587612618156938273656919239886924575634338822748182572384171763199552864756828526764882298354553497674948519361936314432256692731476769511446438859282416165137164731661614236121948179664267764225282232554956959846792217872284681814859255848722282393971287446516881814287148366486663569394854541421748442256784459595515899133265237969975653186935486964867273586272179533832423851446822538776393499353535556832865447599366985224248371835418575929667582271682994722794234172473338976283141238691779193481527741537135338341291267265594545218259841364188217223838367612121736619636944744455637463123225387838791294666982454188381691128892652671825414548835763713714683848985866417751444898269341719183871357986651683863788613773572757773361825974258427287444681655422647629116321252868493859824344517259969581515671521695576899339955949788838395436385732311234127591479242871393921483513524726464491325492432613741989232593138577598137279331493472493443646483231934741653581738956391554182294396651615854835721439374673782219765624199572943964892358425536592853362299383589868982724265824899136345174421397985256462933422234847354595513292695242435656878143867296556875935448679134611415689399955532924366924926366316665694679112193329921322938458924483838629738951852872954789581837991752625498374461655914853834614687738268195341484875269341711158732537346869897174581514483578459593226793661376735765112458183132443912167195766232532656554757979261476185651163325489934498186992939646181186327754546975782372564327824823443118562948416632678119682163416716441445275738986685654769988458982125442914793251725189977713599692125314573788769367244814153912113433881259834849644833227518519842229124115388233424736567317199112923413831654894375812433122132233352525581769175665887199292393527779216282989454932631439558799456267865953787178341364228986911536291596865472384421632439929962472521196443661982944176967953291342331874938127212528914799928931154131333224835976766146936628713915148341523819475978561122873272775489332522457854698691777884151589522564598273521471447135529678418654893629862898832544985843573337617968744834616851248622778191869556239512872546558311476185152996627577654887342152179687283272733469124582215329426375182299462616518757867388239856354473398458198862448266878853477724953888587273416222799575892674869237975692732432511457837173368261857415577599759884576174418224298828455914879847294791939741158841666156543416125484586459465347414818362592114553889335369793423794528668767922199132457427757927267124889581688581635466921712328929397335283149282538229299412212141864273385384545357165916126239295513731248583917614193695316225774946941789878638838286515127683176759727614466248856596917575762337298949374887672212893548115236956839656945783813982135936358853525481973442632729923415939724965483479713866937928168652523817355683453738222813618463514684417866199363274265515359499857187863461497694929369784623588295872298236775267992969331579287774874595163678277353286322231817385534939297113748166577781761487831223142732196891448116172119882894116379588968911792318418386566775393249136735894915755573128684123247249791289671945382582331532854567436554492485813959273235319655388822352398779865872173594458975767972991867853239326565811597163759949936611822644381769728435799684566926998162479455427169528476732323811626653577199714665493165276467517162318918779235674969476912651457476366243256522897735336471414152777382595145235898429847787281458176125638231619349324993611745532944495298369193124512652626158352681191916824124354519762376181348358349821111546986863978587599325147917927161558234321167627638143732424229264987318314175748641714944255262569389119526989642612995429936271998819749337282341541971954469469348212244843976119196271416452275185298673778379268765716432658146665413688595311287657399444147793224471229651767432951884297856168396317262227769954832249824439268788414416171155347451333665589347177527134129543177199356793727524155756257181397996921488759491796261775583591299782629594522591117284522671781657729668919258359856398565542497268124814727533427146882335574289881261532284335829596729265562451466319417749321161732646183316343872713486398314376438936246861137216544963793129652444957633536256789285454655519744937781133647225123557812461324626485377641342743987678714846287835253826849993281847717181589361776967449339547521191788746653729295948951794546554433296751922842325299278613147589817362463555677186993853257715585312546681247845444728934593151471514172996771224575267427622758799185285852752189595346917963731538137521575784543156656342424566469911167525777973627241482727354343237878455142393116244316139354676354177571619829323753345371627242549386347327259424648264225838972719433154857798962777188561448528441754139888684841558394337278922986487366123417541469682318199287726532944373825841899939838746426968151468558133213195977741372877672698452254464663959633659836483553386412746293488341695577116361588137291819147871821377167694741453163233146723795631347196359494699812196677936398321911535464623593692258842369181172124559911259428533315431338445446781661676597251571912135867391868834981431155982982174549378344936414446441848936133586393127418958272716689572184322942142773556474644213961168589663777943198736189499795799547594661345654416124853831399343973447371635175566851123242255553676314375761217691693816921466614343561146256725874955456592153375622614228789366652295744738864426577888667583947156528982677118656333198736831535986864931641495828226989572524822418791744784265976565412543825954723796164379866411841194365869232491995333118649622621856432344473363874184837789841924556679196332428825198866659642985652551174115886495262737779778333477564873352981496578236293834161817183427496534171883393564879849557787537978466544772928496279225783535232977611877167996524534813155567663313399986676326658947333687344553772761337758413216928287919254422586418183823943633441939844285233863671943246487622614588996418685951945257675436587945834365233527611125781234873666938365776938688579957969446592185911477169717565459145989538646137154749519355789684171934787379974337288123671548836937295823729133851652818851724315124696866759933987167852833263754113688264956355852536618823188588747553958562946998659431648476251895179824118696452384247165688677174865255924658677189686144811597883398688933889588445149419467234443191893182939763266216942653176486566774866733958568162226434162718384661332537364178281723228299927373295446263471287268461289179697826359965382219824751768665534215749734243253944418464129672982464326739945237678394716553651886297869764376133762121665739717436113187395988153264221783664386896184813392196312623591856275763461741969967687748998182699964391463459354923686586273441347666692827742233492138556789713478836927682793132124869537498625318899667736949141536479997869381179835698282984926653553338256242134683391487889543777999724227339677816854631575752441412723446312983666828956339573593663997436634771461256787625863129419942583869896819478238525827756558787172151531467279121492266619588276469413459275176126221772728536962983137934439139651627778522217396498181433336381342918869979687226924956288717731831616512459162653948556326989962922562796683747941774315914889981126285843997689657178567846733735343827126685649346182865437799233494195663126949547722155724636866275731931524377938243514976453179533426557873676479721216852947991131675352618256117126782786474476433867926731331932681657294522155331931593625616754618437778974396387347588948513874696373159488816538277159819175445962266195974536343948819716259645751468845287811293973844467311775711574992672671878152596116284654692989146394371185223724441796954142146665192998419682125274668972175632139228159927127624871767764327329339125916527367544699375697238941953432183699453712538178799593587731828178912272435332981839278851832638338545778189288262288953834987819652219827834559668443635823613477678468142486442185448831179326963899793741375484916788686516113382341414541178358826784224734962175115458445269951518929283577775174519353768653613484492659416722262986352116376515953128948429624823447547264825299511294134886367591254869331641581599892289725463487863785848996945824132993438675342528993782365756148237351126541692589767783248752565389382946894943897565889653718227245228698182261917485339519329923534394291216296824446386126928362599898928446938252869462162877836725596248829645711647732819583953392925787751111175738919757932262453921675675672254935818412628853954192559117221614974823174858243542686596297257554834131326238473541188698313857231623744256193246334192813196819769924439938242774273353462132917899242134848824231455781883963652565577841632954988447426713966113659233385469868792334884171681836658866312287946177456853719872336192631848523939754228497385596915167241982274149461291827457857454166154352666491519481125799434638343758813452481329339798641914726192773196143255987957629719962679746845448654252836587556343499363946571345659732389125758987813296634656111974111112476263744942614869568556756846872487761154225681436389855438915144728724244593546163946478259763124885297647889485578215921895197375884657225963519221623582999726295549262756895717768827815776376838645719397767433393883359887469233693411176627937214439217933755994235333893576276518528211574964375796875222738388121841888364582151647147211138849923911726165269222836645648332313693675271696518689243617438659899155463522152821724983626579469363898149245426487785946583328254423337251672229877361819232945387519224382392388995875788883311161883291429547336623282868298284271491432475988558777954763562869998841976465211976661936371467347131117743253249795788316441275967878632846159929488218643768345821684756352343171982655829642924971346861994191188243624577768255279756754154262865236573249153569435199314719895317954277971326358848678158828358943359945167583456323928899634327542435922579715336627416258678322444935181951473934654278935855989372779763781173438755547922421348495471748656989644297879129143783319263936514577886674474368545765672864524862641296533869623188645731163558693612355532383591444815922166916276482834953111135415986191792318847929414593696136625235393513386987716166416919562974493643862558329834554144981986326579765811622594747132429417148685559141991149314925157187871648174177965168988388894582269322129526211717414322299548655486587428139198737159168192857284742474276184846642457246431949313441657264537281224948561654584628674388632358271663518664812363121348292215132196346292572797999923642653255354977495643711491372634798823347725363826985134952214564454586358674855453954458559895139587992758943476661195849628131167656721524751427416889641443347913574625981821552139993937161751996357735726752954742124629693672296858328893988352453715673839148523354144431255389651917291184745969472724838356211391119917481876823983355279699728828728346333894283427824884855626487312833213522653334612996457885615687988331484516977156681478838396185817746287773578137155848667354744418126693949843637121875491854294986555748721874574442969945253542196469331317643187273166482735734371292323977375982288815977549876785996293829217425196584237113689179789851861692191548851459717724681466442391489542327351222883339376711849877721852586597585798725295277965636621767316155624385794191886349891865595219651978446746835549428315754274138126759423195547479298673179472373757688888333951871746943979195469927895727922818871375662561995997677138631729687624978125124692358862613684642214411312813153268953214461725934273294363667783587788134194586893221546792361618376278476824494524668336452412148646482153583744289811546676778642271365623885394274217664232994291127577755374689989755157256555567194879386544443416712516151596395673591144587728497548143182621277416421767537276929723831182217948479445287914585355647745855537374228626416765189543197672924741151823543118516469779426527871875966291591341776742673223881878454963992816883466422733112987733127497687166291732814295383164266995542348857829919418846142557946389513276958948878552244388972498348566259844521375479896683623557394898782933168596375933295548268547314317512452979363672125941675395734375518585521678761253219638189417847795146213978883193165863813486146558168345233443638114384622225771575399713945187998326567579946183592562654253842653399957859447686733997413695769978873556489147729897638786252248836979698492164954716484988292874479329159365641821358647346533869891716631175155279933656298465344414965962466874765921539465888228594189125711976568529345824634474763575945133678518433914266613178226619212378929852942358817213934484495412313277379494274885176524943482513719336375673169466927419547797858889416864169186687217161829594273213888194182641351866847687194395573372681844858845437184794113459677844827192975317915463674818865448718417693134724259426716572915675426175487748963994564991182539971477914568363652987377385438325362852217133378576284812344155571554674376594339857237251556983847295622279583476278893846435619327879886845171588456639251721532318287761257214938581516566529649557223247857249998938674235288243855168743566455258895327736548813319983138653267937467129673443654642953727933716341943998232486749835295887147761664953764792475367766243857513478763929398535151816321685345572347548468219613674215364686232346998824535494752163488757459564163834276615189275524388922868264446762323621537178416298484291524179391552415112852552388796648134953918148449633787815674337931316685598332184362942497811592522979428241447663756894574523665652592315238984258837275526872237385415828616922795492853429543251689271921612761219384615668863832757848888163974991362716583855938612471177473763787867424799281141277385832197366942672942948943169777268367182585632735819712918876581316115262624786177848137815453483174488549997614397119789225453649977732722462781489457378712965953624785721988826742577246333717177436896884666231377971613873478212692379745367393981941127355265334452325641469657632632366672294538649113248293855817943619718151914924227927212673465635495219289581892684394451586948387796695552539788117332379863699368837271424372171793721695865871653379499737734894264224799187142368298161733122436748298195798823632437411623754437236946416277439663393454528851664256786293846892932366617592557861438138322791983918579328464148271963884963951242188919755958865851239614798722921712575179845329432282652434615574632137912333255373537769921468729812492433648276417274265191762743882934297113554351656965132196374466675474528843898384886986413847315731282955323152438926567741461733741936447742774575221774811883156147572345413748359436696664779462128242662846669583151617184919111923189263628667771839537817717799196913264121686768711491962731631332457747716272943962157231274286239814665182284479575176284493925884341647756283128536244573663141454417282789882734257584759153287428236393272334758396771565883524336865272315669489145992578729143628245454729667552952298961965236938474845799445641751545542854446382565124967419484337861946289798953354749371218649315319817777553786159176197749771399271956592761365262769434311339247122762937854351436458678711624235492594377513545961838588449862291249466216558945918757491476485419354854417291672457996933661191835211539357415549139621867867849369312236956518512363458134628543464576171611551676811793264917243581186146181247737797893283816154242656364378141798488616886589794858485812595574312271759287166542378848888345665781855663368821848612581214671148113567783553647417546666132134825161748974336966611276777988461766739526748434185992677356271256728768333175463753919643251264735591423518944319599462666672144584524765568988738663728475579927268534888667439285466293649531257989366233865663299618972735838626443145321786186846633815487139763976598465153646297576994717673879417253657811439177776137774951782595759431462369835547194499467516861893937153935477187525351191685655846542824261859591935923989545928572644959144883876268466498879626888274976454731246982411387159637434729344616629327458367171932675945869229872892626442948131387771257177154233375818113895923789784499194596823213993172564732791929928367939249428634881152321222992738411334175838315329432442441613343366762245865376328442584545768194669764258676117842188532818617972947351118728492499242422173678862485586356276325237458666823688736284718426847268994858331579442959431252735341231515337385228313145158222645757796238956456286481884696759224794415211836453189168537912814282623143916441748644487176357575626829129653626479817514128765236817719664825461431961262137549139889656937473395481497599334236124967561287425854883542555868368654499427148622911263327883528373723654257199381297437116357274544799914614522531163863397125468727727977228369376543772573898679332837548365292646913969349996939122766672181254735939853753345236312858956972334827792966279693233398183689712194653847455225536755554822783972246421155676129684248419676874977519624179772529832773621216593353294491457599472647899719358564873322357997835988667536461226613823847637219598354887523544184365558212821761584772413666165481846755736892739116256422117556538183665234397387891431632376828637982395634342921953195332713675453582953377467342652165145492836274367674318143296483796235327933258916336229337976145658179662976767388991724411113568266231338814533422473623623959675287221899343573699761932216173681311399224351511586588699316555574692613948888836484244963617964313563857535417145458645815499829165349982422225649414884233114191534533554755319249526839139438582733177443863776627299112945783865252885169436987696516699276352766834339362959598249798515239494877311125291159963742682915834311921932542446333595643843325545636629852995516766229493615168621372156244685359862719169466227233227741298524599569565591912523725599617449788644589838828969342791649374243886334226196883816974828845258347958379878556736313794577983615311227113847419939298545333584913925524897537419438372794842222413864233874525556364433726738968244556634174528245576838311195819254826124465388625397128126696521883483738245817436948738478929197235488292782425918782629311318831468178346477978746887717637529555461285723418282751332984735679925122584634542616738836218656646947286558891951524396895769314898615159838813764183662127947327966562544225591797943145848568164719854274613671365577852797583863847255514762787235928186635811184898249615683395887575247626635993816777234363831488881543115514784351963378561598276329429859228543637845699649456976927992814656819583943995739326926594775138798646849928481313883442819211161825497498236356534876957877874864394922743458891277863548225491738931293427216234819153854384465156266498228831111914388517843358954593394175975875383243716949635984293499987474793995266751713291619958837554832112527282262481432315188733115215267975981227259279778441641942467144642653367284242975938122257762115269475292425612994795891565666272119418659199397666135171636244334165821829648414996413465977391616188969823653933573799195825875473259149494586723982791383768295511314332571143331499526682511951971283449444656595447196236221296225457381636285628327728341358969394123184682254984646479493278297698796265268566811457276493322861721235652597177192729359479555526538983242747547618623469314655218197319473227877538764684149569269888725126784446222578972927834612583974643966686634522793475746873169424519157729161129466839425621542992887467363264291772613163127216385121745962471347487684985715343734696282227239967736124584997268528126247868845617198447746442382984517282165526326259723357375564813522626278898313275498135461741983155762441251467896697134197296491856988994931611269963363972511485173963464414439415631837977915413788824354785735288261966656195364155489747229727442337982591116311847722522494948271858986187618682453485623916822796695293953711835173534735396475934353447797779276438889319856438763995665422249871659581464987662851426747861747792649674153628794835498185158728772648934385154336755553966828695758541869364686351615991672331885649624439698313362761717939918461322764633443559724794476476112234399651785949712279517243753955364128286589559566416119374668185496394852796642272772619165763392722116276738836113263158634844915115632294977676982196947322612212674783171647325323917638689799846223411373995436716468236995878479629747135467948565467965443279141914617144746682928614137345249239579274556114295954366181693496252169414914423818244841799938543659681171412683496771748541485749697684624782922588552315242615574232584852152291934154568638175487635821925133126421767529326855517188279572773413387939751435775483289936113243551352136159526854253155655877133157368863724399715899355732445649365142492831791179194467619163988491531614672578467714374269457386438489745882628478715121965673395144917385545373143544538985215718188726269686881143475263773253162823438396985897125641818233437519643562159637339793773585616356319556669522245113379627977692232176632573686186414354941591623729472638886384934258633683545825643784572111483716669827171552115274529629647728364346852896987494755616569321956369854934522251525175539541546162936438779884945433876731863369463994762759942565842313389615441639996961863199583613839789133185165669555855783843226184995393719255219684942336546945444953132946446393697719253847382667878962595135483143967352969135792587636237564868165778875777246384946559214679464842728296728336639264973441377741812621281814566482779112137692773843841832277695872662775534691763147129236985472637795246496571875575497986522674444756486833828366884582133379713977616278469284753219312549499696455863698426782982993155885853478844194835512689779874451845262946355637976135981877213295692775219653358851349426936344714871291156369144168989582216575843861864481484799587436635172455732627145974353399933475972126578638333839254472454591977178525377119371295432667916193899651977777515613255311112519879733729586136596612242232281278941312249853482952965278287313195125239114332337433939758368667178581571793935577651634461117714561518577868495169922457456127464523279956786282173227752464199431657542299617715916661816115138183746946816565165631719219792499662356726273677939189919868997863176557165322914912813688488254352896612122223614884942888583817986556568779138396699767526795494949594362163992551527257727255548487713898197231382997658363726554134493293825843931686413573217528848257429892984142663728138789563467198877166459525786578345291426125891696142183451197911439461163642792414493747745426568414518662822952499664336777333163423278451544683538751428159355586713548482848192976918612647185654897546729639715395165328826371659313883735595135432952733351315246413786234736169254416641661164614761373734341355586148193199448614741114537542989483383591524385668667919752941878297356387716272937737591785772671395824484991194657416575841917926498736925125488928565839828519147821512114432333178551433173976757617897139262568212335441538294863432244259295814137451513322597841943457366756149785734146395877861295721485999876349644263549336434915944443328842896211455376818288772115336229397817842379859667545645167669599279853179954821463826322177927834627925819282137218839926627399661443733731732452234116676395251274346598671725837127774293716623156696553524116727575883143714917566212453852322959437631881271827536661845155251172645723749822463928193587992999252524796667793994894931621819625866234789469648937329362453394779382651585559342863889923242599516772629264177252349221444483333889151966363888111123155494616994898873518796486588792329571159437215454323851499168289146151973694938459534663479298191695783932334178121576724732431499856949172477278216787149272111985588484622338248616419327527515963791252374186957578419141789275444568685873568315945748716633277513469847193813396769531193328169285159768848267734676776997892791216162855651333688366846535694614111294549572731655249672139581871788143988152116618475577525592569463551465455116843299851389444389645579125516171299274113136363326763764324811729627936238755986552837247528598561254755621128572655368129768613728983555455292456772483358118479267412746245389947184328128865761481653277694688286617497373848887842268837375993552282829183871455651443159557693811172989166212676699894757526715793872787397364823793167718377837114262881616897266463133869642242567646696275889526638924877182237781349856334376738639196784896564597472994321894656444913381847276823912434512856399789898972688369559683822187616563553249317223267225395594244791145368387919214835254794118476489814631321232514137486796434972842215346448598789428187521926191311644267995763694592343244843754716132621287356795718922384669139531782899523982451152389645537489567747578866892915123976529267113775532397776875477773325221922298739858426113541196427949121149893868711319542552183776568661559835685525469694712969525271235198566917444493762858689116127617453942786915361444213214724375111214472862398333743153324741349251587664782694878162383756669684641396664634919715934198655513766785432793183863446654418848914581923183372666791355785568369517699887114251738864222667483342192989689185167933244491138252461558496394699372585824926632877812551161438266415886287849925686741746677584924582988662454922585458915764154492589436571862928553444819115444582515262248349284517898898232588639135249973881142739598322378231124538525683796968827649766577679832564932211887678332296644482363529812923111757589688352589516856726928127173729678383442382875447928839536797744572716845921555257938871441124561632215695741264756633767769194267377737281216582244519285284499137899418537284297538455853392215783634486184513256981466586786265437854461792925513638276755451783368684753754383446354827252319545393667842259593927398914234187417663335449388579398199492719549114337859787645555364293362215915447913989733387612922246456847389871178941258827198122746431947925821614628311199991175796789471862822273193912892898357825753737818925324514683872687378834917797598911369628815963689363753322961751775747527812159985249561646521677251881571685673196931985546583296165212168625815317495948476785391792817767348677326798545194523692782347952828539999752361623772739853658638561451225341481767839624978741486521432856894859532494781644672223255341829214246474652615962163367792773582895433886945431547854532688746835457536121652616271523681455136552295896751911437578735769263818927396861842783429372857863933734453138912171321348413189273544778161859157987119831238155298665361356241839538511533338747593839854467449282933175497261899172165482125133236443972687667573668196298792114647834182737483639548257816916469152459523251423266961652233768663897858954985299895858162238994263846631128448327892787719597824196669651585325884953523562252542296151119521999493645781914257276762871722791548783151141555261737813875944987855159163117513576266543836224818314211519161418923566748351622541852883798837528864526441413456541619788552293187428953983227751729687543562661382276474685351221189823178334252378896253777789787679975787113338228633998656524271166535345567368131218163614131936688112557273975995799951343345893683736454639938496482415637196365438163425327155784733285984621162767999421124583864172569911815981779521412869945442588469459748815656697763766289327164888862632196654211485184825621818685847836381712759247438979969727299873511471635448289877863734453339668615768213911997572745178311267127684494574662218473888618623325972391558893123941127877638959456675639418628912913789452246179626178118761559749198932946542514211911777732695584266469823163372452438191269597924561542746973298332122937876678123966139726136867959152649216997193685566258633428423676486175774843387893644876616953591187644838245834177455924599857856611193716398695339721261145821481589759468216538519626529191148185859875686239189941483393485373868745294716614587635864911538814578187467827275827314693745425872579295876593974694943216658924271989566125312771154464828729926124961562181266352686978839731323728674662788393451157729682724874621986254883128212884742813298561548164441642563639914175384128963867292265411663652159566768664849658774314369534728654239185478333999421835777148894226214641463662593485953656536848359713838984233461865129753336261939312119422758734234299323738732742832773936619921429442623485557621787971649431463496566715259921989666529552598638264833358238225172634579727689396778193715626124276523494141171556344624965666173635864367365319732283588944541794278594228648512639878673917186393232444397238391378134325912441643886216828658675467798179322386554163544498264581369177898115659856219548254613637534223923467452151815729171333975395486622356452531813819833111449887448663297339329518481671625512145891119733764514441498558898191479471354418858282321966735433561598522863647455576652134477713751593778832566913567669185666731871237819165665711465364729392488381972867322782728343624543769498484569282458531254415768925964691146954178821834264739521815264366851158839821126598331319736141616619583363365813635556537921181551589615931421773237779461568523651529993844891223889736773613777718697981361371658521297347524285944732757785739681688313153561864226392968441398355185389634699922541646479498324732358211651442595548284134844226241141195149388731449831225626148242252754672444477359261713227131244328685617155669685744965658562983741211895261139593898444289367642541631946148887276919328254816861923816511398916596427122512187177368919837727377827629769867575291989762534251822583457334161489476442583898861917241873268116143576624992778667382368575484977334885374431197824941797225522343731248582581372665634346797732194218956114121186648963532214313733427927428336989775927136467628969662283925693461962564298861646582611911361617592647966732784443493493529579128372966539697931261598741677489316393944893685611649522579327247766951331588148913954111942654329914836884677377552853845899321221513171537265719984268548469371429536578394775663168712557484316259796635181547742513557285614239999552951984556796151868228639528363467355619278883868671333374191345979439347126492248272498787722397238252953481594491439217978998611415599746876215248968755554214345684566234634258943818353673986454899411874288982353177333522167546376454762559764862683935949773219745119165121417555838331287416271661675967198643226838947677384349296793592265466958742497226449469937266281727211175223824368383176882499461181288598861395123329897937863872989648524443834165154746422798886748589822195491994368718978755329266947246775864381951747413933738332155523188595581554394587759672776326435364722777185443127965232643384791161237946478679355767732159438445458141567423448814576672514436861563518259383264419977116359825769111815743147387373974598371656656636191215833659845374192965619262762781172327219726236432783789854932837169889652374996973341126517599395372237354642248552453183642671196329934287411245389677842898998628491718538452879736599788587337967947881625711683233191847559355938616667136184396595588234147639389946637345664313651572776428356341793516962373647594761313237851739969555773836675142161373948919895749217498956558555672965755645118128657543187942398584949493892693557112491984223969354383573731975685815712113398233552897969956513984363564773596851829595598138427642996364513986967827265178899464652277528726413283719395175921365472133714444542821741246637654189282462785138219273186749494692619745923315235141349823742212362135527758259653787667832152267379812486282156324979663866972698568616225228841128984259735884531381812223186288976389253731174192272392599128795323337599696915123132382272952483715454313883484596714832916953223657967345673822582863854539759814519133579751818973366699465355585588745519689376581241177592959598252612669586145259256895889737543694759697281785691279757529364614988746565534183999875526542793979853497949237437414865499578765749979662675417258433852797573146933788945476179821996165892195686964747274771652641356736835383868241857325379444468931522949226941125846264197433335266459472175966431146355988229726362318494889523526142649369342767997636994946198792756672695761448111611184693462536193352628753553612611969295457957271442296451792941947857381165773715824458427492574368886883459529192436166715863288956544778621519742248728284491286748215976826789894664482622739312212698379757726972418579543362573633449323995573523359283428656828952874263691751964782923877459254439746885768855233335521346151482355834319275787919369474988917142624954962348928854781188879574645931317449341116485583461427661253174726649739377635961882547543751111763636544216791787831685858758815277712931581568341498773658439935515597655681424543321565216189449888642199242575896842252861794681345445457485874447563638697855978412856585961394949391961645133863947594989999392122226289772958253791288267987298219737694889784863889686474184993865425792651947225283729117496662113572637622342651821732451127126462614376399554435496641531243777838365884728969419152994127475167872459622417447432532943679175862997858988633456618883141946323511185774646771321198392376997247246622965543675674312548138742345897984537884241461514416368491871678822599813848999238754484579526398456336619488311165493748679219953565215144974969518662529549333589181594889275125781922766687846644683962868468836827183541324876234429416342125695394447478856367699641153364714243576223987423272135141466726138386997285826124235638654234737665254871362863165627382584966723127494428513899352178237523184385925367116385221217111752959377879384894523134953754728814731517435724255457751915486266637677411871395648313313741355998656476364284746566796969184683447975581818272726485981899257479176624695312484912411578482129126677927457575876915953781982883431222866513991589974243129297541443628168467315391695716726559593745441386116535585964534269117372725743343985433828172587478296267642865152585756663711337157662325491885933417963222245859525646174153645875569772975559499954469865128595941917194449478464798774165815398388998341368114373238535115545274162794711512947149893384747264558627196157139733621939213828153914513217719672933125935315929191451751439487579771263573164174118173115133678445441697813399599496595887244977422471161379338167617196799186727864869796719524275874443252823598874743314244661157372695666915782156486691956941676636191682269364881449334828874547946114228144513546568849537961654244565467698853488263224811764178423759518393431347558938894291932316146875117139885567346655658867451947438949917463186741215971715817531233223758155628739235196576328231441626411973836647246783394126159221752857941493116774994395899699765739423451761337627946524483358712753888954986647331872218433393367545339617171794871871623932267891323374181959326394465646742431452789976161992531855228883924169227124611699652626247915196592513314665615678631234815324873933252517977424286298679992488672885835622463761389935924953718876369721855122139933414898168845361233217718829792832211117872417429641311982951933253363949171712664675662656749964279473478448494861216371845739247974222144884268279896779241154742253257524931846725393116221494598713464857732393711922523561819789825299853872953144276331312289151578553639834936434966987194999956781953835136659945534243632525173157331632387271723936378328825219942995123649691893519241922442435615916378237225456351342484616166567974786496931566471517967573218894263693374329857817493239449229635893939442226816544857792612565834235159272841484869538599744317628124949114252528571339313633375276569479774936762794613765192528165991868259726885245522922162977456533257118786211652744859145779323537247916526579744128921578498642365145696143116517298336975838954458927431631272999612218681576811582234386393481352552329356836875987315844182216352473497179656145776141547757472628847544398983458162925681327467242875214992246932223681612357161337747946249643854112962285771793467151664537792191296394861849275971845387166265365794171264271758631259754368875254661675892956629625589815793218564522981175626577925895464664599841138135587234815395729275625597499292659361742269641558919449178187253988142267222257957879787586292388183298918123728395363991529547345655345146317126552742872635468823337849479171625688855828453344567241176972933482166658373696942554541137218557653317134383766821254256877621375615297525792472396712288849976436856697977914133784892675563295778328914614926384563621166374741563253622813431775937833451813769174235315657524116788924895279167479891344996395853744223538523259148953441871454538849181743148941846971156992433226925198492185278766662269292514215694333442847613269275184344643193425658732582698524923346699918149694466595764425816139789578481341676224691941421923971737564587544955424496447438616688334782535729351789223965826364296563695175991169981275646273581136386783383377175172536143381383912571798925632237461974292231521677546238799811647534944156998945698211989759814565958344832635974884772646626872465289463634122499676731382867993411456617919948914576584569358599524174865768557893441787612451313619175441195764996164624858877937825459467833222728279553439132714338174745866137854698939942212435332695281884467836618692712845268326724783127718369218377551977697268637738598424334152897884543258912675433264576871159737179384285433764989436113117171777695912445611197849439639235283842343586846835618441383216724898121378852443893636655965427817518635319444632884558934475145796549979913265454897689917421979533338238454978247915896436424366588391134522336925313736476693349168972413435817346619146795929815712832164534267627531199681461841923117451756428159958896843825896116731895536231135815588669158648222281633255247737275932836799511519562776281752469951234793642781546693111185232126239498762729873422632739352363865714568549526758822984718824118479614468318873644632911783182828779215845622875238328497585766643444826378445868689428176453995238518135959435193143749383572995845757233976475567841667825123586959663859486723596553244644883477433516534916345889994446735952784844587887499878766199761256424797145722451337113612577592223472185557682625225465513261461618817452119269672917558664711762642277366272228227963639188264227333958566678489176337146842263885171926673311218731545227234422828829466686696469422823645876157737673231899436266448691177673356914235193145661284844941797922622824333627172189563756736427667648971332828136972247828369125878665796888679266371963697487965721278766513528246321489127813274281167617868662284312124783111428524174759615733244355623813854685992477328699924237689869244593993238841599589812661555458798997218972931888867123958482252951661458541538215895289837152256292247971933743233642524228443962175763755938349493554866799885182666921322146984227614163859358493985916219696918758164259274893291681291159659425329634541721948197196191856897318261624695588386986576561949669476337676234842449986442435481318849496998373416394846978496426199138627353584913385972711352851753694228567756174461632646731715954476312887584829961234796865351697227316854235132934414189695554365984668982584677927314263526842331786584632989572192427667242474432979331428376476416263986923355442364496322758399895284765989423558977589664483362889156534565629426155921358474552455918345796646242633557384638764254967437981693665899527989745169556287776736191579422298163578413911788261769715756866662817747838987713778648113688243223986668466226383257857215928249436983737349868172756466858661594292464186163768834469144799849158384593287363155582384653637431359697796533846284412766928661685544323955138756176243745581547881212496918864461174346684627316326565154841276274587144416226747394789272288794933637966677252871358165263932334586283739545622546341857149262519926288222573636159234726742872673289992947399814615987659736894111991194813783244642386359947347436335624882295459578213196718441974335713932565313122321872625711143514795741372473694771742292295545814388314342491767749858968413883399929453493368932815711541738947838863291536318498868911973766448335444575196735521411597662316129562818318772333263292868177688534514424381394628727913699367199458799118148489262941299126724758527537432169175169278279652125877519232348246742568365329311896646549764487841985711232163141683347193431123911472583588882859163862295295486433562729518782687864974473811343698671521387545222617944125249598464416434177598559232643956895621941584882539364286348533212663667625182143969367881733144299455126524516812727415467561879714315846396976148777214869845825235628237714217965684869743224636187899569879565822217262583745443123967845681272481197235418943344439223672687736825547187862186538448695764525917461158844132574318267742184674319314196499656185782465663929349161469118964561939174639712644549485485169415417215676547699944872399816647277997354916565558945174954527234713547837484938623129413854566846181862599792553753693877223796393368418387432596856132843113542867697525156216781393566757892986646277781382858878123677357435998415172191375142842198734466854584981199115519683883655981565813392391211652519796951338374753183212122267217975569593318584882191211426927624259118338186465574584524215876292292924722457893241583894371998918198461595274487536715942921819517344393799147881349743934895845678897167961638552525716186469827796411186158783845314993448429978528527121789173592881114754642573334835914791949126127392765892124496985355248249742579535114325654242756269163946972935426746292514779384181473971153584268877928375293512548835839188494279851578177437481262645643482798663619416149776782845398636795441611541244119777861399142619954994956961262239895724727778772162356942167269148529871657324529543247343158953794661635456786641944567862656824371343777345899783149825879461887892167771349127339291678514592361466142256168771689646587746863889393517112879836791447112586754673722422518482141174873831496854924266226154157144431693742316697913634138333137468438792722361961213615337631366198857938154159169328752414429138814596391694591333296237578471251599928167417449648252899626631679661466297741794518786648211267223158757439498758536271991916617922786438377142884411599499151742821443278983162492551389385358431465672568764894137166974498339365622767543933326122628957679595157214966358479972122716463412916516712425262258241421165386465926596636143356179911915434979561219761364579986966866418696542552427353781688174561199968512666797431699647444789688584334589958789848792535893852699921358253932914673615184368317199225131322393758929527842662471382784726955111912744427573619637716176651162141225446193454296966573237233236346781388613833428966167781913536294212962244375161667344433585284615691814241646513236668816434774133123525579128341886676199565868179321757668473451117616562947844764738484321465455916552635318674936764285221655145699753373139323998396817862376835691726929859948867447224349722372243734628512487931732956827954168231582343561263226421893687983814863986232237549171969227816985469668279483136923928839611218544599215143345836128911861869613952873376691173685474349335376571646973522518766292526447865492465952292353128637878423198637664258367582793654342173383135891215932679648893316422759852431452833989853632852483657541664798761158143395478617862415569737494598282421857717473512947829558887616847722481127367441121965743492865637765775482935136121684723918562238685223216728328467749849785896755266487857668495258942829318863378716481146985491284265175869186956584597185514512837335721738323871111717367598771493865837658834945825531289956885271553217989372763215323197686193156367956873948158578777436944139764348815298894641417241733246911344124523392654694318381693183126416767986152519839657696995215735311998592642534588348848257521141129979132274522346918622473476477364256373614727328179217533971695191537787259879576586139335285784736493918874831468162884312778142661969657939956852931269337239396273246928813497471486327931859576698371161389135164585377463219867585579517591996454871616726693449897756485385918385335916574818777441988526896614237628274654411155143973562222535287994358689795297485641843985413282626475344654481844728916355653794349864227555638899799234678848261246457282643433481393659443258272816524677819157165329254368185255786143724528235755669996793218676389541893714178534523192392168685539518777174827269357577573331762523389186566272116744581713778939256164511226327989437418585367273878338249872569582213969486293479392115192146974285471227737874884983483575273581918838682377644942379426924151142833781727471864181921512716811883151131768734221212252332892781186187152825236347541664753921918415111381614336861937311593584324824741892133719792322461518838119374454555735784825951811684574411755999572849312716786843281632696185123215136396864358676528787376777997599128685121866527374912479268818628577988854416123523659555426187834511386635237477632587918516288548657129632368921268858698117841686497259376976182857616526299257787512428825513687457897416332191749872752293462186876516149348213288353573718817584134648562483591426652821691348641993758875924955419681651674427326671458949333774733786743174894462596279993379642718481687967493531148148255127287924183768418751854647363764572264561847577342325669395569816123478441298712933589428874753354591335443124316645467244518744183215538849168723358862213965373573936799795566781556675862388645936495464821478434981476483357638368784264211933421356895129782597376683992985217232711213171239955493791899219722892912229132915555724882693565653743854766856381761139388545888262546712386814879972799644132836169649767346623599778632933196692556422144616865832585676865434579119214564959441588855432964321231231567863696644528961157489491493548224473936478164259997746686939751187479815719125814667236718682581327197566557947484296766524663683382946582384123332797348795962291374923159441673742475245621738765157242176132495533145496468334738542649352481933127566112834296949213927155256458184693786195699598791486819533242692979478836776555584963816229378455282165732375633829198619636461878175448655117398297957819445413319753496897536344948728652192322287437196759272565435271381412629252852425231487828446553474545559634665287325817749384531974328272547945756246899627978155586394446949494918587449946842398817151734663164812635539913132812425488745159348482935725127287338876649135968787989341742451972758312314798667264188162286283458179199468214829127833841548873679588324135516528181373327294461218139443783434232269491191436356158972251493716911759759882316821718934962232723796661638768359321193489512663931597649425249261259488238394676635279111533447453481213932389732358258192334168287397581797571695318217349544453282739789536485925736449493837145217276929667948511944973245858369176676423125856851246441925851657113744844439914826559651125179689853347678557839374338339736783677891566412284122434257938697754543488128136527669965767515289533671562373825579466831471878721986933158449776713295221218979977659754686554225333645765451357112877335889381693867432767891511797419897814864259772848528668636377255936312626683776538374137754479952572543192268811647159714151946173227425542332275979849244237724135766211432559945818732144816118673383215451243724686798278679435753964598423684142511317275917461657996837985288338368175465991165765337925443264999786222611717272594285638744222199692762723549698917568331643742692877949283242932577488433616776852436453667658795433266426193566719344699244923455661393792158629643911815295549894924293397259913293273683125914395715843657446665872129232612131592885249883448925126147397481549627131918342134535138856585637699382381294396738232996555817675484522531869423245325879359916554896948124956179591977792782336625218921495992841837596563776347857657586176249222761326684216772345193799313214381412869279746879377546355575994933119926789476283836462828418699991882551576195387923193833593582569625552251688369569743181328475225679785842667594476675686423843391278641716556793449717349513831847592661395874197977789549722886445411421897217913562425386565999448581569281869116247665311799533481436443428227742417836895758986927651883614478418182571145833425179257427854584482438431824145553367998763922348482225386681235461158924294228155276795363265781696487796127823331898214539198157685343843634946835756188987882449864148319684265749347135713846722926755623938493316828488563134336791251433362583964782648842263733637771987125321699754538543815168834823424946994968311964343759522813154538136423243237552825667746141383986626841154898978445118712731138581264258538325258658427589681448444768512433747582334963739853797164923146418157368655736612871575766169699494129964436186263119685282131978371275417995522722678196289185912818457147687669626535134841331521255959717463333874377661674635649134994639762149566211268529973876266518483686532942957717795962586937774132674767853533391697635237794116263538214556674723475888558857473626435681347718936424268833568829353821934694477818323996252133158439423862217888519898414515811543474651651438277156996236716669897352216258965761368881542116196721731344139595529497431532241711663697999857488427159213316266332581171964683414228128438955567616623617956297597399132915362922573733438936686415217498823924271433575367826346766495277468764896143567338853338966473228974353956291924899931726464764452786181691782961863835569836262249747796755851935327764646352456428188754237221642397661284429851758524836547511639385313734518683434616351999962889321583834681924373998987864152974921213579561887276964749945132424443679625693311895269242655786928375136676796785299114269637228945557295775332752742266919621423867676142565638712817417368391686333836172544313484923648567525137319816951279527818272927668962682562256174934694411583348134183238443149432782231288492194492625457651583551663679519718258399633377236571545892842722525344196423245683635124287359491824333874287645788298515341261242565742248892371189738362377282437811924893931827799625641469512172272542833715473424787824663869876919292452888229597278544619686286185229317119958765517877726334832344263954858525965641493925217421735121595246642195235326747478342753782216779869471713476913737811179289855742679749986476749428426434318772928883779327981732673196426393474253431352859822978277818336574979212237311282389117777411956443253366886994933943599339225747163478967557859233481293214587383431216852445358485595716154883115235811954478216765235649917328731212185532333818311863763485257257266618742931751627883231535349166626481572636697376589542955851412941997149699436173827912596536721718423472224711192772821463135296946273483753762728991947351659243658986252517678468462176941854228996621769327263988196688673984773323388229835233932489247434881922339141923435617745768399778668882785776128568142617446312267145123589181837649791434964269863475623522593256225167452768645972322564613827429834569735588985116263513784436328763536974762362876137496837358114466153429544522123853335969851296781133866317429784816391366385844946221642373241521151177694287571183256373496447542448917325172179374891149682325469259981478675592872874732854488313281327974423589576938212459369586698384534763628222922166982749398127468745116828911116695869697498924898398879679679148615473292993473192878744682594455871181279515615782565823173416874882788637287545689272367597175453431283891544913918944784581915157276454498787988671148375376871587911449218885642655573118585622223256266844398453789979737189311514138612921764933829883489318359652512793778159332318447368283148298378535338362372224949648952661588339652578614715198162847112259873738975644115525329594194218296468256628929569982922321621549175989549341275163254384346498215783636559467973187415838367277636988524569245354183655479296859446288633446869367522969868553486114856989675592243438224169397997372971828367471693523928848527253339321135772632883274958891594736657651117371467664968746676948693367268884828565861623389863623847554242613559934886213289442624468682832985978366875273116277613471554541138753221747147564314549583737848513735798483147467721658931513453635195833137773443498271231555816416798181667991339146158914574195674372347126148932637437764164521756979771283976138779445752993977564431349635248915958512611897443774897649153854347188237316848215574238244327742448162872365275622145747178843965772848964471832135598295178265731815699827811113542362778584966946495477167267492527684332726319847365971676315355993335486116889615192259668993582725253743339281798893668557795966389554666685544324578424193688117141417154517838286927225463372865915519851633441831553998224311881342326268492474517616417747826949969476315342683443974657438912716753463786954277465639353143213776913171665973618171995288499666246354411788148835834333162916529244573541344126588822126127678572838172195496145825917517365112284981189627122513194654461761878277265927739878168432768734791526223725497383189822976748998959671832272888195176263736636431286269486564262768375558191733742357285739946212928572271233497522249612595125217844959163313954168927277578977752946941371556862653459196892666651144272317783846272171559616361375772792461553259356491451977193561638765629944869398433529118353316173634427893732564795696329641246498749428689735295653285258172691574516264237656911328622438677735164679182736326347198331188841355612519572113736435358366141965525756614723185527132857362468818364923294492752455621256481161987369677916161314856771318414412127874664371211675252272113442554242697814823971384491611735978392359948431616735974123196584293338222154924676164465763392611843545649941397994249695824975948283756541569259462422893298783612766418365269214355434553422661646277112438439753285539851817871587188329252916325766632512288236834656451642363638282442551452944398833887813165983126171216299627499767347654141332948948466317156922646311514636729593348859663144318827866228788638851546492615125796582194962814579633262321723193641759144224572524739741813292366331234535871922374258338548763384295548125116234657471124879998417861652152665838655656934933763338393416553844799355846238483616435665219594963797261782529879412967588427723872687556716683533628455287857245384138598247489651485914588391728122879674221276115684943762833624611557878985484833236491563725274239896683122494626155191462978389268717128156497112411356433242166937638432972662892825557761876478131853959125284275719486553989882866251152569776236273817115884958664668793679293618878478955251125461139486395655333269955471361896719748366711342567442867884753333286922592516651484469247513735154546684834398326662575324587991445812275594325971127539877577699988195545876264265918785532271168976439895511736326993456563668346877866397479882381625161326251737413833658547565526133164688641371553717551296658251356714467484439699333353897522537217543272514462384617887537681291834141281436554914783435183192175377386338973363721953459658745273819532328644815899224188852459648581611464744323234532316542585334294349723144346697727471419933352675645738153611362199939832155122665138742992128327121992997517654156839928229932533522711461225531192993814795948188359395396848747947227596189888723542161744518393814653251129971233338493743551841115429431318321534463636781855864386227256977931366529186262636965466271767469585126835531584179525122188834671283776318466773614126334196464571856377213778939431962361896244118745456613415348324449538133433317831381521145875199941853986315877816947142427927822886174615182762265858989671352449847397785861875451249295131253247866535919997522545455867873185762394794782434577192587263471856976445613844281881938644872855453977448522829898992755132317752948662422594484262446858968642735582622762198325449113718561743271342416515446979761941786649857981929571913688555448416161945533525561469528463896646342236677829375291252997176639253355822694429939944922728281195321791849281263156356418325334655624717635641935569119822434798259429272634616162152943176434259181188249591115211394411944357365364177926126636655995989325931566864564165628373772369289673529285439836387214479595413369621428961853572182428368898924875827693687924132263987766467844235885153844146342541316842625948526821194517132275394867928512252844743182895822339616397147252435798915285565587447966679385427886577174539887622318865883324982638246588576226457143421642929183886444381792436138369223315312591244652631663364189911232563721634979131196322528419521667737889287181178691742672432588161839757445342211174331364521336418264818233353459762897149262781617896719934168935194896712771831429171964369251569748418585557687585581726622667531372228764432171528598151216858985996853184382333171985994479357756321637966988285273762117922687218261957545253679935934726873584391484137443618591983454831279698646938662812561667782174191951693285841912167112771887286269139438821892917517775742461975987829699569759499166539765652249821769725779618515157913577572552538499867737677172762918665711853783568242898594661851616176151419566478468197552636686283786817653189915724469632279787964635399417498869296157165144638182511459288954774379975478731548588623541426893228916443216148996747991932591711691144344857647211919981141919159263495869523144223112215115191996145621663976287487597916315495919472438715333961621319849468959786928688112397458477261196981857439297197125851586393211787863416425124625219347866185964739179591992364783697374862467749636586675792168438155432568232284742289757763596489732967789897261389244819268697668765423393118145849321346915651436878197317199584516428128473496183882512211269599942833678828426594734754868798692665822613444983356529895764523688159319553941265626696163414571486416342534541911651156376634751381915957491491455469886557713741721115745784817333221854535898759861334612982715826992343712486452474744832993574962186346584118356729192391447843949574112423337818718827859633726762162294427196876567243195377932948257579279756392115314741424526441187885759388478818272213564187984763248165812582498429655954642927222827397555675525479864128228831112741375843383711686987698581472644662245463633581179748676623776132246672824162268941797358415918132677668965162855823648478769562618274179676651132475212177932173899296254628629757267264856953341259765125775751556262556241464479444745223786732348592195231577411774295462935967716815317364984151461896189475144624135769157453488467865893296566959325231955293937624283312857533464976961478561332738968142795841327823841796738782577471649133154634997957529388545171135136231583972766428256881287399792324362659715346141738756575335565789845715347852824798235768114572556826241925196365286553362698844326949931439965362926242491274616199982924818434526248368275625224923114494226677181996722284685186385634146693319319871199357754472835248787817747723811646311747921344992672355926286249779744425447736784917499917522497471722254826595885624414156285922983997488937325867117312721292379579217919631217796426697626743781681271133142611353812562135313352468361565725759831165268687822957773828381755636533948797578563239411239284646198482269817653866797818727962671419426495159436995574456143398329361811324256746184538132361183117988128422196693145747862871962769459382599949343717593668654621555384422416239499137393157418554982322353866795517227421262916394326541726376736448179195286815145788769386958582389298616175589947713649235873991998669165613497258421423711919989744649291449155885817276277165948392312344148417897515121727219948968172475326995645146217727711616414552982671934538949622471431971314312568461713696457584517613534955199935815253797446886546897282691683173587756589978631291828188136433571355814711563673554452254697944968538918953318563987993461154458292983686817762959649875871314114393451131796781744621117126527746981874953521494755765467918573169157531773722276742277767624829634476433513519264371946616978842277791951211116433327877474357364133137947947579892578226541267561762455949685664711633265282927983227611478935295347564971163761962522568349868283928225312587662614759573458276568288719857413664948796931748383991761736475622915783365338956345312384729271362728154467361875316324694521645717512947564641161683842292266736576569315568664612796915129792239884715341916457536916527476588466845359259774426926557384743678242665479356697388833651935171975941578313962689462616797215382775722651846993748898367177495673944288163662934813649347876232435733639794896267521443111533776248591361749355816859241194479874722747611526916579484493629516877931699642232779616954216166633335373146368325285769189785348559977281795537844421228286529265252768738272955285316915666472886962734651735252671372626354332826988342315628775891862576798879467281411762548826992138717484321938168124267958647641491248579572466268574368121785724836574539655361118324225293664936584836791226215947459868123316955238886797327712436313113434927449218877488257399829139352653386296972611426155937838764817145654141391432925418182867148751296519448471561191899875578354353883837654519618787764321135459648819575825774552318538632157992682638919486731852614476662351318461351188752737886133788713844579694792556639397819177847121577326786831583492172979753354411933691183222369557654518744263265424432734758714468719573888294635167239585454788658596783593964469172929455723666526983223418743741832776147313844431753883666929993169674313686828984272436938927124171399547138826332364856746458645763617418298712937323886511375641991622431311484115394934151424413465597517645946474766161993443677126777429994442796483582636773574141881761114273812141392879126439417474474789161164282269161693533268595864768775183318214263414629478945221187585714524749971332268963483472131599842214192124231926153481482421394514922924436327722969197238258518781972313825596692591293127856735631651922472931178988389865527989954946272364362269988873225914897292717934359475353239459841229937998781126963597791534517438322111879971566794453495756587218418495272326885231459834462272912749266288866378214295531538628782697225881527238557989843694453512322791742455298977861129564715826986158383712699274376222581953651155873232481297625236284279524438826938257276837249757174915347128629435941534257123729111535247887829314466789481652653694196785466487714371319374538686196753198736496734745561813761369734133995434196369726815161276158451649172472817878357862869564399443249476466133857533718654973896121857592295378131381234539699399384833132468369397291643513433449732835969786714534577827969292154246643512182534871543247956142555219351458589867892125798413458967882736475459139231511449684471158221857283286218268282159576472292267985194614429237332378895924131717326677918721453468248638932892524171751522556782695357249337479785751712956434573918622544371158514583678219566756526651987181832179446146193667218863761458432528462966564728528294569494235277913298654935866685921851263789471789545836312869259334251527465433476758478654468482816757584926253727654497743562641215964255768931684924686833986197582815271964921313769442521129668747244349632761827849192993968632355778631795876551459548733685621186849827394948973726598857317315989771519883679851499374893524193879918887143926166982251511811997987755369652346724949879959948736491826881893575867755649543315844836493473629295868323166395768949589726977886362273478897374267126986574242777985121991627933633121777972248826236325377969213424479167271853465197524218229369686583219274421828561871672616565214433331661652497474442582237648979183149293343989324462575338124923236136459647567814861374974366567169694547284863348365652986533238987421938223536352716795446658447978962782134768828497831475318815791868961326197846528555976766235212116128627392832677264839442763852554315134126373887351184368643788117411822347526241358574438696497247219232974597512468791551288793492425512751412537215351268136275496836119949283713347242954669199672263166964244357862955311319266362467953365781476462892722726253387973298676693248317488549954371968268934584796526254988983299384111894241521262876275953172191491571784735841917534819125324463498366749123913646137848369514834661224234324687171754569429893258161372794152768733178119888182898824193497563335432323119818187768167395941264696817917997795461257785378474742312913682351885891467984732184295484642777844423469148519617935454617884567889224138778628211745115784229997729211877749559523933491812691362282269922877728111348328477594611836628895565365289199847676947929672451715322738638613359942643691636715236318261931256949293562423972495925731723727221139365416794943334696667838549552578918578851174432988571424358495186933716814147335172993438367765358429198492124521711943668434958691498347549899969944219832227176125859683462457341652544755453943537485621856489534587852496599732478831994542584833527646285168294186975439576958199752361675374662369782738223122886113158685951277954117938139217827113861355462156467149852872562262447462896991536131925183247342475111279868811413414823935759996495512477257188428698891365244673213341945653484143922937541717117341335689927331521614367347938661673141922654686646162785588234392594586741198663358437864787926965423186185941166997584843543149571788387862867356995488632935872938757432418133633161823115581664548161312113466661642842289336679575594794139596649733949872438375834384686524178951145822964891363681948589987672775256353731756924918756635492468983597669734225624478931459595382532388252563833369152186946563626843647684877193117215798334585167432289677276476176554367625122854952818524251657291627287788863257237889384258868918537385171475997785614937613484335864359387776553913384154392515189425453921675865194498736977476417731133179556955384256843579919672684882636332759165648885765633889278349852826712265942518861148155777752732492528122152837839634191754826166217998112295877739239194476171682371171289565337249158486982941266154261917431254147876464557553268574664316221423211745981745952798954474985936246319797761254324918455744237849469238894918339629554927339813848661549828651512557847561451534499433224178128372855691635786215147358645456264357716868245756258873637161676981761346159624237115266863928697563586171942445136552147228178724862578572795297743836657444316682848685844363136318773417736385458216681115318828684825587194639459927918537218966457796496758684584275917628524148726346822669927444834575326519481114575642523255537975485946864863211674726831473968487881466742952928379861818193932618545297393584322287266965356497359659487636947155661366782431944919838699284888345361838169954443326966973341164681572467452786916612299514528867824158783851451919228169421396976361138412446446457254184114591226328958283726351175473874233244765659577758373379726984315529885331276931667974955544863314282514431114978776169513888119427578811712119875471322591492243988669638739516143254314333346434288151923863466672881113337869287992173458684231228338652337246844142366925437458369225238841435838855556888524439441854548672154938363941791944876952395152266547264458327421797492521925132675481635457188268787848831433481828871425224928796469252395633614392443854146914641566684937387727841234538137472417974376894655348359683494131261768184772127451265134452664769825532898181614629132356522887869311489287237699691736377465139951888895428277237399726451854838726596947855566175946571654926788446939714158755238786739232781534126986399254776543116117276228531128646562828471771272888491342243997633715542619626714544567672969623984438577538998452697455559511799131888522311155314959393334413216284135166269681184813225544755372574179685553549939142585959376433729677131374366269327691628259421278889917333848768438578293125142829819432515382223859778171584766636568628146257543498396354618261616568361876528758678193453268237873588676226182838647882997729595644591113719883646413492173111575834835995973235856295392583549912494983479582166675194243496496634922248197293858357679828357819399413112729994629377348173663572392512674553823849464261425753872922169414695868714118149695781962168898257733593783697656924919296985711463622889949693284574494173542578738816799659866314642139274331193973542595382911265467365697695971214254772752877312148496245632742247524588776397599249743216378573134472347956516518382592127875167414536322972413131381393178675214557278365585698627656853519911355962897235784545219774923914938425593225683946556322714993386227566877235327952584744943369862527994796138823961334637843838969568938542323518531873557638415361244897827267919976221773523958953341832637336224725883143327923256238482914525996474576898598714426253254695985522978457397267418813237586163624699444263779418298412158565716175128434611551369199294949421927538261511654679479287672613694336952913157415442369126276335757243342546287611747538135767222845168211728579542294196662373456752562543389233341649285311545119255318536548662625634154117617622942894447113364727922422183644848818341859276447938269357429893673397472387821413228154795774932251898916797748951864333789972297175866324987781676188357254353959446957445113159757571186411794647243876376581555281299738698952665832358816849358466228177962136599534415888813658369176753844583445865242923386113919673767295547914427629938547727674749568891692844684577329182748222957836985168336783414492566366369943631137859426656984231746373266428521296136681289692565282398841681591193741758718754261489253121269267431496266931356384298598525431152282716319335853262111852383377496567287919493618718783819137865412228829658918868637896618475825826797661451335177646316232614185654219254175682346866478638826372692516824371494979516368241777826976657174123419351886689755437824588175476696621517966921453144472178515275726776571163987281526634484881353829365462668376328979226515638711647263238155785463374933475345217814126821288724852343569973592273574155273934328441686583733848996492818212542276335773144237126755836536588795417784988499191665247671337296636395782521411576979636668368921659927268318255842795351286967922813539341264647896332348935627797949973988342921653787669931698392288475398391455723379261229948167895324242277548764589691685581269581893911653429876634783231236183163452316648415977455666579976382516736481112518253698355243879121692229221371194354278582868851729821743769668183599357424399259142114379345143282295926345261154254581593996224223615138643647953391349638239642882394957211895225158919823776754864267978967478882672653821484761976763549285963221375565483858845411664571956277284541988363146577533878864579298642639455658295857234919356374137281125561371664466656572198592328319865872847263737474674334445366232628882518779416873395538954467438217456124955631959492277524255975619221515868853782989739955442993813854339224392498252245689778948233566377696735659664221987761574829446114767222177388485151298588322821387988294823659154264992623894921619338611865761265544516895186247169829914478385739189659166779575366246574392764662636432988835251874411749815261213844933715221296636699589985916288661741252272625374222119599127964927142257319736147147987997673965658763483456849553341929686762327193332566139984217399256733954543865819312211622241156528713156232613543664714728723374144248751912255419771243824139443746621712816246213217388582524798358318488812412722459297347616331252989779929182226135757417939954142928819816928521885625418393516796576456946897874335866675735393849474878446213646112568921459622668945787398642242296188122974139923481119863866974673373561863854173182857243731177314659735819317595688482754751471645597987916656924852117383419473822619211855457731932669819745126277286272615278362437396171662288896393553979886827637244291318177616941246115696348953462481298847432444135483927822157295213977719843246684875557552269779977737621834472758393848154122927571232214651736544738543734814562674795159221664147879152433787754123517338484787453368489568232633873515443719335551499345967239317656189349262727846769165777697363969884719971655111926483942777852739299186141541531268363528193376375273776729662677594635444571987414761232288354993356788135124863238241358163362586954865457743944858973779916143648833468132435719597764753267421213449242373744782468723138769771114937155427786921793984759736637938734155833425474662936919562253125321813134471727929598345459652274253455692573353193926451425533737162522677891299382836868319673278429566144254283255832562518635466392915421737942535571621573918548728359232815957414454411692444216822733814398948464793753886296877941322651453278457623891429997789792856871287922773952983872559438593189188778746131228416649571431539526384157659662491945882914965817435741595551588663141331526196738391249784732687781813765354837656679537899957625795169585867522168121791685347725211258634374481271359297722393713727679997334342455375136355435796453342963396432857369885337686212545531851482477283161582241762815457432461516215422469573549638953585721661272722757694948899685844314361388458524283666345384867188514532266117324579112639894693442774891381922268168229119568682768237256247352168969868714663648541265679394518285971851396669414428974793152851456332461916836168845315519793628351385376948454137547998857128943871497971725137782589365175859145275872934445114161186483967772289665858282783997996534829486614469945653711199788242612559199546428873954153822744785838838772313189485779161133511984766643663961819376272285435523798342516893972719326534966426685418569148325494225877264794352882637541252691922488294453877855118751666824725943652186263857447221377749229614878966582765499121236791612562748623251437856746657337387333516267573614288752317139757481621246883133451225355157922669511624112415649642175579369426276328637867229274279637542472998529362947758665872834577614713654579663337183569652998649129264512467699487643598796559441467628754413342894254922567491526287942382595684198489535265217824518746875344633561312827247828379142618232484639559632455136953756816618756128863826841343826181661221986486372443126941233831786898986534141284485179291364342921717459654662918526324441674666736551415772862713234657725271643287218776851112234589351657611838558315791881992451374239799762525336814893883126943445224299331764353732811922615848369668581647872235325315455749554421268213899992422842387851696137143954233132164347465148217611314598812293298522167661481141162311299298428161366823859853959179988988821635642222517491775573469358231182545667897445492948274218911928972527296849387561388698589571276318137611437173192969798654672213994644566273572567537381746756844298544161317553115733786462854363916322342986286658917642636942232763786884592156856599662245257323591278527523117645591614129851119116848591789354892852354238227127692552421344533717932333954645415559681514966236829943236689129564522462857469131823135683584531862918173727721713995463612153949139737918769738928453623717191992875564331213984738999269968857125569892913191473262178953846548885864954154191416513218581234912587772286695634175495143255545674351479928461878428922235678136451587488235392943724826383185721768496227637821182464181388741717446156718589587634921947712762315819471238265827118111861947167557585416113695496215372364869614352781491669187517124141436386611779798865763523224527559987647724683558825166376728463361924685942286168575911563397523514872265373979715294349469211451737843379666447956361317127143224998234181734317944874585289391691412811762993777164491819748787626897863152429225455435298967638317884297329221665987416212774585272571393114168557277898954392718855864174479223931718594833983767244641977989273243182363651936659993189788685819997233487368932822121187846415315817145772563644745742425955475856459916962325687941273567193677222992696727165769867923632978689679838599296661547147499576334291164813831487531144862719332641746136218335988982377547379534496198727541138726843576293146385974735478471342825962562775312789152589335448538824161147567635439588411735676468754868514266799656386468825452225611451766326179698244115659651121245299732338287891211654519529524843815137745535554599948889842235426818572924458717592469343455885465112293638318966192926251747264774894156876662261252776739455713181495972537633757723476311771889919496557229384154481912968945936766211912848133461541637431823588917988261864219254226859839167968756463548968874294778641547343197633787562458756233986931653853615873428452327849126728873267316774925651872554365946614918538296486842828974311883452633485394731424596484793772816158497725198239588126496753842457376847455258116817446991174318935518154658458948662151167478361711525879615397144248354192717787738315156574288493326625785354136755351718115854176536914449732316631799491985472835525967839149512661519587123215646141714617657713663612313523977589649811565236481742862113391957711781636248786751836936255241819877849453211775757251765278258134718642951828473296262679383986456119383374922239845182919318743344162489881993885384574484257562778815783773861488635963487124281872441617883821673979217818226314546416285466513711629319132762996645353788438699561581493658657319735993726685431478417662436156919497669216648575326172314898488226972882445283623329338718446258846924156564736947869749573288862463757313774367953816753162847873138758925451135425991285268944247923714258352673262279695488892583754267181257564571449877656794968285883896643989934899565134431248525715367655547827763265517629362842367922566347914239679221256339356156213726416728675587492114148643252423964534381739477578773626732973267411837899736463341583166253467297179758721366589538733247363973779655427343881842595718444641717752284726995968228688321775754519636897586973684442252239684935786475113619967399415626575767235761262431436155185546274559262737754886837522131663271535441514277655147898191947354495938168485139643322219214748177669365193694556777778688963759515341759998243891578336221396235668633513436615752464876914417962834174316776349476763253694381552869279756379315871195344662517782699575192922588696211576626394543489898999247896516553114732265414473271174753293748858221337866184399496751961225918729752336945263182666752774264945819132615121439595169146442736225116267579592441746658172344755356862518558671555298816149413837413563497155298517398881621993723178297992512352979757829828281476396884134258246221893784492439948436839243957668646913352484377229792514819465129618933161497198966126586322723573465671519398994584223753825172397664714624422779281355636133253827387649979146964998551154367558276849636629224422366261587332247721573924845276392826965597591351498581963571998979666124773797836674579716715693568169436795376834271159739278433238261631957639956962823731563876782744839582476151243414559647115388661518645249243483828781592929775724668982916243315183222212178649996795784387527125326346553496396864332659312913325858413633352737261226246226458733662825259213927938542153677449615877291112393185848933288823673251879879998397779563671553829135291177876786453498556699771683182178766434979298144593479536634742627259555464268417655587241424665279924461876627461728422462718225226562438198635697447574754565966612755653415864598255529865361821885338569155494329769546962133121544499295734155819863468552853796135954416711281266491256329499991495635296214311851866487326215244617126636157232217745476986581949552124618421532285622229868853717817178919851979431642527392462232849629415591434487638357583696878739669118141377129854493753239182947847541677479344683957268167351925778735451374743846553458173174532413748865329412156381186394655676859635146977172619618227562138512464867564161229161881537629479515882637833843849838981643679439997158631824217271977931277128918613466547867575551354361961851611846571256892347362587562656717781437332811935669827474637297865797429591694169932568822539296675317267226611494649439472482948569284895456595748671517746821666474843386835399256215868439496933397435116535449848434167196677997539939582915898621136745492971734626464655133994996579998196258519155419812191589136925824439261174595475574523425916487829636633972418855395436826465235197659945975751378721383928431839594487974458465246274466299373322659346671516129636162671597728973896463414914966453629668341136416842172362756392443398232134653247333469634352486626328412776179613958899225352992433374359857717991671682926196349566881775345925982949939649263218797853286767165248141994921221199665883349134547341439721733731776164387181443167189161133394462967385994836232731726739848265459178676858461642694265948755281188844528465327577882376241558567251692537957694372488993848794328478421195764181329118393152583329251251526923155955773977136256251275136628912386653849643267772788289751531758314587541656323481299274226181819248783857478726836742144652541545323597145825588162256512664717139478183563112816122572637987789626424569859839432687749436194945487832697589422478232964663157594267436964815952754959315519258564286882162556631914835375289146564932147282745735228645163167512884996624888352762426722127767745144795983898864995577678334898312661268337114493849596228617436593517339139357531479992852584133383194896721574691599665712924342432829592537887936881242342766818899838881668362738843877143624313386974821745717671967669821241458945236281669327393968849953887661983691666587217493386261457114112262226764585225342958973673974288299775923424758942729176473671489356847989455148319227744991939863547134977471282113876265257944377871266894912112378884298982317884891589779879997775194982992781959187164832721587985363552619615514299582663611398824159329261621939888843293232993317337234185178156739148449639869571384583181785267271814866742588695953251229645352233619373339189673897919854479692862678811719666955735621967816992168847818864457821483387958647642325115772226897825152847591254386786264265843535948222769774192661275592966218612313588465863928935474568189941172329955429611494831187985979985997891332283222514512219716584183663674783194144485595464912318554621189388583931461896186326152422431349196388325394792433937168211344144762583812282323416112932945457713952332559671911521612716259829115238373338339371331492815886896228146269171818939979159437917537321947734825517493397239939672393386958339761419528241923879988225721652527547388282283469368971541595746478216825933378284981945993466894714385787114913311394683938617886314772571862172191468751511198717284332216313522468223253261842648951171612843187898123339423466362458519694792471282595446683218334285134393449558798241787918732248641869214148817529598389962165827894813227887638687495391386768548828229917679428157575694279123714526317153985789446896222214483835464159347716539119539741187451895299124783236136989852859674553972763131343855543327592458793989165367381465898229779714673871676191728764353155122982348535582981952728242457958146261913351448443625528754358142658647762716549711253118432235371944729989533413426627459551978973343132974324555216741686783469783986173483737247711668226462439627124353625338997164965512644595316531783215913718995555728167576238396416886145945489859656414926745375853367852389274248768169633159544779554573589892668564326522565842787133382261426253585246393765833546764878819535773387715981474627393579461493971289861357485756474731656695872881766681429794329782746395681868834583524483614583745265633717589838178416577834187513165235964956653383939612829679764375872266611948231172252118884291777873433426248245351459347556613489633764477291616551564227668997848125552261321775711112778566131942486592523588969969136762375468595145286534311295117674719235875488995546866876465933292214791138727371856433159551761771248242914639715346432376342318212125215578537841484692134255965166687243875668716165268673178475134656834388149554169827923761264427119427331185481452143328424665465297829816354389473713535892437746427417933359297467629299322995537257949274184739491498429418862677262978486657596545466316283338845942769235884437954573181313187679746658146487272428626756965512576139834373978119972545239581627121113539626527495458959817868561571722573224854288973852537473421472538749225533328593654491723669713677588931152812957495457612582839477259255434639267692353591683519324249662824739498623853829179982494361442714643514789969877865984421454524878127585372267743342763696848326927664171286969283458517299912593158465574179188312162761761899194749397694592333427684649729627192919769928931362829374235996784985841722623549629657969457136523816878929273145188775629323854144621313239542849726177198373676937968271924197168664464171448921626424415724419275591818832623674295536897236944493572364425682912444823546241579626742274631822855246579992939781364571734814988391848847139998933461433623911729814696389288969395228488677549521871599326113931543361137871823899838769369462514721723499471559433397324358398769731158995959892921741166784659532527416899778879944148516871712953584253129896881184935411481566823238439318987984366796744889471673315244933519846495878257184142372785176327291739326131739133168236643164774747567269232935139942695991377631386893814896218212469749776438447135395675296995131915872314157758377735253733336326713824238714622484717171392814383555867737198226587294122382629874358122721533162779981128379156479382543584781757755656572476914941985223691566239785332568159443449852912157578557878925729653886769959145782546213114474339616282276179548782292582738262122629737434377145165293475181281343125847264867463782128437535558868343848334861138239971624968845657842653148941854751892187959315997953356149134497477576161182471275399794695145872528925923151256676555824428795946737237441356913567938469249532195717341466865211893729634576675135758785361769749111973319866368744511147113987887883113989595478638632333529218885185383232669321284415566567355852389582746678786926562227742127354212386942719391847957622824548958175568738668732325187278532316113668432286848971479186938958558794636644327114152949632327272941493865277876381475437568265359287564179667295231664318124548457113391356165487543863574827753453681616212649382568824296969214562633143296934271941359846766113364557867468864768773757423934268593389825592967744119741123347276495375724811474774647638762468187424985366393679933675449586484935413849467513515762296243682173514886621462622177386881247245484763334359521637355843946751198565786112953996621194387952951797164764959248719719137622816866472857341245925984786447517184631725347441932429787321972679933993436979163294252884889946939228451948834152457635813816488399224216899284339182552731378117819329818726248946181154172972663674554334938822421535742938983249584815398171211243625617495618657937556353274287548917646216162654399924231448182872545265851826344235547572389456511125589679193495848575614448198988446383291529113851391644343131874493711852652936966919343546533862142917272453848548462695347523526615332356641483228477781433774334856882455483714432219242418632116585639167437778788692822685775433885792434119877646817965431764132511633822818562142738269346538688641823113859953125732644287945718881189365249541813976495999568346334268673417497694224722567381893128875225754413824175229848818119885397761191373771191175755456324743418417445692619797251695127481631462114474533592216356757486448474484831273412632346811449173811257629645986138242712855752932945797552148641454625711374466651229863966739765127586514859494495371567238214515264814288137466874929633433782398677985786313999281143365443653499188556287365173176392735998228227962579185692899428591989811722317554363722892742592589478439461215539792871843182231957799645645187156134117425627623392254717316111693994635977738966172442162762621811262669323128725749855821962952867123145335196561346736723927193794997421829465488869432623332591889511492327755531563624736875854785723845528962918261533119584852324417848744823648681882739215226556331994276538486463535444855591113112438972819335577929394853754964196883952774321912841215589774163649835912333423586617144929335489462843874295534993787978881437364447533943386684842538316448254487139423541917481534354786592829523553797797534666882259798989732975244913655911688783763449422518931422677966125883258392234374166287353839549927223942253469775384197381244124845128242478345873162789713125488891593749563941245314284584923782642914861253166686194441732998163243627632847495994338299398294427568322494234522944754782681832677419548941392386759118257248396135988762882918473474289812542143531386464555392639947728961964316435961316645897792552257343673294691629283673341376491125272481849791719165277395733845362399473342312216624333716179595623541773894913565887157665694955299266455745989468163728276562972887421874262298894175883528525793334311627836526822499641493852164494465138788269398251289474471719154557215122941855964899136197991344964455559433828297219698387319685131575418699518227176814533482995942472241171882599178331669757141288391298367416213134181955658767575695432161682884282286642517145695936132289266585712455415118567859542651466123583628158558314198942187134644882143847682422721513722425768156359534292334514555735966332236662615923145476721282677299413167127417711347718726873592432627329968638642412273759998141292824619571435576783957846749648729281937169515973267841594368249957941646587973298872812347141945648682221727126893983116799894256195327288879458657857427385718328739446234179934628359988459279142976588994977238952849664481484572939828315927612885741178116452555436155536286374737745535169314636231684283718172835288684613966679636855124921114522379521825463425999311783782233351393283738859349279237395518733642959221195928944746576125887151244145144535318683231721299893897391784146567424636518517495765493452655219731283833583223688116442596916989996368526747995795449488189676466992844516196555188926825772317816998338848493892693374731852533122955738567736795121474558712814197568214876445746874228178268456193923299733317784115893618433142323532414723392791289449273476687831969332661639648671578814463255132164219372345982948729156259763857178995118595689559455879845119717515915644211156979466348748718367758213532636134959574357118833698319451594115491448762553244584313157296695144988863998212559889183792352856354928328138273159968338553637242444365166874179175897542885597742966461137345242611364442891554649185277911434684519853121175429336844534676825265159451456888719283545891583898393136161638399218552949187356976387873945764684329423429935532149736819375633954995126118651754626296134576771251661262827892343852454891467472427424696384517682837116132777898649999437877635818427911987767529329362838582152783584572237889811835918765861939286444556234114286676342837921738361625228538736383926199799872518659261813686314596195974841199855761741998519958467944427336291666638628469364988672194736445412853714541365764531731293737266242512856781357698761771133737452581666244368827773859852925758796862464699472148224298399665433128245513449534455655484349773173786236469321646192448862629816183695241162216625768533685465963233645741942492967719958495881193366738623762856526492339618726933595467622617357897929971641234573898559729444123723599653675822182845716649841113452316563143242235696258232342467587132335549752321745657861196755457679223188199273636292392865389956957145955861922542761946465458843657243528599753827912547973766921634875524498679469514381567258211678931378236162912331386989791757649565477863954276294672541425178124541326622927536883937979486287632554114296848426718495432941693647857266849571142879313496554698372997571437431518438677211561388577224267918949782548258314233979791126716699567622427147569767637637217756612453574287733798441113723488957282338646418677412412673821615414447289821777417547694884844465617335396263893647386664147463723555964671869213731386579215586731226683657467649657315225563235247794958685457213833334789912525284467226641461643866133933173579926737391226279455857151357614595157765787394238513316342982341745492969588991641871584683715777217394253931885961919367437994615434758931828414484329961641991433697479461289527849634787677699868495441358291974836294851591386226558664483479753461745784722423976733162398263498463839291433629282586516333551376558578511762579527268799943161626453293259295256753631424719779215524738557152737989821272138157498871525339483961852968172766515473434846874961955142747824464991233517184489475878842632977367379529227644582957742894989716443384314168425511374453651621363482712297848478494639893854879127287396989716535897676951338239747466153823566945712386427139913548144336562165425543174775665828723144689785237581787154611182863156514373875522599294654653747942573819186537777685149385557241388668476928785343836854218822858615541133899223515971389272266135568561649562892299327234341742277123187142112331242854376249367168466158268389393477794328253769584189995723642979638151764139988395374745918285157952827339218947454828317126531215396928947631365636457269692693132614397159985558183698556626827878297982781345133392157717377964883562631643146366469129756543929264327361664289635536591144325239661286332541592854593495726339174292714967997182429759229841758157237523293999941815737619684488191842961241134124686346294642459423529533435746295628237571615556798639763236744295827564624168737489355668242652132787138434296834758225938173175243945778997579845656158955252676869337116764646112616391716862447479971545798489641269239725968784571533112951814721643414889657115958367453532814866115584458148544369914146337693112659984787542767656969582232342486384651485569225712769772896944561736863229231691766543722215661724219521433382357991273483848819229161184323357136143381554333234231129541775487182399344656868362373237284622428537441795272196224535244595626469193162678677398641254593165691599794851618337281395644849498346296581631462279387741234154776496933996832148865539642156423952555843435428394756599793234429464837168619437792251219421753797971676427348917122232263237496173149671395185797819915227855452655512439938496176966388862497552992144936665363949576362582245234337729375799984831456695618121552223131419498771816555924716651861164294244811991435815286742716822221644915893946417934596667358361324714193286717319667224937864885255644861432152817639922797975589933228351456536388179247834382264584219344896315112825688925122578888712171611912183652342854881668539637677777785131165348726673425377935512288771776119961527659276768228245193179689665615361278745565478878185143998458885912775121658435333737836652341621786298243984497761442996229282258767572761299875819997419436442216954129129995485364814836469589274475467357785219591873418347154591937643311621659546876799494743734488518569524567944513442815177596345182932478172523756845442281615212215441237388544126651758718128338662784411244555291165835746668425482822835278788793176549184926453524697125983741948593591882417668127738226389483342471457688244846627429856884117244188836731124775416391868269873279162634536893333852838733621836732883335915247421512285546528181368491972484916166273726366264181939926153454948556827443958366357247732176361296677312595321745467231437953163529258297718782227939862565752914728537298876187669555691265445626468178855452917863421447862322857654448863964758871923598629784548882667863237995195343115982326195359836247737126559849236458167472464967639332785768572125812458583978631554622987834935515559318694456492753851532825355719739477813552537792744825351721673529391645787356421793227398256416435588956661212361683392927557189637423978998224262482583237836797538725523325631768816128791371123884324536988965835446225331242429741294782577949484984417439661634652929266869886175596148194157311592318883771487826421129514143182213992267295876518518358653859161458464273659299831665528794619534369786942849623687938897157918345293785859821979762649355944856365534928799896652726749122586113655947725684258329882783932642896489951518723544432691783947136664558589359513945185963356848413747595329269543942338562136866239878318314268552774439532227629596335146551315463794656767418368889394738868384653917573224139818736199885713157348994215518487169758736196491124713223663481296169923532951951331542897136244641642875968964195147227839333796758935322217426919732414247315979852384495235735787817221751348314342679183655113893514689613423756823821175485655894353113344529119282288526181471884194318659559476674436934959838237657312257193651182674158131743487118323923386384441644437499747448261452679288532575826566528262967992159168719857347892444358354133338134894769483262395621444757169872359636564871999551584969566442577438175451449394342728674118254885692135969877392463129419234493961164568446265391513343255594779776121855361889931153367616173948439525951938812716142793398482335276669651541622115284393241354771336192244395416824253465481667679388392621261642956273711775433451171332337391485993273149672896812734947666694184299594451531111282676223772181419348674636636544791313589687626451317669222765234254492369112556477233143128532946276411391555991713897217159144761291239264563523812522217121486416427423868129211351462274212642283814171873892827964261561634742922339227395586372677533685958141253164683241767824566714218112216422781184169741285766176876987417685584879843852426913589168619456814391275451572172321326286932513832939473411517648571278861911283365211541582156913929785775783919329354482696195386255722289581321256485535243679394756865712743756484747251427345711386656839194733117712753376846764439911829273472953217444927583924795875793931134344978368916186565933592784786118485221811519155648887955322712651152131171975538217891221492446551554651647189899568589628852396341695649347235272929881555684327265729552164671753631676244454179632575672147112365322835161577428575923926735851363444941887629465867258621195221365758646388124698224976985496423796559178889248159446934463184363817825693516311254847262561876167748296446966879263888124992697371189713298876791968769159228845843794923699168254929935836729293453754893818623125816388849758994357646826688871351888763637336651314985633429445422288431153627737135678818742173381922927388151753219891653861178179361898693766967945891285273969876865623798485168547455962258136612164342279674427262657652463823138362478326757462517163318499791526763685149775835541752591369419975233737584876438493532468388286697959598885527355498633352168627312251139571295744586621726578219334426373381744282654715462263195326853171245543716977513629828349824121933487658246986147127731722913916344998712299813414277238338518132531392421389539836548259911823955174115143985967511235125296482878288682989465295226637236765833651518616642951462133636311794867818678222325351443714345394678469225846157571524685197626974719522914598156297654954695292552494584844758357912486656165119348687979343168757876531136537361229715538834698375827829563177188958491273522358749421366564262955785792943178842873997554769954433882876272956933122866242236668836813529714297318584297219754646227468328638357996416226992354955692522374999798338839339464758226257474773642565347369215479381915643929363319733458378715634613167357164495277493329199542892197813418847264813124934777966164734975759464743945448615291896268655129865339524156716234294799555157933445496691261772289559394798371524944513528496514448477846573615119358681329869213949523179431829654592534519321594455763694676541891943384214153598964123569924192186413633947286972373528411898997437789163881476694744684754544286854751947975634817365739173481955321314191453743468831636964958479519819844116342114976561855683544423385696228329716253347895148488696155676517477982225794397935874488945585321819929598827529996334228776196286177915786437326848351916525133629311878412132616431322963555717636713443556696247369454699161633383636879349953668513962858729148391887821896162811186262844847666645436415821981198614797971736391623363743731731589858646617237198313576758811768653517966778377197345818699655429551345712638248963343192156476431345825977781486699917912558181125596983652698158838638663562562121618953122816699441396542598789848624824984543487416941198865648581862258593841471154964749313251226241191363319395699964884997199524622647977796155141328627416468629773559238733336257128859485256922357269832143668469345273587178393999881885252188992418656363182371159237742759648669435941238354369372945119962728751234157862397214397788674845529523827412631341769448294568929872143683845879934867575922814789883151345731514998545136326584462656771252293481334837348896122376944867976224246629443232743861545829627238443114837149212498541833874495339539722525436676428391677826438371251382724372713631687368891628632741912438517661728445233284955119199132961726787512833232535125935847823984653314475788849342834397878277632752298566349363555863451367929185294148673518743137473598189197416799557796671772528657565364994564428287734791952726452887266513754552234513597568183379985646821265278517856691319536535877558463979731495955875828359746581226513475524998486867583556184195646884324624451926674729427716271758161422755747495766696367873847643674649222751226775391976341114351614525699611277596693237226542592843392242258818458761372826965148466571785564399964182162658261997643611957476372769776931646726379529524251778843891393355917534475436742728591861889114594236573996669741589665743644883296833122677541578344897141337645217328475128155788257861783447948669495896592169775551527852445291929597146242129554595361313722712542355878179835264791611872842186111696484366773131181168242249751798336752229323421326241364238297939584695537668699214328531349932879328761327175995416268293185271183858989687185516122931248655654838625473161521133326439294658831782138425576587729342251615497555667498835474144177283153682335772319283629924321138243481613169291299461453774685598746786983891921857882148416945728386975164255249916111949424985723399715129533323924896748226587727676186929251432721484195744414152559252166118361298617971312717853777773383218227977764894964538895472691719522317974352647999868395554535385496284427661369246166621953479929527868514629643149699694832722664358998351214428467225697769925249937862872112937559928674465887771445623733816651541318644131897842492564645299254273937338218982911156529939934259442954874662852855416498372595528623911376451426956585312451812663954961594636221778298333312467761157117459961936745577797934618613312947833825488935694386645496636719493574123794263581144572134615634781281351676824828274377637181469366472448919381197424277776791636273316116134133773179856325277785925525126429676883758279687465856397797438386863247844713357722351929762679166369153513647319444435481547543169873123467297139472811854697893779981227836438465655539898566744621632214746672136577355112675946199229593141233779495995262666355266125228242428357746253317832338939351264295929783397537211434125849865274664523742494214136427892787293469812975114423725466136393812247127294614945216541244653833146756366725198599253356611884188652287658257996891124675753151816114878582281879771246621925994595773431548525482496956947526865432664526467815144648132873458881937387924593996348152228453239233861552791189614517519244557468745788867965825165896629864599453721596272753267637288174323247428468975949256818426213533757588325912515429989721241484758486327697757387165937959988253191512272945553358642335234148236387393487831146911933555857669278817235827822412315551834679697376989459142271311755647185953661267193996113133197551259543719725514712313515794549455318577548888258477627996431375695442175863777414256855588615264598795371537277692277735485891258928345488195655862624953442456347161487387742137278664797932555241188896569672387244523215359764761551196953172785126347861736182136135728925993495137713785383485987449331839169571232498825153651395217389285932134172844358613731142769666159252558732957716169173247193798523666428614375971777982681959791866597447774152227826865868727894352176653958279851436722683463687784459654351235267727786112369937361215548451866537216796722614331331774519685237947416868137549473549991758351944674361162896743976865749565658915341336416978366852425269635425858971521917834427548965927458833639669669442773426312694338222363229175118285425936185417228334545452843569999492991531241964418854837263153191299242265251581455647344549648758661676181148162625358593465229875931638641356418933772917328316798752515528268941317497139859428283233684311294225844546431351269572738158967478852215737662778615777662467995779888452127284944319156273972348226142152861154483477885171295915619824981985322549327733842242792773161168589633555327581614873939236142878732976497136996472665678281366239326764557945573638185812838441363737172665212475273653835668683755462438947184691855127583341616131273866673922916498156478438821947223779161259789594121754535528339596491416374223525688832373196945464595122443684142824951269742288537938172339633615999915878886649332138351193363852843318197651583784499598734928183313112877834183423263935416224333544711373779812227319749351573835286223479369471181164979937218717238556382238247333629512121972693337866977689393553414424492561883669155613632777117347786832811156869421673749549163731314483488963795651934767763936965313641427796151243527384576173592765897466861874135753299717957122581236621598819384583553236738877978439578368296543887199663459956888726652461824283882848964867455226771816987396563756542928652163649729317146593757319591244351693564494198646822542489594827877214553952715296449477425797573284538722873493925863694163721148481252448777869444614991272375113937959827592326776266282498889981686657295337895421927157825813769425944566346677678473154535711632125471895452118834138471841892184421499744944626929765738617814245375158541883473348891662332655163577311488624848627672795759345592332269911484156793971444368717939155934163466936122156373154835639122437653245846941568662845497398441185319773376412277351689418242149661547654284299824882822626739785628373682991883261432683256114666494752832828234176224438939385824188352343155451953395277916577984618733936462566785392992548127486358551187133711221429552364191626469568271541562583437663852913557583219244288446668324598698742581899713132964519231561321194242121981383368728639786818916319321427446673443295174764443964895736568934277587184358582878267631266168465124713937884162876548454959885396667869437833911653498792671199754439362945245191428197244353127559465658962571592491124348559294239684589636675815716231985894216165422465932492863476564133443949479615197236413558293486629822648599997611249394193332883764827776555326228247556878956222514269815445857761315982777398447854744267652317348736893522364149313628373493236887477638655148978141867116328897534287141545332235211811422392954462965919522733143224265484478714899499241413627938344772218978357296911941391983716183194871696314815898727815176774963349319829219577248828435992498623643424323279883765597196244195349489612938817163623212735224638575536628597193354564736248591237789341188687812257629233982995662586583341121246888791987986442589938352353475154724791499932179172897923268654924384333226433339418299394259441859281481913245975884622127961136853892883196593961222423928112686864932241878964176117318218256731134256224119416816546345161623636849551751681261714337723764935519354339387392263584266322624264188411339858174323637259321736125865988773579991263878719862354739326982248127932318968843977341253851963765466686473155451274289464341626152611247452876983392226651612216476389924292789918931685646645273799692191177968751718361725332492459459456142816876693774286325469394337831821598267333641173598427649312483422148751914129359181844774993235337112192593527335418765954256689289388446688221749525919325962889718542299821975736326247543611682444544535512983414927669921179112556787138326556847593594682492536214826647382765425663122159213723294757465641182548749854864944343617344686784838612586862365689839553722471763423661146362729512457627754729961316229746996847171632496877763773394377765439936188228794461637866272857399292881692361795757433949124843851939177114183547378562463746922913891512818152789524651934525625884844824629887639193176436877355738211572559212919317748415149592413459594494494313986726221179319445383623951272569131652658568412841991375392438321385449286926189287215634856578597931848439847746546918373829768451434256149813456946762953838664795119623693747432997283474231599999969319573325494112247669698597474413251472712191225879738667494634858985165275276653535382912464758536943548865429763281472417772515218351147578444762788738595645966781884431275539697479327762266834812254361614563299129775791474854968374334678898789657137164548824651174331228987833534241584366629617941952748432584997945261813774457442616358495784477884965141475119269783533111436225512825851452377356619798842443883964458474612426176844727751938225558495866997594187449113295927472221785275934322156856255547284295263771262683787362867422129448853121136384452277352974175828693885898415641756471667864344293481859588142927554598275518917254339178972273727166974424115829342238836132393818596728138429433446337729959238177648342183915248759432415338134788612719899323988921152664466834684744534554743543657723149622989344696931414658813573767628725649917691549994774921286858629272162621664662938329238713564471566638684939221132144824169485442193851243154256449621936865497596781794919333867838921615945784352332722555739412293242646113438669722965447378488583746246588335396393826653481247312925472394613342424978195128748839376595855278319597317717482364299648224631569429139699446553852725536878814755656516459984259431772458229594958699143942466288254279182931426266178363487994719236134237369775372298346935495218711123848615232342176667196617387488563433845169265622421971697335281323596193818479492497456989486527776465555482321359975672411953629246691227349364351617848933195118667579393229543694477269378778524372211432275533861466393268821237347378485838214141671876657679293938766348949453418385849596416698565287982816146864347386837486232649347427911586919638291838451594526158758796376337147129864813255851624493819442135747622992326691653981372114217771431521742312466554569679999655598641793733857392758614593358816579538712975615879538968194864421363142239681167999885694979311246559762629525215993552748658762415379421362773172416588344119231556587513679986926664587788681546284735183871572137575343981145662934533629657769495918217212756858399569324989828319129749794389998844864362143963864737696913913785161476581765942314963553743911416443989166559681966211574665795339527523167924119521557923382793655395582183573424568259477556711238767775923264591325252896575477254931422637976997312491937475198581522673361959671728792549857696737784129914861841721954738596969627838728194977148223596235821773565336125422236838276799271247582815416947149632438997925848576766196688483254487287868332189755464822751965492999684417525389725296371366794884753284725353234654371296865253527735197522834298525645312625976647946687851269921475985956443986789347132148939175453847471669227252743946738534978252878844666369443636289922317232319173347864797968677468599391321228442227587283139664524432454575319421168765977734275417653989429251245912418271588938793982923846751341481297245947616994985258633556685693216691369949337733695851498758169627654646569242481964814788484345111464119822949936315673421644254178578359544536256613944818322539376191944396791452635925636888714313317736215349483884356824584924255817437859688875299772121312726116838413472158667534635555627237799431757861627261423978439141619651626392444969191388911814774638788397431836635743633513989343191939672644216689833273459473673655591754275642624831165193349594944919426878931313397817129969253653484861753663893672383369184448666852816172361527645952769283949513684292317357112595672689862723172379411135826864431578355516713941879872253739251298923374944127193171184456361468141377559762561767765119634669564581146122158224789189142396243582685286482293462479363483196354412838457566812848753991281715144216151697266359124323332491884395888857474188999321542671649157436311957346134955918175138834666386471184587973373268572453628347763862321818134249196231592316982267378368951374373895943263659766493227823958276464857153318375724935726891717342726421741557838221671269139763934565538583365176934949852727199345788535751257849143926187787611278922396321984796997595263833941733852473359728317156572765158129494431665626447943689764269879897249295655388982249115511397267881799254772469673573913132748325384398555781647893184486558279797126979448413182391727262988858569156989818117246297923121896541445843824624347857539739718352386768959212635319153825784697725392287296259689574665143392163682899499124871738284586824931288457297198485357166314995476494229848447264798394835124649278581574317124472391683193347364213258578278416635693791134769279484231157888442891179282557464392625618486319398295213366992311461731668288118937448563152373319472438246946738461226431657777615836649233795431442983937694464747391213562915138135437196522785525534779859362955496195646715256697165939865159488187551222546995799183967452399297842853896595964862167893921831514678967416982367473142344325365633418257635761498693815146662123363967739196135993164567923124449636387397811389585822513724147999527346825834781262313583887586337942633126484499521777156794326121272473121459392467272631152554561798998933962988694867862126362422121813187286145321995196622852944923132758342773663271732716991383585648472538894991973254743761827362118351129418415729193368358975285918911742682154853179994791297687477341599683978285164443352199837561699457744561967281425624696352391145728154249867818261529243263276747442855641421336378282597613376821996458489512939737866536744334213857576427628571257799453785115379127768428266272851785143453988781466287993521685662156491678456491119697959917463578217265919539639597382173718155765471879723675534243348529314789326293273431962376411351382648569188284436412538178993121174911897626958588631427327528525825885646139977739862682333275655133586988976647524672794111554967314883671334975322491691646132752129486498686216356315477971144145973613462873516126563259143447844284329417646148784197992345918326748777342846614813593726116947512279992975636817255527127712453678457654195686211753554214459595349183492951571654898228553413735634973178125979358269914243425977355661362758683598388511742338953498524599367596335974148271965395137476212851463869363979164584977624234219255431345542537976263824226546461893726379412299714985387841565645827443383492272668187661627261542285413742768824621467438944998215545799974755115252874677976775229798684169461975151417114661182951718214149136431561271527435619579479674566199145162194746186133961826263862655269368722331823128199514881845351375147269232433233173461435869787382916828152374472726749325293821812583298415652722296117527797888926245965421582699211851539298898512996538486545455439571581269919198632478922466898845984989879779543678451586165848336524482458411577412451956439252712251286926162791736729343357427421538929436685667237152376898449583474316764221822527644314956895922442927339311553226537732421813947148869689745955598271313383577279845814777261619516536754811516481961437943193144685151541481138124156749148332689294246175987878282766669492651559873579976544462628174922267222198345331885211452269551767377476319622798219245451394261797545154924184894727252262576545298583973472661922645841887532931788166293357449412995973725728886673292436251981278665827398177534854885591598596452934654449993467755394352291745937372516514741426835269479443824542782232696626219625642585667911178291349892512473846174439131137855868758899936218715258141143728215178858741352122535429423784414811784547561663714256278557996376244578233379449864471125694311834271983218153928355356825245236443431542445647451986667961473916358492535187632739375961197288822552794292854137954439538357138383352752846247832164917822533451675739913426298214685367428742818372372592112931399725366221491228344384584576695476991412532543365693941397956383861811953196322781974193777495572552556755366444431749916635173226369834359984326398288641257357984865281289512139847692516142838115633642581684566216366779852652114477426463719439956533417572673119749385556598473925266823879169833851416854781973579149336132125389321895162168495299112624725243264233549644474883684746217531835148482345672169437891392953935538356481748853785464584578769292927555519294472816244572356256447181532441777966569817932556979787739763831415161942744889487254916983164195591595657125853577867546651151519558913715289546323966511516555491291461879722433528958118553183192136223984216457143843697996195217719996316741445628877667167577346136756329453723611456163719433134699221955226585619225375216319768669664185634284195522933553538385242549192318717268351615857765277239938268839645469529994569977699683597489343878729699956843591459518246169437198157932515753898747651166188797592295345721198752526532129898648756171641539394446997289177831686293256297137561159668465246295794128538339976971936673185694974475217849836333425973279649936373783466348971212618716768652287444681214992992961832397253279914462472669758853836955661787667984121286152826217783347316961758951967661743263921244964459415398285741814139322324699944863293191574464856876898257141326645845972227613279658464167998662245522734484591555381696395159263614866294543577916956674988993243529138462619498994441847546859292993739889739517851824677151169268532418271121796787135749735751583523431442491168771234116661618959282214354441216229529185145839747748272516426137879777271753615379997236777361147124741795966573472184659376389981244314798246582571844862399276299521879793241487471746875672392342229289593532257322797355473497528525364516539241329934462619349182518958499414435337763723746745894679317348671912668838193666145592322155792792946629528774477826948142611778762424275942469149533336486443318531856359575368222434962516736679553187924439351383779839493941786193875128132169337328347631519128386796499596538158883535675566294753492342773588376527974421939415633746824162888431127558542471733197668973252883974528363419482679346133446424611953878918846113937539662383643747924724698298489933997926371554245526975673421424592383891845258688165632873914263389669643157715622165342531757974829873177747398413727979944539912889186761481229592178161424494563461945973885823139736866295651787779266454844136119595114567525282917652834337927765265611452859959613794227898564189549565649534485563975654491898752797351293621176362727956136711879594612754759375547242834494471429681856131157591224395645871913961855467363913924333786263363559633158774964254477745242467621572877644939344671444858894566593779433725748995128493272627166344275346799698199738135186893326523156725674363344137545224444995219761227554676979724235468758268134235989347834894217642527323135458835757441629139793943575668193865349964936938898183328884593779292287588972841648769548887153862979627514587641416359137742927114175825274836867482394967268869275647153435991649667954668445351715429641241294159745119853377347788543656665959824324297524247914757913567852833255564215527298662443587263444658185494855564239464611327561825724153528964386212572583248329789184435121557268215364677487365363696117952667587913369818634259499998683658496175311381243547477366114478227625254272285539275891492748541291515922149573389769899962895715865356459486625591479375455826391715449377939388426342866247765745269186868696537959236841426979485483868728271866888452493179828356533385211297774519748946827642374513813922588938893586277731957397478769827719588847444226292821668334114774623495139441959131176819219676937166668513496418415195815752444259796636775495246745224699733147116769235765278742253612574786486142864429946719824174211588226719896146129681661167477525326887766379872829885971697447869546222848734726694281251884579424134218969441919327232329556497799129815749739551274484339867437327197661423467483711133998741462162817858275822183185385157184289471955862233431639156552359678514518973196437581385949165922763992888188629458387779676177232432528327268193822589546953675718848779475283565713557242498878652538456873228589833537676553217348184651853711584736483937246871677122117367415687226419133719766567667393923581312843744913778325971699772929939213376667944865251398276377261962299854547823347357264681495482511385738419642367963332269798838856328259112237913335451318281865496291191223813225659589398375823522521532812124568426335152543674835877957158493335867463515772944421124729458781257883123589674925926487332118224792194332199489971418121231132491588892819857634774575687698727665454445319973348595954513464921554787317214427366761121247647683151682492633349895996929574232436584623684817787386867714136267795156314784353969545115526122792296736184428595439849379872141269742349581429853646564451555461435559416448313576112356491846869425254898527864364588137111796627143422263938364613515215263834627868973266982442592912328591953738525831428552691789822771665938789263315959128196178144119682359276486782683482189792192949165171698266324543649418616799796112261877417642895835685364124633738816545319388861418834245497779551194524542227157939332772448473482742176288893584496663716443671735842559238476615361441874139293686721632569929546578465867787144616579725616549186931417175778129675546996559457849979676143844711354843487321915992857452536895821215442964164452525261313782364273616893297542673188218386592728978657866518666964774591131212917763448988844439796145248257347113356134827349218722246951774375698212583217127889992587544871339249388697218885784932576853975897726575285963431823169544732111883339846332564544749684955256223456348851917351733791985499122456869644744358331689677127117243829673935361282239195716497119482247431856864177885455184695632635468443928325913538835394756928454287489219699942624143516187832241978788657541692915245844636749736585349193953242556139482965826475899797182295349842881965446174462332139247672546723618142649974117298122879933594854667821718127737528795697756121586267228828671333192541215726754379971762429542741893814285851276163239471214378457637956539447954366283214642365138723265299884221638948382318819671887395284685557349967298877745823442858317642465351161747521982225311229783739245249224864963974594496465736549163974351736933271611257519163969355669643225441582595256152447371737781991334473532146559794421483251241374612755868413471812859164177294454539824654881851935831247846272524394758146121214696799583199241579834737347357626376224424336364256618232867637354865296428155478829733927679394779289731435861752524724472399667565436379746719862224661789745382623349314774758961225183156474535868788155529496326835229765128584251966417337768441843717218946352447886618374127191251979674298323911561387689397393389356674496786633752529337157276291657186543215379421344138755364327925569769396237341543317742164854399275194616331364584267453636166962471841463399647952687849545932178153297426378973231824858342448353462193631527731622195828963787122232583424287257356747523781482593739972471985719363123382228467539525752741119946237566586412965925489654654657269915452173377669117952326662277167592699816663462967187644752456195264134689825921628382756781499925328685557957919746891479418498721577912616396268758885735453334371872131651266931718171625847264359352426432835995712853336952376292333855946435895969283887194613745911313936515991829186886246319891739912562942923821587992621599462452517781872963912799751898744879139696664869169138993972845322225983659925829622412698772393594882235136527579618778555675923411434836466213974851695262653773815296732443631914972388432618888397969292455355632859692752639369945954289613265359218372425359354637145895192526435251482926831283886365775917458873912992574582769396863353888765846945181438695624189414682556841333731763622164472392561615377211572458728925252371536586914734661815586467872917151698298551827987444881667668453422131975965554387675622486121352464441747372598356717835436461596821993511669595164647281726864445335576632571976339946917484717348796249386373895688278926286829778492329846925573389271797378246884196971571827256153122748553131529117154235749344535798643956987897592794276291453922775961548336976154461179924215373877712533219614149236127436853238899942352213516428921653147441228113137338589119819855167791712513724457294994975959345114964224376629338737114587322711917419747398329182782921743823923644426136757754822924977258348582833435819565946247434238851699872994584549843546187589364324299489727162855297695333268689898726798484678977745268584342221983551389645433916523459763884863116235998421721372597564751137338731329161132268318954237338941724736522635741461255577289182243515967219682728632277886794817157543253111272845152831489779473226431631547731244317445313148359982934988662674994648158352276964257536491457747219815649747343757411938173857557548991865598763392385281565219954743818358134363582981145556441793984819622946284373265719353313611991851945553879995455478699849848822814459536424868385144928892673663197959581866684197589358526672971675613689257567314239979546624689131398293957577989876729481739642661471765422191177648476548392567514461991191997651498832662797446773761761759414442125279349962549615782756686929131547471257491361829984552143944978624549278214386174437531734212963315333142469966398159112422517648261365519496835639531763723576383429761781272735678534715952589812777644662833271933494788946926184647113174492484624991785376975338138245564712164343412748335757549353718167354686817981812287839755924621436893573261232348921995376737771259596791713847638617933516264388126686755938681541144483119437339887442924683625627965256297818786329592869929571376791399889747378228394294142257726755634687425246965274678783555128581749571884478896352129454856694778515693939718344544569744494669419768951821645987323396636981821787672653626114635965627195176244781756917597861455816415912516875959548188864898378827318558135429363161846225842723553297899441356563446958442593737946635567573127351835578517789474136472138331144127563313981938329767869781685985641762151143855731496375334722376351545558823394334959583854979594558193864183416791738913219249684492578876216675658449768682441768824692292858324158823661714779551919137193933337128475445812757747549259541773474319744133287861594528363329566886741953271946996436252574421197662756872866465997523659182181846992578754389779519775673779853352497263681566317373731818873117256851128263793319673663441642255741841557825246113368592655679143127272853457857272922175433436636453537852436943124211753985558172334998132634835256321417951658871269962123416821432473156211987193998191431921154281395916915614883791724724819227256746426776264433514975355266981564996673288521879157672187675622929467784536613527274273829479561516175527177329935242433269126156763115812533415928151376386882468668148299439822526653171758983648552361293274335779176959737991855972989196528994882475448147212698686685236924393339863566376424282741262743272314281436953595993176982156462592819852447585965262769964499648828793926663159675641527866828699468659296491447811952536918756792556565114238817882844533318877131666175478259827911353573469151116623151964746526442698834728829471685571943574227386168439311247216643746884315132737561489413223886949537957358521257185125345423116968653377238342851342665295416892756873585218482425571981521118273751998428156286633622653653568633613454248867429681746992237999359583817783424382355843856645469317688355576883917481675229555486143867324893183822879471336763376552273562769142327165187553879424531776842756968663162716973814257314887162647493717868465745159779968765838568738494249713297974961836217163835565978738947634139191522326688944521383976749142942193124773566817846133795799883171383768815375158561739218286383412577356784289935898728626245576632357825232214793574325938376837943623935256516752163556382854657718912516155629736161688874238897686737232784665352319977398967725488111279544158279267785582253792492419252646464368847486491668696836651895541756638366896851621393867937479435988724393878839758944736453485764544863239912876679941675793379723117411211378946749796375512563662483513431325888666384643778144373512755676154819427781966779186237491857462732664332238894892424963148764947193325547336796838233536392686385517161783443125747989519777295646242329553645127716756523332795318439273437837517163624846815335268974317991649346688961541973479376697386349273832526551556884711269897411337599559295149727187194972613635374328337731692498198486636898336747568232281329227965517187718372928831948979871566917795375292384957941736613768458927454864181376979842413687512394938424612739315399439696236456647478738991722231174922545179534361143833893126123415658945987314317589778168679819353156445265476134991787644534457742385789227739137296859191335198226684596268269978553452485984715463692217924899744978227616976511779981673962725212922771378817784762729994176586587654769541327684755645941489137782258192123871245698182139932619713522634811824374161364156215976327478758739156452477783383879492148913875781325462238366544483486276553911932367479394848175423939564754846962597426899516136327264438712387436177745694296628434767547675298714478728247898632917542217617476813785597276128218852962622369841117557363764674467564626842625625379985262618853698968533694155582471895946731189876728877273622759747232713791676238915722973947892514674733799491282553549832612652198371449368477521773556796861959776729656573123281535115589665531193866594695923866355713668111211495934274764859474855111991119148529847293677524997497487387371122995724972633921659487125632633733184581642734887726416869922284493749793964343114535111992119458722679866388588731242231441284945192978596434216219233356363757256243192624924634656771396561266689988149431783138615624269366733721515457515727577838244151532894844478128581226718622827878157431767568417318988749822597391934118754683214993775657897525518718672931242641817372941582133893659843766918888615788746749137382255431821718658117871544347155161693684653497217884837351945351419566932252861558842565549875995851453557644698572636269157547912946281845313151112737732475155147656748258553464635398434839233987469274929365617237869241153342976893385219759463148862866189177765974494268295388273358856753527915334548456885582815689254485175596751685363712891358273512998358923971486657736742568717897631521618746391952626662442131784625775457976962213679723815973234692145631326327584465745133255614697159281793441885348742855325774379286366591567982855941461827245164678227164852936428454425249644892614329694786317152484887641129371592469826447151288577241332259198233195739433542388911124348246969258621553797835525527841554249254915851121782243684368323536441722395396265377535952662925557528548168674991743237293484838679422227874264237431959287669316148359936442753476471498144175688494396839994342878817611916454383513994984317474253814813548855296394772911648952333513755531949578836936989774996246311853847883676258757514992415945129394971236832696256546686278679599886818572731255888455962727767744334171233257646461856136692366788985198423166693687279848164532329728459645295363978852657999121982625579989425612486651431321399561927916847396545998932953983828919698272792444933826819117398178947744923966458621191192721527321983375571294966874974146178798786114561479755342648152648428386876232167133556628433586427146724235431133278731663811442235616918451443761532587758791894453944777822286138376152829818234427795576583296923627717686499731419856414722213465935683323186236111651921131466868426747956557158114194196132716558911785231935724123422924175628318476888871242643774975372834664381968856759913271567993265521949945719374264461416295411862846738318336631877817427957943926599429252794772462193697371672221153967135493428538786424461672786962674212344286964585831877935531677877111427913361734819593955913699391332922356329691541835335484423345446461192841893876398737169472826352462546534711339192796624895429655618251539652451639282569112957427241282146382334342498497683225838946149677798223352971638849332115619576145946252459492385217427966813426919534667497615126666353933274765527972629469862427952234441617157745795732717859533646969138633396755227388162914267664656428636292723541247438844499845375247757828263376918671121985323725589361276493982748849836367449797723739368455628492374899622591272443369113564414531928871929937159486286532972224114972963945641677185528715826235622716991455411299652432993414966935625769198218964116285435712314765331139939726226635266747866132654656547519111563978542117721975239772523423368656419619371367771647799922158923563413341456133177846727822523867988321356858964738299982133318117828843417213674484372464693483164858197718864382628764914352558933642412187526777532833167293985348467576236883526618914633831353989736358927269628419762933957245127642523238999749615697983696116779722124813675636185773933433189161161432698251758235417759948743848871949744618521961735618483666444436391751412497469831758925558881429474314553279162137827462249271116437781987883196687313427334334857434433212419957678928641852337879312522551546214884647623845522553583748782392679933794177539674823286855963121924292588331296677785369765166258467525358367914571197872387982728469983618498655745321559337498144132382121874247678723635365969371489591568782537398652166563478426465491168312931785882447665515149669676386578556924266823253765612568197544378961375857173338797854643285522328334729425547216991354562914136768239152515226825759195386779354176172121633225698516933691435832428429582683142881483633774256377119956215418477414767934348975575468178498345975332824248934472717624463276663275367581382619889531776173638846362911847118876828885492644427953133126726492973761289343675478671772343883979355364287545972727794838215312336842169813399452131513323743964548644635853888881939259333629963826288662848637519424456717592864471237391263813744278758397573799811531445625888396159889535794675716751212589419815782634192558829584494543573353731983282237118946284637875119371358666788378152679933719299935141885553389185243135395214195699587133451348762965493814213653511313546561337333762941352616867978122768781413688772815976651248949116784824172858939425969973776676144425723897688529126114369836439761243322979722722322538511153919133353341222383414666417511712614728152972181421786426157227377559354341558581567119793514232875699123978826763572342682184161531433629491177323457514612117259282443373469981236777247347161978212348565553676252766581285272973215962396653166332978887494592712396336981285828815793322771741879512998197668358726957124288164114113912658483264659459767674174475655719647743217942917675161497853323267841151643734589876825599721127611615677859287164745183964166726776234827835441794213598895465133645926698133192522761649985577741232871672882933918152948496268271357214492575774578763592117824848558987134491747613752853534826651448141479454194379554796978533666479417441741966891369956619855482322855918814484519494144928456578662143833372722559964345179637483696888215366422316631137999647896473383798349461123926716568247674992262985921822213664129934681988184282673654764921322214563459258565622866232623645755181335149885346422945197451725224346649627141782975384929989492824478339943891987525996784623814231944847126924665154513874144465549823514214561854215383687922565546776977432496826354512193258691368966597637318833273373487345371256794457267138335562798413948953622956572264187532511452635539871966422538827559619643715258225222754895677233193956226741543154218588945567776961573146198492723551245791577153299314712552712955979538575271479399661814984188675527364771717636582663851359216647474759719562129365651785685249875139119856157884447415953366243655656541136724157786262497912276731273285666959637244473154261724641957323717769472728124339392556541361541317155326216438467622266192145255868389891343279841946545658164549467336369576559442196551457691536259865621255299318852986645687291167528643153173757954697156774871513367572868144637187882458835875191657823626879686365599272658158122794145622471195445352515411112279573934151959594828968599491517464656951946885276952892741772427872466559948555141311483541572247473917919755257268215348385318145334925988413128829352171599294626127514244455326141247286216467868499823266697291315932543968653483265589958667788279412518362511827254248914772488419568385534515231545345793841561416344696937548593935585668614735358716419144992184533987757121445315855749938226578767432223366687252736527439976842573695811367973145686327225798846214674619316619968581292761444854319569589149124962881945989364584539477379182568646621117123371623551266274319162634633325552613867863578899695866128349885944239715153833793267879693672965367347732914373488265925262256683496968269575713628119526632288517114839766246497397348899818659469842698111659378992779761536361344484194168995784751726768484427755155461258627992162647466897463967393328279779975148874453299376116336153939826329196432741567167581184377357878887429583438134773771217833519277818855998899366533553224465281962747336125941584738148475893988152774265568616988682538817294898965372736587185843185875474853558166139777485767155532978344697484186854572956651293398922471128417181448532197196324125242252983582624367565264785196521624822179131557193628186575936987368456367493112373269797399787413358774524734759956925635593243467245576838212217688151581693839542978542262362121724853812284936924868983918118269554724833225726293889979789586531892275386766465543549417365897877183512977613256491339965444139737177265825129758771666191414476163778259561434292257856887124729896692546489897113787465976337216775719456244935213838335857667234694439142435845137949334979791169492496539913324997921228296292131369712792822322114125734443455461341411492613812213676998143579693633571632813922378757662817767929166128319511726592267447192783689292921861822462587129729987355264255331292438577178951838563178483815835156993691485468324521247437819294883241289625437667582324993813281385412253685342989121318689896824454569736259258259189847716397732168932536451356153146717336918215886949574598913317767489179779368752799947738157734472368246252936984888662375937264491214619893481858595621124839368278638526644628568921932394229947711541114475321192984213424498167112992347758747845245486825622321511533397172856379817389851871811963273989155681652389264241332316524712616175139257163586598628271541792418719634439677226977784747717837617679913869571168847119889563224971862947994199873483461317627915971174663161948376512533294983379276643737821738278432641838255173735997689742569482545428233649812391957822976895138569372444324444438219396974466113131274595938361981819397624335537444883385191198168187759172424157436644143252957756421337468763496959363566642426958981626592731226241485949271766654615243315336838857351367433996347651972493986751486322145233857422597537835499438958162574848489439283964483435129835972456284136154249577711292284779815413725319633579259168286453432853125546497545458355164518832926328762291933477382777137819891422277396388525244411914683572524631469987838353673673821177339582526414286919267313594592323171212852259759665285534973914311221495511575439858391687887397228348798735276241869827614334844668437299616211386267828241525871623333283793711327119822863341392524731891272383982864849253272323696676682711987264556362668889148695253422411226451987944722625474898138358459194273766146297535713524438264953359536939648271652813245152447663625316251977133213426921165731982412127924727836278768875246334574665366727311827683469973415851217733394924895553799676827382411164383673962417775643323842972178496653948278756399521794882989738373466363247666617686965163825632878484617364825563258653944396573292651376657113228884266595241461514542296887298976382831345379221664783351169866475657679996726873149275372256784248895874355932235241668883452765543919345736848353419187322387821111133495169984224113843879642632644973579457767268441626679733895282538364939645378431988851239657789625917762399222229994916761448399788565674586696575855421464383261916473821478916482924968387692693148211246136674656852779438586789699514215762137712778691447126964815226682784464431281224915591872373942119444876884796297636623751943153886353841211829473834219192397684219493423584329513922711949518927857187236566516686867952911681465964676121761429915689678727753347615126282314214662538389954278828329847168468634766584488885676497381886623474759298535324769399116984645783946955698228484312193782256513615391769571418638848117111661821441426262382955837637338384365489321835954158439282814622957475316288763176819727896268243871399826673889559439199714527794723614362548384236235995345914386535951195823245747236569141477921415494775998462175621524659341271619977465292498759691945868975834821466975994758627612197874367738773269667933684355454131457911777183948641898232766168113612578277451123293915271676476636873689225235544635143199645398775122134556918462864163937546223624827152552487463868251885495657847633787835669834649627156512295856225716262135598369854514622996617287793995344169954394654754415112881169593888783112357732162462631536464653521711845527622757891853498854294265149581341415185169298183382698192959863893391816736524742911619794789968298278731371755845785754922817716533386324478861338684185265835377696137355229142999397893275612352863597998892981918777894364588564813592382379371137816242579435715954172398125127797411557471751245641661562863642372326154128932495569516692946962283877278972919555495943236622849117624419499343772256468931214194656986725658824138665557567866322719481845526828674129765431152122959122563145812323288621725827991812957252641762979741892283863853147751824989186959129346523796918674654942849433345168619888378234499883966889912418278956774585935792997566366597314197674923515875163718234873593893659141371757153423245522661849995887814879583724927468534697597985655943881152444979821171829517952555824738952358231347328268854918471652447572385217928734419789537582626352479798581343773651583231291626854623569583751114153355263233717179325273547557851965471694874679592818253886461456884943338685534614428696222266744938251998541892223871483598162564388376129198299486525765571616134759361369978826577133488459952227253278166857494297434269254275878295991575225524156562477784272989568515125476872327564222539526572323715351937158794116258919546667937343334938887277782472325882573287429712489297864992123591657966696657695615289688781949995681148794354815223171949923923479383242677946367564558549722867884198254848463299653397368354122421236519344654498727342276468598612162975348667448163378824564424529617149996639436653424779191542393117986639572925267533432485615814511153991992516148382419859249688684972871911614532662546469327276563748748789133288232867788515951224987845747865687763432272676686975658223898455121453569625172779134954234969571495751693199376189473885271126165529678778794292137316723723318751617484144554666485956126446212262819323668823452846457981592717888728874655981973597385344494283844732186584571738457869219516891253261798155127953638557498176171396466261752446699443172878475594138644619743392144341527364713115978338292422434757798414873183569482299322563837596346614912267195124146181354993526176467573262762165553578866118615249886112267363818165741441191514582982198824194898272396315255693882999771961358275485824439888166255122227152968486876318277873587998199814998647224734552249488976875645135887697961315528455142618272774152892586616157772384455262438843922969621225993931465871923886187273234136525617753129121498995513814227759321875186187127915565736147712723711119627328998443915519188249519591352983762516795334132855894834968165242482959482785978457841227822445573568596665141875658661242475822277816472765752317252276313793811589926193577697313439951238519456458157293853583724528531471215848633352637774835386148174194477341565617374667285787485793239852997458975441948416255524737611899645433855859689394844217877867829352537822781728992422198883565589632414571543241483482369615943815144482526649777826142992385676968417649293169752345334562128525454917926232196219642877969721255556136748736247299377964835849384797459223746344352957249714642921545567629353678673386356619899854489151975233188317842492379264683487573984182813577515543567826154681979377466714365818953734337695672598134794128518394575888446993151944324625565375532199843433647732152424958476828927711143386858862192387223795577256258576952646835963674944481195629455149114786372538823251251612547149159327844987868173187257392894888719494782367964272886525694972843772149275862278467927576873956324337234629826652253999575771482624336698479935158347284761788951384943679562966789317673641526544836184939215773513269432574927319917299111577827134975123425145935755655692373966354865196599982455919467595791316681189638536572152887637195126585583435278734739827679288779427875198525378752522279186863895672172832459223264471389965255611728819134845251598516492816367348127119593998946697136326842675475176125415298757469181574629156654255674183868694582548891715469684241648824673921164843824249216529563454711992117481762985785447384528888987176824889967445978696847734422129619987974627214963457119441643413491187447157533778478322375415654652285989732198735555662212566921148546418518371725371482537219213955586446263224652789742553353457915538954366629886761894919255854497282417979857512492783797172419127267854828479518786855453692594218993365112152829494838987226546435651251255335263446333855597939583588414835342684197381731533371619458631155292412239293234451411445298392612751854762885321351384892611771845929285473894718746925266242214696513941328689452953559972183542972375396953887981326223221453451677986481769456478988191236369426114652617543171968877779216247747292462215412497274842752365948667784883324463168441426642145911677856277413599444574148242621677362969718168891138531344495452188374143939727821673786126551759477871264935717653821523167242188765761163543297489421627341438213669665829127855797759472414213569425916717483852626453593892137178558128856949282626975154357144888689555957966138715228543347525383327613418199869271924247788226337197427126993919992395972773315923744456145335224354649817237539784228723235546862224114716458436647417621165741742153513158871444974735822285249454684798666598995366748957461315653831686146925442924718445455819283249853444878871249173627197995219284327784571485382643241931442369791459716744162226449522556681448474344817223334866717853311444371694974585717983553337567491727876163511871579824136773422484151566716783739611993571812941245281751318581541539887866949964471445476334367399287853547433669614249662987617535319543276341311614579767327179499433649273292343688554275882721654817825134357415259667145316361751421834248888314358952473988942884965368946766189985211399284361557173876442949928347367175481536142418952234236848565271629663165295981184495968714221372237334853441348577963733155262274997371595427274959211515911137526143283624341634545585975977629333532793226189423871367854525436779847159656687864888464824256824797412276835599767613884298771149879996577826793542829248125928896785333923592645827741541133811588911291438593974747789782962899598597631479576849518476553732681439182119855438478215768932288222128239114556484284669562569472573485384647275584849784831868825154472845652199473352744829592996343415771869817133215476425514937358724619679372481927558898291815677847893629767858594373291271738412981242218883731168267384455275264386496284446531357975419917433652281887232765889576116887529774892871582767245192682379932999377454313478983481648676567656573218537855552789743689245911547856518383737815868926931429363938588215577266633435917948974256994724261866438659159754549854444714129195637393396261414387731991493392863593711426467685356446584614889237318349874543977511158517896898519342328672867518523364142719569483515461545385936252566537472491649175128547148654789332877117971977478232735689158971157847545432268971253511515392316981633166181868872923173483613291153459946933799792188236476585699834728419668546645356873531978851232861716551214537125357344129232216287833743185786121755146968179687459624811489882955359845642618233285476594572665181163437576399618945594841896494391633379998858742281563542172591554771669453226325269513721859784961117842252764189139399374242547647322526583891793522449753996659481523171359338579713677865421458389586512533289969226812443476195143794736945931853432555891411893261544136619684725861449478358664717929569427778265387123848693163753598548216122531231515274579743983846656267399323363879136988387551226732461483518785697276194749751323467585736494963771368633496438673321783433838185991763993535381513581823195992492477766918445586733714914493632667323723556194567837238557798864586756112611956538241995654431787353953914918551374363718242118844138438728563589915375988189952365196866622869759276564372267373672257817983857854591837842579736751521328593288627699283439392875827838676894755314222454363459831514372861225645166291527852744884211396327771265884826599773951462481921687694262643193158354498537527675334659794993318133452393854591924277257557766568794814197435527945748383168615473654962695247739284122217967414769254313716489317698728425944419224544715443272831692432836256266511871294421594553685677292798348315335656715159298655363332165886328783353746656411836168364743263939354527172623695291126479596788614845643713152571561298246625464757112381586633588688492152598754564683731383549397137142379154411758931949193121824437654458888764655639447558639971635969848523767321254899662567529115179739916637742112977922763663961833833385957158144735982238534526788817392995698171568672424764323213732731289986932798828393725825287269367265758837628437799282699425241947522394965897567475644564986971622742237616252889342587965552513776987637352439253491176621671857535297912144967296314764732725558977667761167776386752133295748436181867962549167633734143497348857923617859665317589883133645529211462135991522351147449513155865991194693643758762495345631127516615953217472348586819463564213664248468196219857547473628829284488234923533427161798951833741188891282445676362441225197461368248156379745262495316726452587381995513575992131662333767915532621172218797819955176352943395546442562342922817315839923351685238474597677758468751642865923435261519166831657332375451943275579539435916151682719344337544981943875375869937296111443186474467544961545447956657681888325741384689633166761324172951881244262521473678244274671875842756162393339586391617174951523697194234356294723684479765615954753164489898259526854819279775939345764553278228893283199956449373839274481193973279478464997824115922369358555762698535724415715287312137881356415257628958427936556758346461991415266151783476131596339865963993318893971228712751382377653942262152247357228293121347992295312495527252854662874896586794325354795419684951137416165643155469748378136521423244741193487834797514326957998213576686724416764525745429118828165723384634119551924455355245841412639972372325316651175577162293254241368481811564461928614723937241366995974919455436286567741463498187475865799332741486151997235133871256736648822841445524247641917932583146826991933575787441442934972386857556548785264898921113311538124757392169674853644644974926717982792796664949293556943344894482551521276579488643226539818356391453461826655498629263143857586621747828482822573589683978625276259822659731887236184371133649364245381254241953452789782946851273792616939914339597465458934949219369851852374213838273965368378394288262388698772589886311247856263988296955732978856377371965671978778372744721696323951956414599367983246528587219494489929268183771185636474184913449231147944212219571197494885118139233726137247984984633122513395217478981683371769922322363682992749626674911966857978215463562634586954334329794481211636871934472975387618487726735787374467694881218869796477938517234561229697518394263718392232944388311159899639944314132155248665495499379242135455858164477234662211127941143587962866293815161379372955968396893977586776283398115211785515184371918585292321232641619959457773764512121241252315355359284752116367557461475596121644452826827553297924951519112964498571161715923695991849839826345182197168668828317381263234667166255961615596425143158371737332847242293641283686881627779313486198227472589647225276844863991591421148385258869477959225514653584687516121896833427448989444692959691382261843974617596429777873831949965148335696344766633419582675562964887236758124686816665722267363631353817628976557913584591316569593864435313856547784133153799557824365786869414172574688848883565879348824753169297564346214459936859632996292291846171781136118693555634352461445143112115595354519872186232375868268258617133463348457968295661477282942644988113936631441896943551644798185895177521664643226479544823621191596358223567788225258448789799747353173329976798313946815873637462668889677336156359839227571195351147994637222646629649286295621624413754566739381244262771342483634818144617445458764831953172434714517968512145911394387685728287528315164268658677995753235842684415711226861627327782994587655984464465941913634381381638382779214641134134385694633595312488289642645947354814375524944173881755817391836317533174467864943916476195186617359456782467751859577177484135758684253398963956894591247559924772187315992286865124127872753129237857446554131531833618664875797472115659951994186335192478846563673937832922319732339477259716153355937128339112235272886866459685176777599489513929197663198155562139787616656847746512721525161263931782446931695244215256642658851929144646615918438843496651345436231594954544286968298743876399822859254488716392221994262781662747652199869389419488894863938292756854731668597435215682874582656239591557295948458916184332386898746881499992736525214635763342996574624413576137638971446768958515956396553155717594648193988738233743496611172631173873172935756931269729816868864242458631995688693474455932627121264817816454114441875257328929935415195539938273348664375265157487886447221946161935252667262811588911723717323394629685481551598388359629342461812879417552411238953914837873853939861595635647432721284979264456441481842315957129238424329654287316291419893695497247568423841652269199179347777381946878162226233942948773539267251838544646268352435312445351165247881245759575717337471795791213882915488345716429166124594694882863399233693234949541989247525611839833181414716541538443284554646519727847116751712645743197451891762445155629699753226535268258325458843314253126338871386111921355938258563764487263282791772795288992647894232847246224271349757537789478691774578999416431395956615542399476724523343975914398958392421457128469682779159588263992134168768585343519425362187476577873548486719951882327425143689466611447197172159279911415563498958981589387372398278298644873568356414222859977784513367734181724344656739627394645869542931891335679252193732275562524697686798155869978341457894944494961529335711617531565345548868353215236596555217253767119996629839232871325844558824535515165947861936858432776658919559844337914815571323499155745688553875565755383323552455739186921117554937456567813937419327899919653955679236896189729651339329274467825836416914876731663574591836517989519119575958994351699671211898759558496899699815864721731819675421359838786657243413475446493834758631518163667896234768386559834686735431796376989354163698581849412843812448136959346616453436366339618752564249274633267419935458319174238643459612927647539974685483815558893742843697349326673922281645423697772139662573931331459413945293979163827164356379413352546854151957127833258765696719953447831934536318523387746227212355937939472191851979743463163297681482328427493588453688895113872719931762481648474633411822288368241295344498235696747828936751565575197537251618372953745219365712122854578437354559712233957528629694941883527852732833137878639498893761122796868841244821673422381456456526281975188468415646775799344996595591998634564118684154977376816255243115451841698113481227786392715115549424574373521541199637898498832663129337589632731593272911774749931963619472534683899988155329312317558584647985364163967598319438274923375174499886181629549473299581698195543522929171934952169916166876229551752658641935141931536194624479444488253245638621662362514941863311235447899659516732871164151371373726495349399853839945348365483664194527446422694588992737255591819151793435584842621683317756737641521853381664725764994668331884945929247313674141438794416594876368173782948353375154494943411935742911193926244648987371691584156147947339943316193729768727112715499932815144743114871751341411859742822335798889376231264295279243425547116874711323338756264177319753443831281221353136752258989844178459458371395596171285173956252186912737756296893711217482816194694667441159629999919648627227576843576671642421311264825646383976213679723854764779151515244539141496267531897274279329633984887817432174253869275986859247525295747944357634441848534536278697979754188831264257198341957615312266663346452666354178962712231347893226751816422838523784896821599721384454985966818965434925855735654988376862442237661951536998454741577143275488954947189678523876832536753371965367966823663841512655228445432746542124289562513668189812345428161363689446675842538419642973769895144176534116269988742937394172676963626816421419283365184481647133374754496336344669166494557259387652172613336582487126351166883558665625947485523314848935424768414876358997458669953836376643473859374263896663557839457911256421358654834479533315341839744475419364636964726946558431315733272287549135397999535477516969186385848831361869812348177674672291573455472466246379167833289398235579196132746262178641958877699145945557611236323286271148616611214658317238851967685788449198918363184715681586334792525414315131338597155192634992954574894396318168763162314614797245523842562357123338459818187781132316451575277499244914712479482512146194592241144334715742679739823522861984988322681154311163154395472468757569626631949956142461887933886433384846929914518644623415673226445737319389639484755885443664187569399218261199464852374539847584412323127927853237265596579227567678771562256558263623261172727584261217321866671933348255327965389399922917465567772595136722249168149248965329986136537198212216911824711341239732384984814814594576855868972754972368638828258515199675453536913938881663577237635582127269859153821986123745497944145761646649822898491663292785298764838381162241979945353332849794167895811924912894319641625584989659938919318378799562614162459324216897826644494259419715841761981679341994323638478338812878975931954843265527264886667744431824997382597938644932688252684675855672731414376658816521769125591957118159376932711362338229568552353257184676646662883685541385518723421777431986164422765773224975326392125923639951235693813281512141333723175179972539719118268362393565763258255297267268874698637963448554378896512217885244195792925869196864424634421734234692794178978654895356587651153412679876674429718233882556541671728615362684553466734777221378439199525673827263726182714839653562413759142756927425695977822166217472375439931763222617389585294732867391283358669639457295694156242861988223969831756474833148752737724635821713767314677971634797468721292252437156414199953432158839838944176869511799694935131812795588886362292271231523115186355793672197217333435476667174689958395315914646878394951556914898718237628971567387672725315684455267818516651479946116537195438844434374838866769259812491933716149576848734399224285434417676381137511483713523931453783441158951692728178339432467634967961856825995793516448574236532237393774162639961514261563226327946114428572468597712768168691284884116963997746417673479227346623924518697451191757973895619261452782551286385249846225786682626785921848475888761373749397558236518582328716571598772612345246797445666436974922788848872485144677133665352543711585371318812268862228533675845874211331191117882993746893476963273395394494972171334724951536743963481719197194127598882833397583721882871489891441117389519258439517575523582635636453394218841789437787136387749264583883677645567244856364137852381568725478825449713447741334553598368796568911772915777719153292926886443232298298655325229438539218742854962871635156568391153163736821116383456851596235339525797478479997222796635257671522989736653442253313876481148189288151615948152482669296288997995718778262866194258167676475175544412217393881215912767395711144585585124493412812877695154258596944456785815185271739344658597181525993464872378442265538478186127625862248466281216569495283895556942154989597418963892421689134637643939868618414684715874666117879972957717637995365832197598274171255934777466881473562222938434458841318954433468715925917741175958968753985221991472872655552946842696894316384332419564917192665723392721349761811756155854919471611772885752742816421895285122282258337893966136666645154555772987719477563966622274688924381578137164611915566574931612149986899585954845389837318379464462959787273656164155675483438665668646454618214499966485527483848611245695396646521959411147321281295653263725267153992986717725834287494555161776964153613484756164894148555521997412563881255762131445288639739478524792716272485427746698462497249518678395433865428977723742555316164874326592933621382556692221826194525964256527545689259361332941472977382833576934948873796898836923641832178671964649829498261761925997195852847281271919635691783262861245238836943933885443411627793717228912594686864388529682341511233923152429915423375322446486418699895945745386414736959588128977847231714222862245629668368145738432592824989293563419245148521463593684972882947388292696438463713969256435528255964214746482752846862584945759354764938577632724419447732216131496888734497558977822685715297345724486824569356137175544864487957395867213137628426861356693286995481191313974715381216664972562999999929296676194215771157213482372172192558147467823728338566784789989943737572144415248984552721798592874511725145558346672742712662647188158453897631297462543689853549344189368831841676818176941295128526442324417363844651245244655496949161599116489744757262525955658444482483831884258864815419954797136264455324638415786225111379161577811442695434883414814831636774354486546978366497877259212678993339973561286825592127928185875996974219237818348558349946323722498719621392135779683487118388418378149258359736675922623459389917719724548412978551622746664554234196439269366112162135791945357646278195121621626728286279695358966865266317378831658255115649435911426947763536589414815368181689611215879123652591872387995153914923388381546674659787485979269559788616659117363339877454471325283942616497133346232877294225634727977626218432845121849241693965752492923756939531514527676972446476677841443386336666224819844579136611744971583948661941824271263734797983942225171164156463378641919617899122429516811546673445436385974964115955536471836161592129617883293787231757649344283484444923242419222185758671199338762154367517418427881747757768535548765514245975752726599266199453329769172578834116645559159183295171977213996385948484498386616112198798197635118947366184744244433293991553953745462179433746178287477431625898345432364637245953789432473951775217343696311715174916143327484795327667387267654944547768486856387943662376832325569235974648166751916133726746383295681835649394384886147621348458896989353382611988683444377212992589424631881888747971387118296355285547626695467154272963771396713357918667993796913298456575955369859614394553254372117544148464349218638974288495614468753598822742584271597337698934899938729882939356395127875677956748419397371314934334911567242626457375993923496638119154767818443179578761991553363157533313147334271946135171295511253462665388694698291697516156171216462899658117726866526122727727254342386197767443885485556227933366574973648373651999544165758973419816169987132139974368733528769648334223825927814239992143918771693924296687477789678773964631689982391868595253119876262435493371499374223637837725332453892128258175476649413174596631829931734531967531551657916558549431313656642484438494183738662494423777231369612541857118875914245512224359218343326927893383516157178493313235446947627844195799485235454576191783544237537815844356791157656735979482135725188424883887652315692639632294512433611898543654123165937246596628878956791965356562955768316857644339998994438964258634443128763995985674926712217969383684541649128586876356456242179327672625537385753486932546632554219352795422896135726761323467877712871312499993453138959394962632728749868857993284988817393456517371246122611829217987616949581228232733983164964563223816855866578641849134421776887268743227764527511314636612291916679889555887646766129589718688245122166654297873464322272938853264459114434199246666774876652966312291543842764321887264728814424443586669834355333849211991333565812467349763376569471469482547926253776742969515432566494447948653821485579438862897536961653317688627165896773862514189144374922883589858536691741148842268551628965751693153235239912127962824619175244449551163954165741822273281693926971176371666139121337434484686273371896753346246368892321689296413482956289714328217339387296736964159557527848668381198717489974467223964648394111121791438325651373569924753953945814956778233259596486659844138529913579382596545973548521834684465721637787321718953794877234571941194752473543246315783395753845845219447671794424892122696869343763695343312644922233282766681856125548868913294315524689357222834366151832951371812271184796988315819982186112183299397767355174564442549949247466285942676974419743977771774591128512669256586359537214289629622462626431978513446166384235296322473925113852186671219532949562798898498573671127247199173139298868796553719612325924822134132828687332591551683274555667969242999622761816874991255622418422411361437517174453377848168798839754887546334578895578275943726691978632345591369817634927388847845697729258185155697998636419183643213228926429889579231771788132443654446877855791613689766668892156489966641929179337213858637732469355919889886719538714666328563387767545523184826795959572316534319963515813295663257113224877297183433893922477682381592879588186428598899935584691649837765473915854633415963312376357924451641216568617293314541155846271243344889648458688931935499916839264541495348996788879419399883888133162585474842618548567445614415622859376761822675519242692932583667595161943999439343411694842198847343426624566489631679962151834457789251586124175132827122115559117912969561767361442244243786686377463318485191944147461628276793448668486885877382826978786255488243172561947755835532388714252175462526429185567119247127342448864915545543889589484185817941616196459993371229257565835628589278623522848859865411883344192898761123296981956486474688986176933934243722627255791149847553945247559712863577946141935569863366921981166314917612584941835142643521627246536386444728699294246487448953615223755127875774198726459245495796161572147625933695221243662142648684788541932281692515862175238886344187179287256316783879381268792289786695319938697773611717576674653322752634573159419469216774128249313455693996737664573239441354274518977156738384641953996921337677364168621359623617785376388944679974736762622863449977495289546424895469522797831827455973836568737273224273855836562967339884657364585893988451196192625592966782238697894639529228389739835483595354133485337248156128999538777212594833364978783385973816674373432814939327185322719988645872215385777718517838188886741216426855221972821414321999562562214878398386458497717716652698818285814742376925776555119268148847438791828519976421821736528493125784865626493943923986537365667136422873311514715183636352717511942128248388767276438853932763755756579498254971592387588743818373739769574979929248785459728646828884742127918922678224185949531398773764564345412334623916958988854939375799239351793894488277952245271641553487547826254961645868276339373521263745349644698174992414241573588852385148597395683824237284522297224627466196564734246764195314835276823421166339643228538848321748329451455978822133884667479433354288233639491594772237874716932249142413243382658761447717399323236356678787852637751412239152373918454323998169733764867772818287933354543349211577854521619427118433676919719756432673634565175997265745626691234481653898314894619173545193115444498688427896256154416715125659988756687367872476616376776331139913551276852888458176543266277166311427892189934821375681197813323465944142934316342799719478791925328722915335767837816643511583124896177491866658238782831979262651247887853427239997989176193256269957632854675554352259758873589483145321576122536652617393542478671292248639772345386925268315162271484247115247765356762581997214142555156568235758224363461962375419824469272647557784918114231661552888815957593279561369672638673761531825564771626542518652518774725697153429461125264928167825286745449571426428733925739422839493836774615345127419883834116845227784155478979729697878269752363131434862669531489266972746962254285662637478526333928993688793192648711457389912193983251928228372152995723614613911224296917734839828389539899999111429919673945827754697576575465416396353456848492861517155581931558264497181729995145749287279234149368976946846339693612319221514441337731414936895145276986947469473944174366944448855342844671517792199424917341125549733279228997196827328942943596468676488376965556277151255494129785423241837271897583517837229996547841723449419257417189791689243827988321252257886584453492414595283894928233711458783923943392819199481292472415283464667885866864793722848988586732977655231617976146231138866538635289793743531144666757434966729247215489623625971645278664246959768296156318795758275922334838685594997617387851667959183474323672861622449933179874763818331586672733867668976743219499222269726878244899785369571419329335396872586855723348395326157189698165323797368593311733336935883699119388915854974145468161448696597425315779176479916612735595143784214682488925815474537876471647957415542233514849382978595459254984337539789173992287937572386664195747615512811828691357485942341694465914185965725849477961183253488868366662233716644249146441788564281745868128672985789434392137555528194895552749327259488691345886685954418573384919847796631218765151481337556855739497969879635149277298844337881729415391353656673373265597275237167596521786343569875423149462168816547516149385263683877723838698232982485393618865242814185835647725962481651436841121328791154726293339394436111992823682686166676799727168758647839187245641397866737443317169743641353726746423985627747543417671584855537269358791474217457993951446888594517276114524167857952175753592842659261512717573277374748988261416322262442277384922384283998129641767899897535926955463651542496461149928661142636172227351499835929729665669733439641256185176657437484841813954898913521827462194732115175378757546677768484583856865363781545388856511258586761356781159113531315965978637394328887981782933954438925887515736614292369452647971762349888451912331446372434132197221918743833955888525568961161863853636827112591332877662667734828971652352499412577244398952243949984218248188236939267143266469468768582388181674478273489124949716564592499456794521758659153814569718947882341692766421315596941712694372515565621162282631214285244669799355696612721963983391615979939764233893163159247566426923816772193372587873886532174755934492591827865651738261477642134563622583379624786512548292494749992149365327686136279997237591489583428831687289617596398948975833164846894593552111629514292763968353721261495415477326645611987722983998938569896527181541529291388567468394183734432585537456373139765684982254687735177712239542497854242356694366763443455398437922334558928344899232476896638339552886776419799612838427189822755943411152129989163894492473558932372376378366251431768996149843968276813638244275252132545527622539119362165382796999953394165317217133239556726316291439725255965666878723385925424456328733217673349119448838461715336198219965289189123895632692124624534329837746638917469538728281423754736499162742487338191918849114476926721994931763553553436347665267738627919174329664886518264689352223812798131986364715622988813924293463365254779249591697578769977313538143499224273123868735523353495398527448754966142914556669819338179794568954567657981557527459245115561356691345933987738453356767293227776791283489142886991676285596163622621867852928528575983432937399451337111293945872379512795424357489981998292778795745894336559388375265983141828371751174529546353768366568548366431426777611245422237673536452874816382943856486598366697121397677195289474813462286745446466134833441377658894913576911646258541774711466145435772262136741484551829855459892357464575149187322393287712589614431777371277718938245815863823355222949947517498313674259539745366449333983623443799924866839355889712919361494574475751333257735595586412442797233587629834686135673113247325826175826718166658296416621331712428991562266832642261632744614845624751876558522627688743113485957332298844684635393167267416882523533416754117536832558278866896159388853254896478522339125684398136892215495922773896787145564266846856484776843231789394839245728294822298873994153971354267538457638748625813217495529835578313975849511181312142593375832652858432281289319494543779251326499123249367287126461637552562981983115121748541276239763818996984294686769513519122887167867445755224678639871772759565239873348758916867635691676511824882114888768245997456414954135523624911766681979613353657859399651931915564541411635879564483346339329875128258211697444672895527458435826731542589223579658199844675157619763819731978833743616963467128193264135232925278428924159861659955268771852467199791195989135929535391376393913872981378379762614133251771969356334451286143293594717674579483125349356961289438788554991748139664599284293134892646935198891756195913313525895948531139719774473862193333712295948131991867294379587619879988482184174158758984932682667555383491796191956754245393368994421761649338424988282792826716148213176918741127945193285865458269566965839739413893221515851765519115687458488658851899484349799798255889626472346236164577456225939417377924137649355583317828411242869559852515538876197777597521796649524665916784483961699351329773714261551228556842711624645522883287242154818472542593856318586695498513872729862912296827664223653392679651526617735316863374639758915879821472143574259476738594383869739677879127441268739589927292955922689681233249112969841568654144393152173496387473456382256461879274389538146783926645869395372188427468263741833596961881318316257983798162145393889877888529144732891696781218587363142793696957146115583694442158362331589165868567915364596792516648686583968614494819168737877539387945221981329691516368855597536228721718839787647264957417148668421391164842695312695445948893635654759133281722862314797576838383757649868938115234593251733661725479454146946358797122985239392638564777451886654455543965974147873159885873347773236522919393171386264642865643754396486416693632257511687139395724362883443715728467336939868321755833957228689426248732516338392774179881548488992764824557376432848617651388277354635978694237491251715833741465726123872374113128198471745671132633829947347548237174146494495658931823636389992599982532879345126917351867857915794947125147448149763849524295674177768252894788563837777187545851526332491769614887453251895379321843173158918376921335324842763757955159938655346369789153229484178473355121544269137942344381687435751152296522514216441668726568823837936587638148772738599234925197891358111714571743592495796315974998798868115188337567945464851359128884695193835672255691985999899678946556738385488848835314393251954688161887225198779211538744738176771758368757534444486359622329986961787653395638165681642763662257225779899362167625578635999194626184174998115756313165644544994512818297997461881196549993283533623422229746834932575464771924174225326299782175332767125116313724356875743859262346148558189342666232696879786821515358156969125538777343222893833358152647548181858572883862144469154328162859945771858134247582387618414598482957922735238866195856687846684669452633146822521995544126774139965916319781831839463674349642528828538417491563418675987841982774526456184131271937514298297363515158757159166167718218816632882396161865761377136836627271358576182157623659342835577394228974663866428672696778336844265852317484924881149617421814219785815553844332435385127997428397676121315628751278779468199838485186226677343368925852651633451859461927741865667242316358673667594584257234689313433966714169818146459252511449671766437732612396849755986829766742374846196235718773161742598172118483991513172838944997147843153981189238434697489788582176471668776579411869498376225422959925781337267233163991512944139921398321935748154433384566769652579282283757441783911346912966923841957313847924214236737914594686681411585275485898569259488747494424462888336796542456384157796137464542363833476419837343911513248582528891127658531363443473696435685573685249983997131368626269637964322744632711423559311836778475796868231392443788618689356184543938831869913361929877792488633834617694583618611587357485248329771439778948898856571298612443411543311114783667124143893936376221542542821166877371541844451171124268348355831558693776929117128535358264647691569626117117718651965872136795739781381889559313499866968447919877785873727657875761357191871657435892164827515161195893771735377756862243882388387756123195512186662775943271999664366554195213769825329625624589995541949348624496826678238576465918892726677915486953755593938518387458916685223717172421623463182726516175576747534675637863271242892498844428162417861556653666644863555886681722417451125362834211455843411462513256257774846256381765195132282487912688852367985161559952269318888146821147735241386181387216994717378483956469487885824525124494222948332878716484975227727956367462185362131668955476137732457173281696618764558195697278313911217376737583948737287793634913934659333971164837535114376566859294227314319782333734261726491311722342672541672945351332861981952175341484441534159171256244238336748777211263566463478982394116671458268274339955292889997318866891617414835721239317197827792381449961352813925955555236895924156953976267449833477891379872266761957552396288525295221118213678763327446964795314735725436793558789423118486817278559183653817675515716553233831684682846916663114585148459723671938122713378588837239963935283285996256374121993526492794193311899314941333321562111169478699778698982915136282372478325275142891779779283711838176896314818986154832848118182988467198478166751142215925822991737436162878552456676977459548621243759836681725371867592355196219474356825886392477126142549141978313983369889926617321364368466175364599567468929649676912736234759918854588471334182671743356621511395653479493719767841165627667686139377217487452135132572248895588525236873497699112249362152589432844411551218118322148353481333415736771689599322525258577418648221778646586596657163899649593393351113561121665471561414352572796797953953929346482413637874944513297482762695333454526293577826145772748997429645886594742322815372545234864818396845298231412838963475661132851424833754775766552678244157232263546711277642286454257561273489633393219873981615931675682829773992213188375336728765332524481679689887714237718574816948475422389267827341911757137731567998226132824547527581293865919618429932913456917645664859331281923815996331721475932325338356457537136658729766258379893538252815516161832717332248927268983163423129292452283286987694482787938248157273389698295854282341942756559367495445243537845169962236781697445979374536329715611733491461184671587749469331782764182137136392341924849863839996394596188528641642826791974962482839328278843985177556544839177258971787671868365929573755752456243321968944769262117472745979484695692585852867976694767364282542911158633719496155412136345499699615356637566159581683317745694563888541285781638786916671239475763596414971144813393759762698164323863251353624742917883143849269445659773934397487164367652467312776533825134773478895659775395461922184596962298977432389718244234343682286396183825943723627831354512629348746127592772924796631972144957731331161136337787341327531726477499495497129887511543385255792431369898511478219262479994463516642522461497217123259138474714276328443372982673878771417878284815648865153219487154285871688868412287682892839444743128276962792711467546519452735837743338497576512255896631793285748961799446986191679123182289663469538463969569525527626745699935867614899835686127889352612694171849228281559261848663823883299363284983147952926782154242559466674961265958251617793126261216754151176551264225985297613723387682688234148569948456127378496163212123437273166812592118858454775876118725932592659741635461836312813683174124278243395731713333594651857358675489698961131353513767742467334761521426429544773159722858679845886927548382759153824199855638126797442371345249421829684255966636268376319723663635594819494847464381711672737181638918738221756274154211373981943733695396472988383693631828812984252672318397235485546527498585818975196935637155518959679427897784393884446941589374341172761538866934466951997835248355411563339931266852842613937851382337649532547222314555747322448579234175239941961414878519534481394691213187184923491349183521548897817216724115344267275327361141812522273473996322838359185187168128326463643354435261168566261163883437781996449844851696122218487638396486928893277236747857586247976615196975282895568133881493189739248735343422867571758688986759763546959381367114168936714389355598983911946646853644215633457996684864956521994258678931265855423799175735624138886667774359789858766228688981878424182417276251925547295183169892311341166671662215723222527397517441436983948258529831862591241764717385579383134117184234347323582211667595817397914326649251418629685324714434114446999915955715563185345677178412999781275635171378893369866596696564681134531557346453349988547192558452694649362996331138863572615559618972817997629621497644695259129817186775446397335999359763674654252819342762585973998764939374678659573658886283562238529447815668416679448957213425267291771136966422465251869191416115272183679211456861846836765376874882258168193578651223699226714982285871679826572683943954424821829497454435972149333426858149221959694926414518439551246939842846785176617156789743856458333515974471932646314277542186828158555982885947578874518696287183736215392885542327658418936723886417946114557678422253845496775325817417852518249454637177643255534374958198712736198695368563926443627525395468967835352118288722984636256692487169584684492264361624238676814511468726955162377438749517277617643414998413541284957897524275828268657387639647922611342768149855518336988942633793727983687562922835433215368536897486644389489563994125641493963711363682529465744154517546732112937285336272646941381934517617781418832448692285313316746496274194976129869986496626289739345644142643528496135787315177999454856919151981484953663179768793977667662759797983237445299968365921786842819517721443862858674176234827897756528462737812668965587758447121752587659339596392739515348948924162737741698226389339753547329635896569428329957779744187718672141686526348223989863251821777862829471914834113987393284351937998846936297697896624843266258858731213732572162623196212837612475486657885891152241861143713838377731599989984198284387447731557138268267955454152579224775821412238943637252566613614889452482594397569265319879239517543569619938674489819786618549373539589472339678557526175939756997746673895741495236734336182771544911289564613225787219718975918399318355524735293812783478878788728544984367666956135372258827788443622146613387988324529312968792964957627846525355797636712582676971722495947372841593153311367863835165558285368417513623659325518114458366782523353525778611161869214129687737943294652511516592511713651433127345699749881539569649815836138752211183152183149993872254856711732728923131425224481515899459532594395597638949377328797633564623853312954858775596356918255616881129225498265614328828734274763654565894719278591472344642896152497887257174933969282535724338468147663468661866774826287619545338995131987172538721348987841364254565664251394174197796479595811256792115135431749418945884374377857958451873856886579957384612385969714682956543181975693953171656625973168521828815364657864728379756962722784473998354929391127983677647816253442266568487498286334998778384527734378926654453974474139867219972289979534879166593795671481376374261114491396745914571418435852367368597626299689936956788273398114763424933981872467945652979861246477779958924161753227414379373919685571353667732952681928845136983548554729383477435525388799388541386747565892443893322281219852971443299569793872213422422316583537745691659947167397529549198331994464529393999627469323212945934479611531738681326247557641933359228262243991122635269823825149152777881189272334749631811324319376164161168191454316297327747665261476563372316726346977641396892847483529658221845432185923593776415757611422594936934436775942662137687728768252744286743136372384932614479283456764227439156283576636873881925679992644539146393855442628619966955128561365993277711771421427993493248274552869539596647677357596819626172348181139692358983632322373878992791793552676474747758885162851929988232499835397973651156231233229943163955374161315329842954165158453547174368399731614798194517332585272618436398348626426676498646162112853473296947587145583336832133216553762356893697144376857951269725871194573732335552246831736717294183529682715369463955127797315713855713983419445549941699338889173444632963786239123182814682587821182367436948751958149497545216224448172665439434237966619921632855753818341362785371931832774969435524247263442967859922199576417758172898231226991982289137567332149327149151649637835737483116319231824838783654327899537847457369342713572746178746788461195711644714162235731514972818816477449711125237519548845125794322955925826348979833627217677199183475966589476358528239985575472728214752698224964786664221557738548813953664969446993395451923775655839995282124713132566557633287569458976977357541686232883191656681377875698342399812889289253711737424773515635514692629534795767419876927589941399469492861347987854556194187926741781876998685361724234522222796764741238987413464886137348497873336248137777123482994716536223444967861447247566564835477189222527383336138865322783231828749881418631234999421489792674437315254916118397348386245412735355769161761591314132655175248673148145911169189382447844467213426229721617594433566158584194446167927177626158214728667966499894695392954568378659495991539428777296472726543496326626667598355173691663326545177739284933768264524589819354869521439821987892243581462495779632764645734312526764718837394355422864336646887452732625254568118285526281769394567727131377178896446954119948383844646664461259674367768661478762125681926931997333989844881657858216297899878591798663151114779598228897885635614559764764232172972662438781141486351626137335322476599367461317733793295918338465114941567586268337656246878614115519455194611543217611387158548988822321782625835595524327962769441563621671254693234455241316348394555522526874197442755785399238563913255642149763837314834745572672976449543518782512894256694861957582444684462593672886545822895554686945381438785773337718987432779474891743692168389969756489557483762835174289918894769496242889155327725943933712167816519697592913774267459628725414955824552653829345979741512142427897253317689593979842992185237997611941698647745727717915437927578562532374947398178769392983549385446464866586483269178256418336879515789438166371277883423156742672159983888315422199431646298456451458627457787997838972591325861894656379858636227195144265742619174681676328839528932448792863759118254675457398199323293377642552356613158677486418627843597641765316619376194533395977226971946476927953643896225513334811814441933636979257778229431622681124216469966871647458382352411322733469254731884528337452682623786111835397375636458993151291478869941561287739364153346355482177961126924686511916149664183298985185677946477567961836345453341848385967615251947938452896231293922428277582575257992171782682983124731578624239838935183241338531912848711132194896495518631473362456116927227697326666418446651785395886597356977434963897352329757336885599296838223592126358222944522971878451163392513127748832364351337262367597636738591383419744756472597245787461119237567439715333372984453298118929766599468882118296541749559351226855681478678387941914859774795279737875531359143133417384744159133799242266169253493231583988881159953268775689929231288467345348144449216574565477485321844368271514524172426843681212185511237277528925156641898898917448469277837629123676755534325959684591272823734981555998429724672929937128471779724323954725972264256768685552423644828299797893117772521965117459742561429298418175226212711336211355387216936733244663823945555589928647139692715161442635171528519253965814984499423575973934774699875256534772614951446739995463331754387654725128963635535169383356674429781282977339771277194228885216184213298922889995514835693914512912131932111989439812361461722912915116216194136916123167138228218798228736238727329524226936755515436198619571382133445946412962584184843789818912245627366362419817182468348237252512338964195975673619543245969919232916495882348599442656141941853952572941263912855991594587562745892986882273456845785133678843221418996214338811478872148812133264963673995785823618712683694911396553842219782951721869238428447991265386253347328414317148883471577995519744565294634337995243299898339213548868229533332746954842755564818794494457679843338692856213693451791146792765987746722343591735894896464631117762443466614675154433968321321186311556916363777299485226157165776711311736113713641153767472958519439511111462625731917743837668611459459585647119298773145711562415441388742453462348442813958987521449223446583695448528813691352385116341987256689432212461475594994536525238896729749775822269469612353665433195868736296223257117243497839138515377896417622332135274856857798135724354115147331757931526386989469784185577311366868829436935761638145483212328794574527198665527329658869181859217647256112444164138814712686595249764363587883285965435583132646422756995574882288621968261324855828517164443659411417223343628919859556888944984925536659929729694549227921318799142617517568436879681472492261165335964711542128986912241257263585971441384485373762976181697955342376393741257433518126175769193329748922936768929729326783581722686487479945725686517285344494552199726719182641282888421651195313275736745897825994725889888317634297861249829418681168947777439848524527419339297183786452195989739272811733731339517143343731593518689651913146985788922284244373231986176469867436137334557864276374769396272815427939484969477883258278885964495197125421357935251166835231678177789211244737352257821343389287855655669131855879561584713721495859414327382778624662142323452846777288817974746292315436762844411228999787969569689222787769119121819777372328176977155721731622612578214425131728423884946998958195815245647698539726191681385284664977529289823884584432469867222519151168941228555898934819532762666672566476212789483763714779926572727253864932869145314581472929281796962354531424834282328421437486983127368291663881113854876515283484918836883161261444731472799927328991678884819844215242219112723623571368747611921445655555736177235259923674665697152597869456278584575732987547251399986821437375622984182725439567455935977595146234442513955881625997585343646258582632836324465865694127379884732895177698124518168369986954326595991669452792588323311795137667156112146215354185396374876432236747741351776164694131597149243716479493461967326617656259253433969798134229741291955569475697984862675976859868953498325784473657814392875851635865776144581745425843929494556933399814262325756238421459884477696577792914377781632656534861628365844123341118169225767154915721315615838949644555112715195676696956548321274537937117516953512195638369466618491991749344584692245979816565495484368382639988292689569115534973497215367355164312157968491798936636162786273693698494244313984547142329837186446285587797985439933254147735268876224984681124116311613385691578988377535646935456417625184239827744496859442966516268666978851514843426368455195611466952836876259482926859468828855451633219735763754339364245938563425536598863128452276571173818159692141916227952168625722982795555767648268953158829481579648283657322137922226998935982845653896537739321532122815393476739999552315146189282362781817379379224444858466474599666647465481313646131776393641586159786214245588289265675837876571449959473832539544991484261717852746774945987841241277583553237311966351749423435451188433556386262886859681833366355288533169676754238296278383918426259554412976398196694422722453167892233328847656215546518652947526738859633387817451911674858518172857721148838553544691975725611796477471153997331699586957418577113741854143756725663357997734435698682175351822367582181843275535392599923994121868965949146699237376257546857723518191915564476912626361836518868567647174511191262877951411285931675472723722737814599431557949917435596657729499839773717511419133472937618637619487648488327321656749498351992848513331161682756319259963163246995218214272435956771657863166654274975291424818475431125321885293679198229599346879771293271781957757558498331898764774989168943628353183825894669137336331215475191319589968335226958571671117627736584561393724417355222222973545283539468539869674195226313555963215941794789547946456976111617827321489647591284728395916966747367395369817826386116596182545261899315396987515195644242495821999939449947787287642965295676565447482475242849514699298645291644372427821994854313122976485348766796487477762172383569197531487957584321986193221467366898946521269581688177388333849538331873988836873681419232526367189166364137515863993714955471278185619993742238318588863399316113473462535737557295971299139731976292354726461189587497499461358867982353789887734473993838853638316431698487149585775947822973794326386224837775341744516693861383811422693379694766116655841968238261429655514879471935418595226133965929479755673575915845256858253544461334891958457929435929624976313326595688333124947437388674294526165533366557941574292959478728224666992546329376575779696367188554142295717634281657596132738563876185444295413557196797869716983579824323863117726385161931528775666987264363135653958142174839285773498634926471775578664947956323552324714352318764529994678218464585856371491165517495753654589847313738767764313852325679918871612774648314534798731386276953913979333143494863645553168644944231152356495861133567774627911222227343872358269515382543234245456188366382117957565618821334769357173612711315942412292114479395992252322352846976185396643662952176397432515191598928572636822937557278328727876767594566147239973581413284951525255591295927714163293419784636151619629999671965184313372734247288248937984981498628844917321149743646325612631382175564186198962115637996259177174529838536322523976564268965673124115857568619816452677563931133423897644495374819975729113914245424277516834314212563553653976427724564147367777822177343539169742177572197774356542374617523485592339348915339874819351982139678892715514927895184119187291157825886335727396793993891611595286664287747466935235414564514921576994557383784396637973423714762441686394572991553359482742127241299628165254119333361445646359259121826332622444771713365871685685566288341574842811936593562929565163986933497466569128364344289696875567786323969771586821248296674119787319615572629182114812479879647378137573625533633812958924877495296854215668819991295976443282592276577922712699628115648855994211756348519568529329773556955365349863714659492413289524118534957933213567415536754686986738133816136282722365839277775337149411813529692717299117774296899739721851818879688579347556236917968852943829877625638283884383989774957147914665928736995323621577873475265511912863453774135273758985499841839926251436738245319198537511484375888721483397737725577117155471859731867287758429857557262618773556532339994736711356172132888243785817896279739754452553542455624193773498362235661695957192453763139367183296651721116895949315497433939349814865864444846757396829122145924399885238512287896478381484775215174695445653333861698626894413821169513166488575544385875195485482242447166823365672168468895434456689286777993351545372151583826475494969548772716233246385466192521816768525796398421138574972224284659592969489221223961366577886242182177116827849236161697475998196293893383966968474433161558357857946265569146973215412356271855558164421424991221651785293277623438879711299112176144553769421653439298216227324927372557488433666475295826647939646781427259415153562843586278132689521335276671816998247745546695656679187643534122925698232792256813711465626926118577371449564144314349711391892738345388224538857372131259248311134562374636319126238244258978861216333795235226647551865552338358882149562964526262238673896611488592447522764478482359538188127966199631797134963186839646447133621573543254541748421274827621871927262476739783634651132883768849555692264133385648751928194877812362576889117562445427136522293428465942853599622154866497595736562156349489341546721451111573128323946874796741323358447395596428612298658232353487112849288719569688434246362698219382111881737785527831456495225134333211373859392164198738259752975386294487426522822685498463569987597746477937119266515441686584333997534236836743393736785442754953695197778233552724392634899284352741417221565637956128597415739813943655691253847458297837399279463728277183356981819672391228154415223831165753633579799829524865466547543997269427486456398673918662396585292142679294834572772527646284793796954874346682659812565173442622315682915453627687633131354414545183382737988736489681616956499898126177875547285943993487926895696213979333139534722951642131591119497329522564834928973176234244173794654791163554451567271483899168322781896932455311127155335331961249227819945576477272695218214237148729613249686393462861572873676447316511468986131217363441697231841581527315927937653886845567551598649379751553218486161515358397151178843887297935421471995815529616381578297879322458447826366317745882611386117243176657373983567935194911621345441195622899245727217497548672115114575654556928739378823778978479725378524215967793575752638465346752694914491168414878931666189654893184423337167444225381778734113392642775479112434851938781989218253438765766818273265943922931756898774239829626843435637819865554239543524385969192553133119544866721962488884783848149349284569132127165843212484288112921466368359965538758795193893194139755571465898652331831129428831794331266746412543616627569342319643657312842894145697332146267129284894177155459818531735241842758148444148683563315477771764839633466761627863284619387252634496731296247933332582519234386734286394828692714962193815243715132652132871952347446627131382784848931217193217859411112149217581383383182392966815896119929767785912211238325814384874775641318799999812634213532819286648668537326296259659812972799452127859581289614669549647716549742436373372242697641494174637681623349576689849593532939392961922246282641615553795988818893885998416669728163442939719587766266895451332128362443413351926522111546567769584538768973164725725768314979727269935722928388759325145432393927819282384111865797289722941122792719936225312771488469552654723884776387827984123757692856117495652281862561963137786861472999565663758894889182759336362462316862126996383281355278684839858424535115633841855461139312386927379779332525481927919749856457174951863914552533223997872516214587663863198251452751347587197446192377667482426582615342959584982128775423454192151575651598896198866397542832946182547596365974741469113295379877121668285782156281182399826794395461288656751269367486367927356782798553126243167695331932657224273938231854149718339233486197424626439423727587491422559149672142675515876425255286439423281383451891476128533841462484613639874853881481233416432561921184969445723661773913556692673679965919462636694984238786844191197677593665324611923782455855853511369525846296287565699165559891726657141749368913463379723783763228921995822711147264124383548869552631121181274989391738983758613775676785712181918171868133873259616274644642632438414116494698558175439682744975816316844294949756378146329516186716288598872756373266777637245795312259847922447644221973597966486581575276428183493481748344762321367785315122352598552475641872897674985495521678423649914979168625913541882947677942821128914764164397385479136829991981772147344663381727529291199188254347971246563534285295393299815338925948484737955564974293174696487871618171676121518727134373711588448345492884833794496623893932675488817195378638967528716989156595385974511463169711561269963512949436786822127986942948844185278121599261362851444537391698116816865771796871914267886846646227883358427994195412181774248858536762583373771321329386698374237792841167334355366294753681892561544539251575192511875223192247391544468415895955832443643766485538764593962567949973236513141583358516793948522419632261465413627466945238189229172298333773934651154666464376273392934381673937942397834152668887189418455657331541232436592379177917752216848873885927566693599291854165747624882363929679818837713227671332719845136182863735316526284316486368762368444797236778486716354869635751594963665242971539254639492967916391557969966918823375213399189518553148133624515732243572369219953357169429669222445682717627512737422253227139263611779421261233864978289982996257123954159173358645563351449154656949444341564238763997932935489874717131177498254543235237756633993615711459264697811223988541739998468493418777547668856599562351287936267133776432316855791826934536132834191633853447795787379621334416715668942165745213839791713943593968652857321741934882853255494691454639351434426714978283623971916367293235566935413221572768759386985297643245676887924299165972561989743955313899582791686172328216178353883152999268226632843763269194362566756662474935119464681689896141716372398691111847395453332736886412642489499473212745967131617248391339367314514577163864715528257381216736267524328494864496229847857428935685997736121541142135619341133691189763263326329312871695798147154911136457878898875944514298912493395939526495282674924244823152372765726345653719291513895289325581152675949219128177356675515953148195697528311116831387846331635444893633354353826954537159212645923276481725187573835538448583974379727888487134326658593441647955835613441143453918867991954547921471794616941232118797783946737875744114697619819577345539191868342641989659439385197649458534357429318263116934433287112865289911841655855457789997698784291981164928514948616695254912331328324725555847697255669151363384124476921394154667234138144363573929511549734291813214828335571773612645527926896927497229766732973247687379859451199711676237435537286813787632632691657261993346144735893665827876931746735968563934423678251836438582154548394587818275979953584422626979798246836533939914163594546133193825388941233133438767121634824914533226238431663438129273554734276486919741797949742658892275582921599473432125187152831946484675535462714825223827899993532878321767728188619879569457691777598564245944894772727652322277837673196499868235386941262279951517817355232943352955961178963124883517929912347432926924828128497736428328442174265857128839768332963784526534838413915787743575552729251712185724114482255482946927723782879351651198192531625395877145213247292399999242313621218811322535244362361175295357456146167311734141356464762287822535139851732236252776942261751993315379351563977944538645719788928444369495792484747619161839721454879629988127489149145127988923389249247947586588482783489261389313326819567115833111349255283914225895751452745945168874381681912472846972145449834621959917987114287774777311193555639529297818326984361971981334786637547337158746962158156178346998753375178842547543447943776466231458865638671435668252527253665798573936794836283996148753918488325527276568186375878743943871692243851595394821417271464631688713186135655846876583527871839798996597953435913551892478552321919559244486987132121258983914114959863291899683783797695786285679466776864712879159797366774239265633298568555559428145513834731393593247982446487281631823285213362475264317734552515576794295439666173493175528769296774184525472978217414754629439986493734261367177797172434366265893156572596292872567619145569939334771821439596652312196551543365632712644584147268476811854178542691763122415122757437523828672822787187338749714347187258125396475984715568438762459275977496123529889435157833967865352989491742729652157738925799125213153116377232335998789248151579864975692224346725583497383238214512951172495976534763582694515854148246375663295571728887136412714617234789919345316184696246316667389647536351861379727349861426154997749374341476247961837877472762435351664692294988162748565632763287353612722129935198835487453761385645716827719328191438264439557991462943712622322364169312256846872864134275496531837756869443928914417735254796888453939963154954474955469749427152343339444837265558195968888694628931873256862316115591378137599382268483958179678127154956694522638476661567315226729124673924266893467494135536917918365655862541676425628161561352977321817951918449911796753766754485556151132864664634398563137465911514527683958411639474677423914963314962257177149967435165446632853347562168772668391616139793877291837833798855775634347226493213275967246921487859273894433753861356958549678353268548761134319334728662639344668491277169589412783559792635981729736543472322489734513666144215288731178299337291541715429639238911896615537256191169591463366156136686238843451357395349566169662121633516749765484926852467413524576716378245673864548685225465713273789693151446788636957582953178455395611633111964558396472688322852312355664659914732469427358423553687134588478841176827631563717965667915751524522192664719979765232722276336768768833293189156667738846457123799472681898793458911884429921398235294272152376276265586477416228637844148266774478726454173794457131443369925353134668975234567271114448331746958394189593949655766989812875478297596554638593167756536714141959798333696445741495157627922927885698967492965984489149731923581159845684679268596499371452691695578925482387146684412556615665121713241359963521861914575931332492715731636877862763298691632762832394256734499574774443594669732859274846275222589833161336299364381674191593641532727759468295513659967117361222373148974782143397384984519521746951637916219347165353693445418993166855465298893427675829259158254628155664353675332813837722447898694158474641163254425277221889648952878142237443673281811889654437615518621344591729799877641963723263913947387357226983756652823239421614332867678277432985177479311271583678334942673762267995726722761937749243211567583363744395472464137941259396954279452772228354656349455464958266192359479194458981826342636542152266913912346934126649793446541557247337441944455818877111654619422134677762196586363163918477397491766533632379794989381926645474458992264371141548467358822349775563688996998843767393164397154511757646135918274993298426222471445118512192718117327158651787821421272371542341961775531518281312428455498523529676228278975996128763292842193959572387174664265932249334444739665783581846262654766679122483249717146131645719975643444672985866661363226776573936279536625291666672893351897189696458129629585143311545525123173626427478326828949183534946243494145771512184977866928412925253557924164272558334736575667171426918394621666488851497852558689279899251226744437457142376143949928833844497649375977195618992884765949279932758356956516396574749323249921296121614265783339693524737638648349391626183315254416878531385117136987575794319649225957985486188676323692923976787273961498996854375525625892479987273222911675892353714384411319936336436484863887257565816846728352984621916294899646925618269895973334324832312266757316123991598621141324544761235845546646775546539551815279182665199763229762224159249566564529139984296963283678683537173424335224524218436683441684281533864375625826768316559696925956232667919592166886431389871275887832633563577156788717785892388162233469525339818687356735954759751197848461341117732314889153937936629544577577341462759555857559921765112857671617782636112746737692212287833993651693313476948697817915597876232392532768361128888588937715337456498573398219177825797478891534164819238847745525885522291243649829832615478729298749858962126917888148565347355938913689792282979764529153668161941219178295272248479373538344228337143743369373121947289913334947651924149176277261878858171575139121434439947653649325222258762664695928913668832762273497253417656258939286867932149377992122877582374292676468662488186297475113241559516151997145843451287687881835786281379162554789897554243225773391327124268636595241654865331559562173497159799312356642964998944152381984953863197641736125828323449348733919298952124516986727142974745935844749739171669339934921383885378742614511576489372674693889217189239479536164981247497675695393295142984689887981731487835364563977165423419988159177651276422718314755974873777575349356887957777251547934281848362286774468136741694395714787412531186432335799868288668826666798797449663142927826581373727387257789745857948629276383463191716374247722425275193611846145295622145796737255753893885479887359544113776489754133219757636369213512778297272575796769423948858999265175783949318864795979664553368766244337356932492889744188314181594835659142279467231549359767616998443456564498112254989844695184937252797136936142438311669278461186254856438132163883858866782688212577129712818186461256715873583739439391571288825949511977225496338357384412182675534412934463195829648978176323865196398534733214157844651172448857477228681891216981234231474258985515364444464942854377214638426767392636962345431857577829661336855916691625157132778459315436911311761822336928195839741173762773857839951553452833797814978155439113997952186268447917315118541541729414622137951752472872635668641572732844539684731917169626478526587661923771143122728579126857496153133319392594665413314989727322525845665814279618948226188719951424881359667536328141748428314335622737694236857761733573493625286348117428914679651818246418916439348961851227972162874494194546459345321431127223398628937379925848361393394925144996789426316781616624844245658147716546976644694256621933397199751315892455714229669553772581456466845981451862618663849987122658232629564641691456529527218363165336271634693637288229739564761283699752119453979782765511976174243197217233329397363713799397699799419122243152788167337265824793734634748153321936658263745123374736211816238211674481753145373745455535947757615943927322648812246779172746597881171792865745869537343516255744642721996479855797339671275647811972961597582942673539546981679766853911557742788132184572538594178257313975153855944291443292587413233321725989584794738956195835946366337726664933396189678952455971693364838221448946813697733239288314686517441235794163825137944765923563396328797182473766458715217452671212171678714171614485894549617626723779549946997445823367226787467624567461951584965382893471196867193839823871167685774911119676385557439617723372757146147193511165897757328646619313916516866862331195736589949959149791276851984973445882785669574453479954142337652139217564511845172966268399144247157814154137525611136854857251965636931333985445446829395919995557951173271514846528546836825369963951266316599242975557138555441624641251899713899345947881324385748653723694773696999677618925488343615863241389888746415397735569711285598536415378828337911556427345784436166583354187777823445168635977573211436744411192325731574861617718852315545554686157284579521292965186441985352755564719751769846454877765288354798968843918883416784369867692851756649829697838496721717456641616168149998671328881859695148189694498386244165944929977472288148577285898295698999776414422335262881469279638416384914356477884162287194165785413794138765453868866466751228759929331197532716582237792624588471394493146216765967637798146983912351554154638124776445248645826159183497659541817442856618191695484622386338429163246687595545973234352874615511724383922575862174599666936476547865156294678775924871563199644428824532878636137423469769733965746998165928421163318364226412876474189561313498637453765396473811217164283323185729175414941321231945254474582153841489674695628691115342799884167996863223673433434956225193398188573884151473625898511999238926773941345372523992842831753544121495428845996286269343316459851989322215684292726631851595579568499519968376446199974124451496335264161796439139935427662719323739244214736747521152727977898172984314677149892795866543233839918438785498377446913557778961851674442971796429919255813597572648973269238861761675245395941194882197999874831896319738122231518617317284666546155127829921972732553261526179575175757638734896141356388894841237711364936495198123631321693696376493695224613414676697656816432161328631989321567135879451893987919763641672717419996822899197886763836983953784662343323122811575667256441517964177419611771727274887421372157454175934992153869157878814929644142444843938215218886676166921225368641834654965843499994676798224978951325711174324123561239932328914134594591922232488592384415216519858297389412659488526846366816791411139968923851692266792482949189981867658932982118666614887785682767432214413412158727116774242417958269589739834796596973486517212117966837719278727214452993612713498969649546316137462559829189228995957891432123767923893881792581985565697798974765944222281338316862329889776151644855974895725391312289267661714288674954334853873192917762733931798283415789966366465921183376345942283652557264619291298525148443661925969775946844863514997741196977572439823396773822221995984471126359221458115297498587875213213826638563454773513351837347557738381236562938178392375998643315133255791784581319547835688918422526186163411432374866425395136287775371511554671165616125527234892328368393669666135736277981468589315244491455867339947635671518549852392226692424317961427468292186295416975117547333365811621727346766354865417129446835786668481957682967397919943415983547376361129295934634417747235479216732733543925376617371983529539192264428719236887414312563596484611952712625283824254319558987436531692753162353667987822529263895853928324357592289871923738918393684396629369477364445727518436584914465482239954398869519342989279515932154948267932973796975791742134338612337931227486973452425528841682724417428167665888931472255213274625256952617985877814938438655996321915965663941722993735589188629599996551754715814176534322173933922566531812372678229641758159241386838917934191812766841535457474967757451758739915678632965793288743477442324213671423518988386151397132153554729741982788595911921632737972433317396463112692794655827414546767475829228388557721292933386852589861882719554124133324542126264251238398243544856178521633259564577386299432726323155227423277524253762594766396582112734951712926382421886415963163335629579671298421498938425721943414451327336967997799631193187326742763486971761439491489697328982157285763748781619757517237136139847314477344395268818432224635618238575289528825715647659123563386123632572364623176731642877295717869197222584781464427594314774458347959217574611941591821277412235921731467737712869942858688711182165292863543617692676434394412527926993135496255393746264585635426915327846369879153558996458799388711475119986889135824359137955835873263159637639911446258844325891117222174736627741254947368747748459467739381954869353978743516241275847665659945951157921262784792374929474367743856648555723282218599446762435611353118578777787536469934177637641842598455123865492395691353916971238973374651289218668593873461372269586849857877634482567784721935763257132798551888844613963956423736449528463431224664759154685857581342167319331775951945413886524556742372293271674658188276727172646762972388244699497213774571634219496514326676514234492847811221159599832588938441881864654665758618689747639463549436781155521371139913655591634676245138689516618599654193156412925428176126675415371678874315596937843445981522858895671992452844527852241383466155512692746829271956179196223737277437599182198193699598211483181733473379479278446385185123421393539657684611344961579961213322564438996345368553699585596816963395983517133877235174633193788997495755347525237734185284552341979543957699912565863471734758854787172632522678164282254638492671467638779836741149263415244492447198766749312316211351763113246834618262982212612646613922235797156962161361332485945246358736322997193228241379663176691463983173783994717834699816465491688985253442722494754643277627675453868193364493858121328188734269555364589827193894825623485892646261418388188376668229347826979485426244143769424235958631217155586119513678529922326177988682141651481648588471593118817566769724861835674519569759638385852733918181457787733518551278753726116814857526388538373399155425826396781333851793628846842274755385842874268147388262835952216744117394699592239935118693723276586115464394515498898747817224762372717247586135925677358978344462632245994495976443157754566912164177657195683226422185442822127434199888357457188296628711993545954723547282881688259119198352735116459966144192826716515431593993527423936226496967417949988278529241442954684269719593382117849753795891248465445375684793567333592982995841373799248517754466625712812385211489393944717944595976256374785722651944314998438935449165423795859944254652585367719795236595971863188542681115785744257896383378586321568479836499715384812128965586522358341869839267647759435973424659474461344358992566597885126582518854776992871136565354756393444128486184161163618234598917341642489987373378538341778469173247375262889296148872848665673875593927294124617585667524871158697788418818169897252993289284934693532212127996612791928935328688822842943632283352442144666423284377369533749864998112567998216533359291464451749648684383193756961879916339393256115433642895491377257789619923613945288376716832547215176966227519938755325898932642159545265896898653184662355419615568974553132886993458673193964418186441643711319543399599785124923566528789799743962811878289661895445213283145432513589317162941475984281494836177226245741834979468776795287884595919573566862788554134543229569168815952626893548841384495449245915519561131474167184533957879461711667759787192619151336913948918974658527226385371412993186976773137888489927534464654753358825218875624624367793157523656527937615256527843692896638882433125874299842524673763326994146348825344327368636981223712124658329853165681552141252322413876518572788356292494498539661837587244412126745773112963829892539342673784347724924118391379332245483659174744136437365273194227755929827289583124741267357678243634615222261372735749464121745907467878184911183556483884867456982668465856754118637814289725313468314879454754616385794664194239148425259524975493951216695827721552976938315844939148688169741885982673413876378161929835798766263311531727334131133915463138654963916977691993995284519822686972263869527516615123473444693288395589331171731242468692151268188436368355427439566325311435223955589325756479325946477318739925463494867595436919456176948849376515892531173654697214788561488848427479476622961672949785824697438965892463559696791668149598232127597642996955624679383232154255815468667243694952879182386691161516362976224618684693711469365315921917528979637176255271116546127127779556418196529927137679272863649584113993643635237884881977329276477676921263775463742829431347984652333349516942314496338452948492525648478972193431863687882522754296844732831174159317185235319628313675658644958878576889311262972238683357641417354831861766964165834147711641375658623799484671953357937981916461233492338776672997598286377824936275397155722892551468175666959565174888249438573598386852456281788955779612568717546111244763721525183944199859692193216582754795393697996771629839131677853122542799477854916777771648422623756834762445734312979933773834199782246281653973279162338621131887992618553859156853985746848816414565319685579165352735418288628164584442878784229392832539491317656989167944256174246498337357911488495978383899213743665389988837755242969249159434679998876667343856942955851883149939717273996271753958433492714686557273463988854238162391361629364961397585369672468587513574498785814651176944179837667824253131592855953445753624271861376577527592176319784946253248365893553192399729687971586799425995148448566438396182121589532919414347192735464961263329261251292425224286732937944265169285293345746263625716591815222129538752135531892462122982592693635399493955934161362459498567719248188473755162186211151885456379287813178584683293287165699326244813211968325634832447816728341712123918838381654887467148871932922223895723787165611314289363464665854335494288659688997813958414878289637846789657535126421149427335287969538492145545176179121633249835768697792155552168968922225997574424284288633738524415526126862194412629572745596946487998565764114275112276535227746435281656857363773891343853617139656691276812169447371554794417351819837496593326153997376596222282173712351473176366983543254363468728853889186713391554778984239981766954952522741795162859362259225719994145219278773757774878788348238522942848525889656833511424336178162246996475439992152193425923728833321967398188383483623214385157379365874781529847998318635141868684262439581463963783636149125973288322369395589857191693514992228949176984442316926976226515625419325893347458158645156617167698428818122766451214719379965725457337138194737757127944921482735557149857121885696389762798871325828794514583942568545514471581872751981448632778622961297346323587584527489547388474393126548796443885522465184812149432186854487765217443831111224156364749177652261794976976987493927481278742857827223719418137237855963626891672283463393986618483978141619566775911238436986734911814765719476866878621218781172152427787715381867728737695692696848516277696682343925764333493166897423173521645845322643871277756397594756719284615767145153718336976359829737987462256669839662349764645517296932147613585449564321784233852445549289437861717139997219584718262171993687758359148669696967773878768916672486398264923518276452327118675794232937337677494928249849616164376579392958696188892775724229657293113297866564343328799111965584774994679325538761438338325762249538885616159814846769591866179911798248752533915672411386883774743656311563743389421457935293575739361415678986727752444954219672697627184862443216251645954921179731338615748958672625911391297258282942415219965117598537556151979172213524598998658499143547644441641891231929884624527771525967812881813894873234576242384679459537528716284495742355583841775627469148745984458673911394261723458362125523857614894923349391435359352893277738117588812721764187113391597371189628418561637935735854884519516568498254216898351745124364314858678483713382215268679894214588346174354572582197854733144482396893237564712819585956159497526296317963433414452846449388949548279865287437663746361298981944752746255987653726443352949133517671285674337699232446531443684449457924255814626849483436685818754535849329771355283425173453328569144965832856274595111245557313317692985169786136525648284893224763951366333735276729536826226583777714425697123785538219619358525294426875576834486186956961712139562158615278516113697283144255291315154671321821279877181495794723338575516687695572279218577958371127466124873239346255813597413414151652129342255769249498238468873738939853867433347285188824789962745639725448672488877668826813976438398743618636523368959631727451279954294156517823627578551374391384593898459132283849783721159167417786621623631824783953957863613271733784946928386581775469619826889157441933761398365711661442131835668551726845552922967911123196551396376958483584671362453652186115632226154493658773818163362872424646241668734591889786992188219663176132994244221288777865585541847448537842153269826593951414577122954747742957849489683624961761856319974168832779537888183258233754641946719875738416124429242496769653324291663413814346248388744618839238184423613836441357132482275177876217557749483418221359565172749369914688526857577693557944117133923371122797343992236938339932213448441618232431644235158842952185939889692844898191695587663771363141999173552261311667414681696991998896149264375331172438598178977846359365682115221244192889676351874799248458769884282469326741728286111935712688996932953527698496916189659717597299374635283922621329274144794592319672189381532653469763232461692557655682625769915881283328378333987445696953953431447669576318596249687373577799733488334854783215173891146716688826547822281512917277281751398978612494422551641358866831859656597636877923976182878451346389849582267759945634611345378897861727823587481733293126553333918969641989617681888191744176375161935922773532419228183589916512694984251494534445253492491842981378783832164498823953172264463381158331436765647742959165481628623445387853416189263168596456217431867543883489396582331865485137123877145373392739953939477879581757561996225387273355282867895879526515125643359584992177756244284624136588714662951257822435733194497945825169265278851982455644974667937434459756641538772235622978671294537493956198876187549626472481743472677276163552394265693731714142298826511766774181649712871265384264715871348755618578755862289695165532556329889636482867875824229752816447315266795879466838258124294837557953632199944627432333752124768364516796698958691814167369636561822481941745693774979786648273254292385267517874171938582399614923142656396983388382139248999381685648268766983711812725525544592855772536134494374546196531889865331474986326742186695337315381723851248769233432991323143562533717829696528842931951264399452532214162722586578564668998832874984389461699156991256835697784283592436486289769773465825593991239273799227272159384766314513516422681411118323249615146586626157226246357277481332845572944559369874418125852875969496589933748626956758132319794633282263447399883458151281261514732838172791668913617635731781953236933112967856117779233299294316999289285969569235148257266596175984813388234146649454159698395793963299913215769693198968678946343552432653229988377163921723346481624788199887624329519462694232394562359347899219141176134557675831156969758567572579173527274665759346112857614749756897514869324337848823572856721399159435356679353945382567138168153985421977893196524659452157952249662557237546986442375489174278234279992634232865873311316724435753631784196371758988929589822386548616116523697586367215186214757527117759927664281981388818273924623378261726243232261941767158418736532414938341456449425128759511254394685518542186927428383244258577846375129317997548356551874611484822422233823565481945822372319789721934115361799682174291331388358342543168937896192412443452286998252448249828437658781126134623337562375256988553311412894256588244251665354197328358447753211813338394718127839564497952362251574383663474957892239825949155282429565891285874986867359354753794759239246724111586222145419688863864687348547695216319841799574759117722575234754384257226163437337918166588943361675386882124747438344782684891857265744945318141855224261549624239713996426229395616823876727131991289721333252612283379949543632649529653766926135342235179332385237181356837338753855363284323735533557241873647923458566987359793847541537681473616362859575434616361393151188348873958995347598223252547546369145331121543282993227452115632625258159992311491611336446997159654459258478416367489923513316261686411338968694342333562793327466915138925673996227364523753488978481162538828438254496669897785623537779551272986325781669437889131787731748837458835982824411314382954118881435217695767116237554638938796748259818375984696239583475135718622593429717165677636852465735685724855825421888641236352834382754138619151249993815441513832996319179974986875264687637829999621427414712388793161723494393344386826286315174379339668996321737318826446843368192158747377341162843477951377286371155872694689662819514532249867761248387645492582433885918773449553371824453612844123492369513457675666911361444745983119951275931387977993836291688988872998382421217786979588555344131219947188188756343292836458651661655263152836459658631266129985139555759732455419273388789777271115589551686127134353121987693614162925174676378692884773432682997188584941468217385762984143331938786268114825543927995499612694361976786167491682481829779838155142618313943111239211276147953456526246549739842663769264868293633256798662656711176983478287348663233988243614619397424231865711923212924265425433975497572932932343334758281623828347884976169383525898716668848752441737434252494773644298873748972944667972211577731959845998685878134812932978639634416996764241942323415492254216556145621933827148478817922332876481831834224837664434125347425953946929329691356788989514345731923624436385429988776626949491493653986515856734591952545374493658946487961533872866919346666932615253738881167243723756412994154478642429425139392676196285689937781821852464283349848456815896565447532756165387261916685175719254795851557975782682349747228223492977932517176234366339841642882967659719516929355876851723981987742692643235159546211181379366939199343556161114524523659585177976998154559649991443597445852549227933387231129154494137512665477268486198299114433735576642188714642251959869391574111654752531874987162957877823114268434575553851556741427198318614446892437512567231251959789549883471593354499911936121189934892137276582732732724226323215485587295833916967148541162472819357166448738235937772677894984819595139893614195863838698196566414817797857256733814764553188529999668344958621811366621829761669625458654414494421972952837783634279833263592932828994276844117513495611859942122922328893212863182452446429431622643523632817216351393825767828973223376557357871899182657337225336562216722398477385439161763275639839492521358986428324489696158931961111236124566497735684188981976886998581946475137686995783771357957715798334847695284552838764458127586318793352769195287143387988636357116441515415832626854542315938649283223664155397873236446839783691713168363883661782326999867226196482217584741618849439215816425953163721185254927868778258771275461631749163444129886599467374719653726622855257135585511147417463644395479894585933474386917653896125652529768362587825525279358969414546512347385967527924858644574927478592229625256848323176433725552399412253677251973179713973427547576582758563551757637814156899536284358294448313164745248737681288523322665495681164578441298116868289345773231337674516516325819628541818131253811241781212781731485565267281451465433343511574512156463181226351774917257393643747473671682296363653367986249512249496464573198464689477882821934863497745153989346273861932924399548212525892626243527411592922765575625115266788939761729991966413964464779457359315285164159689875211588513237257555161355313289698755596718513257664598918136185759397877718824678837617421917482312997758541897688359179979717837925781534514262985882789649332122581533873288376745912866688781938971257474299873263449117875767564579216525482718942843529986641987897449878148732915146935598586265888776568241421824417955683317786653188811943824354858416636314858156746839111336729541193623997782366857757779341284382553643412637211975542566575793947111341393913189543788336796978688722741931248282459282841347215176139132245143177195279292813418812723936429626425731641831169849811193644596127581545436532415376375538876478216261513245374791328761546184884499459663189458579345389986265514348294391236183816424312828358682391631653241439962492572396155283245111424357253372328347942359663262183418932349361195798933888994182433225449365365744525793592811942354777613129583745314563643546761938687988837192622967221454929923771558439149281276886922223114289234957969767784473964975376694526891575452121447532938465915365845982537537662225317143533958432921253715452673183885147332275467462632277334443611214946163698234386482195447518519993418766568786424524957797458337576442987755387637923672225948686228315971498151741988918582441852671268217913985163753611844718865871781472668164439698662142827315373419566371693451316519681311736977813338497643673224262192165752342465384947294524929128324788812157576979698858239141863231111226963551498284996899975298298318894138967875264843731238957677456758555241657921183196871547272647582895949631639848415459166339867945439382445317157673487999785478911738961382175833161741628144824897672611717289584558499112574864511672642269197442272171328783944991144261268892928126247996288588671987992772963874377176685443119298787954159336663351918343642551328924428342896232111945198243375176597331499912112295694427645151791322461351451669127458112515564495539654599545446171881932477726278223571425859456435427464234741552618749324159783135679983346481551324245549498519866854987616651672985339268917994588875636181136314647563353142388165528925137658921756971274393297748441743597297352958956375584358181164314922647831715233571985684789219491654235286798855843312679489418364775294753447929341497344365191457867131374865887827449766264299965577683878366938572547953362268695354541465968625767453678783543967212347733594868692759528772957677691464622897756931873549645393962197357436192774761115957477563662296939648616972981475192747984112795548498986983919427582371679839383123992688889721567694642624552753852819787668614363716778213378553643521267926452612288189216961215455572163717857175864784278379724269376535191896363649956874745151976529128997523776671367531935922673464354915383839755597489872938265671862378552426865614689682597944921147782933418968227275224917399293862944284179881687119398117927292386614111998947647465266957676814464864843736599235652357813584829295588742292214568683363511881691147912239238585343558787676735748339531453281613857735582953436358291324543514798351789885226751559681125365623447416383685359295262253687139373913531798323233548663911723648839173942763165418174454335578459456649625921451367693125562317231885745237162286846246573693226394668261976985667261728978399728284899986574949646616594423384192361359896278142692352672819398435549328846649898923181369288831365186869323292994282217225997923321996838137226545644455844625756846427239831484747272655917482965696217291238412218473853582686136756455576325426362547776843446911556892522164579723391863117686632219351446894775994979389858521521445589258424913291117193843885838376171813193413324123395583965782387368577817938331451988274641759485232811514336371368175339483221734814853286712737533956793125287457833941511573225511988389797432215418359396527967955873742474684924848667328824519996161297645946419275896677137115621539273676297914473141652342793746663929639228666859824948217481946237189891756342213596317934937641348237293716836175694387689443466278987257738235585913661494639256844458211933472862127266429433827362163164492478589285736658949665771876395432188196477133936873348434863396495294841543725312525347633952682991475428689919951574236421568668785226873754658695118559695562339631217582836785275939888324457319329966159616134525493334668288111116691552144495834156412239931939588543537876248543173384287261128951314979694346653862379986896582611998948373937313439318787345495595389216388928242262931763293642279979598398212337331396515868875852792431342464186125574941836391461513626752961661927321393822958897259725811866858678698889964754458329719785379937877655551826269982852729345346924679124295612699884956771293785242153462922971858234711729987492496632723911975797176937825555683256336616694173769452134677946351873424163368634569761938711445421652947274936472238321182215546611795511813448661572589681944594564894874118953919947985889237573862248648324414496185663485132317421264996336666264619836348468199195494925561976336299733558357257785976422419131541422667482196663151782832634688728874622712377682541513775143794581842112228966128179336848918466359558679456957765677251951785419254919955649214562377262248668583883867221239585712437432397145323698319323272732864617735438869128848869176149235575247689465466159925823436247795298856883318822794265397921688197882569788469528844473154112811699645693438481173419715915185245197447689527425755616915514927327962629669399764224624254536167753715651579546866327632964679334414968816759334855517613959873223499389754666951591249445323634764672556812496445569493925267543811955535675228763612894411954234329663239651326666854275168481713668871724754411985382798536696863649512875316393722872734373869112952948468987348535587825199899175268914882525358817578987966863379278557697223992649437123699936732676235956245398341942211983556724337722345664587572691689944515826588622187525263221378151499872421271378919426636653457497374515522558348389743487522369887347688832656473356584336452431153611483547175399856268893846841282229463169489363889659932425433444478574422348525479363595946289516363793827568195921361663361219735994375829528111136981317327281779196478438238232839859571298266955592334136858921895743851666261619722135618411399853947193618668531623984713732617999618958724566528816175358419999858744514859419379876411141139925687938323263189966686599692573941723555769167953511151928165358329674148945629879975975771215136982385278631526413719377386688366594911763614245514431149516422171351337696111551982986735477563698721378978823791888462888534784555572468248418597432511353721975422557261192951573733668829826447491216325391447519864655437951699519231759674334291554186671739679582546513824233178476933996944891845485656978375112694892485654747385741237144544594872911475749467929942545889248525726753236161663646681268182833394878981676641895553478286469688864662518272251596733551175833798965215912226275747982988471741635945535657364726525514441314367761213776391673315655188919435999921287816873293557955856689178169176847434642897682276643449246153737569733912561677331564588993366912774954211266778635174773999478545839258155732694189466644581234617631445896955353297751289212563215247627212626845518626536671871385946656717481731482934581668786189744215933894932135484449398816869379653842235437865218137817492319274357479712487917719481128249165499135816955644414352353167974413395885369633163396529726412851969558964737833151793664214378475418185457139345494559969497123562451885688612132486473392914268483361828677771828564784774999827954935783469541376744111419371975357735861723839494793733549546152624191171353372649922175127623774974981816143396287394795556623911397488892121728456716259721912941678558558621355835449311311493459294958799735127651561599538763782176945927337182138977829786953169643234855653744549231298673888732144328773946489392311167444127321642428722359279311315949341962826168829953869888719382216292484889652445731718577496616225354741596639913164711459119611145418467811819296466419319259254683518298179188614244163968973341582489396115864278583879557871838966886486863378936313268846728514182739496523425135341114685435733894724275496898312312669282664843315631269758578698854763727291422774891865691469245699771479511688166132482527539999955892853811716399447588232131915584668858817437469917821933923351726491281923547548321412694729771329346327571325146977225586353375217739476487892488999547163489789561488936615832632574371418376222259942591864126263699539357968184976116193413139388241265851658945535945175477484217223697653435878462778214843353963322876128585321488218693827114424512113851372411222961142741163523613786813943945131945118114355514763442635929422425825635159418775918261662594634915568862782669959855811959313713248934112267162837317493323683897679979195791863693222553791978536524433891887136358583742847681232463643629322856694977941798621855918361192286746123826776546521921737737844418921282859493944136298961545975766784858787981483992677621127583159344113799737126273835935574777791191368231933438721213751927786786612424516657518628983984542121771723162536276138727195459559527588784826444146826526951815846484362643367662252794387367731379795858274931944114332157721847816392918489364674816111672656436155155883819176466956823978511196499877257153688263753159889898347323948633989696972266145823645367659392581559136142735126379714468388435569463975137638156925461288139565591687199742657258684512393159698747345328574177836286315629577332155587423631493812441882747471565913643895844215258236391126962452615985477878393115634626212347418986513291919219772134654868618395936344345256123235488865624354846551883387798991348215676991374829896234893682725636972661587868657259628886956318795959997664428143995864448878757131129865217911219674998685459962953949448249258915495254688573678862785598413283733247594442698573642181811239491514252585745492745843934936865815221369834262346729892394779259762798569976998569459678145969835994651547136873827673466852734224578532234721892558684369522743191834847218287332199525457531839812294715523245244284529351234114122583933246669178429234347647958997288412168164795618943786461369888637833528887458251319855972749511282444222946659671465851935864883925336421874732767152144529897288511242238691667462575716694293954966178937993628774235783212486772388261858121986398767186235783829636612422491938895594215673765727378318557459338868187534811372888629454297129986694446716733822572417727528416965397867439611767997678419159655174851683553528217873694699463969244382546687598184444793539825748156299857617394747216458231793498127993652382654354888712661819691299443451515831228178244224164182916351311874794692424725222529511135955123492741872253754896846847442843172246323347612991575959783767164388799133783862928413372656353671459341597784966796923977682849773696746413899358859146794878755923587127395331915898477755521911368961589112182561497162613593627493341249448593533248288538698327551575498247471693521354122754598545984897545495755871272446685449936495948588852437344467136578351971574332916148871227919446271378215437538232919929719534252268888421273985275966935878284389177718815193528914586963879197994674355755115795244639916816595942277652942421935297187657315799826579664815897316994669381749739276123592971599299555472456217224726875153912811866293437957758121617192381572547167398983657458498116135262315111639518762496336126638234255655627667333472183585146959255729179635347583671938442926841292918979494952218281925296689789889566595888919818819229877744613558297684474344134946822585855119719457794127528913484532916495365291878188838729857398387826343753738446328298974683422193616982144987599317294553783782152531644932762593312756924283376538482884959298428483174472619142981157351361182929226554614526714629343368376357358894264495164425349565381825541329634954359781294149467548982913775259585453472766613466254335612916954498635892452677182424874165561998751239263421129169556852398387162175891232334241284759988616312318796718931344251626594354874114772353235158463524164488775174451584797291937287574912688185428466844543546263829291258957488225697942284791971971994889526228688382499868865842831328158771549366395371155449522643348215258183612139134667528762985795219818267469272547288955143512922912618444352594213917411662753842913746271319631831562526681865954238645665617699644785342327613125888343794453226675198329981382659473742166387755354966953979135172235322949624137433828114926412524955149919393935316917397737979273767667586778297778496178756673959614253829548316134631596263347216532792645575977441599194338938581659724362768591549349761554492357328645621458593526383447676812524377738663512753371414269849981317979746985149267216523596384415192865463966982592244482911451749926453647235284488626827841814795331594395723251813583166247417931888297767872863211516129761454441251817684778898838431496431773888857516774552334275125757723119785525172436559966466732594683651292619742486372818481528786152951211183222738819646587454948143253152463535316269717442836638843247283435956571432975158511474788415748243679713818493253299468317862574731691881629925234179789565512974933912872873376782751695955243446726713989226773858897393797839491972268181658932791429688361219197212119163745994945892528638646256356252524914387766817769524138752267218697925681261936977281944251761529219667684786484191984498455496227184753921658866954393128668379877252553518283878297499254161847663796146754131738467482687662437587181655146929856574742497638377985949443944828476639668431357945428352645926742315171993927619142876129511174394611789971642536622224163979499768827623776929471673888275224988751322698389226374462288689987842773832658569176423539398285759836118264919917658781729427893784485291591482155824885727496674192412559598592173452823662228528668714644493689934926272383235981842195444693585886493539733229384494837286335812441582555676695925387915547818142198244619378859288868311991695614527787714589496272892871941499759327188336265672769947931861724656454287793259335318919985957312856264733947869381972968453184257773145348924942138224958355551327521944745238341152445259614635377361644156879874927433383645273798762167634621913744873226633712577773335686776849326427171349586153375732498972893435131154993597724296336113382524927923412751422731452863171232524324465529551613647823129132383513948479214364537218319322348598782527438755296897637648673521398441173857366946698453229451489323321595131614374198319245273194325265777638954453263986494683915431897459244477684962519867147589568293117444111487546323125763618426736369669617341972172647898638192716672521354331436579358911829879546588693935957514529229292288132679338422916566997928847846738885717559548184683374156831493372732477331138487624128691649856928155678672519361563412475459931736292149198914969191236751643615233327226196482392323878832182594735456945673792813199872179329592135538985254335544421527359398392743641155387831163215938857676659993987424187193312695478136599488577218617226446595932834374311168788538159583233625887114335431297949734682894165533243675197926698662931119414867179435725526175922914914844329926747329769356737838238412733614287927883817471154876695768938346838615786524629995454921713536219869446887248938473764834176686572395983616498334519782288746374412891169619422752739847721448678758863722553628781764424457115981756826161322189956278613423819874455949171269253771532763944829254658555572496763715871264446451716551198136693863351456781325485941949633382477781626384315743326229272391347195156674994368681211918137161859364822219546283293294915711786592972172924533742161341811777436412618719252425621644525581122653714484488539171135575814925278439777195757755757294674865271193979669244718263883239516923933228175979458275553764615286488689485883627424868124473892429268196685845686872673919387439435134783165514199266457375116948441719915555755769394821322825758828618253627282121493424695969741512226578286477426657195591464494525162888416157522112661796146487884961812416156367523582195533312517687727232756488636735377598658416177789754492254826243983746476973631595834958329834122375811597659699172456277159551577957986652611416542168762717654348937691641671225331997257822345147686758815826347336952642755268836392271562285818493546612127899539546592699279827151621822491343285744892799571385446416556589797371558728675683116546191648527334288159995453654286795748599113539334234658812229888352191111353265577742623744712546645545658765313885937219571714357711366232552838322941896857273753778371334396227292289864562646913628541969579389497383638883462533486472218246175793955843168211447973194818414983288662766577611288586966797174382147224769428447185779448946474677287653494336944312334238765112631475624946539869882394159551723651291675236192179299615649511774783741242751848857717152912978236599413576669444994799899886619348288425971793192562441338998823639451937817226362495537316177238163255846557173213755474872595291416988533248459614141527666185125624466679514364677719374863363734169625555782247917834319446718193854489867881672354775798367967242571456145191236592852777453177324359954453565114399465191497928453347661826227636462961989682436658215386897561115281279237279725524132622466366784791694419371632935296322958515775843274192154257766388462213771154369768762286843469196315473468794769445643326452352872418645414678422975296721944132251915444692542638136617691193117197531889934985888448196185385984626715787985463286985594121519971449818596931259747285496536412356336275767772546254792244765999521128594361414827387399675163915116855179119492129748514918298698274781582521523477236427346196923371337368411647249881414114614721833668498462176954994495744125198355183818995698887326791182681414712181881339228849417425474414775873859972883666597337864294561937222118285542281713578787243126648647455999197167315983795987649313158636545232953351528927671611916668212734818143185776433593583948869932313116493879313552799893678669799999538796625951129999266823791689522481952447438417223715963139982929914947679319122391697881868851759154891731643752821597573368243246526578533697778628365689513736466914756926673444279538587769386976352832398633939883539315143639254237365217481268412321834186992313838448167983723755727224713733115948645433684858321931492674874367129552711294126919147295472696418352533441732433236845362432962687839262245467579162598621726875457262475811558355593354324892237853989569515449888193434893925699887743683926894694835225416865743397665966435894276688928594966296852337779269576224925765151771454577244259916437719375679736661116729125915557337244611574939939591492893347868562922968351342281229417621296953134128854867165177926668778363466767651836632139829586343968394761425417959162133961594799518875825345939845947234273441382269549174566548833544851184212228973978234776659712185184584616313581493758313283389888237577217565484558478696813882694351961695944388125974664842992226212262664882693289435718917118639744799287246444487856646447118962441349162616943527281724423328453576372522915266874844286597332578195246226642228492818458271217916429931683795544624567273283873414216355534966328564281597775915335869312697329165483522289679182577596656467373811152268915724861599164699326587582687578149435475371648669227865923779464396734251124979889665967224251578142466467653431477963575989846741865482155397334911367655538112287726729348961361276841474383389962523436222248356848776294323327569782313536342825693293434755481249479611235316755175216572119134861821843463947443844489581483758639613848923755938357295232597359311583385559942757476898147662692631967313295351888467251827975138115835143577656381996988764277977541844271844453452949715222827451334642624149374578348849921655688941192495422768582365256191658342451589922187836952465965121755888836728926697182327824325389677458131722371189391173394712678413215285312418238325444724871611822348768888791622965446824874865988763542412462568181662139325714579833954999245943918192132591947719995484398782972771872932124775675193422279266343321513513871437747977284111634965895245332465939636345744716182571175517743335288711165534233289396747321543941721836279673891729282894746149991973689546726787695875158642541537785639291768437894318162226277946418326382924694124829142558342872693219411761962343246382124291349551571646533666879417518827941784732775438674261192742622396264647714246993318317481432651267621371695283414234952194258265825843883299538952247336641456838311689718761645757479843877551282349121985958323941833229864872915827796389111394376478463751831411281618518537854582327591573513621661311164747986118666693953214351471476731528138884344528748173999946619561362249563815688595685588148884819913968349717546994442244922293192478292261824314647759142251469686415411582813267832835958985733353894841932256738892295173555771959224316429192862889487631297182114434856844931128856518516215314645929494885887671229969671191444936875253731386397393259348383675152567739766486114328143951116511666338193622232543355531531182146668468629731884918551513619713368284845728785186832881232292437235599969838345727815917127258869429316278991473162552253767553574494812691637833967171347181338666937196158841136734757446568224817526122995996558833666213924415156667746125671453718328521859455819572174631566736658499474418798535742295241613366996844263822774248356669631755445827143435582896721376238293737218812154591681142268771591852563443547795843856153831878764919134477145629814599771658533823635962665216986336183158991263335721776276864496994218986993115686654262847275755264952641752298754169243869335651135298162282156352266442364728712229935252257772888422546828788781673187392968147888833513371239297415224319123689462722947959969598929331241418455516699394279239939953967917731371721749966869751745921621283319271245121616571644946196124334241253655615253317599199711922436342696167672782442441319392535148218793348526559683622641773187796466689522177925276339387585254898367298495996593126953612926386222842572169698991594854945574185268424421379169998473756313611136856277294198898735811431681682255773473872661523813945892861974451788965921963353537916291287532581386777863187431921529637479538565132717915647629672534251193748339411191653315261213637626799522452351416535142152414956635476611745875327729825955441993449989954439952523514918442329553452356788773724954454276317253487521178945216611945252873597836477485268669239214629896144727353981495262163174446324828289714192131547753951383714275182862261463417171365393573989477563678614855562588917263451287933181952336761719519215451467249558533665221392141952495341154198842196518526539614852384388777551651291942594465748866294161716862972965115549913889418713773469656642243585576843773443611956891454567615252634982335596589269294549119625687176298647285112911355255116564272781544243752743857362762318724782635148213386561186253383144512674968888126652769264491695935291587366166639785612949919482791848574961632591951144933862931914761157119358252356548723826817272377988893627841485266447128645763549229471154173587131821574148383114141135442581292173231534443652954947471628537634846898232386461854482433275848333812624742377352781823139514335595655927154779856837138979391859294695488856639122824612431415324673112986449359429779813843364721121298731565497463454538854235236235997153581227551894678971483995484188447457192181347134173362791118932566255353477188585711971889772827443967295792641221198175943124856933752121384285394982585686961664738849767275594882939377874839293966942659198476557585263654573769353417325143697345851995342617541771392895154787252251674644378355374554958325931145113476893527954399674415997992591736425666361788546876265955194976597153688646589276783377667963523317574338866782441667324928261481147568255822156112734125941879973528442823128628781182475553441682425595797558226224362816149197138578947683494915441521124823625563266924154444887828921311562126331822226451738419391221267257879841152686658498316328433948625598693651316144965686327622363822669834954457833391713563689761716799183437111438498645893867747416214446256288928882361447111749361794298817518386412545146111945193413283743552191344747448442731161378642796815838213836678731746763617686366758568751317171144719969527244717564337458155158328224165878359995327952656261883613928495229118631326381896865934225955575476228239767745222623135539966593124827793456877938331773668217498771458783279862794762926636465133176935251136394661741494939432637321645647356721685714916838991622675138663224371742142514393454521914679881228372475535844169419511857746746564691143526833863713777441924569938942183665839199377912913358232124222478852742677368357562484485897934617772747553386833151499877461731488551316423915291329116842813951786715357546964986886471461656724384818442837325914531567632193421791534627348838271227869968281158912462196777584516382277886881681726914481139588915112699177234195686123226964744344493399123523971482793387751974423653654785163119279497163251592766119487874184981821526742781865365293871377665647699262339394621139426343999463122937158967338341263796985831232424928795536359376645243725738769261831373898834587991362725491496388315594287535315339591841869498218648156717248551499573559497296161866436149884823869115844563268344866579457748115915498734951764141687512285976465815767152237532489141257754281761136742843685724527432295513678671244337485846297849958418655522535847576969478262156885641292244716454849787682796373837836959229855249127775843469741514118929915428321986479696568619929811791231163941577546982732533593462475479654611344831994255494539777113168328442725714128558891876566862594437588968269114884769316972239462219895721529887263183671674629729718268111998794993358316668449318114915813673963187917654496226116496887143339547237993221832433963659353676439233822932114247333586412768319223484586686999632971612777596517746175643333295472532598248788553169523855963499543782694473227323364538834173126395454771991623948371154469771389623181988149322148244579445554325614511314245348252598431975397767917138451865779728659646166821421123956943491272826879584165196118383975394229391888736132532232869157677898738716677271332445521535272752534294852668591734165127424688731149423479217279476876617965747632663818729426463848599276758411566846617559184377117924588228363847498143949265965557895616422695335137321136532187866326856116638931652764426623399729394915567341315481721362681462382772126741762318279395553588716772973547523632458387722179739316583746477741876693464569443362821193631493479838165411334561741648911949276158854383316652536689479454371875559867198644795252179124449416851746435289458873171882324355821883526934879755853841162485966845296788265138614886883929496189598176882383943422919192932549489285764872175316486495587631568376842229326746485923471133278816581592313976414796132133351149776625756933672842444547761765632383768349497672815157723899352371555369218874845351123391215432376782612388762286287326446979197655715833698897525236769357355891271764832612242655321345868438456412783842966131552565949873717257325599784395339486869847118733454912871299732668235218919771825295472489261326248559348115185615132161186218721575389298717256759965964564335382829638588213778653159395628145237198836647813668862791352966467165848593184449125284318493838545128968265498491829349968241194595381196535465345258955768877327745733485912334849644111896617272655872463495869632133912671488542829144283758612714895151188822913897224478338497786272378941239419129367181828685392319214326256158183781761518937268988299715419217484469491393918695525595835746475719659678958728269619182665193663537483378249955915714968578734975623839653537927597794631313689251434377538231869637899829177982924352894795872634312383199797988314492672148291521649839617495225554629723532673635598469999511955316377539686838487323222162156676192734681374113844254259454911418672131257567732936351285675515462564569214977168594521967528954199446356753348288438525266841249173518162485393935876392886899897946753882391593979698876464343937692879998957244193871596739122771868757541245553749778442252329394968621635978341317131245465285571332394791424544157251586194551564784153184437742356394893247294552766165398162196724194417135471556241679476585957456787388826961584541578215619245813541422818855218365965535458838161292373157566382778329854636432551677872428955222943838281813857814679811515127391584291262456145483373423914633761978995139533171397548738179346234122524467674793446228915938451753894231896266499111891383226291479792781396845746725752164672628597755783367731392776863221272121774243477241169235812112138139116521657351467289768769852654553294248873998626572357332497632949353149338289747862584623376378284597429337391886135485713238156495136958668656358696166288993632934629485349765525221647546787889341178593567928331383926695373396313252397989811738139689116335764979997785565637449396297719285661469237783136768787396966884249385297955267743591231717384518445854548954726865976146665125757232586379632228625218863364638441599925978188748269944259523456495386784591375281173588549673313742328568684293119448382158379543563428176585794538256451186921265416214652221563387912828521427857567723834871298988961821852647273954236423443221126117182344962246549181324435446145644776152365719697627861395888353628334449828768331116235514338581313646526393125125637186499256367421963681882384745342882615322953949296375493776399477547168353646455183523688398244897693338472116514855924843555834683914651752393677168441686278446626171245365521227151118616449111517529945485497993993853497386337988981318847537726991249866589177854885768511183673686562219117782261625466465721879535644634213427479915549992189831383736256387923913356356444326344516122649331521856579113434957397919972995945831466367591895625325212399774366212838677556917428838957925349769832688322722463236931612925999872939742922157471863814815384161262136127322957833213484812228224436837559544237537865145156968281872517451774426982486992476295182323958934365853192671717326823945131833357632931287147778459743254226441113315313916684428281416727451469679199379937367176215686411355212111938831555253764222752776286486369151185591866187142328836464181984182631617294818138711455654641958191261779169752533657222476469279375242147121264429131267614621547952155746852293196122872233176861964438814123312824989983399775862294984385626786175973282169546555853271632299886273582777521165548755727725614321557625376372816772243814363685639471917534714361374554889157519446436178358673711155434347188912645153887654914918451773471262326821198753243434268225552677618388397162365517822634179326986714523228445884566728135156645214656767692979425987781184748257612277837923865353922931493117867974656338623148329322341651336922376989649942754686619654687277395974747731894243713677925632461848221873752266326572264726852835646623897993534972187467933115678229417197349626724469253353728431461261783755226552556661841784729724793957468912156513595553824695164458184875968519857293574843349673462747234174958677715198422279514577381688872628498817638855685142779727513674394274846611279663748621462617146454637388284151324284318369963586958567486689622938448274159318983748476834895887612527823743521685421984473849599642323586827885326425741824864727848186668446767498762743228591264973638452937666432415716564681877139864947792345585946592848935637512996566788326611258343125567318588143611523173998812122668288127729171222339628419519755573265846833834965827667416371827133526998271666248894434151141744175674491456169748271576578652958416634678264147844882338283387117671136842245918387519327636246883775368571962781431352194616285462997743838916948973171442969495583157439229813591897731936865313627358271141399368942933518938289814629624744561354447687479188158329381645981915348916644641446367284247635626139828582845888495213636288748242123961144521469869222739412326317614617859994871772844673895435285544339128495372465722191444852415727638458885929481591623918148411172817684185923972933314117957854945694991493788781112512296871373833122251418286395335444932957238439644675583992435979361356968711674921467757991387123247734414461752798553343362962275947287522597666491724149136243637345896145791241322615617222574396676289749663683653113834871199756364237983242416616878156164928544857645858197557234938544735569954698182871635337729463745281175434132318361784445382554962968491793923648726149577632118394933112384657418923869632822542845144362526247947223165257419584897213464978661372688193823871148769994481237364521329592667662437336664687313644666525681347479192658925645998454895352475192991156747392699425893237464853843847421141318249529832576841924218841853773676528392347919912422296161436773425143166757757888996492444812133537744418173651449989123593795948621841747992135833844183342736486471444234336727991398412674112658682984227788566595336383783847796885315872728366878417674967627295524911172997575415963347198617959349456546283723227441141899685528354997416677889512615684542183817297927584152913163622975163452261743589894985399542647144388584567695583972399354497112439267513262629916135959399198231956787892953843546932869769572666234713997271414996172148884931543913282798849239846131728221264443652822695517499983854575571815279441491941579567742187545526943776816899846682465564397848433698378847721389514968387961892951778551232251991386214719878973131885898113912941542821787584887855434225425518541632699357634319732234674124768811868783455875657759116417772552447315549935488954954594162216341869414295624518813242547747361356285694165496375499642216832857464924338768475824777887371555181572794579317799255844579625913169129576496265971453611651942236148875424129516541811766858872465353783194144787758734398185322756824212525873648421649547968934514825165552715436498333928811161442847391451883432354545426422465438157282271422546989321953978322237736952883936514445529717548559223727884976536869312272725679482742421727461146966983265511558612743825559544941547742283326976251432876721214156839147259746452494571252263577159952676431175215652566762919513498654287283793247393879169918248992229738187311931227123914727697727689498127219239921321692342992661598399991823815936975197187343372211199171251633229538337959287387385382417461772624447132958777314822952687654716948652745513142523627875439798383246391751963115466133575553371585114179965265681283541874212358757255151576834843286273583517473288682538211695812427766926644852599752463422792934718399854138287242387528598782941859844247864568795546395163255331194517283549227761379884998521539961679823644418446314793453415482448339593833665396665718957586528342289471737356792162966624265188296143195729488595671143357755564157457828766695152265389955499895539211976536831145573467896876227137224757449344881136795272793595116582215138316497867374453692192649659252981421296824358517616869735539617757866357773623273859711353123788564187864914231415285391592878525822587887291331747276215382243523752449268179154761371899912253428662577384388654682661651866118963128736264918476532586563162748149812528718545178236772977142845725966736579877688256432146128599986658294182759664186389792631639184893391364139438946825977921827296425431832774557148435225117727357791664839285977629232732392126795752935952339191114266296398856331523897131949139346955463258689721911614687689524198435749597568658628977625666964616279128665519361156728264669139636537483843768764334149495497459992649824988854177489329857583472435496694578875512543428255492534963532878655994247478284712854249592677433832245972789159134548487544376547669146225118912444272925342885539534244654544588986186511698141184498852296643332948599557351359688363472136359433371225851975723548885187612454662773367254635889667256726851226384699314665154118824385969981528777797964578778648975452348381966636423768446298996521644562456918649726651169957599443787823424367237772687572321154422214444671482159227965186191443643977344461566477263561161193367553187412457885591756842852267712119851975762122285668843858639749614692957258356622595789542395255614697313228689738396148368783233491231432289152871474299868172329422454552566633769178154852882813147393447199355262957433519681975614847545571976271713953911988457732476822919425496681872861694366593975266997535284271255225641288585981581143651867983493756865612191249243497473271399675351691819823726855683719848784228287168148311885344514586265676483188983812781324674913527974511829696876945975342632782579729881741417911397811854931277958936898929619548318494786793496178667558498352183722188648877484331975724648756927124888665392625623184448222813414882546155226677875219839999139527561266677233819421293182194935681696152664945966975283372674232281684851344639227644862828231438396671694966968521895176888812641298157442137889867364942723875885699243445923988624997178256733173996329829198759248745568929337516138918918773687451815617638279882562452229477112982542194821688734868978825515613746954325383156422228999449899164658979497691233334123956935842296982821589691723225429992585694181373321179249441983882929578766893924929834768755932123859726395485776759916781272373668539258686264738529176994222487139954892427778439327925236474977971351481158891823414836552849536551587583472343582874419683435181928776993137375551891759993489481357857159776222291355244472321335919615582193221236659986117131521471828137247351816894494186237175267958663497477955384693115812326812667886523228736984195565785355429188639949693299618154522946377385147932991119179774225399936653157849928928925792213731513267461145935727519978187359391596232335637288848745443157186936557669133741624476928234821414867524537619761918589391672713988741183753628617556375333583781644642816967728552189522861937982345425912784438646587662655343467898479556788651289744998521857445283126694458576359748589654297614816566811668292255992967376936416153633699417512812187723325746349693861681322413521382492976591459634692723864915943272468918943796265236512993395513638527212581987419949139369819173714524562651289173986812781687757199455599527324611192279227892591545884735466826835142963542692635213476922594976569655919167239539776357497793339294774578371133198724453121334252527855682594893764998399323547688463821968357513812631542795464199461356281831119162215375729927854869487469469366476994364265849226143778614529155644169475968779373449299541436891285123518375182336354217331821728331571296715847353772595575547378326234895387913289338676139656477991471798599716639596198963699388425483233912565424922717976894535164476566723254555615391889233627944591262476722362791877781932726275281337918935193169846839992599118922712494983288163734733872861663634873251469375448819186262327679857152297114457137135651762438413928136727152663356729876918748139832492197263588168945526399282164194393918256952744395734742847356566857562266229649221584667381937413159265676639542589935663745585781696964626569616499864238666245284779131676546176151563339842349627521577129636332277599373597457298146847819423548296124353897516421985665696841668371696875535266154529979654618535574961313818323764751514774616154439468649371646891952327777272615541494322374863857878645352422865894325333618883669413838968144623834457617495651581764558452713186421979618964911187332266336534165952912797187195627723356898294797877956645343814566891471298567344938582125395632311347356192714297955146665137248262786495466876561174631133746652731459895572137125487489663217479415385722823625153791546867594534952323494666161339283868427869144365495859456478397573313977872298646121156682411156377564232451114715729277318412138664987132922283653669499121332188477179261388543897726627749947774471387314168337118661433327884321448968464196796553586797484715738535351759329864212782329789253185519564485372672749771637642859389235573191158212188941784868786697255444558269366161139425273743556891235941877473465216724987223711734328394941167687248536248418481712431723839587191954566397236296438518771629338323668386118527159799666727549361536245734675371359215786431456318813286643179185895363995821559339557912217115684119399682635558483172282892351741669637688224941157365544558522587438196897282295912454899641878512429999517636226261549313379231251141991643365879824844971973986999998163377754745919316482571179969764891666838337257676823839825782161116699321946693274466357726822822461382475844152588112874464544689617744317622879679857183436783643316637298374231195714845513676996549267885396416876269791966544198893681921659236841711795348746535794884847761334394263696469113671869233998921341667826462452719784697786667682547228763898958826365943589337381911876155849721247739167881527597674278662633656328114892843593259567323575639341151439614843166922554781353276261294254538724315558737752967673783196348129439985758423518255423613247957891778253884134848379631944627396463187275667951787639623964684211418134571365332184845122589891931634171186519716281692749639611773179288739599297256329271941117394311174932851565186914997117737157155547532677176765165765437132737272834981597164569945477279343959131419368964491393639346261465267387224918338358519433948974498116727117939744483436621517845646327937519473712143515555249713335917668595766951212656279948351741596245722316226371888681525589538142613623244762848697548186928822972224437713786645297986587268455567799561639182591399737452286742419455417325464483355981218772812856386116443879114593514371451534152542284451351719159386239372676721837363397377272919531547694375257964294821447637588422281498922618827299242895532274471429292461143853675844386493731772772716811186252745153693765732889959649638153315711968244726814798652514328649119115828389768137982132553216116915487295171884581683838148659139666376874852199267449243187891647374952336435341974886295973147664158279713245333622329726119775189996866179613763985856457425822711386984843118496872426147428689617395577878717384425928659417367886343811671398638129864715421197611892868777539339316776117116767746822589242164984541151641226989569627441536834377362335346734681531274327818235961983516979347299316638499112697686836434457965895467287997256814396848273769348674472972686367786368174459363928456553711436985521328742667858783347617638237578698362527293961383843595416163822657897597683612884144574171452415983732589749827211667964888929326698746719771392356142329212143691475945892732865468599419493661797191579642727363191149879234193712757712864589688782578572882261335195271529477346593349437532555954461413451173623846788432675161596447763678931214872513679175214757424571462482758819265172573847578725762998164843758345472655311183658737543726181914332486897914268932675856554543876914674364671462529984538972357857214539986822962859113989114778498742728291396572481669659937865639791529559186233398154946612174833975929737341559354647197295577764256928742786612965664372829485819491253321861956412748929757237166171212388273714877758623445141638647865672853238994745978482433297873439615726615169456384436645321553524895455952786315647291632777928396732227395925379199152228829738491513131512148947942953843616435575787738842735318513776145688136593276958122552392668262619412952368753655719838984799951781986192876231691573462821616784773271358771839876111373344891267474499275257134644751983262278915355252676478731196984398416296729235392739582681288697448947529433852934872139157996638423154197371364651743747425887728924322838964329282556287665335125447629415736554798315152474885427979811373937296925521568836367164953979252862464814859643267873167344269335461741135188394961265979394127553526439836655151166553573873428671223296761364369825161348571336357567232247564534849952698622356912514627363716188974143895911699749991736996684481784972563412375265247736485722789186331562698114428299728198376273795742899698931758721439247764923586575533326391262294118673975314861393535254258367668335521142427347598923227153718541983986227742491272483188358111299497998772811837965363188897996834613479661542247763871769449931382628673526649395582646681463492544391552195933482545193148377422641684784277424568157251987528671648817324854398184899787438386348138649833352251538417151768272175739721946161293943637612329527988859844448458642895644775536225989972416241194283636993444166553351479194993311563152396692246561417396695824871165284743766392332951521982467363781145311839952947197986122738115218638621615799418196696779489999653523583152872782232799636625579722968263449617729998751313769732726643877847518487253374548499572234412184734673387524767616654765296294556912131772157697352527126645881479672648733583227358951593182937874146819958269884678628926998686979659554359246593354234833682288143987323325875199423784942159752959679792368768698757251344228312268238354129877643267281592322537449164365343916122731779911153677573918423612223485353343247585242322263313323652176399513362664786881191332686683212162376432799387287219358815126232458982151968686296231812323935169857942148995424127117237429935819594796476926428927649372364744593862419981523314167194219574733998247146187317713412722768139339943756355875645985956222925947831295829216669147542253444736518538998919565578222346568842483244944825761298929933579454582695188569845955635638885829267337735572565949492854532913918631213759895387117282644734915667687843712239949647711163453819566341421534426371141147371651597221162214445172264177694749898499415525958355451867536881768598448899374218634718349928874723557335162472234594337318295466711434849976189438769581289735395336699596194936792639658619139552211169568851429672535385398243354349296971922878932451979682916331349847838916898943939888977691624587279969558242433321927767738167674569413326459771761537298984652817747178612568545587396184549628383978738985829376986594937889616794667444836643332789262839691369725358731384517584589663632547518842715733173821267224475539379963223685991173188899237679587482613852351358655445456113151698747933156181836478792312596665328129314911194521399421669225546346277567666917936868814725269674389836582172764449129481886753971854412418684817728656734398584568798848687977637482965374121466246929867463126755949477767893415916883528729394778624389969391791377628489318586346765761579548564224943873721244829275232175811233626813164188459466878985366488631322528825669586263951586934877918959621286935542836864566854533426388486988333414989336819262494922859438261491788712382297337738813756462491568339348556289852622975422451586328243987515488549737367412451972785974623161815777392933266243321898159445536893532734838553684763567492844423765747211955223598745574657998255637448344854194866213558247962435157872155554731439685498184226621398493837318232299538426647288316145228947769969721643216824644247669453127194874938247629974487253987378987365747551312218646242538156943677242796726937789414456262756913616885466159727657982696762351422911436941811665363333989914136325367751731787293534822622924536951634787765484635116267268692286258526282629983572187793552761375135643814882938126795851126943444818188557549452911495496899134513412256891734725855374863775135465478167121491875393678755357672228914715655633142318173596164364155425961432646666463613327644148588165117259814351621732594797555442741455336761711774823292946569543588919565535583864282375821855192791747378736913329446727892382462444162734435645579251849968295237633716157412967763845741449862625885488138223999173635779555797275623525335623521783349294753371732973495756198956369287443779742938267632249944651469213489353435251714826729274311119346272494819878161632537947858863489428898765571433675469154929357197876743388332479915819291225724591274382213351131521539432893252269477588712825776817751931234449276824595776242723597578481724531122561137551722951518436396749759915998642613798747571999674537327815668739188863699599455787429199556437336191361218944492233132177719431839856955758197111323529281923995978464938737447578719627618817395239523376829656416378948818537859891127519464984521414184937593471473223968256617738946438168315341553738453123776579112817638161215478114325583139949129773478588914725136474686568361247574222913373876414761317233246883284475611887427673713425728296514842291378919776147377648467818392311438238195688316161816687415635667479278746566152231689238771236873789642187792914973894651763349526361478148227514883147223546486912957651572122591694315658286777962736763874913872382657555123718779435613112388417671316717877653586156246354294841861432129764122627339865174557533665865731141392824889396649383458935498391421691979898442461615587816644785744731619454589649178759223671144416456381638581488253974221224543178696658496434158445656667911298857422241783197921474931529638413153257135433934962344395167987292497119432734229243562976765473512212154326637541796883447774935235249651213856825493627494796298622586696882563892253782251761523671331917143233356625839995147394326316991223457998482471774484725435824844278878616733718157438951432725123898658222472386927712744916417586341152288316797567541932561229743747855775354981734837863863746911776153667965937299785162345834992595742346829548326812935317716744218242813655486155258578237812212925195459897483896543465135255347756271258875164718943446859473147654568355851211994337822748142687142867341461469782472545338496999275719836862739875928452281779697177941526689555956771888856725522125166624469953529688474944486587993554989775935883629813351889588733212188471858219191425493341123223331166152862871893341565565787918815529696762742155111547114795685135984459624729228363864233681183579924876347158975251563732739887878255879573369775721973145923799525991838164121582589783374633584872955652953982948826943396553831124678662841834615218437972253364612466649623983593225822836252512657291262459688819381474978138273982997233192771799635132834652859938642739896866738322493758732735587761649236717528667922695867325972935947416158893685754231852449442825565261941298663174158272225297742258242259915112517435636955618833645651641259491933576179541323466932975979919892248646588519855447434922992772884758296156921463196486676643622185914517199144443982637181443659141481189992336523775383427572575494413491532184349766197745871421761891853151474259858612199131196276259364481615589341548441441156762587825965524346399224367362836975565162593736465376692217489987334738878941676913562672411298921283161865812591655723942861642669954849229369324885178253326371266549462477318676174889911647742395231366977744442721521474237356778694382964398361391447659374931799927113421356275219864789173132833632873987594914889258165457441593779967696187465479274599342391567453111728365781698958781811965691811962896255324198776866841491379365544949579769646132625744772617241545472357392914164538995165778722158383992992387731529926472254368275465563681453414494832156371998524968336361589828282386824812653859762286234916824843423694768152918925537938499883124373657452533324776569319186377594768582645857224769789588295845219958211585297563439488186661971955665613122768991938636382278263728279481556455438291717835551722539567412945478277258729364345487232863955592318923794719133561173368454913934724983343255411418734579958252532811134249778619571737623547578759642155822673411583244487144898752856337485626765888326938317182256888526188644932744345165863977555317814668959214447934519796441851549895689591943636867736268244387376634684676838514177593416735442915462629291942448996236799232423758918737821945734436114826148213814765455448812244634125718539729186429953733746199599861712672579119184267539249178864834992247137936351894816794689162452564156748363352742321678665899844249824649864937158126972342234538518752638921715516183217228571219175138828898359848158679415435433845627495229193897553584926559733285724336245414168497798333296494775297611141445275733655865494771289849843866383755119685924391417381274449976241641498999328358167183417393916151989878791524411918258878177762659537395356687778582369165739885737466872448115744878774246124597232819953753226494379784285634346526491775886536852728136588712353882859336778353423325964734959247422234811736977298785157532335166178569622218827794197741864359866612564674466925434197163397263734869226552944475773479698414686952764418512749326553513253619285361682441595426961292526775673217376418467889585595646293561871597137862651597146519118465342381193678733783486936836772196233223589352529757359823498597929331578383434398123895223973763685632451683112813192494799866223766711778978148357586855741351617188154849644468916691165188149846551823876313993562556855768543186178455975265411555141596349457954788384799239164666516129954647126833392213118454114515591754555137246366556391791141588453797289813437983512671664593437696314294346134374439585934157716236646969572897241197479874454967639216963942755744581468792287748759344538713277525551211438193956879323174381942485416547356432128939247556549677127761574126117919932667219167768533579961572252254399911916681424669555693828922352241142799731186949598768461575589693752624731224263139964911459318584645917128444546322622756587435698179781613157688849914562384744651428578773431214185549666139485425253829261171568813768361388639234426221337374164339155283945857398711834541746177963461764139748628691944917423219446411713687558316399571222532466896867135669488917955966118243723317819365394194778164675487659778468494914312678385741168834691547475766986133852315421283452496943598186698983113535543778927529769568937724924366629896688338293249841593994329972861528241968373255295484715792877828532527454668176525884353339111863915741996893444822336669569545845498397876219591614369196959432761681276877725675991999484326582649556234794251551538577898547689545148316711765718644334267725657261989449426995659172486157522227215248181579143949977562212434144547456494297589476123243474678122856485714452388899124341717598673211771115233912912346395955792122288298511711812134564857337429537445286365446438873167899531473116523948562115782187765517544735286589336436814811567117861234641288211653223513569269845867211238938992224464619535319884415426119918138374734675196974313634345136928754126473972557876939463876457222522157354488165758683979414926167273997325211676335611552842447154353973484532964425478551695499624921258692787928356191258686558848954613861552376785799547292985869238394349466934413367965163538441171593439923353578264768912846752799132133257413219585475548922191193384499238559396723276967176275383723636369298869987672378874312574637354163948935593628496835172433157454646429967128958421726859164798953684579271154886867442347715518767113829825213678321444115555421921312274683851571614114558999191119337685858996866357612591498418431187563453947563223263393132874873628754846682993228437639717293444318593152239341284835716424657177826221233167174347827458813519281792714119826251732466246486315474644955925548512647261798428855218694186538378432147125857633253112319852678419514224798461675866995879936766616927396122188664163649433187648241858461667424739972815913657569455291247878349226396686942688533932946633356266886454148285937321414867282617385839233849433154974469167127846318221494436539737262168779543174875824246888769466662438372478755136441827683629275317134262925538253143891152969499113427529171886989268364551489398539371277355843758674819957785637655661375768133889261254721374127483511176778956872875246374565213453451127822397464977695941351596831832492531266653412885729778351322351414528973213389751637351472597637878675886114988942666692841584279926594114491285342899963921327329859148576684116185962362384914888692448196387995581697735125493252495284822611958197671171519735963382772823827626484371332294679818864146337988625943974183559329115428939637478862158557691633433964667629456242447373842893135312677337163676719536699677979491557169874132692534193949746666519126993485554696995289153698359269747986439788467874879149853668642331772758584271657451226581235467334597345643697431453882815349962311134686756488523881871314289311322561235773524782869798216137957193216572724191267136846449233832143798961269384987661393116488693852747763681178744653964511459634798364612698462727123363397359628454694754589752352687717522473216565839277141275322192734861271727398226829925456544717183199171691511182174517262522221429326376336445532882686748959881812449962594947125273846531518489623518556959652178352894944771623763618293257354977256449716768944284813118722128733466336912685993382672344545317543165745813392431686821264694347643116576895147996678684842365929229767346839519265823217433814725681324795736553934343875255536984915373746471572796173587938526826243415943989167664713495337818432562165453358913484622145715647783889333648448776946259528972631828741195738685278783533429582574437536918766274132285426363529762495985752467861178419125377242361769233369946142872774399993929184916333236738915172411489682481871393516177867454584532579618685723163551245871329661697668436796182337341727848794764429352829428541365446121778144475499472413366373725316384187424954989931146774934454971378929314692674587153445681977994785615963131478174316865751441718278765966994791139615171114174891766152642111914873471389587866832436598688688956383299258834415538177835793687195324329192342883681263643899599121442332364442789716979357296187131243278611768539235149758457969973289938995858751154139755541447645537427791466471862746281213856219931591546173158232738649825534425555518915199912975848728161492837377167576555653935696493432625242847584139674766325964295356769843481773639815535821239754329293431598651441873455477343664572713742697649626952488112267424584857917561432926144954159791947313193659782882496781185145948778968333191268417975972476869636422245444459379976453599165927549753296549557444967226112512356122231783737451646356757996111612735793955679643357932621321462634993387655617833526776717833175475593257627319652129698389677194543768429148994194854671528337671846677561358658142489542264829983551296132986789837769885266254489497891998556448924992517912451279869857693336927416556347361488364248997129711442985518234272987311189792762795783332945452441169167146193261648852155679724729626328928135187963167524485757628238139832238924221863211775445268959843954846267344464341874279974956231515121743179492477785671966578628131114321249387165513518155817629719149154181785136385281661331392195118316374887414923978912121139529359886364995386574354356369291125812536816433979395731355274365755896587128415334817732258474849428976577317839391963178824217939725462192774794788986757177669431967166243513869657213918564416593318712161247191712191847287736155826932945654724723887515278772354846939474746117486136553339543727328355629239856459914325179442973897458261155781681993519443549727543369363832899898238972325186831156863245324212925721842349922926412736157468569931923146137219759812426142787779651964566267132912153656735482346332676293886886981235716244367889947655924412198911479983328996988544135464464264292281411291687532735351686192421537566676633475556972949648771623478925587714259856848883758729946748285866269155537416671442426891698184591594956686343376598187146944283241535193626742471289782475784998941449791274492519388525883362166199958975314455373123491627822521416213634177584785934186678818849458711916755224616124661351225158928919674184445845292236246641432222268476819384892925438182223335451277868776155346679466588892235352927684188692268195632411523148229877385245259159422562513715426394112525941746777723963133674392583635118182648329495798955374522774274972125846885455248776917174481778879463941475798654255741189255842878162198577333636191217923496674479478324945198797617498637393529466177461871648399938691319669495192748725778617481359379135175574637419966737476489297119595942314145942513248666686385234628758252545675998754312839342614388182245513982766976269973133459257452912299354952557454757892826662651761695189244978443133293858823989948445369546479671879154934233116839454298635582579574866388588161985495168527653419885513251155133662267928573823891242556459853128234926673943223335379824789981713294651855176488815885364253222432796871286624594972597812123256335911818479728115354134135451873362433269131841364757158583579614847143955938954338924763929879252866151544348661442718999876782967552616938784737917796673241336972132624483865455234681994916594616757196372716218575563844483753327116543712333968413696935398429119763823935231952329813322153964928399593915199211181312426623914733771962359269267287329971169433689775791626532249962869764797956813382242884917993988854233827398526549727297886184868371552271122675536246924532816733777793883959483916588931111673849418786171819119667449449396588538386883973773737362215244692433351739926293464281219614962994218382274783828327346386572772983811827284465187729348995262259431412921446955516549339835951983913114146622172636557531125112293492795457554716261813815295423551729254898358765845135453884139291126495211186451753396575967786878316836724368444552299685353839559223884129943397516364787971834836913325218437177683851646638111581722233965552329595568111811749829933228673685643178879958832714696926663931484681467363156225575966632824953311447263356976524929582753256377411126352838579861798873177695345336969952798673753439636486818342827722981658913356217756337141222893972945736151562346769463485563859853325929156178755581717263437312643134929536489748718424656486441733134976515488249981345963596479762159799346261948962456796342218324193926631625422466134658767598897197649712243378871235812659438936781649763979756768248293235826585549515612577143866676887379816469291659796419675332719536326852871736796335282615776718241725992973442164483632118678482454844931274369797959959717635871254456464799658343337317861437443777313582457271593123898831564631352591634241289481669342488759873923975387495423388322459223999381577895533965283913948869957975922591954249657838233817713491872829994327272854667857627755732723713133741824381965525289753824283386669542879855316825789961368597144997173958587159437323349298993382988383921725657478612621428646635452653614178796566618649492954499653723229179635285948877972319255435646644495713286963659789794337689344562941268855119987957468936949396389415389789687362997789473392829769387245912738827586432752733718626239739892673421953227281551292724676556522753848169877822842113469914455621994799676357532631867756192643631991857481224286362836535689842931815554555863488571213661554637797251595971218955175322366727477992141537648444739261396867595294496358192725198913942528367786115739548611119799182244968637147611453224224193991214499353855615651761173471569669818833127568132998114232376123913895996743434634333646762464755934433196338782914377743977442934376475997865966282865152795977413959448224619138214619787365895288122923473375986456223949437845646737954272679214626918741414877439114532688697958449313354629363263615763522316158979293444371586736313444554168955864197534481954474617952357133518817651988163419671355589383543224978155852173149965492339663874271865459657859755185326272458755742275139624677186496823157823395393816766923711351942236817126556735282882163177269273752544989551979948153451156973147372779524512515228553457943256973941882342382713546781474677264457435568686756899566583841556889623268926581169925662835779267218424214852858748194276643558278919339714979654543968532777583374396255443397652847788855594731149545188317973946613588127489483337734545341524985332133662589722383747259212699922214479628479518872475495544444554981931768619585533152595738182579562537498345887972122583382438374437156889367965255314622664591733448915842546842461623778216288422212684737221347317684494913843944192464186219849587926325598792281237634254127165756277727595693625377682983689154662343972331682928776865123927374496674796744835611177578768385633389648213686145142798554373744962825736983576979148983311563968949422918346844747635755892187981721999824397671323798267375962944123195433188191379185712297489791189411618418434332892922651528526556516356989422581682746787548983533167765586744712875343976874127323997556911479457879267754255887176829411437471967874658153529237797737661397482278532327559471939792457486124331263483948875877746782521222444541679862648124788466616517651995942737782583969795356886651549134195874932127186521188543697488797274565766465815814767116654423149485941566957547813593958389683539924959554297766916311138977239119495348758324914534536324935746774297952783172524866487878352828336831188295446721368945871942754346344163586967983876442336491725258553892497295361915138667638143897176215914341449841586348142221817537118342275257216728632743833576277181216522332794655729991348854553463114135384548919718822597952287487799128562343222994144637746475134945781815916295697951624251663946314484785383642436387592558752481718286514758989527367423196234214912561846524564271812121723144434579562123458865856166128421664991756856291967542956658481546836891485993989534737393131163645125154543731674136764965861215716321563745893196661956441561932453598772341548914988532578561715944721745888787176938175822882376647621999757554146853334412539983743743617362655239462792854741915378449165229643568638723286376793536421733796142815585884311878121643626984488668125584813889689744995584823677468816187365233296585133514679495275783329721149576988239585425923499621482485333921633671112594622573511748171352325562573621972128369323139254485822978238225426253174486311637119296919721352866174492932884585594984755769845542771952148497836233597973856291476452555493165577726312676295232867821359556913675215362881484579251376221721977376713889827264268285796768754382843111992616823732281757422848132333311371961223431595147321132254474491486517849888493114916231567895843483266143882972373874931599182331535129396484521888279239127249282794723451611789586499492915824193454678648625563292131131522812945393957727162472573575526697781319595165771917154381842499178188927433799789584823796826812619492134493361299571748331811161891993341567576433497239119215394384416552119642962664565485894322552297496269355392658285574885949158687313227656811528964343736731599228441994664616491735997669618539353252518968597679168624574425431656716591341986882743199439953127587147269158746719918852836227876678284299854425425299273775552918816314297649971589415573928927798219538383279227156694885676345266118835143864557196474832464969461152656831176886423796741227154168323885992471912261744764579775486664253388378394368544971836474849244472288927433185482475992375288515534424156365792847336453779621974315591226595778581915382243349668228121578945772873381515737583493185143835313589717858219857275484888161682829799574284169876414792587656737596442751156933563932979734296944587652657239485667664537846349787452616338266723477739424947915649619221947698835617658942632286946867961521294643497281343459944538213255263427756364387422416647467762277418274799917758879434978754861511316664565139916849146812176226146683138631532114117797793414917575877731773872383942521849131787265726683871997272233296219377884455914281388196118327837754541765256575592481981723496179523589913641999137126287426833863121911265254166766275926498775875956961376571246764245784541937423898935572675251554923366367198288871427684198244635761386184792678621377786599753227246734212369221147794344317438241824123358359253832356576228942912324548454368441656292613495495627961786122855811411661889338889475544944127517647583662594372228752935437287839578725864299312175267691397879826788264463493581916665785572352939736173311669659125673928144246298715836981836746283384188511929889272759842395814232549389372158966241123253734146289297215328225628539844216599127136646158969412363257576226927619273878664614631946682283674344251448295655926919568576834167573616325769251741786543216522267327858325231214283735136677684415188911422542951132624272848169576457398531716627768186269176822546174917177528285992527414984938534925512253961451691332629912755245696711995149188212362363437841499879779372281192137253484178118985951788995985186711838346146744229296884472771449433357859323634453141477655679512836511432695139242379933599449532172113362764686794796835778711727826132218665245593186553322384964577787442955415723367588616991348916659835474845151788458948161752226199535899493352287971676741863551313882621955154851717479455699629898958154558722791427463821773751446341585257436477293374452616749353399825447973683929354325877693933994437125382663588818386945247427749541978144482162989573985726391235223126453558646674772333962975496687222466328876143166451547975534244271783579173489924967654296419826884139946274254559314534254145623925819435741195116558763166517799369212675774374818574779311979796696763239546826663129959136895464929232185566112323217199679114495318497852452473693391257957487717647211446673832159164857576255828438562918181375271556294718299923767748556573981125634995713784851535369816114115667147426675159191537518118318764568299867262271223853653484359695414379996123233418673822135185435853842342564895752933145544985469644778924492866959253696184529473848539768933628532799288538465548381365158498242391318962887241178984587227929249161866845657654432679491182186892976469724577891968997995183672668394275521291386165754153319564483799249367385881355759988735262432246152779256181646535397613744957442418324932175617146786969344987228959341448899512271867781988681484228352132881187263732728477415726441633621638334686657493132513146198359312144493957586899959353862687616711149334972551455269444592262831735657945281124539473723937998162526319727628971817178369858755816337398969656746443157132897377819628395369833366669273452177756518437763635869426342576663338888622396559135166599745481514492163292845648235783546974125554551778852415227675738315727252617675368588999656138958521135385942467225115879571365297118537921157868457834682696116615558249253828543315673723423973527231144325178398854126357544885496591822328246932424948592869317957937169863555786979837914734528212816783937395882864554936377287267836129758237493756139656353979752443216138668732433398824219984118239822677459493712593893781181813784841575414784733911278277267335798745285454826916123831445278536481897342613212694976929436277796775498559668828215896737235814469898743618498219677259963352678467332482229939877681577691848584217344455346234872818578543381611435768192714181262118762181151173549357526825831932616894817915257182723414787879849428717597992619871111588155948771651388178238115115142957449326369388195997797297612796438358885814612191861479249318731555433913263362438375378218971926558748955279412249667476273364918872665172112216162698325551849617772268368577174134955389373323889995731566263475761289115326594483855892517755331337147668218545821398449114435458161817636489961889712613955589394365836564459337217467651199927354745371795538158774449538338953326752712355268835368211933727147612882917422215721539622884587347315595136345617761613881229832563912424947597272233319412284439639771164714429542761682711143195152157327658511686645716729827423527248813653719364734396187728969674454618968984357675273854631597842293988776192768165459613651234443631418997963778293152227349773926166846532718537723944676544834529994547716449111494651294676927816251821554354383657776123614394919979924358766931716217568786186984775219966567528237873652259747124524491846697391188333447311911352782766334963961783826547437563621786219594889857239783435161333381919869237222834782133549562781779745557168249518611953898965832795239845768628378362641436819988492385751412238864127259821628558576942171294989381184966937762518211217326614541539825417173123824843564225467521392821438639911274531842288938857939161823713711252136244946621323228199469531445647251543114235446246172924967521135279489893335949546547943674676284122912134538462125718966323831233423525876613614275979411693714845286662322572988376215373434727236892924169268975485812255426248627718915919897336826921462965736596396696675297778371395492864513132699157665442267286736812352544693616263796822531293672796839299459975334894956954212379953962897783215485878373773819794989268736136474852687855235914492317179662319785844629922422751981688555775743226567469519685673631574842325536173798658616163324262655776228825185848688284315731775351852633231515463271511162149563558621932972427634683679883638974735627824955697955213189351237591962543836375161671778693796544431573765393898756723682752385638775941469649524985242326445816663157183956987276689811545825572866474768455173621511643935472458984341274681733782746138565598286629537984857136298892646986715367328996482984513472425123583118639428156155594721853354593893666598493916445717882116456636881541368568192562249349874436925178995841549685818742528962554941749213166135595368419394548822895796992613943568298128561343522981471539723168777588334356686674711753524729586145866291758424785749982453391814381989863684152535523657876856273262147415719852384548215789317533636355726699827161872341161722873418869438399195183296113974251599286128847746244452952358564693429921794466971225418633378727969861829355942953383235462233928894775581973157375688924136426386653191187383911557248551182719354453551378569494228953961139845279434541386225536222497598573989832265284795246757897435283462354469978257569235815557165411434769757453198122592845641171923487342186286187236229774861852188723911638236848451336792787776656947811613396132154623781458123697486557765377463714982137837186724367833459185356553655237935596722584738626152696952473165414174223585357851199694722927466764175423747332422279541633367824232653936667788795647799834616937193374739416375739499371742234932259622452178541569397459573765879731866874626753671215252427815777753449681366513524948269848215881214972197536777171787751471948969245355996564361338993949934728643257556292527549338621513874727932676386326979892654793981353955222838351837827172342631655859369442266359139736869922887462387221346761753635211193289826934644668333298559869879176967559893258872281935911896784389933713938714822814394372931367249519712572853123452669762787491351331477551753997254128386926951172119654738927532833751342937924124989241132785756932954237828229517422433681955658642155626537487139272529515168723926378921758361266318258555426617235826989815831552256111542182895286784765237372487987931238218627295661173899937525326228149991629185991261253815226847751649691498896912926296727281865817766895573274365874444153138517283753191427733229543857159789587862972912674885739913516574423197284374431819362162312858299398916334666745652666887962761688479912377849495561138713879747584585512285224668761431798662229667916925425789546587557313525461151652173559493931685324566192996151158392231423481912357857845541534353466497645724859533127659593827153682346796282924235879829991615762886455152254575853834623674249327853257462798183456727973376398983197733893619834484182319939616816688866926817246644774666526117664449932511225779156591953663227642633663785152966516511655975749781957315729816355785751238691458553274634615228697262274833867722938391659162931646643935212873966684749545637781445636246324599967421375747495428781385915345241873998472112633411449829354667745834751851914344486258282547211582846822822244563187885948647586679262353365712911689972735574941857961296756946894791863499692766362479834428117466541771738715432467451892692337771747791571113158783752891914581643313451359554321686775855213266586722756691833992477852462668316877942692674863919683828974794372975124271666856714985672141467553955262228792362541917191245889175581692371486641649459353831737265225341489943896831865237219815426851887772952644528931641432964548527284389432774566621663757192843551788621887233884749924613886942918769747459637991981342421113114879843477339938116231362262572858722967681482292894811836182265937123861719937116487371777984486177354334217717445172948736164661286527837597231637731593298555574125717456268332993943353196542944313948554366456739954254617891221514357573218671666971339929931971396143463131176673596596489486515998333535533289447897534472112412334685138246979758391747848988192449941755341315145118892589488522415478893823425826684842679521541977766147368859317782747688732729495998514388218875849616468641469949691928738524998758484247383367235226889639127883621134761987599191778531442229479463738826575365332175117228955982245126763298621627137838623211235646292321172244845527278588492865365596613626991431158895735911436885445616295137132912583963896475818467976489181272218594884529911736433961868875196855223564553526158254339116695289691946282423126742153953523931789772389432622285391575736917886752981822973192521567929519287753849721828237387323924854863528692664756467184816917482868111879135489924522992681228485286273964493275536625773893731249745941469676138581967246517522486978814761453211216829369111248725415781716137147628543343356116657225285777471131875218333843587188596974721724791211933215554253993599751822191111113324867273463612677658757757757979255952297367414967843517362968783278377113643139713952678865642868676476649942822117264149483667425153616598679878594887735981633128378716573359288566228716868969786447184327245991513373858654621255754164778266216533627472723737291597965789311843193748811972691641337684614677877941821817166139162621189437214818789769466968964125123956666135813779714399195486887172648141629886767177975423991717859564515484148746333874163933716662922569763536168335621913174739821965731173678599961952259522494378751767915763648643857699727945821785586841215968343992863557148916454137156642466655741186788578123425229763998564937135593459251482993878167823295897346581484432622897693474683162776323351693644823472618965361337868174232496767994164859365497172979291421886576781256172411218395223355233771357352847988998727239553975252275891975663561231954797985418514983971436572584678847636975825224411343889927374258812497878388629542829711447842632761447265125968151921853637789845888693195582485475469622489363749499718266295632167128256172435475245959568821136627442948172697111595541333425986631724529688378337872994235614355227478326144875563742953513738341876718313599154218313543825558535195926264168488318553734278821431822427723661371235487694486527598631292567485496824484823374123866876921658996577925287424725991487868834522169859468191462741778565336687783666582381426489566291624271748994652771812349275795856263236135479547527641658237612228442934561525276839884796457667491593839982398871759228763418148186459347476163137848624944747554289122758454556348191484758412711712886621865588387225581329591552639291276614432254792723762796858776773434676881169221485555931716484617964642547449477922525485922473178431674317155746877316817145242883839241955418995626296781395472764778663193982443951629548976942418264373561684888931873661264394191437573532829692678834841379668591258491581549586379764781646495419259197152199736782169922551171985795499497468937123124177265153531151899544436148338545341654886882761715147741463325739783262649725776278833767989551318524577458824431214479268992923764112745537969989326322921211586987952594389277198621712621768446141281527424124874944996172826419537468219612897372662378448879821656366316485112277394937815686631366786324725832551843523871443458836457727281334418559736769994776311182799733153997769446335711242231289262466656233265677146258361289195331776397594962564278985913822334491939768955991496385776866998437329275179667687316774369858681312239646592241951427742627575516628572121234228261835196634263724561652665976881964452823239499736791856353841925251331643572555134118633716797212144297545698191489253433992613725145778337136165189321529771842444811624336932331252392268142375656617939522744658767973786813467827619651734278854542619299535116776732793191885228488217249659226787866165953573292122725579582141736322726862172272344792648733795227497973171297422799854626986597135822928937668746721973571119622283384177733515276364411311262378515892565725232857187917923149881479516977489454161761463666645571412818636472877843977132776132153333185633899574661463641243357571878331519447813849192195329875742564515459139493392319732797271326776311113942262382253433149161648357358543667785891133335321384198823666822589168162483715832242923378849997993718737917481514694811694583263432295896434464732113962418634866175553195432793893199139981365862426714146296585784685474599975116766179699237695854491739637137693289257159729295434496468161629838742547598327769119546432483375149382932763448347391723851178571499692767991733451422696714451589448514293265399432492151485433366217516623142175124138256698823433173635948145537848654112884225432794177971424187842142339532163233538215146444127221333385482793846756369893193824857176613872165549155825134316781497967335431883777258651181649588384996438416673497262359314252979368892743319538244478398694781617586651779623537964682541828978527272258119453138496549631326267784997797733145875328261293819586874554316419986327234243422259746281412952749469972285426542594113154148222147934242674336376786979274994186789194362684311887475383682971648557784842162249976415662659514358126399415628495936481455496629532951889431179663292245664226268253141164179935334347892224729545747744142834457681351571843785258923426418743391335372345422937828149679443673685111135566768449242289923279337727739376741674486695685793735496168986569526755313761349592831536434969811584915179293942225277719115185923413819729913234532292111599191331612573474685137156265315214137177125462629913727343853363676483995529572572643355531767924452651192139275338554197162754288352451553469893746936642726925758974929256244397991553624215689566857673296526214268428749396232716564772333734151891764583195266812289311684188976143481699225785894734691999796389537486486855434787156145914443384931569244676945649344834377484785831754192795259183365671319677251224533693217915241796727684399411754122232812335483155623142872947248461542673912316757961247222935761715763153262747533645467559926976441644851935667822347972863449874837212393769449564251436669547839541769135977833247279735688369323288172568251464172944491326247555252497212247553546885996518243668797417522266419187476926839974853584134349881778425916587385659987399624592479291789227954529417137988337473393351373968498349941639463298427642768964783516398452386496337981157842219451978814842561183771886561671525513383775822829177164619666518958175442822983989586945891549334931464544742931988463852896738212247681954246233169454534115826849587582796317614447899299771253191848917547288521219128184999398482273826543385395296984383313149246427969387716125713132352555479921715624383794354566681725252152112664882151566821377459874177378433712725852343261985771267974616977148524746162141426433219569156759591864458552584135346181996669518684829764812223646155244798648486767533814824277881284453316944619252532724131698617141362855215131263434736785456959185251679172197438791359894399297613578586585217986112971399219769816754392792499199177295116972852426755825154942749468968545721963437918492685869695489234795771923612442589975924361374642118188348471639536827253379533632421345172144975566281397358411542656953155453898495334148877732986571776311579328741244912684662227374993941762635648939186553574281579764839983435237926669916235362247429416549952753228298629136149782612354249315525324184186689467538643156976317739137435173128761524629315746518421963451751427569721641125654486471725689722457238372383757286623585142113238859777896269866428675178287491285151841446222853619117826655663167241274795879231131811465829116829835294681682595584529991991473355764131289339777137126916143368734136244266134635336936529745518812425731323576117619341324754534675136167325716575399419775128474877472293673329758588555957784162798817164496451117952456115419579359955484818818514737447777624548333852243923773936658335976328249425537729185378743665162583386327779542449867649896392438666288954897932817461449978912766484168547239291846871756656631258554397999829813489365819461476221539339211191338143534469416127171993813911833647989315344846543431711992174336924855369743286428488477574796497762287951268789537364912389718584593287212971723548848965846674933242753939991244937713285843234546711992782795286856165647759913663542729988397971677921685584739184154133862458515297355612975963367771846182842351976336523818235882775473557682668391742122835313379817152719875684566768841261497477172242928566822587359276324941547761852698279326932958579864827583668728535455147133979754135883248899652987481293479355757235547327272369996915352277543355698319937152942632165363925249619439421936229462567194375788648671411513134959296814132698462119949188391685495974286435251369254152871828466754271793217133157342538521345929236395515217322945288848863454267785225746366569968751546761276754365829455981887552695279187751176657572971957613763278286851857422159245249999175282999674659381486391714682688197296153517435453982852229377177876381639372727995189281117723499928972998169749257155155737965957745834649513427932437981775251924396659599831532773562427833834253717657649682848184225898269474754428162939193891112581487235599831726898716975184232251974422394365855624212699922147224565584999384835235394376478991435783273199473885324741368267288756963162198276698871897612339185771876975882542228218868989997554432937315459562372158756744487721713543986832968153737391628399351693781473558354625245396135959918386223457272524947466958354244951572716424565758374968783296481437687328564927754149827236764717465176832223888393274896552832467864447558737556763952586567714489724468132776243436575121789127188415228385998141787279257267865785296914493197264972786492186554973653872281717284352882899344641785973189251858273241329254517475872188194978675999921834273929496494393689457845637619936227257786215463297871444194887518213772482828937715848237525364165342471541344925387119652266562986113157171462889589554559195373882187794749828866711965864382451667347711592467927822418825161936759429477493285866115777364366829752687426624111611277994329781765712544296696666663452773541516986231548298654219535692945996583215148956711121963432526114552872375161641633639961222612167333459856899762925891811972276898134127687452643923193981187676478768326162236427727914913668295962883598791342992693173238147643722869739753742891298421224878249325397252425614633354376642455387796411543984435769186541685292862512555854287643639284151569756996152535843596669677871937912581285237611959515462148249829867875398958933973318513226297184861398184976163483323543152859124243951337843172394447731915717222425547222527546889542532113715756399992143895372226479668839313832721824992538749366213884715187158141449572354271782879349748433236269126241657625712535498221434149851463418169639681129831874277141176427223165832833815882117712719349851247529713973452551311472295188183844614891134279399336545843752925374663656163882714457731195285513967233738917177412185184582943238851123812529359366763122215437211313483634558474951342361884413524753926361197482415541618848289455656173972629759293253927736761325922219261235155359542224689611292312237251754289934144413364374494517322386683586899229555872211551262381848297665687521917127261277396381299765223754754455179287827434534318829185469795281299789423866186866854289158466565342374558956432996414319155692235452685589122221852172166536737263222768669779744851856418961666887953718676649915999539325382869645916763325216685547469886161135425981112622271723358236733725265653643794921873296918581752167522876155545523633313151125229972959463997457619731935145457434438364553287847721623115649363614521774183766436486686139955125466444742917449978646149125426962595957947772679522134835477853911586289856913855957439976651752789398272763958333976952517572549578385452745478575151299846989846655199253671436942861735323396851359263421364947223285516826411435231473597892593711251832352384797844984662721172187968284412781464642917277385373978886216374418663853561378795981779288815245111376531557427716873691571183672799253396137897384552518595753813836966679348966211459189655846138624379283988599633532486869363134451368656315257499538114131233567493248778283923865675967879125754166833651833118565951748649114499973236319411256541613366165585482514224264178632672897313742279228431836243994241329949313419231174247659859253384278199329342347652317381115333749548379383316161271798898331594547263289319815821791461283241575281388328288561629665683796843341379999817662624689147316981113231938819575646193996727315215528521481337791399688269878289741582619632312421379174951779642689741694723865881788963139984152915954235519888955752953942336525911333763742545811995397421962542574849114246736625133675679724861133133446917568952318765736191914397422921766569689455827526626944676677644188147981573113665247694252914213116614741851227531289694684915216755139114125667685544892292691166668558861326975427796815974181635481366297875227875566953469433871996514172583169695291436457744732362668816112962471522957721172317473243743848975927212882788998645849213485273674384452531321273667468697215472798222465495412767412272882327385297333762293469189396384315944543276431659875773682219549943387593946192968435684814757751979627921518595437796166431186272933614665514946515211742841357531781146586979531931913186211852721834582168921894884181712676857831367463255234412611779836412193919745149462782851828791331438638681185921187263344113946177749698695187995721144344647244826765424922621291285529972785176631273464635645653214992261666129135372634187542762251357313815626244396693447513726642462542993515835484627368529283228362451711394622974618451468579496541611639991188348273218965894446497558337435268175374179448772429964897529945632258554488255387372651312386758764518846651278896952871189553327668352916123893487564673426758494238219719198337973438559233963465286956954776363694459363657884211796382668285444878893958736956925642697415847224993287149634134587646376759472761178773624937374937554119146221127985146538165547382693696196118816211743557112729889938538239918527482647437499387279932744534366114266899438456973865938471716297413191844768355631213941999529259458531817641193114497387347253996749729472472781928757369174263836796534771738731614221136443715375937284256928967389493945296623994613937538425232262354873424624174265817758152367392667818269456773363927723837466513382197933599735925697769515155373371164213175666124789629123448775761181397753354612564465698555922929148612836286342777335179572662665325598116649716428836872837183613142743496376718689166258965215419684823449119868765389175675126875256489491465242679576923424912325864792728242397244735166446568853222383196226738291696231777552763891281712275174133745623367434613722691717324636981441676319568849889869571942429554511139876748727613551434575429759762649313275835178222568999974839193924221693919729865655542825714114416464654535411975519581152351781227572824364451991748744968927148775867293528598572355632523226983558376627477124258611662873461616533175792593816567523699935985536723293231492156798967858336678249557669719715474169754565133856782447418377725121984339732116675728458276847358246668631722388759584391985519432987731712931795643973159418341528282262453423876163357197921162881996131362558144369968769664742731333358413216532328275141414576598822652852514646453846766123662343598674714166511873459152327541889556817113763751185181112854823766447947313577575974984167548715248842562818555142349645278139453246382362217691834777295998833146664789899569531818626914687881535893882736669651392892359946889269437618365329248338453246824739572222957468372284839243723985832144247874581799181984145343836931343131378247146933437962244846769162988892585187421116221584969964962841989487119128729776962957342425493331831742513379965148762892432644636699748175961465331329542695958527481297682627149161914163557398926944613864566462353657892521323916366542887523648893473524645835452984172713167735973134487768392481887957353916592694923597436654542236959249678848321471292757191323717621678552273299128384183114274835892737853163964882179378785177565638393698884262379215974479215776516755533848965875351596417864514188421695489956372431161747187484226274613518125267353316924551972598859198891325849261652116194332116115885996589485459548247469569169647947585423857791515249186982846549387628993552692995994582665328236796575739889188577825972493215774422883762569316987474514713289511598865911821328954414775983943982866265237268164594861368453641726221744551356596963888733885856478542876891549135314175353847465218285775828731251568983266892212931597878641655592478684273383474423199953896456483341547875923454752636826552998213256933434667932184755399397118333834155421293391665285124724546738143674674993869477878159493156759915373552848664331134174477843623258494566432655757254479253415628468714346319775489726731162414359121434964941478359822818958283284127423716743577558648424342659961592863446793347111942466521315454531763432664365368484834864498741716138283619925643135311638512573165884243145519892332395134361577155468772212181213332644179137832367143354352473596759956968541666461685121256415969864459212368885953455368898384278413433558337712945361241968375215447692314974176613516681418828342999139327613363423962112772495594496227887113344531639796835374793324892612845187139898571196565786275325498896598587235134671249755376725495943782484896253377132569139568943319348626232547151286288143827137159811534767462489988781963675271151293469295323221979966222638633741886795225537624411932184747991188657968521262692683791174863861626322163988148297565572847223265795892199893612257713896518724183572679668718934514773423174583739896752633415665132363571928291179753895135599992238565467376374238528911469458651497832559276489349939165999754773465619426965878879865354138595731271223727394982857471873622283191212373182479564291377539547846856883171328264674681323276849314892118239946392759672887562392682882614598136291157146873812969258217667369978963766343523619524234978594471166433956397557598821197956483398831125645389939791711494922242124125678196188957927965347469562863339139747532224998432167113288519413376928149338269365965283823854171662366298914921417824195371677623758367257538579269568986943695769685399842689414459347841198574432741625773522856771454353291532686657124365459126151474794636895359969485829621326244612974543878765693174135256658929116541737693952268561964439319311854826475671786531427869681619684965592168146589621486344295253548187283985632593521155554978222929737825487526868972327714535625687369796558134811942713965426974699679214916396471541736268855224171881272719336371353969745145453431557516448166189375238543176329354914648553152977481334432153178468822556759847575596929935322957738864348321967316987889212486957834157877863683272849768887473155359137623961176269935824541845371263834119227733625216559633149256448649651323585915559492616621154928873893232621165914155616621892677867279331227616121562212292368934641463574245745792812821946739173127354667121591579661754326113313847383984133989944918328829141233952149443749633932854635528639824927861935886289363624175928719192777879258856682943359832692611777453477253721814147919278338395939366972354324536327234155875467374971185497759371993417884311948334332862547364363592271681574396638815848564899148354312369679241912485231519514237658764731544633762174224264477231896168221564739836257553981593572186998943315188793548746785822938628312632149999344916563945147898728862875864787177623817321919871646734219577275835126757846623686259669616224697217772445196363987842783413763362147282682216414187365584759986179897955166696115649277552541148126712217867457729637371524526327897916572396867839466597759469147838484594171753687327992737732493231579877942119721319481144184496443329113113965195933137334663316448338638824224796898521877197639452114875396565143895862571222167267545164629124492878924936231847592997358258487564455746358433182161795591348994329683318141348434413852775564895753963756779513843127394741139583788153621652735937656821822779947642912156128622365857748895799463553658359111237711474354823657912377992992914574611935417573363488277366556893254346775422547686583118643322546859326846181747375585349561613387228792399373999537162926977295816675895621929853568648135854334891471832923888133977689264587866892774965153755933691416854431819186472876251643892842315748639537165352866829189263383846618559356771856436334258366441119744769335291742264669584138127992467389618772797253181483385984129747617464643257456494613191492364923658192325949588848947966183574748537668943999673476263762898262914669454653629855462637627434415871626179221195631683444166317784755242152152693661984381811577842355359554513868956364355293976189515459719986779496721339525934974518478465932961542565316898195445373918511796749875215885584137655744585553116184583162411812577841388733934531879174215286342125953725118351437344645153686887271552852686617331695191468846562616782849499123181571417291736986554648567477675732862579543232877239975512369732897144197419586298184644759722711524714544482991697151525587657698168312649748717512553991645414291929274146816556611899964493713694591994585939689578554883243391651641988481338284138495619848993956144782724532843663223196895281775242313556539895197316885493379773984348892669179788477715942818297529387454369238966635118289198659678312638641435976577395294958715525788441372769397836345729588131597231257413333915547119868761629432446186419691154854641396466399434941672531425889253282717336378552617659691279184392462194511355315159929936834253288387627642172576568451833258466293865628725871526252234548374883268529381757887411633977793172376127945929688337489676245532568269854344292925742798322654819515599723232323786845676632112952491472574794853437983555655749878894851229585837516751216579457236529531589852692157267623558161612664612586635749546116451256227373633781343726759259784799411127389557571752227242929497237329857881538592714337437356967688563241284933284515147861357115852154172454672822325911135734229415721856112383325795797269689521883978488696927496766582449481478754582341922552227755798636762526874987178323335981368139695747334622239942253642568361329783414756877761785138374199131889128484961636614917834234135113925752238291741241713115527927299663776674647651621832363154863629895442716451422493639833199362249674844388329569731593813839843899364692534469232381669843725994819368491736749776823796867446627642472444918985556725391934586239466511991687242794233224572284111661649717411569872283449546946812774734464329296315548392986557633196432753663373737456644288842141763837192419662317869188851964821112791831787897473471166252544544694676743323159496413926269513772238682823138957696886482343528621479652853658316884523745996756793647732986616384535899387753331585247335885414756335144828149297691333711241526149543833647645315436697711752455219482744318737251818579544778278116161589361986957813656123839628235163988986571151315916188939843348536334861875895394892794777891643265651637217545834993459138182398763735335179461869194196894134799961394881627713612811581782251146274553524274434525563541655648356699841257589832376529584957863332314339177151187628666962647869981422218993811562428913166742631561571351641587727517794377529465522547681548119849619935686522962115653797596471231124562293388487842211841578481581936155373911695814778824562419593117534824972462848611956297247336188369757883965815819418111744441377331918295664144974785748182298711811718175578865233516414514285264235931477244656816446776193518829392438151596976618185684934714744867571611296756664122415865138513159119938693347658888255667417692513415374487242139855319148618859188595843657769644964956726691499358732197762625929395866424553377151248914164555574859491846153767781669866312758144163156542727485441427936112894291495958929657181111794494473883921414296261858758827256584762953994413918993768549264712277363651981272969335979984364371186341339346432444741638143479467982124946578613175147842268194793893287734694781394167173863242421638212551828857343948325438561523432586468343966159961413358299522569215928214817794644868777629765674976795966725288574241891766324621179674246655592715794879581832848795219774213373752128956138112971482357667784157359155557458545673787343129325149135488123866313571294495436829721159959244765912922359781363234349125947314794886819877813114537329622443711189579446135346677319171214474572428363864477845664561581727164215931216544227673138166247854364756855319721587778585189863378553937557528466233171579365673537738484225951563669797534991243895743943438474649699242541653833396489722458792651464527572845174611572716586641677938675859256616663823472934971563339894728278833115342434622777199879331156838238653785156223822897621725317229175253766376457536288149671381278694768485931672381195141968185835111937421486514593996182789263663555377315854214383871957863128363789419894294532719793588798525693534412721963143912151828769118462691763769863243348328193194839888955229114418631363261469841739534955855375938144369395269332284488862389772576881628125147365594379497354499868839741145859499636564288528514386259354738757619165574325165493117931393967617514969382787236427218248423273824198127285817449141853685881272581473181561293197981349618624862898185132141449947159811662147226834447541564466151941997192793385739472338764268353353151131458821757889654969895229324326461243217985741235124525346677213226447234797611112443876433233444987599958797796741926558652986374922816676336999981535489477995286466923545134922974392338127445971561715216598684913136938561168914184495143911381593286932136737124564877166185235442835128689282627994699216718252434935683611863551911839519324556848316567543687778641581412856539359815547716472336374224388831855734188858484515133343662443417971477262991451852175342385616213231856145969954241774782343762975959543949834247394772786862157542595777669873692958127612717451599966722599858943644414474199248943594653527312475815342641545347587842183714751221754717752374923695694974347459424784467574956215674179314949861248473229614115573968898272158161797118967368625812789617612417477167853678449929987837597737473189764921754644532325974536274472337728793956419621916369975212344816775879519461352986762372415896453848889715741737413531661249784867735695178949779832986911867253816376763556534415593192178893174689266492943363713922228987194452466895989216576666677566164498524113691621156523188734439768611921271132126768975856289155996187294116327983671155762676266665264673195773949945411667263738244491799167369343673637344516311649618523248953121463986436946919761512816691912838136678262742716767736386476658352917723987147712385824459914848928789187672442561952386286569351129916774816153947165672216242243134719979684878573849951653767969238226184561217581375331696382284116614959968716734256214732941339989284279148611926446718991834712639145849788861413973663755925177871454332117137324681755245642439464786885597228666641164517649586744322761472348892886326981837491723999937159837925537225297846928397189694667367611432842535136945654513959675345476551692915588952493788645978415149198387636439668826679966816211199826589922977759495391969581489261817719896561499838915854872797777446326862791683572957234394961614235712771838975169873212497446668138115277974489357567596221786688498895582821845579238759727364193872429591584831743517488914414699722671618981154495133733264413485542591389384713295477773224451894854981818278477925681892236396771967137844681372629798829539987173665359596533784553444486384872137662521162321776998337855222435172222238459426915737591923145643764886611452931413242243447992167554915959143183397419743433539174564859753151279819873115447344689173947232247128994314737562728625918629734446135554826562643594974636698932544979451995158387674937587389423721544534928857513996634362183354317759951835475653225431548764984658543615152517728351314179478833687847442592263178198495442114472155789837153349138867312411747832319282876119992778418538612385414422599188988245185738687715256676716514492116614286934715318755326866216216776184667136546312733319829431996694969552295825898227298941139688963828148519988719418211213161966258141781679431372172182388384987791859826858774762869198815114762737527282958335411419271679946227878677752574914943951816819311197843517655946248533493173193192774914779254677528758965264453538929375291546198854658264519742532468977811519284559465614578631766642231262189534468828176837883346458474573426751523438922699923567314741983457519632533581462617437711888923763636768916942292845594573374549792367157651761953493849966319388414217772748733161344239851787528829695868541746769182157924766557497773626781365173267859225869588265436185919516622416227784642458882581871721373412923792945278156284279141267396588856959377172588995898793423171745448455953911889368248469666531973898493584562597319946982535422791428666813162782674363415846915935792473578745892227456839429813371517764437826127762444476346574625379623393895561694121744492643169921259438875733135199427582787689593535391764976465397145213861718852471347534169689293714989951745962985547843891721179458342325619888242836214175172917731853312381195276776184591791463456677714814221888487636784639864521191569871857685356715267143483491446334318967482152567271318548672394525311949944181796826769526736287517591494792769341817858521928678237356535791535696382123115862584318762221272732359351561946194414389499416678793728763756365695913852783339118361936392726275676849917239139856758368349956523996997699693677141967791586236435913762522768472567226375786327728974235392148183895521989411272968472892895613873224312242268464281379357817184216545759766591819936861632339749393758735274364256622784715668698863545963287592164222481947896572726312429167362674712815574121392712953769574642912171438749858939124388226679769766899572556349339567378936892767347394348972785631367159628785429148463358426888824528571449881773529633565143913464111245923889221184339732923247648752152339251248579333423646481246351574487592348361413775394428833879126756969685636882322642434611521286773721282759772845977337377486953125132297275247634357984613217418891128735248992425123473583232822713575988788719391537776978169249486874752532551583269747553365293781255396441489795778313647167335349768292339299655485549345167482357265498316261699253976472211235841369199695764567864411521534816933833782347692378727768899189773954232366815142813578347156113217511635226628898145859565175374934887497859628431916953358775177565183877839662761356472249745381899175857714769884439433286724793699274943318286518451669321581749566949161978529263228131288263117692686684425331642354473287388156115663114535489525942259978672363828938361818858343456344191226488289926116779594737459749751388117198688155114476121174949867767476134839339667367364658534281827429892734689395922376128437428151931192459478869186687539169965967866981827693592159792697693178653242223883133147115164723129774188291578682895584189351642528926636773431528966354288343383975536194246387973698826539748944497986318827614863643395268852289887318289831226371588995789897875695422285286823771551927896673133653871399862137182174753419612767955163948942659855129359399566269566849643797672983817746773387333726679949796883174847414532354535282175944522838192842284328661179376769912274983166275685452468286752652778967363879228754891798273338394298824191122887165135842154783282962362362531346848321426693791786923147399223896627648387566544145349968889169729483192847382795227914781795656484792865583651962762931919454193461537976331326581774663518917233375972485416954911376636315938245732769399884285211753383876688141227247926333833817225412869763885587188621883173875415589456633961778539517724181411868783345542518351391872279211285953276721761595614691717737745239446116173122472729781453227538573173778871916188166992313865712919277964954452257756876162432632539125421755869443929515647619843844375339715548839869224984876141466899759213185852773162448132978556421341538124289586539323499254785818861652969818461381521435893374148214389379125143984127596723936836255171972475673965614276367949545942938165522818368675291885838222414211661832667434834922494225345755729713958689173474512833366632294173368236133369619892116678787194229121633769628597688255114612133825967343214953611435825285277469955678878263433465846354772416391657423239471696289794179219728772324636572532148918324123195752983356892154257948668161468744933157636739154847513498534397688884547911914377927256998227874753196686676993784398887698375741948417964462729138825574392865758598285539781693475722251326691549367719677625952424437568127162986657524275669792135769662377465131671187442421513978835962688989946934676816857144837422571467352855222793477982474994151976712887388456673371497795191297866935652386944361311979588487272865229446931457476463311149766831342176768794431967187281956438551668224183425492118617612244988954765163394734833793453566855758923529747129312671815162647911712143917728648785765271335926995219599151813672147654686177667176915829791157169815163779525132713194162967663532148324156548618727223398954217311122435979749522322542336646356458481987852812823966988641275891539627492462443749337181997566528479198334478641452149149695347983993714941893838133947815329927296466859848212914298767298188798324898772582661181756475173941653941717855822919884529926229175367338192583774551893784395292727459258316563717887154483893954698594323868249827523859148234583332653749643523165349243155413635789963826958263786699915435687155951221815531898557446869327923516427598941928753496172813514744375924717717463711398477726981418718179648485655674421173771792472378342189644191332338516575612738652758522811943165915441811974738883644724627813313847726813275153315677147628847121782362589974294651443214977677656872938816134488433642839697351748821692194543364537519568173256837897996249466797558494291526198776455178994574329158478519128885411717697143474378224865766443864845594198335752563958414957243527957355188553718893734238842292976512119954214994367579463561658298418383793181417154989135281111741677737945175771268971589579453318172775172558555241378126951281198255562615551964882773367286284189445515169144432499725534941439373734138932364413364816299243169432634426542881217577187191296227389521164242351897695285213725433383388692626795454962382653176393522381452121555842969223421141382419453644688262368279419413431472415668927832957664514454776613844299192664859615855399656226489819727873158918584912866387935914775542857647476777844472963554939473557111848495168315499745126943387987169918395235554537928513731439136125855476822264955616979822725226791147628834119579256137198529279272843625126973888572281931838745929279672368546373381462455228791517574518353879196132376786656597255514438515525126243711465825639978321162613994627878824394756643574589638838279867647866241784131488342123821716359945567536848865688799971141675478914556239915553421227222379715585849452251696838839651867638286669614628777459242116173846655211161433291826738839545839474884889932359232795677522983831318697498513535693169811899272281141689428662921225295274191119213151183858949962469877276375275489488562355241486363978596113551478235359763791325523452952296333245669546714635286331425624256559916749329662279711643214528153133616437384591459524634975879973334965583833868798261558925922243438876258434113928964755247259483379884616826216992367779384332448226677258778367573239168489513334781586253987634936833669511843329358874162623116687844784667877812787182154443812585853219887567645333447772942998474783561217769273526172265365292469615725481418658166372818317453323794333363927823459538349985296375787913213885129971895892312848317897117385687585665143363446156745445253721478734126433675269743276681842877649851584759166139356893877954717783731195119693626216583187457116388387686655817527156364999611238946614278657489274619997858769554114439184822629989878653338364564985894365436224292866287114369647227533175687997182789479715667489943238787486194253199969326154946269137766364669867763774389573298282857383749525389557875732941758844562735687115159747298383267149385457914614218172682519734327245581371731142947196256117449243699617678773866676179679314227386346913868945481987845865167795228797174967395383166543148717227997784179618136433185278158661468127525375187719817424228174118821652189596167147678989886186967922231968563266813612479987573265467363128334915265292289835232668384584317787292622639512124271198346765523132383446486597914914647213655957274527946585265654917628883287894236831477894257648399168286965377959887565789532361257975661997772541296564416632656344791788445699618254494157292825294262816455395219558853653635244659748373792212246931285447762116978785854164378771778313977176553421795212628394361181377874429652631131182921246244359146478343495498416586599223548531158872119548277726375376439262377144144187794574191528169965192785188586155492891742546533942999418246742382351434588221494594544357932159185126464175215564817242734828836237764171582927318911284566348941626923859952672373479836351143294685851854992237475347872875284551936811291313138463148326733187269759768788972727831753215523139993868636513685367332642183395285461233764131556279233432769277613635892194258755677811876783443795265374688454919781666334477736243568827752932989954576913675288434325988172261955492992258776518831337134341335665754978735375158181783216239785159445218625221917186396818776171914523484795886685114685451957957318536915573221531898333228813532383983439631783762585796477531658856178941918373521889527178934717425118197914255233975672474755485885593274688191398855982356784262711927365164283867354588156462531512237734242437952398193638871821944617919142736866666828695677661131622625787462127599368725471584545586964699882641555336764712254593198557446498544965542822926265574319853483225511964144325842388798674821943584678882313786814763531712715152498387316673353539862843922426655474193659974227293275376516151697896161947468967174611251756815685279374919895512863866941422879387313693562811196273867998976814424774929191299716972662568138471847127927935896593658714597334217818699382761399564424763486796486235153228248284425899137697234747241552376174325784686445167531254289415811332699168512927759764282932322334484389139339985862268352472694943271274996885361386211347497881117224512291516543163177716584595226566775636278474671252781149551115663124631467724828996919845854411522865811471763552142136491831862957426454439674787879328289375358981625857714171757589417224748537587163733139214951771493756499146743825217926391477496661211114677867368959689635465921931842287874699395354215631922114196115882232261684984446348548846456934146252119496731354198973627118413917917747418544854631882581322591292876526369644996984131243282299386827442396785383684798816925952534267396765272449818588271664826222841426834167147795693658949551735865558844547225665831623567549935569343696317873345316652395397843667835556232556975549669188853118791345767892399843718616581682551564848628756621789659187145289135428369923673642685593296695417857663465722986235584793453883476132478738926529877256479658784486532395286738615339856711588826468687994666327849624384232913639387976432163747698916238427661598196648743916565445968798455495294657439619264698284853788327836282823673699167766259427148721329491667927822697112143637418531379335127698756456659813553295222144645295979614268139273592913117361889276936342144961299489771316383399782415428894823651628657175494472593944724195369311966763312638878962433631255276272757967121897782823986999517123287873575663222384672171929512839615862328538757994191192953135985462683344298788287386481584971417575699918786595123741797174114851319399966695217381359946357732761681476936547265299183628391456514551154797314722521872691646286531635893533795845833983145653316369648871259543126323426972283617662359363216417938259856954224969994829138768451275159644955352241521334189924931524478863487491543654862753145187524399526255397553839994317615366675435851479123396195414175591147471954182983392811231648187181737733131327437527539684391118172744955967699441982941279369166231524911679513412596612538334847789171147987326466925158879364832749753341972618198614382316688751615838834885694554882912569334494977641137596942328518554576825292866879527221242172937464945565541127878689612729991637121665119911687446396377267329921975565465524257776313928549431327873318759965631351432285127149725946729624177281224331832525487871442292688396317739811953582268282319478397737481461455693819527648575394167795721865424683544297954573887567948914445694948267852289466112795675818478752566259258174773852398889626382537131156754922395315283144562614317412166366485926424727963233653293389825553944475756443644899218436316752935363736369534913733556176739732257421946888279441685282745628742563456144851683641258333873556782937431895864927922854121365834116857836493693495569861886377677152824553622841476263242677434149221565826999137653856922655167879835416995887541726217463878655637966555143787857478124399954416193647159318982728529837723253852925728659548619441334195329584685156921853614548471779211148497892483467717162897775775679528296435569231936995771238594445254886232154237736193296954388713171582796198669279588973312162267226384883758775514411631836842654272561835782343663635696279345642787769338442698859299896839283452137148883941726735625296195341542136925218379843293612312734777979569971787661889258387461636323279166235781679573481126178719126932435894869616945146654324325897141419795666259643297538858238922963831386991745963715478391182278359487175949345694142862968176812749445938862321724811986893363436369752536667628918987566793936653426569214875764653498977268723854498319695161526755541246917292541362119616767232774888478197231265366226772385552821556455168983418928686724258239374819315193333134982453867589496876796295528621917152337975824492969579921672673377589287767297292249121187344561319226882692291414316214938384294195783931141169581112594221549838297598481497445445584894857839649388936164797342789169444225178996788395774597665571414626222912571419866326963518449891311592658789566286782923666545575534688556413821487669734488824366635469998269217853736153735259713248137944753548799395557872832155858432716848728636172768831834418141391784655417915169842834364177186264528158747244128281616912529224576269944657958767727316457459815412315569354921592222867593472812132586412893742863947787824994197245875855228314417265945345644357725399611531971597981594967282963473243386362421918958343962156373597714331461451256879265369887226876198134277383778684119987698176685488784591667425835824573379926364222462527359743214569775667292513649781414378588824782247966115359237167585232914463487162662287198894533956155582729425471588287155318693117654715546973131758543974723933686147691198392475219595767959326819559668497534944873358153963444489355184737131417642336622855294127526988581529263496957132549842582171838869886125519292356328477674555332399799249258383814731477732264474243167972898968431468221446663977182778857754596631443565932228835113877553811363417544135156829428696341521547866429713317878711559173124267743384244464149821865763963379943279584821224215181566652978862287136418421729328263738935721837531271913874896613985767238219962169158345624274472847541369254459255178538846372454298124948473386883645428945189599299693439568236588829713212141961929252117829468249119429523519581416515286122735635565416757695645285683295466739265714479938492899357676112674489759286979827896632388877825263147955551422111763999677469874977672126257357423612568213979376942153667492133373428239426344947132397936137355687419341954246949969652253977436265198173596179165831835232964561978775924621516198972484579816792579969311362969756884221192671727622643678753627294616615762743593655812566727447796456822994233487867913685328986522193292514842538228475717585246345565515888139842678248796399824458719387988973938742621151122356136944633529623496658662654788381874236468421669224988144412239116428164896952862251153583695515147844324718874998993242481849453146457638495795574786825797732134668421269639976344815384956248594336332384289794284612916611449871414443849728926476576935979856986238313264166794341743239995583195835242456926238212424413761879353766712483816735966287553631655721481428698269655273827269125686615556325131986593884589591958598944465877965524782139878963612596832328913444822914891676836965547678368612983173461428991586921677593353531637963193792759442498257462515566263452622785628768663388549896411745896165537392158387121199549513982697149668874581292292955895184133735581466715735834937416994397579837863423985367669318997227854746322553849265812641529231915278799955128134514667618432413839718783285986336782443374524816776644852251873541684811252522288742125241216451428887893953162724825438449983924783473567853933314847662459641919255419975267597979636762526626421869757364892589441196258699331315289995274322264253877646468588197986393624739155322984521368258946474635997883415492843878693577913465963741862311485761431767467593998352348468496873815871516266454269383128868445735192241656281596424626412335696195299364872821451713453476845544953878365437463543777824317742146333258791436571737518848613616238443392343889862592385145395828661871983271157316434847467848593671669986172611233625242825664911876653351319323563186267533814899365679698521767864471123413782626173123963838415851863183461432138339516788638914998297523464556387238816658548747655496542886424137816461214187643261725883423836416942962458112318378757988271711295389424324444169935634439498518836766977429625618169492331171853429927547498859565484616512686837728362992776631169328879138711362296386463925921743639521382327336854491671163246498349457478291775113269266389827549475112829786296592427935726469316816887766384824965647229754685255833698135596882256967732281615187347138677356561947619827868365988691457172517611361242828544132772826523674334349353534277579757837478635957371215448765422386968796568854571571125791231459145815461245482438541998922156841431866779227261193172963167542673648226936741651867153347991257412222614377433317912136835831569672642177699829619722383776622669733729488379229199128485956122985247975892724613524462857458646159657127288549792927292837781375238949657492361452161354912948551434398937153187294228519612456578897688393582391613563322457983853511439677716867913233477175341481524372941526226348675371614652683829994955566289836354313666835125995298744352244868188345927417917326281515728184992725315946626356874714286984363344755347899325991362578165482614179493263283663697745541187247544472798897164312985538445258892138397266772192191543386781568672591217774874183126354823867624864863531816213595138411685357622918241121641971483323271795457646451553525513551762988157582245879825166696759816993798446659136927422972555435925394937573375966598785841373763282574121257732482159633659736144281573596179398413455691672265583631879576315154389849715922468531597445964478796671449831166718857591987324283748772764758339115654632463679853621875138952851325678714862845296162575379454584951711195278688175332758693941335386394812659366688853613816927545174544689526183868218398889634139463722763251536347275964916318344525681815857471188483763392126467825814389825924762937256458884665145463354735111293917542431686179525738291792711891654886844451492873672741792782756124617941969955393466536694768261539213299193613858489149415221262173382291452635374388218639545642861979114167595922633375328883169166857352991482633769381259445249735458547684636913829934858361234668312159422111283275549266379525355459482592519726259265683544968314342481531491926823481534929741973211153183283765892944335397295595519717925381669754186595224753193963664172248113422961482745944231497794927717158133162134627131168748128789474376562674935627723585397165113329966113495866437676215811499632427138268634277934543933963916957749464127533225578769945345739484338641284496832698682925586434756618636965546795464555993535999449392887332892446781279522991844863942665654786354362322411484869152228582858573899919149977454259469116292937326216199996721145971871591584315814413391963965452348487346656136375595671766392425353176541134569117565641258399824912565558813713558892817645516917152516285555789678759413864444158199716252729686451482667811295913963576658596231358415184194593888136689438942167897295615854122914572515399495184793252736147138585625155984592862186358842644491752356754184279277782475539958933257722129435342919157518384986281851962884427518512152871377885769854133354193833146223239817383266569794193376578281483363982217753721921247893699637854241251835186287191778938989665868983965452969768846638426371767554648274369236199652383919875521874671916729338273311581577928915463443914745553773832879462261786919291674128495667833778784742342252217529358814486744512886818924124874798569816461711787266157459726194831621355325273897512247198697971931955476984263923936735693289283368714292598788982544992329337553223631771548346381779899822565776939196149863491567357337363839432439833828168193727448965248181113195466261969241763659263861879178595111117919184458254341326324264564564164952385191423354975271536873287572689198931365542169192688786523671679462577932127926184952594661627663791383485187694189229585656312572599738245815213225973437957194153926649219638831437659355954357549992823785668789445378763177722721892279535393327653528826597658737743785124446199341222779334987761939441873473316427474495784359442275262588618248885113671916838955461598459153841342697787261154599549364269452485434193817813241184921327251388829139318178383291682613228245927928758646454673741881112736226918773536161438681669668732353943819953658771428584339213337421691595659416448285627537659491459497762792236954515257822741675614378548761355694119789953829279596359115149499819777652833759698333133526566446214868941215164886198359995538148425128239636114692437326768562493814627678168437659381856592741129471936733564219246112661724725653655237473883796496451523795351414836573751919558983135393728658141687851832775663875384555419113171844837914451646164429849851156141413193548592117547332396211893834133376125225758589619338217489892128628139514353223244954693571773524326375691712925418867113179322642168617787988328294784181112165271131698476297915374782882977493395464291711411938215483571211539866285266297279899437774784736623331746354852741674431719161631854927542827981957489359246218383684327498286182719743657366194342772312129727897661935542159474531761762733413178262615719746189155121284414612437577946919517421812838279631672329824594445175256338245197165285966495749247642264178578374791296725388192665772288145762932139511128837893461478261736938931871872654332677514421484966758744712875298354194335463658224886356333742665955386723976888176691324497653148666337424183899458579829473777533146777176354288836816743119651854521137653151843413975276131225456558313418491622728335836848373927748978717768841663945627344535398185954621494459643994637979597396781143182425268567829415355175642755853974598344115954579975338483976263413346636121467344766514781396646869432924969673858498767786349825747838134972266195871648161153516189991387413122598441257351591198987816656847986721735468497515384974639213812462445861611249767964436346626662895462412335392997339853424979158684625756275363985971222517413261522976593128427914914954795811852958698899631411681976435725811994863532494434473479913485954843228461699932479516595632127491621446515498634574912574776325365319959488241677878126573993429959734762575523298199536736157942824289336777896786637219795498669877899366145613265875845383138126785621234684899486861398592493962433455813292239726735574614899932276656865968848411757217487379495949625111893624597317946663412896756257235577835656348884134214777393915552124679193872384714962799189534625182881268395654941929916858311817895991628274658658458133853923512911163889234999744546631912263352458645558937899244716897923237372135479272752764934513213426943245673589754739213664874915698822468625581852773129497687146827963724362346414715534283887578254434859962613873326644822578373626999886135322644198489526443783273259643174327636463224857926343447392597839581926337612393815958668728489437437941611739911414361922761693325118269142132961486577753611933443349252254349387734588758741884198912126441368141479233997174374164266798734538664576866563799286512971843385949487153698866884434529513822225253858117874462794135175367377883176877555889958362769174711588785471916384379195259967336274952478578116434333747634347864268486242942574896159721245831146874488581737916512483596968972559987744796486947176325792697753541213573222816513124593653317559579827137297757959298553763427354235847557222926745589756987612925497253864155627275139626376467716521797111563278681442169696275826885485531738485538724683119682259697149112851292154411611668674523136146211138333564624779446788991684284196818264525882825393181149347646227932374852933452658753585248761363488764855199254119257762527552899665949458463862787453414159327183566411346422689225464869681487633274297738875787223598356374947254563235922481292349174792185899246458839967977991916375573943846481373269956655644369726199284722748963857492765281261751667948192898172712977386391355312994714983788858935753272295726796176463531316117573789798358838535951313434844689857717442323165451481623897255138799442563758293241293571286577347269315571389512521767775312136743563919838777938114779211214767912192185762554444611629638995586785893378513836296257119999347916395631361544153667467346271862389732767791115361995729337313431494569348348764753314347976299338585418232197463684117693313236983423235434169337627286416518116346669192497329171888328978768392957856985616413581313118875694898564152512153399421521317767246192396446651771712763782467162661689223767844795869138253959115173984261943312787789514799699196385619593823992761619978928837545896755936225499449346127899534114577161673111944877478167919399556352399591494869516392982912846479699538577853792421529618682229187939776451531762813663421642449132918533585451632887139982225927918761997443495672375262373855655339319953392648865272418694959581592496614868645262482141545382422451921387252576695898852378411646636655469515164544328445375338989544181839425869391134651173761714192183924591321223666654838889398496687927158169215861252841851589157847442347168545549732797746551224868972788621974846915769324325712419686438424797387853884116677817675217939418146722988498965635382891484324127688687516311763281369317638139887755485915171389315234896618585349677267674683512924384843691214962688434892142224642836274285682758592979273474637819427835383357296393298436798579491973489624434952271914583339158255393355797982289378727959754659187313771477686513375968733288985615783838576136344748512728496967545626464956681853794764693288922472117493961956314679939356148286376916291294624172965899584211736317737746297514691168117326387918671354854593962977677499938627575699974323518695362181974634471839816148498248673771867139476459439933762666323689556367284828651543717863484642587112829292945999169744172435583383454462456944841614921152499627852277321724187948339343573444928135747727926629443376614747238931484165856318353578228592215197946441825546361427239178388788471914984528144185898695433392938938436878582988457227659878971764595172729816642453127995671746186582664544297333633321788753361898964318627249512734882556772861656176737552481552929174642627672278849494632686867764127388955962745674836183559224536254847333496854246645989712153768952774113687981654132992116372176232522779477432644833933569756268411668595228381674975221285712542598346768487543731342359828953192825481328973334268273154849148229668771566789194991196479283194151828764431339628728355173472866748524745767517389193619835911575325588954715542342681474963911432879674134676799857884279569492678445747184563447126433478317454298661359695839539963299128754162837942892484226223432232197593674367457574886417649653862491757183826564832472125179365415469176347983365492583899816335762767382179396735873152132654229385913211139692978383484449751678167368369229326944162515471336231857673585316899216356884716428593249487827396215849327698129868172911682311732295227885776653468649796737889918529197554219445318168731428318158958612123157476382254195824629524273474668315933138436817377227435762938868451753485166772483225582784569394357585981557785996454521867685911669157292861249784925191668259224138837813926873175674649444356657429119291778975432775618143588229221138195782224382753655894624536447336714935364438583962223655298831492784219542488575795951561352371558768721758596964459496329447482267939993853437863891322356995111892799174217893172214427116426414663669981561766976217718438878325571458514579157657336169856778124269819356151716439935819475186592482315919989522415775713121761898938429417357477855425636692672564395134759596262513155614661717237549914843458518793353619789382935734298444394273387547515334416888297141568765993646375817148627447141175952331594122682494356979673579154277236547596645169666513769763989693345984558953818458625582878747961348783478757482344781758522216241118435299947171538514365475188197831341335931974834158685194893575618631123121482796655164443689949792793913942122666972315554448327487687861962128624843287621343171738315492593254437756417521717778518936965381524297726468339916756548235652693911673298132822586139832286345536583713615785844435498626249783241421769148621863493154657635748789645648499476614728274825398265938472211147688969776957476272664492692715553359225621456963128467536596142376177638563258451286728378862988584247992196931938599336192399948452132241732824554486986295298922125138291272627964552162579362462875774782853447782887933968184271637996171224883962664958757163125714312312689886842237992696898368788819967935518621418477146772649429215888348199239866669247399221231628342251152948693696234245157218942155158342991241652166561371975978473386474478344449995913199496232459976413226569457837136965576619617147469925858532343838285856896419256938412364377551368743312853856458289394722576582365585769954698316236697643282326765221115454283816365918237357913334435869288568983574385921691833274651569414213459887478328312527973928859369494371997729549599376677441267296422512273127975813459274299898349471697898485974218116426395238266114884632938448259881329842557268646898191834649627649513767464227716695677941882656517763498711489938495999978222763338556326355247176674471372547669414136752175772237674681634489329713378375642863519758821168189941277985359434785659331346234128134713348171438884715747441752455825148946988866137592245299443814327191598373975625738257181352672372331267454815487292898824871198231336962352789488467347625624435457934158225254989523364825157692495791511126314364591862377146175544584585915331788755882574171524953311811344392166543691996158534763733866275282745184983687529794157333848467439838236583135183598221394239762754465993215614943754774187953136363753163522825179456754449631356432637779969467392866198952166699762338215251869946545448535195959983894397284277732264917515991997176396124431193217617347747625422951552783792992662475157619249344378456625715861997491161975897325158619179656635365361357736448742692518573935541976992663397962122262918119654649238384693399491427516316361524436353513842761712452172598549873397648821996976199297356199976216859532521127626535259659556255631583634635376828344398142757219257429772289761593723536691311226856724831797746917259818838939614375557526281781495386167859711137562213821888927555941625685687243353544633424167551613171639253578733195236532277338534686511848611711222864982614367725375449299369281466654825241813438863771697415431196566188169392167334383933465465922418314233438151478661996433823863693115347242278144123655835112279571994717824616928274656257374229118478969321922738183697224435436253158979961933721989681933566171385162966169332328276377523919147543548244156277885312163364267891254177473979668199285421746435431837564752617425334765648279623696342716866586929476848656626885318567943682373219684448989666196833636884911221177321219166765247599178368389376118228114661185744632467294122622332133589578831383438146547598722934271127819738961864416155937919226227897769565641861566848638551961651326262725892837421273917913167998624775345338968975366955241848688956571892587374898494817789647532168147296823293131491978942784989784492874283376316314987265543511849936333651371781288894347587569462994368374353361239564292756682781925732266481484429738794452511612974179627755276148916341492552548956726482897411292825864998952845426954134873873963548827723785326822224699887172325195867936568249261421498195226516192885331944851991929737348889497575918991376375366248952831661417996795723348765377162234291231829479859173949465162285514526598535329337519546952161529961519242673594245189673879839816755669726975389796563841723783368724695282519478933226388467774455713212362298982312921665332666146446572581478499671647978225727252798847875724671624319121583396565358935395652613934845993213858373155585149299493785274585669586782239533542371548155493859796265477229453679723427967232991616942653597755627959644356555495198264412286646222175418144473973788128235788399496736639877264442153966433253192764327214819243357533166372581656977586867771194756142679627561157795371157957421925163134679784454872866651382483989182448316641927113668697734922929153883556537337584343915295387373551794447169717131321641267884129198523227187781893865872559862759592612491278258523199145939195154224354351175826116121522422815236561775773353954544484626797219854731317421616958477848398928794956986618778362199773693473342647225786652468567533892948362424146414967294849693862954779912314854249848233181266452728628638112325219922229245871943793465255486816818919833498382551696112549229899588452681418554612212245266135872717765715659819918133548141518778344724368259149943296898949616549821237151844737946535318378732793825429513876658211632548329499662112953238784694666791622659516626811933792151416985937991942583963954313417558946528127219358544747968299943736278179789715458712497326119472198885753623157926966778389236424183557728833514218766685496937336672343125365674559228557249862429533734259617953964717429395437369442857827512797157688627259776729813575225383988646416132999562341677989326615468998691789534758615493234893239127867845796151811349653921243144821493961476566578543735758152423463549676232679523784167953184329663631243399231417713497696937784935948276189128888137886478146438733549146947725627315831644277941284197782442814533896969485289197596263397576728118594431938847596912331868449239978321394977726316437414256168955776715292963573914744957554358726295695799937237581885631154835434993562563266814892355349621164454699634951521898123546498513838198161455487576477612242982254153757882331866484144267355369664848517638624353656972695132987369111773634959393881948449527153154121473767676864757681632346541842878154712386661338471594147131217912471589146277994953356958977667794842746254843237552146832688356639784417691814558652234372996658627957615796949785816324423187839525275653236114684215546843625567874337541152599819363855116652338661415419458339155339739384417262392732666479383896778686925541769732887534453723298946548983158132211762286357466369893792995717817772981515252766755115194664245822199249655721385875375732145535634536591852981357885347359692254597245231417433211625249118224662266688728551751712225225946282497965626462437417528129612321349145617143276825466277147359273276735338646237754261974688416624376718573284849256342699439991327787634852334248662821753652663349993386318622587658724977134358347465985755982656418715517732565291688953541695336196547229365773731515658617129719363874799266437378743593114974889176445351774511384524734131518415848472549781717268522723753593977713946914884599341312577736922593785366554893726756994566157215474991554834194678257593987618235514557931229685488938226986699148484276178935454346167754324126964371887579115448944719231423128435422179969513396676578529711543984289186926246893459181152195483791688289894563696515619619147216365182971317576136676627439231755254459471116628275826458362226742165192993665472843487224335898914413692857484558796416638118898247417691328763423943615316286899649297328184425618868398896386248168789586938378155983763499813718575334926643558936112331229481237659141695848732332464464412423288192141535286429554891231353661469463594923553597866868894949974821179362526754531117885289176458554479421195448448927535432977812248179278611444336878321417177181897793554586919586316346154651738398643892582349969593288442494334187376314446332289598222362684872698139554176294233844169237515765576412718337649834338231981447793424494326979862184997984918686928357678366252349748326727474164889546352866991863585256793198476329954221719784132447915314152673576988958826229363953473878935373969754535246962356683979763291475341782196791826474671537756774397264474933114641917169833481799325752945235489479185966394263284759843356884732639135544869277632525649326599652453996382197751893366177736581634913522631415474698395967525576966398359489726176894471131578153673418436397914473829822868764931251983413192539722792887644936952938379588722682752838683975479562388346917976241223182279616552681494994691295226413529471835183123412761779281721173199982599781929195972989152157357245373352244233639738623737442164582895928332585457229481124231577657248961128543264993984495341115718594515359554842941361793783354193442765699974166183151339554753987253692689886594689612556831127731981148925563822872927499492163151164865291582758939568597594798795169588546699483438277825384153557496248698636869676367775171325144557326269645511936693299111425858589186949389472949358158299564421219793732668652576271181936367478247518565328456173271164788316131771515945881387594699868799391268128691988126665124199878687713413363361151626127527393262831172397522436587288939568874957955973725868416125717753439824597995366642462973352916257938377157563136263359473573176879615411165468974198135273488966826356252797574882685283332227718333957926663941118616838849519332516316753147156816588372322244384995679763377947485212333546863353618565792485123542775817384618867714274312713957213593222581366936343563733928639787999157273765388634896178941718597412118373891653932638332382932671872518778733926179891118112278254393279943244749528628338545259578876858972344386947779612126973849325212234553156723672774371554475875198453757238386553879824351738237972235847665119497378693656478965166649415825744462229474911716212765686166549975986823313473883968527923566453751342562899177373214815152586869783738828724432642922426574248116479259821353326528659296519318846751633558788438383292743663546191253318186838756955228483626125129451158639494988491238579182583517423275114412331353181187135366117224624964197121328226928454955676928394592193224946628463857213785614954163374676228863237757936476851157363531242927331915596143618592228471574676288277636139488138349985123379798515257869696599323211692939897657163748617357178388358531311975661834583398915733566398429416762754192322111574718348279219675749249371471427788522338238196679683419546577345186228932731388246376229766579177688579652669473919521496843749418245189255292492344363757921951763362186585724847253537128124988394491158621994618851552462669588738822783673924718864889155983864556615961263533318687582879156419161456561813143881429617512251256182647618921298231189649853867556629361162269973981855728993648399126131247235423496878668932741543154168772213342938784576649683797283969979214496274511164822181619986883713142658999995376575544423991261464528417396723361713155345361487648578197668994864278693138166631568277833622998314253455351813858665337598677418723968473454638484817545493142894198836269433261549173613716985384167673594729763661921391878496713568718289144311292239317137617743614421225555675687617419168743193424445898445913673313219173281423756134978369625755955853169299355857343168821485889375569479314788412717698527915821477494233591332481249981681973198728141388391438542539577573773544347255184126961112959797174327641356855167643743737796394615377313878373846119482149769929446166453261454964781895869651684399724939963358636615981955993322283576463697449119697572172382419657274443976876724372568587627582219632738325887323459298849687717659733554132752996924698557317963934289583647646326686439151757849357284448112633291733637682375188717231832993212274435284319618578292285364583619943451779649587385412828167427421565432485233851471462368991522566997226647833959995129818851896594226771563647636137127982871321731497433696358852653341427547421559182341965749894117148773515459367491475848737128831698849374199737665247919611493442335242451314179473274133172315437832975116413349556859256376818482589988619733686359164681252191247945896668827442447795829928833626295661542175319878369351133394893368412528939816742765767986365691431572465346818875341947564913955992137552122798222225859341535925937673664743654665249154196677179835992264428784396292511167655637136243574352661389429324189443144657783117274381213944453386489834412712438845956241575893439213633693834518183796642121353272524774956495184353726827843168391677962599998323494984767863783749435464363185323621975762938282114651886284615866843319491318429774751268418983567797626647467344598623454243478247898452188712969621955377494228887622821581676647632157787218987549721678635288841154721431328873644799452861644648819842953741993362297473436881669553647921991226435162315872738773946636725736269666877365537295588941513175781656234859292921358152293398766731352637556737762566775895761333357419254717382537115694968982217857752923641784584943228116235899464665818787135427548338851329265521982869462792455267953964789231238314249228453869653749117139133863267187822117953325235837731115312819581789484616919581363263783772621678516965466415421637884169232289929615251889221374953468379486278138543411431448733957774622328131874114145289863256824275396298275586981589474588261686116725522179667796623971887744434895346553418277628926983756189568983636867674346226624988586432229363849595838449982479227758951885168928581323322449369944839717393293932953273417233227598477187396578574881122844245794531237856584341729721794118576718631414153386457318388788434995867897293421165786514362913412888566385537623989531856957387474231848399141247289265759477915416471299993916734739194131729259797796685876547719728211173977956524173669194773744553659856541182498644543719173427572456189178226978323693481712468512211117838325247495634715849691719711583414738467831281664522482463491621993748429438383734863197347399498552393335962223618818632261988744863986372594764534386392498262647935463592866199326855874799852634179228394884625311787167941294591413332711171681569364857957315345678638724883728644128793423956412275947314586449641421652846577684167787945569433463328491156795199768552997738974385934137797196973726826599385514916418267866564635316954763323513143858535179433863447724834275378653495813745121355825118515942787125596778271294666176826318476178628195992921476874545965792498261868457549465152395782252381116181816649485889919576692611729226397751688276276114572732793514233816875582298789135218367527831911686145243911813322148799562463439142456756636857161939886123265168213767339824429523499181296692412767481362694644873771789458588655483417675839216472449274122876215344882473383829953871262348848262659787914285169456462574357174227176776185581325859996322928338136694391649671255144765855577471121459493369375777143527964799792726656871888255958298884263242313867355433247533452221536749869135859392595358583693646311295117582421469984733892255776785275933253198196559748854421997425897212422329965838613945834674253864914135921493254446838286691875166568859988293547119937476452867594388276975337828719456981176814132848346868459229245733739211622896639295849859763225487318369538291119583357233444883612337271188978815141842175553712934641648546327829793899335595687142295948569131119388321861237931139623467261361288999976988679682533668474418417396273761428465598764611949879488996271213948488164413496373391191516626819538343673912539758757797367937881614871251393167932591236828516567843958877183874924936517357913676869646443521912413954678377524119874517858759879164322148781181977326982865733637169163831739836546245321874146833738929183864418932452429723496668348346432753544687739791849485128942574658813161833792884722234117355619481786779847935495617928633194132181656439122651112883655754156254118741653717717886231615919523923686641819589267769729129961243591164944982818564445447443456796692995484664311653286829154623183271718154384358666247943394592728779585812346182685477616856916874722112324722979497156639239896278367489769846776471833844824439256984759643319835828111473715729218563437766549922721756927478497154486942696587657632224861681385624317466915569322444628777795266587333823368381523875751321837575197488613432473641925146228866375993652984931285276589191976593982136334616624132579478454993281384895355817319355283938327535562741266655365291698889511264599773788352868266335914953179439395464387454179782282577773615434969277912229177286332899151683968876666777574383716895899856942829474831678197357845324189682854689972129828543226747145993277435331533424267469132635225322954486529659965711613875386718814241883747634113954239756416287519587751314614918221184734443973832596636987277988997459883171363512163652368966754488366562587727823287223917573711636181229891673882592783539789743341353242287465514782834792766988914226345982522899962349416913894115738135167346242365296685864254617428835658163387797265749155526267949494319427186711275271532236739668978819518288395712764766438383181879821648457827993369982621818894775848663445924359138288279958335897664986488714625434241146967447213591138818158691125227614447947286288977773642732243893325929547254942618871144257536657239982697971142828822125858423226924263861864945715827393134245736142327314516167558267479782255758879691859455199815552419624999776725619544943823377317269668425196546489784965382822547582334723476995973369786867919558771143379869355561528194774638594518734719533188139828296468297656328578432729431413221756466229732589311483325356566632267777639687518545767381836498514171723781431285662279352871621927999266389396762888613881842843532357966786451538388566541524757881666135769712531476918169444932976588945724966893494289912313491148833213588278316614514644973967849959217914744294645998396582266151861652934443887376195643758352347493484827185722429774948773817635772144752222343319614571751494761964348458672892762297362381756753176811657627893912637665631285592161125886665755798564925144573687689167613177557393685187335582349235895192857575623122754392425338817315481926487788853272313845514234752754381958843151271443794225691764173177849254262196475786245211618814598593928938554922646156115785144983274165719191355858359627231427634839399218333797512473185126878259179988719979629766964466942756763541422398259125611146639715379534664683497298768762225295622475721179319938884641662272633868331347268159838273248455417793525548265961842558763587138686847472397773755819685942645312985722851538793373241524776195394766941983651867179221477186615971453541715892498319447145695171126351431899938768693396755162262787818897789656526634299695791877548427185159681142451429889776529451969554411415649671548425976891995949379419753611754585982579469952868798763934999257635872727692877556412694183896568946116765733587127277675855581384874449822169761388945518946964241575466563428556248699373969374331876422653497992851687963889223288729875213893977945621798711838791677187356653345786866636618477334932657212435783468821471217849232386196128586712584531641224246463951662311971138472425447761395589636865753754591632266731769217261736291475734786892475542452176949659685157425113249782827824527561319724455846161139219882242877997777123686392285914983915172772448249498927236536814114512687721544474265867411982382622889551594831246723552459476638795649788179194665811145882544314767526334333699269263642794114479232863186444241156311379679127929195493836341245865893769661352251781173687611187666722787612836894889157717715369942998667839418797692461132467351449315986817686346372374519144987998385966733346774899249143331139747244795929686875788681924825789593772263222798265934124395863793969185296366972564855284669738114892321847433688953451825786586956186279793159844189169547285871388994974178152461467429137594532431727134839965182622425174437559531222514599988141272678921766518521771229216911927184975932581332419329229818799416883476524546677598419371159988677814544888555194834752765654411291435894647157429685659215554563685975228932754622176986441786944531852755918279476965598666159591575741121846763358897644248187134686677551136361248893217815526874421276178614618498718387739215556653269139581328988727571382745499516517355376164935671619673112152593227633249632988148995295311558679233556497585398276695126969726748883423161588396855446832814577256577683632459133567159331666381738486748783675932636658593132193831394263421822973648378579678861899395437328516758575232189865953873324956786261918421628615988365586969437942942783745584982717254741663367559636781248537617322694651765411362831854697356978137492568998924196171448963659463191246934725114612644431685531629742234695186447511833882343315379482759358983622515883916336852681655678466628777255445977542698663211945596373987422818551621586787672231857935776856592664711279837948912515971545295351512638611284975225612766364788849891651669955467817973588956739618764629515149731426665558231171936397147541513544291545446444436955769413543786295148662295537122587427761949447949785895457259397948795787631224283663197791539322282659313333631897296775727639847992811133395374173659121874867546636748966493789134945822296741394856741388556458732223321994833118662689545278952174395475756967733882744152946253572118484169732929184498682216443543379786658741747986734843487521758716261124987675347611948689565325841832229886319969954793758189662544756635346231125595668476331584959511935438539978444271713852236186278521364251174491562745758355863624648964961499534697172897463624978864159198932482188366993264641426721629322541548264853178422564125176116241294929394591342586788195685218228419328777682738497296655164876715537393152134962561225521896576819538733925311566578921811546126878751932452497144835714658259737512484638767551733394767563436175214666432266249569734569712218729176517624338275156492352572444349791552974791184734858985139442312356333792791262446225736559779894436685754769813434896451328217439188553938898931319933965764416315151232911714743626811287627246749653753823186347927945696329773737912283582915696499858479357631429437775765224753647575419162983836583968469835187835364269358641188363199972479253588994828672579396695583629534782571752618755784253791953816363419384434299668973231325595921241167591829775461674695244536658654394374249675631199513865419274693839332299663751692987428435684976899118873237295384925657115412971972667861479997489743444783971967122697644533361124357635922916697766428761186987312173465654393979519376374872492698834397627914754772398675724873656975736425799166286953525812166753226757326222839324665944149725945619231843825747192585899861264624646619881264863911599476482752914565432458734834973829468522522967391535397579867248183724965161881733251817883597395476862377445417532612479729348776451586239651412461698669693479895843544599429566635481338565544836971429262298651198122876311683381322247456212211912988618666974996119743443554444631482257734223733695939275528879998123785997279438811837288865854756814494129152733816524398773246727166357351533713254683459673234849474198141411636875291957371553489887681721872468878863489444572548296257235379246822159883248273992617329745649121325393416224512562282145519321342851181692832987194398748678692776664634697885484813676333182259895267536294633813261783989114984389941549993282597465564564852281174126116324564289645981365473479771471892336545518896922459685553579668772425765544134368126662717663429552936471673188999645615461692537538254321529317161521956915157711525846987817523564668158663343374768356946676832377182847271498854589263629312429127399917955721177983145164295196626616291653669257461866285674345895424479635449286262789236669939471718661915913429696598154947874843618698198341298738533826593777137887686418427389932223762148841537286626557275168289455558332375982544989796312129864318131346734878266136665757733162864887549836652355819384946242337595349232785899288216599194225964598311568948755565114923335722161789825518364729231521843395419377268698435896628561653863293211836676528886558314267543862163144612243922566386512245529626731279493775822349898913444396877885824171552675563353587926593162642849884941496721978678217523567651548833762444331187997648984549582464641863295393183745523975734969323399527947245328769957528814736956897582295626492396138719282776355913922474113241844614432698213692993241442754738178421578278448637931874838319117848874692545286869946338958948621487747779197784767299184878539567322998717575842559457735586442264253933679253387323894332875171396687744657976597676198375773711358932486263622488886714281351375177315711172198786456665788626223832313298398265891465724684386468687797535441821855436694112547415275728351432316848497797851699196678382335466939768437192151159615434656181573348181781885979739372625113269384281159147525588314565866171198416521324965414144589865572571491941963359789193439425753998937811997232289999332363747927799481479292319298921146318989659586524543553462153267686475449387938262526742856262838466898627399215257821895511683429998859478389814475564914962393282956892711591838374764158277486481868129178161787254558465194533617429327113981795931766365718869699511292399467841925531992776634575485523458242123666665732284621168519744558651996552925142494499241124467121111656746259388528532433667379461436999514533384126258514241177119697548889217418922863176283884642486264174714516772188596873246374979387767997665663423998212848236264729528264521761949769932745349711541357698674667543435597922882735851519366722465697156847825197583533359911247597291775567955713844178879873522142218744349798173471257144385598618473616575373619634336655113863699859496823173934346892291576735619658229436619123692712858422882745657599159941291362446267246319864513427411529445678185898329296556787337368392849756125957965491968691335245238183795198774324211168181494817626975484341662181987875824315965442988393369457555232693933318752841758984828563975935337657321515479368659585763265697242863814349256821868324541989692788978391216897772594846934874952638457568157824163356838315699753587234948529915148622442991865114736929761652964825958248133524786387243296392663168962764915482899413732251316621416473772299388229582616636187218854921139966767625774427934745429822824729386946322754356719252134295566584978411665999659674776196541178565314361769624569947445888985731161587552413659643376655543816923961615735199152369924457647238424474856265258374266511264976617934318834437255572121136513164756277968282996452653665295511775383868687786322576733242672658165252121787418556128242489444249664864832562417918631869793116972347629875915695467543411612297322974751351718354987216266375986974258273143966254855561177565152366273386561275559994192747252378985113657755299188488642357384961461635399798616544388512139435462433852722582135554214416348775817192354492414959268588212179569268473813954337143992612898644659497667852273877266236495267513443118793818286792313843357198343443213482289768899173397186819244453582711766555463581388878773926365534481935569627635512388589225557985878323385947588696553454898586954785112496133893346661949777272549139367861149473938922989596659652568244348275468269346296851614751564988795231145879587962932496442739418821825391139834826156579653582263244663665548929633171145273498622167333786578321628722238367238324937314941872933694696432244865368997372358441798158699893178694382199135867837732489468666515832122934529292873822856692253635737939261179256447421171284336799481397394318842573478487828488336365194524297445572419981829752387776117436279626657654626489616474174827423384939593855493353981387668391627191848232651975263271845664635323317228373359765982965432774216536237963188154532737368446755398891486794598951923648572956575354493963213996987151998183649175593788998287775479578377431437777155844742418954881617359472949643126489529214682653376214318261452891732742191255582292431136262451323486685619147246287391896931962199657116919623231858837421415514468168658529722716489221151599946842696446318477915827822972864448497941562398999571252348324757586379326454234971985198838212941557478914435613591111782691775821458348579131481379357496564945979713559562499526441188634927325284529466595346871878631912742268591436975498985962725715778983833865562991888383545915582369542728254343421158412793239345398461175499621635365443656589998834831478231383718251516953843636998935848865935849879463747998488379754539822495373218572261118725689122813142669889636852741622189982172475522499352826991851968965961298649778613775455449446121626736489356116374719243265677737499837752452978348362578145617446429174218316141956993886256988629427837758251336835993628116967899481256961983456846186797383152999113598587821395814582119314414393643599162191571827128949489627972219216226264245947731668439226246247858464887362844891732634257861445282558375467756628882296882836344489226652315877754874361543166494325779999577152529855888184523944429218246759999874352951492584816825639294992978384588417465845327878778976263192538378914588929696464169786175138854744283874723448654621338639414787285372742866631983915876817274882319473569122229591976656353731962788944855865825793456871244239297181456842332712836414417729648346471955167246318848289841714637265258645358878662471364334686492896651275863727855871393661281379835832327588263749669924133159931423544281895259115996498693576417659967856451352741471238466917662657332876891975912924651341816951783769348435825996461385374778736992925657239629255273699976748447539994616558373791949936511334976764123758576744738621261384679256456721567931294155961998345249685256283975994488785773686111967482999187586814682248496196182829918716464945212316156654253324194975519894314445938483897918328795145133444777168996275875616566868461794151667546153649119645231967926322377921536771769624136121713334561152294869736688989681651883227223332617579148745783757835145857171129867771545913287869373847444345312977122412629395321494237461981177879818869788311349752488486584251131825784613647592731567115428422412871231583342394349941472324443539552491623743176161997128553794638768728882188684583385939288551427178956154712169377779688442572278953457817922738595363196142358943277847538612441966265767883785992675327178221297713178856124593659172878581699361477253854293557455542489359275392826191329654399743871815721231223722743697137991177157528521532713877147838538525239879632675745922724397248991313289242298672963124553267956986394228327183278471726132726325834254976574781637699181262873355669956683961924762561685753177634537186372472658795853437524376628326944979244114588619362689231953545743756255493353277346357343577159224738267482698432856679827512423795592238387129394841722462594862422424242953872255237363523888928151565669836952463188429698599495441896768463598795647597346365617677253988236996469218832448917665281488292881435345238362152718336464284362394737331955161341163798916342459733456441856879876145846468493465799233226714689293676212951396755658879459717626983593587516189555332266136797374514662312729764386512124573319641896127297263582931222579788652641233841556794895896843711555627639714857427686265749928164524377257531363931536889789585936454968521636727759348226264656272577327389851635559361886141757814535253148281735652628232217887329844257965946482653465574162684667962557949678623858395692769124799844437384156331159619675576845818242779174695699559415853445816731816724173632586416881124695267147718125367414944523624962477182752452867518891343494689817514678723898648437551679847717468725586775539362915153945625459121578145587493592987281642177188134847384124263451168222328937739112749231557792797519632523195996278282226885864614466518717216723529632211785955382932813523174336388398377852389472552713929342851689517282319246382451641674859817858466586499917152116153437318973728356895686371561176319938636898713382858476423418948721573251822149234151692732625587443758739734656951921983243771324678451324788274364262375643664922755776243861286591638281347647692178682867875335497296229883543651597684352884423221633611954218157815341428759961124274268579474163577518373357258666872628555751186746573787412367934195839314213876522699349574157456739758979267798857889636121765238294991816485359848791393468871689978158685111184863881116884952848643392883889265543553232516689533762849937952484648851981558582757831834428557911795784837575751433415745581271259626889646192124354736275282315166744697395397613984691918238624287547266685455643982982893555963716321988323875264252331585961241662641562648245469582638135137193356493567462716664627519813622847475711337498954424255145396379926476518248943373588182522147939677327141834241499298449443246193714427399693742761494337531149299521358128492556595816569553472334259151889834582963518553771912426221288172329515765519787787818529548335566316782233199778457299142764211741318521629686421131933119529593522463434382923126918229169919269486527956248439919721636627433461912796319942822784746397939155235395924897988147411949621535848466757136724528159243915946431166629433993445259163352646378373845767966389693698823186613431714289874493363622493699269582462779656185311562691759774613758835778377617754793777633194358249517435195859138395957356682495446277577952854673177883451488922438276869945392597266499448248472387764666185235942481424237164182758914612223617655685998584992165866125337687342799298957235441816327849487211369388173785228297719382239841866785572749252879641478681673658236573647652739693649397354618521177341986158816959888513872614699432411914795389267818195254524457696677936564369149748154595929578235827363688482355261518911856568941776134862187593543232117753556632224599787436679883192767823475576825693325982969157224895131577159599732218294198711189682647342382244365174382262161918962795723937352659986281496387282342723995539784682299228857564687758847399378625734646521165524188873612627369732295737633275573368628779496379387859593729267382243119848465393877737998893431644835827653272459132719499632785277558214411645447518447399468765519428659614258897621349285951491322287157451239882716623227256378486199734736614774246456172688436935897168728185519944639788539213682298169968597399763632373384542661465442181611675827845273527682626241358328265757431857118666728433456277173557181265864629291143287793491645342357733185994986214873112166589714376674963352862347556763291261597254441666743856591266375371239945367333995281729745361888811893229851141547529484811978768748959843937181832859149127882756441334625323394479383284862136671693944465685922848166443545911969254589146548622536159394784881785143837571343484189998367735714297489137151287576464291853323632261163767775532167476461782934259166322997449545282717874867372376798787531574882162648124741868327195856893281486548441814989611311785364671517261195175562332453429855192152768867375611834967198973482586762648364725896183783589717865531783498871249846215352322817341317647534447321831465576666391321185726969681573697955519139151257539125984941381974424436231235977888276668596673924356767771367945763218967524895229685462377161536747542293562974832357484181233797441558795991363388126333356515148183952341366584386829143694297896182315231789217898693961368958566586998176987766535721746632376824513419917773235686649392437919459671572347559927572419541231175933188192747638385325368282388789887786861524342674289917126895783442936977392467874765565234691735838526244371156422857359618782364995518835839469635361229187293592842624196932984311322229839178252293693196274694515626598495298428668876483752192563212942359292866744372555655799919294228237322885213257712172162971282995626894314418178285272368277467738497717158854662178295921647328157728423296553669568859924546441123755954618765711585477739363364548934383168538577914586512737171952271476317155645994543615312397513449959654128517741111532751391643438484775535299298132117135978321248525967486284197296798386126121853458176693992611379298698319385519316865244314431339188818735286126692125445876898796566348856457915917559935514372928552236769551152696488938465656581513179924128167616498344698237286484375665461122762585844746454991427773329432586634117482917495337194325157295757258876976696138737159564273756461248735385887751364319535699325338191528116762697928959427349772571523323998157857533565288166213354585674478152794149567463883917344812248943113415352186355555278658762545756975511518233687913768543687161648298148852199699955698955661714523426391491468253623417962923374515244273199913364594289462788938532847256956372621948874932734677751565969675727719597899962329984939434271743514463151936267946438361788753993338533525121824456272249925115337278331732714247755968859459782489221284464667442727513437395434355464788955678759599632452894228654922827274158987859984273584239639791417712599275173578837251992979991771728736233371243756754852741718778542144369374558923496579549316168251486414758549779436279191685411558289443397264296622631588129163869614933549858429562529411216582441733976859782636788629649188211283479865832985652414267264874981328214686774138359675281567855975785142719111936783281136812397775278448348321888196119681619476884627541363451259869717676613291563216233466362246197765415634679888591736452475984759181642998776515687213359757112921864952829371737447662525135326393596767683664397962194516947566715461929375695391599841444189659296288195664183132925158467323231748447893292494584189825546758622455234543572829327198642116878914526969317488319918862961657357699285194733552443218495549174723639138491544677897725269165347599483212365622291973588384817556594625749291321397545372653397846217561579591629373681745974647356113149998951876235198495758574274367367142137541941788263999396633458142345988972859664964884446681484697996793877733217594838486424763452921297769969618191838468724968251158734621571479452187959345258164836188245172117225899734238934315814617124234744324276487271699271432233555828249557994711679577419532876257161816515976942788539471646262956147688164658735567494457173267762418225669331777517843559755429561371736659736476249394369791636763746381153699224252567435388844217635731989891114351872499374785357719797676685119996134951329733414373821488878656259655786658888314586424299965671635194548336156594145454439897859347681314917556859383616585168982649779961715399116367814311998942819795765174184529299619598493572452917424712263181941891639886121212843324421627612779742529211221294525857728577645517658568571599842426987735478728483229966914997927525378626487225537323823293884546163724351973415946327536814267653824149235466858589133613917663844358271616281928931181481247321746452411929111893891938831662636161211291991169358331923978131726636555554541465278279466277239783336771134169577383229735438316638295218614551178489352785625167887497256481597334259326778275962691295843882514917837495211596755864337626765945627456767826489865298948514818468193768441968854474267917477124812187812898672928224924751452733839621619357558361642816841993286148987923667482346526919199327729628399555293326958548447368949789518454752983668322245871754622562396662769916746959345311753798927583668558923516439969934294986633888633525674217293194594782345623375526873393893191439817931472598959636854133333376245937865924818762245658971296721393189481851627732396974983554564861798674735397315812191344781976135892165583214784893836395382885264369627927386775958667185263677914964556285752345182781196364953439775392766889387546545161466698565984159737565397742347374833688267572434178598271485112584742557185237534383191138538577932176885397939367556458291157741847424743426241796441269264847821552825147561641163189195478159195276671326389386593581828623622138585517244962521758849691852844792143756242382367149899974158526621985499528643437316292616347918186625466139362192512661294894681143668371217315445591529998447551616534534353687136286284827552523165317633882495993512882636877172512353531578958399387549126624863988232378263982729563365926391589311437234332593538764255674722542674386619868192867271648998153219537298973873858565517397192222265874679847122866317136736757953441887761473459169762323897492745613388425668464339462632371543814131862228964386323476693636817219285496382619331477826279859469286625333483315332923539314231958621143471612124215458477881885657651997147148458893639418485959515693386179815684856776515989949498637224214663947414153552445375147668178524726457653996231758241817623455725459225323925988713874444679149585495715117595465532874322236164592973473122548991177519611116556643868169213892898548498419954596782577488667757591349279964323981137865622396956878886782913281283878321448933511498856156365483669481425317567586362866583921366215246657393151676862499691627226649395824127175659778738788411164983464766563926784666334264251647864349786967646891533848253196883296164659313883934318923233711929525881711999282592383516786777629297168256964124242592968535386295892696382693826964159912539148627676295354535121526416647551392959568982434845876326861424544737674462685967445965442573736988745189138615248624267395577965748235248989413375679399746343716618233821752887344373246779149699492684759846569886199766661428458527882675221198616662228259185836515762172181851416637542441722472847944152126167628352585457594777551854166762333157395739589756481466862428441646375757785658297242827149883747374757425889699322593296964248865239862349399232361579276588473885861994914835942988994453379557934122413784377376175599626661364654795963371118794233194759785941428814131239888292412776744337268958351362331251281367831254859644468393516629638653346459644698824642993543496152484828772239821375364597735341477658536539521537963313984417444298141693544496293423519949683193897856299638346467717612569768156641259112834561221989926892695359364173355692614681583162221645561777192651791959996213415378814881589643693697596216446763554831879732992269818418952528663945133885184299269911894946812296587776383692598398267659239348796454982242471198925679682595374928316538555565456813861991427718538961825461796475651649782441283989859385365883357321287221338526491438954433557269286817929772211234127459694311139618491367388492692437387717718678497433241989939263881451132987637479783671663578657683684763534279137394259516461138286652995311293822247176622614432996275695624895118726277436769968576935485774275936553175752647484976314871287779324522195259877264894271398966887239237631518134412829858734211913735478439232562654637389611682863491132945181254515344394352347676689773271295545168497713946693359136343351795391148729914563787699222446425845847728628164322981812945676969344125886672994181161264512296231531928575664872968973234343845977968715261536722418731954336813599379775737389438391394627287537463321783512354273192553272815549772749981114321531776982173517474658546536957119176565661812548992645186672472377923488478523292464863429556683465614541382512556922154999666883453786615755898489584973738426649817468733211948896384555286849619445328438523492929255773345216259661413354574665581857171691195161911325663919466342948997997393493424889161995639723593293832962293579486376827798137346528714833179117643125783586219862632994391291853255523869471456428517736745829123474658686611242982663237697418755118865426439527672994544284967457242774326167814992356774969794317573793318889268394959445315635272541851648564384678512932484912954139273917435772433615753233238539446736469837169221684896299953786358974856552362321618328213471814691976411636858717549349467457796892443485869631384317344978658136269588964826854275797175849632257194881362846254623431813856961568957972145768921252142327713769654259454821612536639752322697462786611983943185756621653612347415164152346554918669734994227856252667871325625562433822233798413667344266737263316587698978719956668185656363583939688575345231786585948553792993852799213724682339622467636725119178888161428531582627389849349245934838869622659711437312225249632113878739894764896625746251113212479353231496785336799414424523751775876926684915575495747988363339727318956257793343726414239452323143838443923336586927439264485688862695785917546248871786124562357496774364998522397265766112246875451876256997936741217717931526951136651231833497416177751792396388843955937356895592377246365783676852353978657187224927543821176762796983736535256537271453451115284772854497912454261294448339847214388637327453869788222134918627135886527353427395115218599269853331882596737456846466294111994227395344916731325849358759748269887311511163184668594368333138825546695691998364193438141344124477926575555379778891615738939376167514149475443322383745638555941791984831474686724987549385778647746918144583964252895823281154816316119447633847937518727631991531121164726811683333195657656797799695157646595827126561225694453412926569218699389736848317552782762428339187915877452262725883969281813711491877622628899377563571461732651737497569338155811947982154128172791556468274653747445538838735815959586393667822555897781553943528465994259831975455123168461793538926321213319745246553297276518299832842262134658114322847578397378352468572825725946139876695222146373129191563146558436175495699336427427473576122963461899469371822644271527139216442431356273354528734876577488932163198615931261944421878626397493712461954979963395481232661391569696681877763182429522587617652512168145721928161992259718564614611513985966872761865646572932382243539926593678655127674757875987249132671838682193759224791289992814961143711991265165444442331511897891269359266561114448561521589178194118924471569893749681638535444744536972937717171948881744377541994471573243849732511675982645723151197311483366415472751923374689687398245552193548723694822378146865688144333485256524896923736422869673995123647278667159432853139986275686941756413117948233535423949416981955695816499213455987271919698684943413952852196574281271239177461511785879978515933949952858574533592977864624217491285368995438686873559829331958867482281723471948393185116991886415623683929924743941341828915646917155447338682884827789588133623337751473142319689358216118359582257284497517466481291791526563677385633363198636645614765212568286648964264816469821275695741569122998324684229112129588153118928218939287689589581548244544235145837645483342291234157482895397869533162484594525919757737256832785181218667917417362134748331518895826672352991726728173814744624114661685774745416293374657999299555614181463982512728183673682536887284231418557729627774932173552279672622466137989656848134388495352423648352948993586379797536952183346261264952289717565217893119334939855249457326862473161262283566451964797428114342446552671836471467735477366699733377435517144179643289816465327554386736539836781117978613935678187659192174753752448298592867755411321326782857981719658634398739851782449524122182136998327289964832166897317415618196917625511883987577297837288997677338768756945682399963681479136759525389873331359345594632523198949467244566581513952215357555338264877223761819185215638373795619996527784753751261534451621171951611378643897924166491442458433482418262551232547176111244987215356162295218352967567471867578992598596127842937573321496143832961611311975166713944962566747942912933929435996389676822396989179353554386785293259731769347354279425743419838144196172995729136956339469442254454149248619412187518555478472826211234874723811561415731578769371372669831211256396758716571497424569452463477995461231667717447783638764912689226247214974516275537314693651663287897284534252684414673938984391979687949344412743298481279498585434127941361443652471577427265698999783718642986233261992717266965723983847945567774773833448134516794178762128885152325568362712389686443654321725946483118268396353887242463544938656865782592125414127253416718563149616746857478669374514174928123973546129856513349789196378289485638131115646968836725453252198541454453817493275856481596695548583726197635842435953912661195853134624387771813497697843853326528881218775865194753336511632383161171847433732196328968832948244251224957128237758545216391195428439824536348913756275795894336968949371993793967574152531852448131968957226512258463516589623536521395926567672518658396157419951971463128775825689398814643537624669862528919457386266429762424768755896685521248745485452583859623992559191125989327862919274135334578477488876697473562479772314641468115772341177324541427537899826635193235232853297227861448321873372473996179378991676618539516733879168665593481447817759619273459355212561798832412266136942186112422567527299449456157531748448578624465175927862356118972715652413648146536313527127824194558778931735476996248849521829263939722884212811324197949119836238189267578648669978772563555967865789336281956944719956191596263631662371364958238113711669385547492629635129831641811977894348977247191492375338398484973486183696495443569882622441746964563821361883138927177221283779235396431418611492199721738196918438872911761818118979952861441384151141117186877764669744888816211194295793489146593365734513913123432912138942671795367527727129262441443235483341767517287879784726769172699734898548145823782953637524673546825568462944222316458199566819371735562746166276712421356836754735271345849457127158184666331593929933416459941656454729232282473265416941834998533884816924941167697291283673324613974664968874634243259517628188366613998786138552666615267964881441649516919753818368773478867881854794484268538364942378253832816275613827761585887924739813983599849132816755333134485365552692675587576251564776195522966135373721457162218674284636622334641821846542652419826178639752916996979524688728689386148993294772378329687558226234636436745992139951828554374876138771334733845831821664981266869635658821115676566523919825511363827598618965621252452424873898179738588374834749984126482671577459297934316789668168697764811545544137456134199785645229581633176579224726124983446867825778165623434715316794937622293668455817149428858426719451569736561951655486261911672416453426871965928447964953191241886117583578969894588883283295262763411757553432771559866185592767998963617841117252947645193269857643812586586281373136535742636371661798346764781174726289342869935885628284541648898427441637528997457275618662452283827989629528254979321286319438619396158191894192112929549572342362966765745243244445398255379594681265628143346679197811437376634549192815128585474163195723474737636795297945473678977448586857611389799473919176854598435129771798667494684581165413156648515573438978436874889329624378919565787583425892279191961386177823382948361848955854739857565237455458384358153537999975719223857383929435148381981976446467532349549473975794792678312847499613557593779238617664484557295156312159316239979635963318937522141245165778574546133353944785889894319867625978661885188547135115444419262657413482888743444844376697513758488626715588722195322971629985724485145584355353775771733621182439823362686919377653726987185227188324461952878544795394992512219931366352448371651179467417517518525159183921974972817647397946888382291582467865845599228722489118337365492277561119822682729621432257697695359349331389559411443558317966489424346364117938973316137723341372695221429223118238842412646563622143984995285117881921164629882194391689198597276266263625513591839887796545352767472624164314385364842584919184722883288698836452645873363151512599716566358873136513628934865924884431954731933573745636923414791223127489373629893455945276534546737475392553433657141557199543116742361425747892596551259193413877993134488178337882786694834112719992241958771447416175457766826716929924781724454141585259832392973864132192446741887292264492489665967177111674652271497626764729216892512669924141269731416766677266416552543847853725744311978583223768811285879149514934931768979255935943419313263555846813791514186579821732956291785276535585884542433496489119267683236574153395437557194115811578782338732851384938637927497554321444195371397599352154784437759883182519539288124227576828584462658719752569469682438899647972937717663728644691623512466153245914661741595854826166391896128519856838887263633149668757259189875447234948292496343117821718695129741234143281725925616676534936899812315523583174533999642935514494523864113329753942895177537867317683994214268462551858611485916664962363678414658643493521112577753988145876231183332563654611475653466843565553775821275445472836162755891435613185192636163145751815493426886285683645241444718888228549136635174247759783263931852586497151558872446314629893986125654468414179213743283973269752326741571877787951158346551535556119256233891685689514959992456957862474763631288148433323456142638765121382489193835256591185247913424443662671862377815822336926157581736884768974544935257748343981964541816593957449854526451738724966137686979613587848482445225521223881477237475249177212622163164452487199746351157867818924221644772561434959164639411211632575952297239624528872721721772828323342154815256144114176133225947369364654169662962378861272675391337671986942138254941957114533655212219883185791194188788142386716926784192551568857715428646116786265654718754638389731574183652377821281955317135997934331696712373481575885597885577811969529547884821318757435872652746688443121492422296739316472545283937327367499698371191637671298592113838677437244343495163172919929293959692226539758254351442323342437385596948813627942976188311443271619292962223925292719439474789748557743955145655635667614862744689263547941496867324964259323769585738422452136857244468389555494856597742835429233468386139669945593156339669562716434946981884432637159125952932664967565643965127733623228321576872527979266667339582892723769336577164171546367115295366631554191896294246662362881216768814122291711924579596774793369241442651621622958818475655989983927172143184389269817471867756947644757156363278168795771445139783157751287594499268535578972748144617735464794618542989786758653813684211489759693782669244988279437747875659518787842754243959782456123578538395978142456731618843444692444172659463596169128882125474698814169895244749651329429866316196491489893356392333164151572169619557535759379392517992958955916859593867884723872562745549939514543738317678954111175628521461895967887554349749646217858884853358946671183956821429194983267583275833831125786737736134259996224786868879348911664266481379989358835611644425471786425351148153845295368799236214836359363168332751286955767477769374291386129273281665141777443369768696296914321377672658373617474334843533754872638682429669416728183435699976128877127974893575374496955842443231823629999346763912686969193425597747637551136325464958868198647311964629622143679965849558423933128479441544792687952897727921222168981934314451155234796596418593492574893228132635815454993753972118397598312565845279578843138239968628548574957474321294396118114954618455741387618626945556355751219844318345995756341795329784784667998722111665288256678645913269967737847794211925673336717134821582365934344345892123784585766614829422736159647648997245712371653585757362225878668482852978124373747463674162827655739915716244497133389685756421873764134746975668885732197637615861174447143599266639738481231627623957649997713465337164287237798184748536396632154751168772549347612364893455559815829696731654414539818142686566958896468333663915785698656283886755382124379569147586459978165629138249556412325963488474289641644356292832952357686322631674637952572644738952791232493341793388534587859754824835964297367485137586262126417789375694419957469217623735365833859228648442277286747119545927283113856598716323897587441822649849224674534155333981624695758631543898351655178365426785259992145334158113519235757334658547742264668368618639295727272135718814369186857619619179797811369151576575159619669557537216232137173619195955721655497918521633338588588874354219648339171133256113852627943353215138935138344854138281984297418911794296121494797516593712543332391519211149417257696866919122351392312314155759418184664566779719839868353737666464729175543413376261996268724459729626169399627233321736517842713674378397159762972955695278449616932752456332439624173599333273765939175697748689986245167474641133929478142719788211716444797791992848733812871691651374743412491574346526782759725731195345564692825475934197168431541973518867849386768268974716769765996772465483968864651911576541931597643161365141596586533276358298961267183696745283635952566386972177776835597115378852918535132239896489737528944719998742244356235762544384988357257911134558162537682991388123727427438774579612369548467257438159782647194954189124859565297813871935623917415316672536936615893885256556286516164215898469947226539974581131636936516242136736279275434435487981621234326888495312843275613391452464795363113533616823373613537762139556855197368849167316569135327371846444169843748479826728259875858482887761934852743315938896381217386952954429483614195874412422241745838351198468657144575616721683165971889615469172418969529487784271258118544449671465217245823229244944787121167113623337727139943336784386483172334656236929822144612131667765897252674365246349699892768424893517674999423146816876942683152312168457388482162648233299595534739555373121136279193213252594966812228429422948947358453512898468689332364367251875719859147774531553578814428494854748631397649674921792133772147519272281944812393362454622835565472499573853962297342713785221647686633817194114837887164665638487848238928438799478184449892639324135926649418336244476455518549732322886826549152398923564316179211499861415319548339676996513412549426365785728451497886336666719742267635196931979647379835595568564237536138125978516488837462218521274676476864713341133868978729837283739314675898911277974755737345617438895384165172778142523246697341929446743241297991142456914637629552934347357845949164563925777512614136851435927814268569926666736148723755146836233177868425997581441615129691214499175826324173916166668427447777674155785172362967513354987653229425983498525691341476863418728761258496337797712757323664435392226955567337817971713167491829932626173885465163133337157137139272677755272788979192897519291197264947555622319329498137847957672865611172213123962764457943799985336442652754939196442245493381714356591664957947689783112439599724373337722316864832142284124186422544395436913384388495896285726869389821412629948786166685146722659529551711695463179646141593666617652522571917314266851719965425279211358459161475941821897348754765899633639557942922192725589855334287538474167168358438977962484892444381687283117849636322459739963391448965166839783324458432317536669355869443319431875617648482847762247161381224391841594332316181294811837848276251289622753241359639512296913626635595758873897749781718499661123671136813181755513583422277287434536117325379731979192327835658992512123559421417327447128673463512714868798749569193714551896146397782452324161959228473543155675333577588984988881637971176633155492131828315174147724721273477915298289811417811462723748175664264172152991671616678852648114521936922211276236893677732532874865567678575297776132794846923397843589347756433936195477869287861298122687218591999436112921695625416674395244233265656857817457998555875287599795261645334969658483861388137815422485816282946874159176878458989136495193296773177975661595384175624124434999296984349388796193655965388587596285599336215794168455973731479986426257766336622466843115142939671185752473934169654853456559395413877193285691565749974627557986273773182541586969866227952659356532829964922518493914699753777339411496897147876166426392568281921969548242928524256674711528529616649564655396711277648588341299744788234663233349993741675584467745547914225449339593658187423187441221423966878637891799521718352464496591278941638597538518343568817366463257299157791431363519289925652965675479138162997337256157512598145582484281388112716311161219113451587996933732893434439449331564422211694865145377719542565512843953112387872318968823178417591785185222999928715576762413251238626147326117987434991241355367128622343854542274573486519835636488411785138136473621361252694323963921523235863133148952221532727919941262657758143847157191372952846853927781685868463263288374556132332999958534261586714431775477599688673415732679248582567984633581348678142298112959994782145483426273977985885879769237331759191697974573149526593415236292181148835373466427966286788397415419293719846576272789358178717348256426399847554521535433193826631262882765398651792335535615267283451435955819778981423773399916251182676146913811742129338218723731996599181369342442265176837191989538446453376418634121693392399232975519736377138541491629747751848388351887581423352413375931914742557545392333567687893496396669715569888919255814574812531186966512489279183573829199231339735475514429328574766565488411473829361611633471745381729568586767693652614941813442413357196662339675745138128352482595395861892849313726517341467527146422411693534885435967994735438969191169411778211696495657189876876781721688517567195559357244622399351329169715314868674386757866682713718668188465231459923798466526886542449376688733524784638271748292435443891763914483635351414233265788978133224652894238368671896265142744965328498811636482469185579644948479327187141577723729166911284931951559343391961122937637545948832986811139915116218859514187861957537538439839348213263562237132765427248121954855259495418119376817431333337512917946476286124685327441662312313995633231732188521144119221351548919313365373215129428441465318188118234652953463215937973482381181893257343478778272967285414411478693226453219936922639151391438387518142453345935998993932964772422125359473966454254436431797937949554492677223526859382361953655599829986687738413332467442616154136824472144875298333966115629112693839944421839553737338789789948121114456428463545368135894877688788223764591644168862341627375133945291539684899765888859466978362771723672969935314287134621446593474631726698138446248599532272317569532192814648352191853159289836878888167422146236211426324295763559355976189692213344755174531775719387895754973287552968312378757766445829216534169354275293976743376757667219525559757266463936153727474184945479344969695787381653388587871397232527366843472535753511187117729771496971227369724965162873435311341936938764735221537694947367499482985751923525677347629456985912291665656898354177637662159559668624989569294599163817923867832674161927736175981271853247729976373463236633221336322525396273819145347811132154674736254861131145459249133226574955569845948132476379382594142336862755238121168796623853256278755828442143249918569744958566331722645658862752598362655592934995248693378443581226371829812211723563788523661771317478368378339585753594869727757585299137861717172431716777443281511493978948755787756323967165114144241934788266839552747553853357761853221946528454537272466691366342563566116842194711947595522245281435935619718188161711342446764696288638619396113272296321885255764526466395995112229741729233698859575194473972194977149951211994942439677874163468252956156955439463339926222456362455959544177913135126547682317342735778176856169562925673793426498865762347842778778245494635264158525648232498265978426779295591342796528657463851692259179628652832373137763157195311227179824995122234819914613244155841723912413625995885246458763146117317446588176554967691466779379999733482188633938677723371396186159277385147349197867284193711316233852355178977543359659819949551736869365143896921975955848774756231256651821422429894477345528149244719882723963742189793253845858229186368444717925784888262646566475981724184866233622337491947574961833241616139372413142235871266239443494195923153356468945149662696835133625819134679453757712871443755115576488635679844515682616981491947475248694577927474545133962945672184743189871528963465759744291399663771758798585621176159369488235412476345183544542935962788612943179693181334677761356424365467564522631653911687712253668995651982244218599467927232486285649648752152791536336949968675238282856952129172684367163819422239314898998794953368173254186297227516295174569685583817295624326176695182537496834114724174516194652159282921594994265572922612876969888989929318634179261421497983862758651472233531446577526214591656511557669912856483143743292246776721476456531978372546854867435997134568192198826869334719441831533888688787568144875345179252294472339197752556843356754768877214337247812957639855439786563284616429998294746721263132676884154775564482756328333435592169573859396633817438151483832948785169988652821553367486579753531937835789761815131769316279413416188557312482885959779377227557945889529557745139995823533278872359281146718212991572734142829943762855425336325463544847128892177251783315847373425899589268465989158478853468719389137954889387281817692848698636539233512438936127876959719571223935275316119711477973844689691984491811421471318194278436395373612693624652572479887528147674835983245599557674652293197754137524838387242898243362561235547289652378182271174319455457919627573618517623529941784329919971626886636387548522499711612588449917579187741592731691651788533423168967739678741799754823775826122817569536399368243524781271872862698541169985798959328444411595745588585483852646578292633682146584333769944288834553716953156613836191183492264528887373577237518928915255352613471217365977618499281695229288416326142537298947855814225223953584287331141843536116427939234471788412526489641241872564475613771511662291954977955981437977144195259278263559243532563341155354758674579734636988145369453878153919357229572159953588313581385676491112959155959287917265283739368377362366651568268874392654571297833148694649545233661726153161652856615867792225371452856143197382732327186318645678653356466173156267865575248695569784329817221747414851364923568336657548249213854128244446672593158792515526691912724258724754168837976517176166247652423787183765463113711416921664715973662837473663844864455312781267432515251417789165399831987993635875299338886682121193971571824382619621499967178177364421493712772623753648434241756296335595672734998251874386262889491751316478766461457775481467497561481927872428453229647583322957985986664895539741585243464568146645199578821784732355581735539284693649429486868883321494947865214376217146721698839968243827338565274778348398179965889962684449745212936764561467935722879222995516688264699645427898976887965516973887147999432211196684371829326694497996948148948586823895726364793382975777661329891289551177556784872238985127916913868865619176562685573975665154431126566463917274711116453866299399756383583399659649384568187996861598646965719664582727625314991839793377648593842113765285663555315632395144327427693111457711232694712295537369927318444913126374554753316921922643486676877485748214434836818962288645332969534443765157637422421385717812855187444858519242474492862543727225958223972986923352447671742553837758845143544868892548622756948514397791143427296459211376969829147716619942761396216243838799693372833826982911529124415364224349523785372462312324663178489713654823249365396427773979797668823294397323653383959246915761442651981692966184468372873348472536624574659256683418686718545687248686841755313543499871714273986744427382712965195171252568755339659378458534143451555691476987743751484337639875829388315893676741788191654641232949779159315879857556612974175179147952872459234778438535733338322926193337148425258981452685427517127438143983498286331488731379171723516794133741263291162988896867117766969233248457452541329994615461956868172827452695536416876211395772588759483552994535111529649116264938867111391553943994966867473875641351479434627817383878514781244269295147398177786863624982984491211714443349196683944341439868889859293426316874268471523498276152971392812488794532573722638134331359439558427761718178232145356371292247969645615412333426751376386591287959419849962393766883512951958553493386272392477155485689675421669876583723769364792359116647613489928378543478747763673327967214115733466793566341517728415925424886232781936558698369211592932319822989182536485221229268352482363551348499948458469475399347463797731451443277823759278292748117779824857165746812828637711412188851334939484174145818578618725511423825753959354843689451231769712992556751686969328254275241112199254718766362274987295617717717621182858474689888686156716575236324498245494471149743313859362994333146665992995967288462388586818112667166346632449285494151739539585381915478592418838243214156114633622159899848622435544958558812163267246928789812466751695485682817411183959849966532581137585664394492587461467999158151789244474893951786621311214129177881327597791759421442463863669347369129688753684527663748193837554554422287435786432616515786441786126144775243875145575843476444945457724347515917544838156699983527188512252632376757563121918241958718822165392876412613793627512472252468877954694754924264924141155381268853211675976383783176181628624318528676963692758956564615366696447384871238294188533873318867491228515617436724676864183968697519458819452914379855163348297857782653496587823797212446245929688833972521291469179223746237285157354395314349257168231753471866581819339644568155967942278244782772793657992717283876182715274349418653351522138316894973589813744698723855856787266553881761134473254429715473197542721887899237442874754181389132314482961873526684959357385278498637723899141698983816534142761633214474387447234414946349416468678116443165777997481814855481147858471576934732361442725243156831657614296468694627788293596279234884193638586758516335565282985362661833772445175698144552749265321313569582989458253517671586816937273911219154868118655693284865472663673566843642516966363649275232578834418572621216732985981413551333663419469588152248537667812834288428265113917111963628398482698521437837927517694855674512571423454927697358117382738268425456671172632457256874956762693136684781843977582269463948187489158425488685333548365557466194198739267134557799535981626225524386112894258827779267227739271588198378592364139845556328245184893621568694986979525156958467756127954722119696648942536462135636311772773732385989231676879341861838195258385863685652328151236228926432269736993456587383395827718341556429818133781419637128778592556177856759927857729419387147381877562236127792462313322824532518155267768427653872184274526666471977652493948225422649179645262358814142346157489652549492818933723916248744572446589428518391463753376249596729368299949768714988296729568239256865869626596883612364218922836312886857397875134259661343425956133617436113526849886818151535938388921522762344232712616569152871772724889814325485636271185263229471658549861318861487485911112948993745522542337355193572473567356429972126247862379516753988523154941142555231457387852141881285589473537939164782567779768866313241492195991378424191156742362675515613293229961469454827843199449811129321216242166547232421463344344266376889895449152293127351765171597176954587482491692435591888837544947386914152122244782769543287581327798113293426674841795113652672331132352672348623691199465421544656671628842693752759776226261424972143716965241314372783498349736738119685197928445614843765638291181948458249973433616973534353352335178873759183353951192516641763269146322211446639638769322397613597238348372743785551483512262512323947764937315659777926242283393696362645364638695397991128357526132286612973733342831833657387891928579667939153245217472191789771627573165969373784421521588454516254359856763931463423452196536241476449925227254584729817451964111644535846661898268149785872271125467941496586212196974452458551896479529257676876573818954788677214155951627394831229914273138748143548599228591522511937121884797951899611461492543634326215573366335295339369514676198628154371893422843869711276765535331758747868942237287113679222654719472257842163662371648559613173828923617712967185147892652849921812172742937625939717862136937927934297388831433392977271763444145454163856878997294711766989384838324518976776575754829418446628439788666233779244636667389941774642597129286191453998537539596851999589597295331629463115954547527465324933555416342532936288831566987379514844467511692319183148626343283666913653612832739133775498626873462637886959131134391731582978314466943638541633863925974179989424817269913165351543138444342263643268259455979933236859373498643967773617195987399785712941694889657897516994613581951233293571434994753332692931924936234471413713176499568751653844567814844114311949785541616788134815187597827811778323473842653124433261843522698439666831994215557763747888937779635218297417963528872468252928871382992732437679457493217498275283482445686444378816137755462871127352619333559348941515942129131744814737183816798738332443336391771153841111589353175217549168936139322313361285492822665561453856766997323341761751815252286479946645356579645511589115223668643286621357121552519419821276138347718724524569519559432438831745515376527864714657589623414478918426977653914368126968297644324256733586677913893589288942373787251398956555733172998783899166772719585149493719787655845741416566514916946226184849333795736372813313997518216699512782244779861991389939641288139297411668544643769642696514426345865921775138284957296646987599186467533925734127747411998657555181733934596797571191289945698197169361699278826815833816275175671695655552432923495676283689955195559994147338668115624772775374728617129742587387758135283619961721411484432159733625133383278249279396648853725176668897914727634463127891262577124912593964636862263742757895596885134321562147244417572259699287689111255358963313159264134952629428423948734964268175587762723663595888652948464261617374455619858336281375191426376993338688663594112238628569175674997665422562952164926751768325724378829165159366657232187999469687567464968883438149257847762739375112497184426119134717474435462862981698938549542812548872317493672631423377229311453231351989236398331547158187123444368456368886719753457255957279595339855633392167492116619226266698673935364469198199658579285744591784218645544344198945753226565633853717249453762545911232787231525875587433618742233245222844985462791533792566779883315587875311579523882937514382613151737368315255433626366694764869831647367782234586192661926412384358964633745182682756858498527851547888153451619884459288129694646324228363314282426424125974346768178993324531672113515893316883589478781942198218548836157634782728486479578487222814528271558618446973921667469559711517461221955652944899646571459491246257243697781179133579514553555168683843521537429666626852196582459633884825566422974558667295341293479752196737924278934643166975311275484967649156858293598195526533171455128824598417667466917551846781383263412342998644234877852429456752893926225168371557332563418172361452162568385341173229559266371315492547366789676897733657274214743986612279137616368523231559824212663878772422948889193137918328383661446578662439448631322143772127151597352495427279292485762764458517132379712418336455829986332162764881851982613347628616137244319697672669731943694455157879188947614769641635893237633399297182742218161223592824675894713519673783479581739721267556826165122389536474347227124768349856357475327844367977588855678553177714235829145732488263629474779441754335139592638545696633989923997229632561633567936588776658848559411567529865547984761436399155985941691577811518985126646541939423582528218268146547191753845677924165875689484937636599873431122336814451498781454813898121123254734968198866892271358169272475758144943728397414449256252389764557851123853583726739245353327663347349523761832593427742964619933665416772654794124798883244937282622388343712194372159464666264435642475645735161356381656273594168285647111516531158113529769264972335135176528522323563549454741973465862414254485542885611184169395772812126554917275746743139858415586697343632448712476668553384842391923186219989215662416633997136117424935732632197237689969671272913486767831948751418495252378468697164755758612652581196213948897593768242193257314493814297885525891624612827556886166466153695174134384476121697194739334693181482711256747716525878612161368286467361845615255733683687693421946672765126531192359517266497591957212722264273286136743372129915635796913328437141614841933823385754344455398991962344336528746211544978498187263286518251114534577954793591297415164879861222679365633971981531936493278189336242594772879922814442758566488912151438415496586739995831479268263395246575112784672154181996723131634189581748915211618696276488432748697752551961811661177614546611579234288365345382398968312962919823339165689127146832662748937829143947495286899472536791483164167261881318987824976645573879365989168998886577864427874152978365362161749385961493168463549375791896769697183222328254497315774853439378985396428242572212679954285193891321952765921932288972389789168999995951531633631427545514499398277672535686839872515965395224132779821377851736777264693113495472343461145217784599858948277624748963966487144382366151867628972777963691395734859554439171877844539889828481764598939737713586848826797535599748532513274522195886556299638512355415723164354732475984836686822241722918333585621219572149611624784975696954415526364566426488667143412996336877313748279717663266596696228814534687515384139245784443954623965334964492784697175518782954359872177516674944641182859144468435543283741235589586661563999642276485768869218966632567856829136564839716627313865922616286179734116176536267434825975593191962363858411126768141537175274369375661491412178872834531958363291647676615813588662993186712129284749491961128974963371841943851223153238149837233449522516791812127321223195727961892143522592792323335645115799869953214352422653775238638196973857167582722766143565327126722897614343414689284439851462933211961375514853769283177113215425511536876351537345552251461892342374861485537162616621766745868986362399843548698259226688164952577616579724583397397764679953291859496367615734363929476271589464483828669133457649677183131175494675439332466221976684996993521878211132277779776335613291433429229223448116973695956265298549359362415216612951455879388122856863992412973167192477496297372868157387584689388425255764571656361989627985813644167433769835551547419188678832247879255237671525354253918682795582486899546586912236426275354692831418353891472584124732257616688638552731776825236698713464933685539692668349761329289516818166518476632356222152951992571377827564116331842855941939985993673328529142115291794787664164321642493387497916974352918314745799837256785465153477667398762239923736394731335563228746513725626889518881813459551334984245696374114991161394249363559864422858268547644663176983247133354549355218762127314993216818933477382783567567398686897476278514233311447193722589157784391142555774718418689636531399627722865342612543299162615624575346322844915158367363422783921444966149449943769485526784984928324827661644991748289757145437267548293356636698426381974427233875594718361839651389377728421597156426143125181198135686428477171692216517995914616264796433139288317857547937487993463915317116846621374956694383518717237838512164189365914241482353964656586692999735316519656762966221769328497378688249194669745366432444283819678483381656539955687821138329265113232276827722271852854775581971283211872554651634718175512619727947814167323375635442883943913686376671393628172526684987277435952618638788686736285573289832326575327195943415133561878751781338758558942182484639617462448561345179864971218572431967111956879377353549659385428414924199685513236481335263795535836235173523636373395722979422894516193344416134353723811642831272661884235827241413683646728835882869382663476515762826497369747824642716934573948229757474347119363544136463656467332168482183929353555181445871594799637746927852186494427814963422374146538223311859291981375697724117661571781765685762699247818219875731798765322787846669439359126598566332753821614159992826627367923545619882742246935215666482983236686655737741434833399937134337794349713485428712921712514837595939899147578438421381541823463955735637484216147176118199445629193466194425918614215914847489398534134475866626935526818447366129522758323765367719388222948548379554265542957637564365448393929965382635729472126443977885186972398451822758741483679357746344463398478444318255412326199624959378995748178782321553152122316124913476163841963116392493633334524741357531526726346485537759211574599252383854478916468133932189438242361645982682226929223411242866191245633789911592514734658744343456818987967926256529864646979214885682477267772323398653249259636995932637494535743517712637579268552613243595968218989141787793547598812151446356945847925674827577357443586991695978659226587244767412558158197494258161618423777528673476276815229125985826983735581637344824335247644116694876314476919371614137889381751146767184684522472784462381354267834532889231367436762788713128719143221233257899355323173375254157469372476254178619826954459764491328365979377137119794138994433555261657575377976846147937469613218264711238825497911683329188489385665677358887677536866664491319664122757625373936412177326437293694777439867259791897638251879238515347234847816886537253239142871494117499168746378984216118286225636264179944561459768268975687149655951835281225982786584142745598184276584595182259898292366625513711468727225331329128245695136417443214825347268169964332844374117327687111727523519832915342631351999718871422772655744267221255344114981933189243616921743656179589777768867781132634686852458297264729616363476627886459584313928388258775921463241685643964245874787654135171374343785969384771937692985481428731998485313768662321518847878651631458888955891132172855632375437463251954424427524618159387729455669653195436278538232161722665221186384837434266889194966921543549167538162568156955459952994247153795611757552156471474573887582752112276721825463499845133772847857164635717152281264766924117781486758318893121136591183482961198662482162453356895813132327335172398415541776345735947959681287327158691567991454947643591698328933873928517652945698747796528321687878628284477836719367918739787464226143571262631657347129988724145548786792854918633334322983377731698267343542415637847946263734894799414567797248833526932295673942872238897522484634227446894187273495184835962224646269858256854182598771256467831447322235711918147915939565347371892915474474276867259216628346436525862388595282996916467391824375859978737255345825462289252587852849513326751233667775689827512775635857531444698365732694354322874358992144394228571741154485563886785778116317254337233661216384952528228748464876499655665293586638448213958336974738284683741483226137332154559812739177342389591184716822255246317215939956815914265846862464984794287982662241567939425551849298516215459464319992943476559379138748263199439328511647383218911884689899731553392366184294983161428417279324553677276584782178219939646468792968765213589686596488332877537632588918246215753381114289933595643433256756129347458666568717161394417973574597332987632493118237478164322761383589233451561263999715246292331477489614659674864725338857969995632482846693189552974667453242694842115574882726714168783996166539639177554635295591269559164697558556192443953492416352157417152896314557632861991625728459155234763197861945125976547372276588853253738621222629152878885543217522793564575736549616394736957698767113458812355394724296791559226926151941165485867166745779791483987971976524888495968436396434512299197637126955341273793434775884793366156541974981351483759238597832337871867265389327582595343926248835812537846776525664198479883765245487162538279546845672469635248676363415223266749196331294617563188229731946619528941159411945343164847831471323125229259253766963345127964185396817732746912687721223818226645225887951549798469571751463926536815618653621446383357483585127717267122272216734168796954456125732423539659222527386879225725287328562426337478186564585957465186843964586222921676924418144542234321768379471426918447142485587928973799735677277991694743281861568848891357964563612985293289235917786819596852112299619816738138897387336811999229171952514326286823545135125946943837888319828499753346748241834117794525486226189313977781763263733283621233731669845513478785857264425437799654638178426373668465796239898763225923764381556382752364253939239731196324368886151176481772595566565186413281776773222278336763428826566774741317638646478945375147682258422542294957584377794397955169811144253547295513283511286681671665189234942492629768876445492458745767952182252127894537966192965441226324448639328762566275252794716348671534356222267764379447718332188121454965171846273195865596694495348634242225731931497856415745278141455465937828958633273647153856989336718499385938345617213587976997567495423815539178787135733222866595136216658555333926587718784433824444998743365567115774551874155598897762986532122589943119325764553228215757969117811292123588832142853337923834624623724162745958224356158449711163234539693187799234738453432426639872731138617529872717948179733519673675335975852932516413374525472538961467842124274714949471818951756782464566883243546473543338493951187333921235577114357689417693791334615626153764188746576335594625985346841117424277734366715166543966548559389697371685266561914399843797615574289248654199199538412661431776295299854364253115835981924981618117992426732941323712893291141852551672235328348528698896819874917975178599324164834694283179551357753513324539812361578784649665329668781133923149187845318264585432219212414616515188518425772215335245485644285583443365631742153667194457875323556762223385381646245689365797953528649857476429943599536995699741594588215847742891833423972755894252972446111188162412689764244547744877476474389421678444757992754941677314642663629453738426582885942563826972224258521252881978462597787374496711552555634731466526384912341811755999452724859419927317441421494884829981365294286816549471411887279956883312718389922968998977773568247466446364256441231936683838733368892427832465468361828291954279958191773918445179161769864272976875742932766273177254129435522298663854929646743447759582133232997273575427192335998856958272461176324765564586985869553278314311932397734982669945889116935355458487249546683586965865547172517344958782449587273668193799848662956725849797514778568837622576662342815685434691547419172228885818188646968437471221116238915485273936522344982883884496285632149331882916394472659989417769973795863143572817953942772448234512988272437517313586652785417747824542664325134272636784323986668922278499881218359838359547283984189838717816542534247291799996394376935726259492626424594392729247739291725644715346675994165177649558429983352775342731136534288243985863188256769742745487885599786263459364731694776214882431319824168975447496663283562614733514819795238766413621876825386436817675287953683745721213621363933591117783941314676786948973266515515373566686943621114891117767217634979647132383483862862527237899287141843971298473459691314983991615698985995622956815826214494554913799278649734313885315654188388557454227189419788227782979818552387517215245113823681777647392419161789294694886233289953563614618576585845222643942835272342692458987461883855238411828142399333222868845139542372463256265297518584367869613839975279696295746584929785755937925442391711374733133992466858641973193273189552654853178663426313612838135979935428616352593233483565267744745276926642691813149486711475648255746381451439544562231268621435798427452483336681693718551593162714438576898356424784639577874944387123592426866334677525312696113624963194681392768421841999481641146345792622888639613682639573686299679832991652522789742689947657523485575431683749713871754518169387833276324487368534619949744672345652283511246989248933896253476832949289393871684575765379515187281187826183141477842469219618426424194692995832516742652523354784283552739222462936181332556733132386558469595787395327462824236264798534473841569981615797919524894545972155291189239717497349737989467672179278982851689313174762617364462478166241198918215671742458795732637231239929741297251496164546597219322214177185711638245587936656677888285882452314227555347812368136744122356475885431854534669462935436551987455987962315761596688221755843487876562782147196664474448723969647183349444153618944378159345298816131964469629413839634557176867458354771631462744796151757332967782258192147211569965138851146724727627729339475371674559543914385136617531457884941385139429747241899542576264667686288929894596584437575292546313822613581831488829466974928647827978236219246816852348739484175862684284917597172395268196493778936244534373989118524322752128812425777194382272923344427629598531897516933141342565815556495347337986578772795939311866315837651247784552739213233119648922765678446892863873175385238939195553486865951236444871384286985549767354748742384661788286683135192725288942178534592399757169658638136821937869218337392988843695597179261747656478986275868137676472287261724351249867342154811337555361241675779554278383754786339756779836393258665392656824446421987869479783437866921592836477476151188855188865465514577114849354452136644519844474731442725649974176549979764281653587757212998416168946822239274432196717997737322216796818726169168747326988511729389858621326221984624213963834852637599421132129471881966258534796445286278379216284281795657826459776483211121639946916461242676653271481582545447928553566532177383331379423855546372527168366884216243175258792319451147963542853565772175944164998112797942137363738836429735125824993786888514786568189962553834323481168799967612321316442624934172267937733573694623356417691917213885566692852123447967727726426515141619775886139824586256788348832782759337841622158564241954745923187111874735839776188184457957255955932494776753342149584168773277659899266729144157184489257474139197822474377782378616611346658457937265693359476247797821475218812527175391337841529182227527417569256675697271211219221962612356362828376884913924825712962197613784591277567758229699785894544612961888624397119969937316759129116294945275975861753483858749759357642159536822886113397169935759593797541922218699938634526991831111744745844714585458799287261169134416779249588112771788494519412742318322279971157215944384224387427339455441455155549867378617347969714337462866411285813662395972852374999175695614294369488965241366655653122563772196945741354379844398598734911119714176191427492739588342732842712918617658477549486229373355525525365129867591438949856981421872217799584233265149824512444522631491258661885379261591745296258277292957134561576536598997522439948143735181237769228118858982775578742249251817827638493289366723576599414585167828558876792352699258287526132613466333891936276199817569151112356968348449857455335971875985911516329153938653185582568146536475916911393958356793858662295842342932951255969639914768878252476568653676973925796972859674792246991147744935585982255112471494173187759152599998194695741779166374849844993981871231583561466173466341748836914916155411346944288713866759348739235764788361578458635398222975897363739456514248111421331428816532784728367681481522545586266818977348273922969921255692227787674298815297382172297646766444182491372699217325533276733275663692628767687327751977531746113352423379847567332318852816515631761988962517238458234424855217283372167297829654577797172492119437432231723776113773379527717641282495465533233389627477248992929148574116228457418146768557748642488788311145865678244978742595633411339233618175887285158297651781812724975872259977462281945913873944441818133919656763755246523717149239822223966542816429961231845847739849146688769389286298272666328293115653528347355864671736357167366721953886511885342414938644369849945113654641164294576349765548531932396548645963329853728262114996135678433828149124394199199489991447279452255256464864763691488433241274288693248615871241179911234241459318621462859852868759872174227147889926199975161835711817228921698689188185482464843823535335384243141838376412885167311742369673865847574914271676317261386243428982728127335482112718736341481278431132855383582643516241278295927939214532779834184787613523914596416858825897115473933374564824454938711289881327619836273553887179939947925846617581117452521237121914795278839577476191353374976976244652533479116616731868355732355621763919899461134118743216339881846135125952954254937246668646629233724218293617998613368123674695857177896146635595711512768116692399978662235683953893178879537766553318422868253443648425267923577787638614437752825746362144389968512462613478468922448642961945796832982318953834978732826711381763851171775158545217379949967123397384361765598927644437332934254872397354793484138472293385699976195829288436839676685924472469968351368299773629287667894131926851876685662823629485165577468143129667123294466393899236872675876743554664999428797711387444832485538894282133812572599343625753195984282395574622771694854328527115423653199452527577751171832633964337526461492249714721793955252483135669719924784154224428824951163538487378645841352783665859865116844571335818843111356831716116699947968459233443567149199699258252737672584736963655464414338232395952189562157313848289621334553956155181295825199727667699843147752249268641149819565225199493166161975838732622656178566495691216393785568628764469226855414423133419755626391637548133563895288328283645273336981872127396895536355618925357745612814542112654187538439854527988167311521776174727559434785473178899851917524886521453729165472152137128668945576422573489915129312823678461818441487725515117838918265982162814852513963463146745562941146136519651936163466939474577572164614568642257483976823269996992452818663687425712272598477976112373939187828279497555383979568786877876557464213957464652597264751427862598827212847392442957322353149398189898972791834928748764168996784563459528591782555422727515284549765615454422566987168799296558415865299541785374879649559193834299629572549167554497352241524843615562615611254584317421463746996441591941965313734366492654143676725719794234586822359415718175646116875397645226241289551357791391888316969569184191945961639659737457952898896295298784746612464198783863642251678446719459594794662956299224261994573318358637983177777697114993349661374136725921688247837137359395222615277568626539222924558476887138545291962595416517952788266968713222227366796356941198824411372584694421898523117226897337365412659181969811221722411124748287243241247227248219449342515413937241354875588398322254294635837441465732289918721745144517998632666249357247199973477727425268334937951674364251487968619125847231815962287592521227966876359963154439557395547548245722446443636978733453895559363744887411664351123348437983818162458288245459469774416214483289333231144578324371622242469678511724717164986313364377413361119181452156444964279616346572662468593598142536844795228774829165815254866999673932354939322227696112496175932225359653573584354854983581963264589543689838253537926264159366714547795678484646426933237252613166725282911363795486698293454659222748849755135462119839165528441514376151553888188972877329252282518114168357145841927648454562612512927752455847929763597754914965247821844437128985235999389775278858833255856744266656573449856731512837223885291865412545429983943215926194623699928162514492695914485985345683484281421769938328756345677226553971813878861682466981446157692978958235921968194681625128887164859553953138837295356668546232696452745947621439845511353865125569734227989812896335359536928474446746433224492825458492883629943426148469699871395223319561465616219935995862891313523479494864474476854341419431672818658143579796489793844776624815579474529489917976259425187466823749181137828595219941449285776941849832523363772666619517974577652535685712878135584535232578233366623284279172429863374411234541111319636633755649866387419753653683535286352725611239968833298355698116731912462384179942342976525235787766992129436439644641182695962638327528552194947391317467852915746487322422715434455299775875357885527758838262696116974361785554915679442266325815511846724359558915838953475855395468949354299188562445782167585932825649168866622656224319968451432886772457119273674995881725657844411656446252529818397367733316746799324838971959779484156376849427448721628513579317712339813743577348499241377217876918889953289814642556484195772362239934242122476621269557835959163855268361598268364119871275261455869796756551376676554579985929415475848484411177623968857358278716299137368365125292176799627587196187723549939459466926987634334832692855738673627229618269683865924297661437778479449155113398789188745876533369393297698836695592475753495621441759499261839279416979198451584568317114296113943529439274322757477287496996389532553478791855592219848348856817943279149124463662655467253642426633636436773838173619424586727371523955623714511761682848519237268463924185545611669743673685312147338746181641696578736994414497231984692555514141813491841381182171438573923426417546639657645752874531833954584347889753427881168521582677126448127983223812996746784941643286976665775955144617264558613829416963448834348697324779629711732327451334647316147423265244296327852973237867462192328721249751446532845529355354485256158134177629793334258774111525131834339989868171485363553594996178399287273971928534777927425932652661387573564317674466998571735882819456712222888225713551533921281136615727985795265521463753872874444815584154661111156422799866218587145449686585699331488375785533237659618166524447475291678111423988948744385638356775832632764152844617936387213679252225491796771121813349159427233455983942518519589623617638451595982276325166914874125888614653249355877373863249642238887243355371857574668973837848626449665282266893168955337812663396263671776355661456867657624933558724782325771715292846516899153714281292668748356441891479374644852961137991715447416353379633917213214813863315136661877739939649859339425745237782769532324377252174915479982659726769881218813919499835723777749214182192772162891774335592356176464563649745823899222672896493139476631594165354265433512141443379832881176591826448597692635852835992898447528142891659722286468747936761411395474439499527143827528284134243681923953783587869429337649944391392676754192778519432284978397326484858257424264196114591229842571855668491615195614843964947194177444363233722272565749234833228962287599771877823496398679882666884533399376957286895662639796464697936842346954534988141199635994675149273868221518412421274663919423349525336286117147264529619642864715248756346951666996857791886257669444167642696285761431318822588331726469428936492424444226465186146683614416945176421821557855459126277696389687327219343828353154771329847816437248161443268472738651645324867661366499616432695369313644128674791349298821971416326681882658118131859732819748361928985159859652647518678452387278967352347282355895663597525332227852165764898377732962624156267841947414782518281376538743468933136766134174982928552435651453545221713129517697553676131175339731791993854693447794297213734696675775959398533292512231383753419875478388232449589691629894123899337254167191958817958847148437469974469968964743438292896648364261697684478642984793863436253667526265412276463731917259763818661276626833468531611326272562317234785457792554514635252397427238517943611854214567172211841454394997157132542787575685568614143432235838961248886444799668861193195687574587365899168913899987297565212559175654468259548326135782291336232787923838771513196563672694216374965248915154344899947295516133428932622126549828713323863465697489551742395266146367543878437965829884912438933557211377219895377265655897679724434452262131667372627185642623856381396599564281442951415665948467587947873281224418448795187934773366853161971421244113521312568794368574472412425725965185231998425262598638779241546134545535467973121874731644796297642184639216426492775729987616359467621531962592768249147686212146887739825974241853746413134146715577459747141135399931333545115553376349854855385267281433844297425938914288615122739762145364195487368686346847811885878493692149776434167541332298786414774867844486672435456566344785251547321647215456781437151338743895426471292635393445149171844123554281299351769994496313486777132441559364431431669389627284886128163988331363338256117625993595491678491436658463162722212461898845675627372927112274474518587352819371987278879995332573429954135952149746624412824961213196417992995869439759832228337436166646845332274139122233865697283757332654769973874886272739547712524688944841127415932994847516657994788263274814386484767428973662941857963452671228584314991257341436933257414425273593992916741773354478198541957296485676339396511857657491485114641197631659191275839579517996351361922165975872454319349848553577579665252548663993727799444692448394819852728197377846871231374993472267428227734528195218135323561765497118881232941441153574728885325935713726828853866113484352784276646918489264449948286691878285748338266172415318125674761578952774688176226736547994361416399367725623143696249839365294713748598851954324837729535844225498238123127437719471323797228657468161371893664691632992612466992817824713969328371459519645235324186456652573319344284147549871278713467525754677985388132918836616843584157414292521313594386946429676971611119251282421658342873631336375375281218231395228286448461987415923923745775275983537463362181482774948516923411764489624623761937222162554785751188949319564656477563627995469477269981946491826573734422767694318317281721892348691833198767187916735715775897657749849616314914567927583863538382274134654944389872529894256864981392747139457335386265579165553481644346281914432947595311845183146561178167411594343872846343547182989786525475718174257672925622711678229756135823336983973534614662373337748321643142448671131485513625498338273485529385478326856128548259177316857775292933526127761586582223797364774977128729495443872982341877344621222983821354531638743829452814835913294237579632496687422691983473683894642594634282724873951296554633986135487795976253448567992464542255782362858463617543232267522635184229394141399143246453194166654975894297226129443167267563138424894323834546468664489126337968437858141484939686123925537332165831644673864732223424866688785268221567743214425666952611488984615651434534866423117257194973243597539872368799188694313789893242884761986664453322652719699713981257245791145366429581449329417522245594518934575524457378228859163523963665111652896514435219995346423688188234322963285596484918649888696498721716915563991491254223881511472352842287587526621932229351277412496524252892454446656571598338466917232312456789355713862685419191714844978547562142227474725725786178465228764866976614164546914419256667343738235885272535925356362926651813634112529662263687223393858838181491551316422678389418793576385314358488919966884714583831457888213949749545122383741923968635456531513356847974348339514277792345384419983679113735775193762896314655653811711973549138294383713277621991879867119993712231491626278357344229929818288411341282818633356677558449247967189197287949263621265197821617215215822495421572588987678628347858229459879936284872638399223986697543429323821217361188999278648482623644825935661558346343916734884148429812367422144767957621998393133924158779784258844585575393496787983859737131824163519837277745543627681382363768918882517271624885633552787953753532571387358635288443512197362513661579214966574317547745371421777734644939675985648393719852928681944336282669132951232116296954937359767724625819822932531134527233297878139619582683836737279882981768571521579547719382999977976142788839877729481328417295892395463246222873722743573281569797143456867935395468525734781549342676252844363799659113479333356493117291525894657658785727942581781499459928283947725276869817885914858739657752423749415395983464657439474248278452382612198325589232178472298134241412511433871784789537656468783822962984252229598531285721588759845933438459317241257638676442215617831675594318224865623355466826598554994324934411873187523194644488767298581821896185746855318546223821778659637336691375786629341432488353215937586523981533466398536351552943682232429473517146887593548632889912144979231933429268323175254153246643554447678583314519924328533186332775432179419751653174827125648714246334274238283489761462826686998622948341168386362397479136536487671495499228743962698591143681346376725537391585645583487745678395855397926875338666914678144863247777568146667424914361163449664439175888433165465781687929885127124512335641976544612394372784585835958492498942311429746914352633228857976779889931884475788851262855543129998879968396774548554538172472261157943762237571436677475492628622316572585343364831668197258999221666815339465857893612316195996952542155891385165315525124513988141346726744148568891482732931743866437981395159849878841933915271712491431735628585378371569877847166198161532271698424459446928625315111153271239861295137639581991382386593515491491814665413491529658398448876916977223663891843897626469247836424136282451445525276712725387828311727852886346763323484813593314275859137652326558886266425645962456448294326871659166697151545689213133345822877783241745899356267568792374451919232216775619225762539756189281983213779328239795848713211237316536612524445414978749951162873324973135467887374147933838895136413615141739445849522713582984625875388351184667519689827915466844361185193468219257938739264747963172571727637531134996791265861166393473936567671168548645921935645871264618476462224977478461924391416667594131242539366292173413443918757168172234159658655986129319174679576597892847611299691632429885633273951135786715675627769536189395489593162631988449125868566395744782887149137872773258995425997366544247949726883196986437726552985398983864432641338861533186275793582667999153175741894991627976234379978874161534623892853549152479465231547589841129294547442589314737871418392393122566299337258529397337156375686832449463177829738361976693152644877714911782555471467826222374642311612568623159186777388395759871931176838133931686214943427395286283865677878827437721962771198627894269836727359121996164263924693818782353986877977583798989348528487422718396982731999796729471398841911738236488476245816742672546536498211748575189558123388442885514325398936544499381418342528969381719613256584593443366318294132192961366824153497624154963355454551576157463782443746132347873327263777512671713976588712488518235511241498478655312172111952873224337366193948468656866751827148461986695878614468935498571284118196655122882227919448286293593393866367446547236171888498637857932557391845458144921858612386879935653635169863154238188196783575939391787673877289976886354599182811979625792419316874418756755834829872241372391878218883448821392278292328446514225912245926846952771782524265576966189562245639795764825231777364861816821364243619991513571396571551233268573733621671827746373337459565322584746892873557264476111166586624188657844297794232832736384945453198782191879172145227844137572871748857823731843344927421176253317281773145127341633354361974215814881183485219362497722719121582868867115525341469931291292259335111712353775721624623743757679178259364432892962334588763428225138955397477563785143818149861363157586323968237631811694578594799447968253966627617666813752129153748463759319969734325588581585759694869778675537957395244282756615181958715357953672295513687347846831611136829986194545712345118582541544114993511845325457847795748782272562722886227651424194666434542688848927548213245643898521873832715596241159363726195746722194254694327332247418927481951151566825247768773414184823817822867448952517473712111583653245329953746896544694894953217529852846119689332681971464574136121285885843665724711746284597197115593966223674144127735174784484833227748995398699372888156484776988651449868618645712617245511218862915871641483863123637177198883963449493531717998261867565333638862799943913693417384948462634499569553653912231959243179131571326261425615628713636824726764784218341792353923275866237793962381214273317597725199612471666684715122342889652961921147193752121523546624678773754657356621622753916566824691955419145686757723914668241519593934837385849422623878772833772954346154538469631716584666823928351846378924866847575749422613446531947738215688326699642712946677571243153522334893756826929576234247442692725184468849431477988292835883154553777561414341939747711298483728895632663996988741521521358631418862127396794478528661586457378263465174753199831786835359186992127625988286169147618144852539641482779687384287748641935977841868145193621137712565557954736722625915376378948274538233595266317817335852646463895617867372813582315689843387567928795321491648868335199326152743511833972935611422839651355429669741828119461493574538553994748512694393339467514847783861234985143372694438278652229396418796119335575726534377589528949718327249677148689927766516391262972785642446114196752212849954952211673897417816371482565551945155992382921681127265311744738232622749831888989614134997471183254417381277966825217616444442665886615521316888398159782125161659118559679367197883651842457412212966823848546224479463597237348434914287939541888725863675318131322739422456444395789146556369381452383428961381658542297712649674783934729847993756874554717554932124594477957222718153522367558659998424129732811626867983647482381112423285465435991699852489517617748867483825314463347374234884656533169441771217429946368646999642757671646766387279716579158112285843896462889597578934839539737219488114182142788469743794656376214915423526684439313472826443153453784935584726755982163796899224582783332513977565671739328239568646868998295841296269171782748592977766586959177683589468621551658214862367254822168113765899954675949175789162266966242722696953346353822727823418932292252747971615886857639769562562776841537587965559292177923178245728761429115559469555246452255737483525524968884649253786911463111462893297166539344613293339538674744962767491334684893135888735119485461289113469849142638512812839365373273428482286359288378349275792928259977296729638454267185553643457334143623575419716513858122355978382543789328178719994795729327945187366286994855754112584514197596322738428783267567616955355914535617548216531277847532157446799249883613156253846588573217776789568728923638812459296526284752797667368512382326246787496671749595221961188229832389128575559497899896894615586725517365818647426395974335673343784418889643373893389792268382569899767521747927244113229136382161926677631432145346666579288284276843615637739254711357255973389873123675237242612546251657876763964311623346486539944198775341445766728941579211115414271794648224785588645455555885213263525347516953796231675153563778921443193687947469426822267344125169368525219945876466463185487993828579178962449864519628256855926773679465599376725675391964466133379215754581142519137123458151367277642199184333135746181875892518273361279582785268865833321462268495411458536932716189311346553291632666417191169778687721275484556693344143148914763335341888232792115397492281447779193171973152351671419527562127926223211415429586525466112223914536737777218157618244844855136577141727437332892594978353765312926987639443522772168874159571762369122945297354348136321377233257259344752466791693224341953277983815189225785754966389284411298378886787265639925534342682681426384853567121911454788845913954582856112814783838195889389564921196796766145327127595423378679768347913616936748377729136792768591281441934696323194987566642471588521514872314613991637299336384136177553582931121173682614231533141674831923125922289348642794197955326328618111228142916174473167689221981881711514794291637843581392389367337476745154296779127246274219832468131545844421322926644953836872663626291532652753496781163559795166565526672745885543548783661156693943689654241584738517762855425598867733136184567217873158688138813675778386732452939334982785565823381118679794896728127384739211438439186156345916826444796616748671468153686976546171449999562328364159397894348945878767693835649144964633156749226982641923486379664927221684696184258251487114961452963129478976392115953743148163258459386173792712386451663459674498426933393372589235281535381629552233452688737738247288616677521524858115887551454961812457119262546457824567592887858984783698643276858294953131715593761129873199674374668861841489645756632931877394759435518545389854316597585213568511142884313287427967615135371221214382613932662367118519836848859367537719766982682432324917791617358129185664622754875274853994538439327773935291478994377567828659582157449958886574881547218963911925758633411957346489199886176167532385525519242779578556153658399427868329232489346981675739548579156877789827731338375757792538543139797578351372199564234277911222179837652687886733245451952963169143797855633295499745839925222126295879322541161943425316727829337714735878884877219539299871893573945423299686386248957945914251344875994952479983767561841255378564943437673469746471465479887542945277735161933571625143922575658275947343326573524136327364729645138763984539762163673419782735237183289532417514761191967131442241348382432171457456542234277371314133264362395938572784281817847339545869988471228395794684466189934329316144256884443792137625628848768462777264697867869532982675541376443157415281876628726873326343886972713221297858629296437951237835985296225891652551293787899571978488199587543598596774453299386124814752595644484959384512531131511886924487726121948398431444484461943482253664657576228352678924917345449694968715235159196997287811444213688468879374174662381161995325574428194919326683711616685216563883692993925663833792361771326595854842223689852939154131242771255548651817773776771273285443457891655636494669237334441965298967931473112367388892334321739526318345545671287176298629583544154887331687615312921762629963367535347415965585676643713698814666179719216654111764934293973337825884715268569635917326623745526815364789545397788529961334666345762139974413269821727738195628285376273513719791751423333783591928534775845793767799912168418598341717292661836695586592432171994964773838891569997556588796775171448621599545444188636594161567691452412356789196858398694649318443564798256155729648317562491244589848553167438383212758887919247231976273725653762836515294218821997614875339595677338656966857746497775397246514226971577151724463939458163713934622678373345661863718613864166427474399633189955235985251556188735155996294189511997413557155827422711429826666655485628323614334414445315861525863315127486628149473884379322796927429947698593348527744665733334965757417246379129884259623945221695435949666577556869639914335274616219165612256723684665887315675285981541665237485831329849395713211254319622458732764647567948348452772643777631815268814596331956123276552395286683563912634617129436889199616265311691743994715638225224173699129168132221591954665177364622423319122233272366631137753114356576487589717833485487163363778325863511571253482819614749116837314463499514742832682166956548257484723573847129287382867329134863135381675365273791967597519885188526683998415684571221869747246998545735556924361373268232946544478849395986212339555366451913441124153531141263117424168959382383786938933948338961465359287215564266958242954651686122128748385699284986172536595995286959777235243441948271728227524119186799292436439236197918669161978536446578111923433234988975971623355892693684927238427315691652786355514771162774626245694659836452813361466643984597956311373828917233268722919358943673581762542264479241331255158394652637662777214937959164567297641782358535136437232927463181735614848571184616328411235433515964248195192543974825828252591886319218517652958338799424554542262971822586671493262193557791896883974112677696812922255825813582778178235994575767882263743972148846669157514979647662925212315179635541289575528174365785915512375827735672233949356734224554781262935492514796722384695949318424516845185363934153391884615446786379767293574877117974434767435841716535662148747445776243965359329962436621395137514128315839662557688339468769418811649113868813661384319976916796858649835615761887197194584953526489462712287275865664921416657395222382591116693969359498944663283291449451999395121958742298395525448473472481881875648847667217641478614733721697251835681291855982732295356325939122479587572868932241676297699592637476222397299313469989647676739466977996715536862859613369932867454954624177652726676713795871516891352658213474931511779256396785798853673998372332389394823489859643899198916247366276556794668532812719511913747364799467623574645715655646719534894739491647191471934488957891371543372435124161952389174843869813149272774168153281187562747526721636793988883291398944197759321373942149837246266159448224955962255258241854578173917728113518623148852826263169359121822172823226991182618913738739712918998311881788847636999672532522322131228186871532212177211262482495516314981843154151851777915155595225514576881286261347928423862373723961637746363385977718895122383678641415931148635396284585623861624755247251994433842388748835896369764378477719982991765647935649616934661421318597563826428972932514868891821568215486936713914255531429382447257685186767147462894835863986699468765441135779859241617815465491176518512877763675636326843372277828667855639786358878453679796568235999452328943629544819768414336625659781674845789168134865286748213179136428876781583959467922831948839471357715863246172774847831523561584365841954652828393866927263221536821814269341158245736442642785375355661584598393774218472549866481946985333253419739566699685133216794226439669532587147985596717266687128974926164867455884544161628219116488194369114572815322472183182731428854844181272784729938137298249124488785892961232224936545458359686365734929833145446988424248996621993485367561984472312625414955155482728474463719839189529915419738991637973232924833863753184155945997583796988469546791117423815385143312999735567147947768957476768188177949586288982547442178755553359152999417295448182397152596722626715745454987685814618747419562142515859237994365724598238264367498783695384721171421132847254983751819337697595636648722546834198278111669418871534395458929338146845811741637678988323115947841314794767729476354176476779542572741916777624247555973549483529692692358919223967453616545785644692827697528894437687341617251421682342992761194762585545258299258373362547437813942395799629535342678712454124318446815866728253399169194496736561151527188893113817817246728464468429127996187376147761422357783514425194612348953537668783551782123523783917712864528387532589681943112492162246587415966115964166256395481494142662957658154448864582921969363528624378183326192549531627543784545863669871489534486537271358792267432319337279426969676611568674326535448165186782638298245993333965499114623272334143957345577753293293554769783286471195542217435635979255233341977976431439973535923927449563659236868781788931422513235281346258833591669352484443755263385811573732788613849163438853172541588751938799872888112785182146284159142892777855665733231344853247949129296872337798912144528622226238147614746426216319652493524146938699863594113633687716958362854713699838248491668428924849824385543426238168133855656939911348682923536321133498853445236258116297431962974313188322744358258767591486573894292824986322136712452489136426624695984516718388323461364884446715394644314132853199115493836395725989399782866264165594665294774262191968944559955485651169425841939925728163157586939945877361453344895611995742235229696321256588868328328672885485244766879328284996726583662989584968446476175475846584758756695971713449936473856495661434194571551873776323587226671524922278323391667387446256694745946254975393249957691214864237731345642159474269928138415737489424876881817133114816647199738769957625615326517898552251124881874426975496946725469564566943911353848378861533967814268753143967241167853895982772987753945241854849424793291256445119393796781155186465573697221631558728396491799335771139749693646518337857836757224216969938282831554338819484986395882684492673638941731768157576165223662628979764747712617254769271337497285151424983243858224131254892699993944243456731442755869147296185478782936587532796173966685284731598591248881949656733489818261129957972758742795268487476283283188875848623882496235862479788986763345116374313926492549417395771984584191532713342496346964441438865275316377691639263759192144829435845572221283298464263465745777252697719727946873298435798365171239911772565252451292571497893815795772828433458466623641221591979457637469694449181243365395482335988623583825713737152571998932519361519889351623226264253154194139181968983934245852276372781283191186874166589965172618775784182988676873521416913962727395583582439126276216796982944762311667691592128638396874978244464311179127229982819497783616943472378271992799761699367526211446563361268427394462288749459383838255171922541876984756682528812617114194348224812176745777656616316614928649129236889457912673283732224987888719487323122268376449661949626496324145245452277712676669622269781175588132148829976642583697565563922724937617595158297355192658759811293853512117816541951294977868877152392592172626629639116892677382421559657829379342243712768486536572436298925948952213388136678325467966758342136347465267724546962657233155157571296613374626222367188273578334343893131381992137726643889513936215517434534636497841138988161771111854286458977662655552266323333497795349246891956481416137359688358773675354449978929421146984717575632156581478268991914593862518862966624641456245245584659819775771431785819434846384649528375752885953423365638255518459386869148432664798352956516451368844837669725183917112643277293986469125986585785475639847556754489281777326883429973856492967495213171811498729716989638724443864171152181953823411462233666841257352569444535775711834189673697322457382644191562653852797166687811438582881847891185254959517198231979158122791818334618658367179165969772841812644984748665351256642618772863925314676432866762434484361336527947395847923598621969385427958642462844534774534629548878563436561634966343685945989765512744388432727251318712299175525789917849991625655425535422873431231814784855399731373614781923845835294668186959166236595576751342762117815498394816555992577581646746326666485864428898944782645219731395833418849638422771744354136965457678442394135392266572873468893669383422724234448885962218198344153494564876219197583613592335631868214572191999738198358479832816625163262351233923746473355525187683898114936326579126442883472139318119512932579571124192448542352252112284341388288698731663788894913212445462289938719765124813213514546982299173842627229499719958292889997895969221832761632527326514483262657579642728771921543182421736982627572642418499543742983945633684431593633562415779756951593651183932384531769226191794833998186489597851725747236315677976675323263737718261884414961648216626841114774589577917312466176638211311577826762443162317814576386396353933598633849968648994512132655857196958142937772569991183258633332817729811587523412511625476619789552432468221462512562998558426461593729532568597754833687528155293565417564313176359517258153573727347192323518244184797513848929743442563813736934294953127928882124369549712394623997219899677778115948919137488777497366233981799284174876524471128735357546624532838126677894885768373826478822194995451139428984711983629411499778223325356144314492653483432398119231655348678817962311542661562575448863729611396426369434579617941735997846966497922755211151754726316899575914695869269264238599121619546947396772677583996645655696558142671336394153332895458918453356522545264668791889215185929144685838344689468535555964445359616198833281136979424819144568329928791818921697538817711156887769537428229168711589351355833699442173985781651698623647139388122238526983948986737181683611422545385873175874447245292452483636954431637224557161489525763915591833885596832647575536992282731693771239713855512954542659721669946968838913554658812166827883876451334934378533313317888566743377499783118861272311988834497635363331432317314335433215534396622944986216746178591611163472934127424824497913743693697835938231871353792471745894154846339151937163322358312691996361994887881675896821642711819536424782479426895476539699689623164432677598177524956926873735931263219958755496791483868242533647868754628166635763839743785158745511952667329794177951229613576136922177799668165758779621978561152368837894699154929872768514519724517185344249621597773524873735265873316539571531287548725198514972291853789732741374155653493789897963131993256284488853272449328995217216412919457132349463384174593113653744678371494441658966495615969234571317356679635529159511195998356265899457329751655615514984718334813748479344388758298686957778969323159873292165884632226783688519815781919915482735746424782542421788888778215388753384652794825993771647357875641869234392674162338383916694267143856275332627741668759427623435629136657619474321184836687818368371735575321633532924472152977794866413744887248339676671767437713333615984587419466923988531391434684172421251986677865516526657915222454368366813588938681246926448563788514185333225872986466991646815646954485586174251687366321899364858286634239544692337859748774948756418631664923144729682558752636156918975356458839787923687749354845732146582473441223372945979353715829577613836937164267553578758339186846129623328634388535391113921594196146278931358111639539721779288673389181916827878721683759667325553441441112688558517772728559994337361462529364214789962616596817534569691536837196181151799361923368228269741449848952929846837153864579442466459233324297771475759996839175519422744253829866221129692598949889943358439496817929878927711588572816547576966757624315886835773752316953558123865295772364731996126611855666833352729845317416817577561137619834884858279819499136682773424395583968875655583486154129352661129324982456994332826227252318319221628764342664745357151171811733774558863928382826412418587658726179845136855936565696354199971467441844529911456916541941726852585568929711745435978151922597645191973842816248745431522661325633729893984517361712654819831393655645832181717877843333215233488842325433513271855177387699948831953474634941926423141699683364458696968341243774966936984129555313898612735991387889467767612142421161223613631398234791451553674689792952213233835314248393559827876869179482675194417226562452129516593441597895336947583727918868418632789478989584233583274958798551529555243279693731148324293147188933346664523794888611938222821613847593845123591261153864145195388937321713862968173267661161688472113264458635342467213219377195295319644597811155766177993692192432495835426529985483173332422564683266596947825464769882933179427633162655446883248136228514346998294369693361573375996646169658357672541767624942422175579534259816159125886378429427764796121991595396875392224164841299711789639259736164365671944943923972943848729236541197291584775163155439181192556666374212688184288621529539685149656977225933331193144987745257113689392773995914227695378783492549578536726215635375792569788843788532113523175593962116174958226168167428616154359459156452253759566396267662986821816559655839775215719465463944924578434816873382762688134327719155997277743961236375187418178984462977651846958575973513319296433539284377862618196347577576129362289596273333132656213949541576673622239452654718338513566492959291423357313673595355589928123932963277917265414838375267978371366673363879419683419836623449465923248535455223352244785938855346569311735146271484753334129543988897979464981129484617997851949628415441749849678938527392285157896331384277224916758468687182769482411717438718473219967565631668888859482261987218993648191266844618647653751461269423333348822272936681745781796648961183864172163532695163142695471488665962168421478865178337764792557932248968895781387119784143297889993678558826945545413816126694582758513385968322851132623182441516265583868589674676638836979919435864159888844291863545232123156532836724497817873136638849145696769331678358145236789563566825481313369194886398977723179651988918224123481911787559856611697487298699838928196742616276235963682449323114813476636253865351598632664764244371843457623157196859194461774192974318961265874457356683659857945365251166643887592161325199884329623638373459199215226636614935795158965299199918431992452734213726413822831712554533766848248421149322593563616968225898623553457378427563714418231699461614948575316151322542453413257217591457877372394458483724838648397422199726955371128389672435254895915876471888989716664885311589178455172169867637383651181138934779276273258729447692791713595963869486692463317976245215353758124963422657868455868478794178869245486541326142437373143549225239668212232736869485789924844457393923935296673621288989363686316597789298865126124821646994524163642651436737438698762241692998361425457929542311166281341438254285619399244364379997112954868365736554478794131929721724198725377732268847238221182963353133651423528311114726724898124225589522764593584864435795516728366317473621979254586946386857783313831193278992449934562957615924317316424213456337674777448739249871492822945568235692334996911896836816119546367626848147737716389869469314739582164867549391838795631652833872977353916835818787259215297474652276466958549297921821349976439546173767519429119182115993434467174349889821621619729118241677373696574455526676447247162928645993551985436973525339125126869368613591133629771393284695262186847196197358325354562821436444127727335959772296543724647389571353864458325434977248512229177181377712533975373986735846742451577238271467983272744237792936973776593548236553617928687779376644272426238782943634483151987541757978581358441793131335324967931638376491245314517439951345938971717446459878328951754778361158138762296283914799673149965979772536656253543711667871766363128262826341574754711588564178381197278612659924485423168465383282899658812893241663869695223441529374164333546592887647158381232259455777111669637481185813925139964439239285257885882363554956852284216114528286664889943347823932341941392119665843737169841943167951179279935418771377349343639234331137939569247374887811164976388391983928842477766446442737355174172354138365939564217271895493799914326141534589789596475914283163485887931367245185522912439625853341934959663261512612734775161484476762626832772842994362868795132797759432518682771297373942444513387329459327484584191294327678816626562373911348648666988646435977522748938963726671268122554951692675558353524971986778833227267333778593734221228776567779485118374114377679689467912779516926743254571138887832412678539121793918255257135617747814656558427716521945638188652432787342272752493497748457211343512135233417536865439373984926366478882121764359782719997277714341127328485619576646535243913346247959786247984648291714195337741535493116714268987958347668342384833123693118896581314869793721192284543843622279289576545616615833276451712828737784336887457731947572532613476144466144768441434281343494739234569163539263395613525764127949385291443367577926277743144747765274226442288871497252465738495811232865963741768474611173812272393478864237213149491497687795923359945357957251191139786465756161954578273878887889657284757253348675482558336913868686959674987644172226858459736593188944333986393595189834796245533336558847376616115986365878332543298973799361851349874351172236435332481316391415391525622835467889927958578518937987449522857535426221967718599286929871956618151761757427176974665642647296989965121662468955321775827535134139521576612496826893384937531822873721371319881569896288931912187368286316294149128537311391398124941461969373363225755665794585788825811847164375739394764112589371752734539765338258624823972897762844276252674489131591797866542625932646793941853883951637172232635778338531515783968121827831182557371123164642837648511382389335152263469722895557497436544577972186322283362725454176638975552659371588614774398616167963428574411348118474894643259845275923353386185932391564868851258759974292719282322467643527642396393612672689722847591742485624243383549618578661319273311662965393637587344919129936366322527946189747462851752654169789732524923886632616672735142998872923424793355415162134536636513513744193336766253265418151581741913323635219715931479275124297197427661179151532578475887185794425181177883835962718376884453795292389966257643713531118544712121248945559313574816727561831933946748383113469741312957939922215678496617834817737822515496516954793453246515177768918448998583862195419858356132822756555294588598128883628321392557911529757695596285546367285331929962846586834552995519138551542528691348731276354795797552614656514437389395731299558313363726356798427347818827773584828189615274114747438298976233495293153561871345976785672184423831235581567689976544191298439622634161116764652295594613446396368764874539893913452792936456182867344677666955281359443987485471193551116681288113946234873319327652663229227938312834311431351916261373383985796878398331256356762888916383752339158871886419975153752471646768764559437166854348522649692277843277129714499613464628488595387695395275693453699141978637145894214629178413772574662423237616926388285925382438884926237987478996814216633755534825437126753552123432885251693984426227682836138361549854824992342853511792484229254938419698723896157916245555459753582442293382986686289634269124371494624752849497925977374286412551893266449378979465282589938273361477911728525441858916899616822958647629561895969659348297879975628488325414791765597316184961433279992432712677125746443738762868768891151217817372825188954131915684787798378196276584379671661128386155773571288736163929166157986579956214312174779972977573261718692312632748296192188835151111769881152225925534742524918927984872966287679121474524815595393789865464139821958399679229658815882427638619715424481283156847415557219169128469787715829592133577377173874611577348738768961226834532727276134857638484261171763995976783485669421248564552626716314771999464385299155489541211831217296133551969863391244264237247956559794789665895817324736459134679548816753232523353515149842319253842596719951185335839713934749932171751636743164646527791263966173146199662777231872552468753259453953817185797874129154718134968254344142422298589484764667943768281574625724562399665929614788486544994475712841796397247515454116386732393477456975788438874263891453572899434131587331116413781825171251293495434155164715873854351475574723246452857317
