50,000! 334732050959714483691547609407148647791277322381045480773010032199016802214436564169738123107191693087984804381902082998936163847430666937426305728453637840383257562821233599872682440782359723560408538544413733837535685655363711683274051660761551659214061560754612942017905674796654986292422200225415535107181598016154764518106166749702179965374749725411393381916388235006303076442568748572713946510819098749096434862685892298078700310310089628611545539799116129406523273969714972110312611428607337935096878373558118306095517289066038335925328516359617308852798119573994952994503063544424784926410289900695596348835299005576765509291754759207880448076225624151651304590463180685174067663600123295564540657242251754734281831210291957155937874236411171945138385930380064131329763125089806239538698453528362674590973925187347791738698054874418218564843850349196433374384607147670018127809768669571553722962855502892722067813944384180192842621504107232838331803147819702678679537202978399081912075143853203159873508025987153376253580799630094405434774880623421544764474119338719560503235668306908429185723410053216904418624280229692109061803685482466744572434882678145573895940986798277509425851264591400783384675311162826375420480007690906351469426674448414878058558303300255183125438195911740550322029441550300725993972673870910904105090489355758561865840103431356134989157771951404134321221996056498837271645154717568774181498081293806215573829299259016005553770617218680871125168811363758097456670712294266534705924072874850670189906340233757264094876830798929497811960182332559956484637669786528757792141792989019024290363790981187178091578389496300388047112122423327654340404647024015328330900301148371880506039989426112551917617602690818960257510642179761640472708047838884294230752486113879911852312600870570711750724911507370816595936421405442521793069692873807250568271342532965634247179352916235248710672509160744802313411520172965043909213450160625631919832901995281888012230833515426107488745110316489719296956466804507592437238259205254880664430031568750759490415708741638131403126834875441142680541604163129377479841906605262439799730634356115025918112883601121446718159396092912253799106515860218465318422997685940014157797973538776393776593142377544685792673730678264910662452458306486946589842142374066171757985143999767354747735470280531995897591305597012279420850313487199920218038848397542723499392720813192468087151205272164205243213143491169602682978770786236813306462185198831372930639878915992582092188130953975253019707460477340570910909711598348659634837635238198824827001454458898440230287237895458006648888862001802317860256875431366724138544601843153510565081850032786794242402555655690553356333024144716043406602529805183799800592751357428095598374934167770438885224190638630533811846281015485901495380583074944759696572902091524909672773711876498155592758578093846162640433580825368897854498530245952398888329934575578067904453332271930715802009461892545033933972440356033186653405133836728551454158951628176415859682694318146363580412526245840015228447301164813392657985934902070667120908243749507506607083878276045091168424098834239480512141720574145681563081281387991769168758809661689045045284496125398591803195916551576787987333362458333315554648891277949872381718451824644712936207310219088506485792914079760837497309145006724028748421231744533613846019617945885269064245488661527026701665782942869329028896372459616547923524716998433414425729607026102666917040465045650967812019216895223564243923842333876217677652069672715845426263745526904324339875549614575155924568640526468854751005009949219917588379733594730183146574403140837083311782465835010388582842010328301484563806793028468943203728704008890080230652401999936959167746418330584602110070016875415170405307590467234635400443944341025502443850390278936720446133844256055529131786172008318528720476267744632297864098389145893725886232321290946430920490873157040221708614919122721857317274793161908619817042051413687133368366703574536099228779574155889455139299932544198535634411629439158857142361702408235430221035668663991334891012827539612056762096701384780292559321348680761723484714802357277821132623407597301610490991378484257988995780732887642958522752620701633516413022436798675815126347196975040077716986138499936434700124766906214328853983733049644512716882339963170009481678016338934294255912245477892855838598530936703975322163359285267530726944976062269345730401895278588000895745567012622222157594476908277814357895618511195168143121032954822654988401219308215437298144345537750048734109564457800857531662857252179610508867447933308755236184416549101831909370680353930334805264779495503808101342439321196548138324904482147209379085177588763578117007218281749963075131387666311713052000042382507977084768219196326242671124314117755050373953028387829046084585581007325607346994439421668447015861694824442606801098399670594827335422938748221272617852169881094887713703257788122392839251939677434713311079757775458976292085708960585467279182113894040547619603646181151183624768886171406855362090692340557058094688833028402598314709082224463355994336248523663510231768951254716111544052082224366810647922377669685690254353135017016610130976333112587182365816348020340835530798900924914163841752137160076935900100413752349699646629844400311036373532785115647589583213896529170189536391562547932718544937636486481974409140546226730071458303073177861234002781172647947611032746762151296566362219926908187074352255355103830899332966817359221706348079131178472049374033082220355236596697518227888181043950107888054363098267354765846601597019769592836835531140111840683331169061795353419225097051667008748264015112969920889842584828653155031490047601493425659168624752409186725863366892229405043400168833042521949279276423515095292971863639080094468677501901491689607651572744576068211121887652706592077926479828506160885497489594994901274216380814615637240660740767396872192116231773380072708991528851489310042312758105124474062013511272365496265334417575086974375505937207877767084240174157038329093284918948445867258621549572128616595624143777527292468961495532452240853576243582249323126405261646144957099880199715470586020190122344549435242331202407393884166050026978106419323196306485004967423858712432487990020365906267948076598221037555233181495711778849767103682747605824251084063906805330597846471318633062278422779736207147882506371234544003316811350277653387527163250478632157531481693775837720654127602316371385370248878525385021571001599440592843745579495042968143551195440106235567788503449683297298211921655809920630971713313157466214653416238406388659577049048888229428828888231120566149274253022130323634267320290612491023667400976623635506306881698464968256481471305888866603946368616974818154846891367152376578688935932163928718617371881358385555634477236702889894364112286300554422743425369522577040388113358826480303035715774350483835660362506760559029531744617935983054789493186383306884399557058986415828493175434773411139963731965837998686394848836132463816966688790468045270021415729162590047713642127204518624032877678880994749089989341682904688037709322926455081225775351017568940121534527533552095428975430164735578595649628687982010693711928744914867878686003748377962950014084636875578936458125764810778401052180709234998508145555547553847684634499925476071727621779413833181293300127677549970698486507297571879159663820481483692818889580739266106787141813208932729283392978407824777405159506418034104521767792199625260502747422501659976471638830754647778922954331773727906012992216157985833035460542266505447515647344361493642856407336227393458549684572785875639401744500324027260425973974026002512532017374734974741622597440749825440516069545732505625803012740430540868402887088498889261621778537321187516627631218098998924395063048546740490940978413708936036013421296406398204665866769112666766269701001822148997650552867591620635736330511708136176434626315030592970356087891310675557730629186258091925871530750073998789067957496505068857687764079843863877928837160993182356481400601269474674179369265351289429172997345540314021899896607083314302075358164200696843611556624470014048170826984672788735653192797078890454544911061038175326685849332531878862180773741128582752211751215562811721676056392539816143935328617677926515346631287696870544501491002295124248188010747199706785606976685775772285991783469620771298055083826370135422201536750271155441939549548514744652391282239013564762659601476867544438386241871338485650334477378272854222207283911050751994203863471120082477462061737311555849844518551673412895256612690513695817169683885043764236926138359145751802710294509792394936635869071527282380512058560627893949353937925907713330325459664804238956849621066480758880283393694088397735295009809131748028802926720783880460983830406220134273010275130755121182850835019844381994459518997288118480508603613684249963139682962662070341753139292118570462439780429614100629866413890748397676335145518409893091111581399482071446902994851737723989934127426082903777286052419420736376208926418819126349720333194169569277310209727862481749084701315315992841679217656788949031661733353740763528191636380977969172418002827959609772615014623589512543646388344965057088543925064451644454948774656042969217518979789133835123388969554218154705124860096783525251197678138227733274157288903198372629636831065100806366775479973089455596322291645738044622422022977728177560653732213040364081828507726959372828084643123662100031292624280467351038618376593676607502756395610226220541509046492689832901546308154578799081486110151407052290957084335992295998580464498863223195491034476710319490775336147628414852446039197915268580479257382186549514679462520174046792032339843516973426094421853925939895210187338792442189454094116986954407200448513238581148216232995587169725923193150473580265149819653950350958379238680792571731181012452381291727033798408189538557434840817950723135317846489025506090522821252546345013601447573003367167898820916500534246555667345650813013946988861365477715697841018679261739883858561766500462896761749968496455926557391003517201147550416505425115017575133500630118466457832483541388066819912187238667500512024088120285221595230823704987630460153237231484329854412270927732280819306772829010118370888021904590305221156555829380519739215348183025618024145714043783496710925654490267239561557484741056068212566136856369815955205627146536856195633335361171256823131884532355839232297878382762102873647665590552277491290055578889994463755742518444930819476698282096984076823599440161900329975390874378145689704768758164228321639349833911344435773312818706864101040098839288819489725867597932721515889515064256536467530679066786404368955574260481912298110942935241100867287803412808530006286276714399455920762707690069416818897151962479095003511410349636426789841164291983044861589764833660218687691956359810882972733849043029729141647030234196744731745630898290369746019202737075477031415866911511231282457036125873565697783821894928087863770216441039724052517290378369775089804902339003793258186045045331871095792965131148777622382737414165994329375038973465663760381319764221159673565792524754965188882845489045819170448868164745459325497290647406409911337223839063832731556955958113843469621470786460780355448527890580843157176992547268523932500166988040364978334230809976022792587439969753314624538541201667129175570646995748765504822346456497157542898491051399563824772030100777888239756501042309779741341616262101380190156254168832562134479385450196925926649721772316404210007539651216385137603349387141292713817664169046160808592026247666567492820240270875981036729677154489569958932487864065267092391610100386172341943788556540081418985021686831706518936833634037387380758390766473822165558215452203495103206378526211847820935120456408855168331998607330916533098884623985278345459898774423160234208694601766234180996302233535408498780466967474668240323848678136328279089814226674633684273660446836986482629329894357103843607709007467097053293630593258484327002133040710626582321828082249785337686103702154197247282865195185704730218677682677591132234403755318541569671532780911906753460566206385950165909830418761198796790817800660472838691006761524999218449262419902499808816497248404310785446334036411026648678949362564829912600617783762560243969660209555133120937106193442932191001124344157940578999290626453098896916569213845313073846929653210573576953654893539408966908109071905363910075008850748167178838771330160279487634831336577095681148489640045057378913651986514652237170906455564531686352848436423960757497905526444647450279284787642276393635791686042761850495584923749338167924736823859365368473424454140169031569652221308374793455379899629262051908302685757906820463827888272036948522791215317095542890261871118220019282559753850677913238414370389095872815544833677003739735669749485112951357423745430684774675967288995908562172693510860633918956051215177214995414144069870652081890919617679306404333646949172370101122205194543435157544086718428528305232911665316942183264872676460105977120389821762637823119087202138667458654740743061397151068488211046148276080522158142077425865009205364781775549094453223445369513555503753736937210654486635487714072091133323469170641956021065956872969003193669083023951141169692098104366429901620915744146779229794123954271989377209909897918465456173519288043394059239888964538693201039371822914384165051360921012711614729927246819170747050966288586789578799682541799622686942788035491624836743625793464356236281889823545799063256883283494226856024936348723442101517697632666418920268063100307428288255466066942007076119169466219724738009082614802165474484623165214510226365663785529372494068419686063470020175705237886576811916895322155990761164345290855325143834976550090827738295249277068258755419110626614764483217164700302505810514840468911349875329561817218033095459009451917109344259864619555559571897034777757937801468391385184611235612533480156450907266045196235316390964682926011719357472744161840636976769328041092511034537778188532405029819668660457852925740025514011611226203965359131494843361707761782044621042577343406082254536585587799758067174988913634031889746765572926645917542456205057309552044334990838257242879478174914711451030969739442938233723478356152029321375366277495215055795527338516318036064091667160670491012194523185396775055711124530821909398329202176903879320628785525264947545910340347388811412004011021990841928794317642667939801601987561468183926970741576786189217075342016912767396449138837321304005690548841290269799950475407817861186168921258058570816112529557970158070618069316135514594183739152568961680730658826575172258969191026644247716907283322897728551237694620257990074495142000090864833854490071715493647670225111160581639285537435400876984592778417576211667228796698730571591385348960789545448519511071760511598841372106662449375596817433528038971982907247454056447920105122118130322196732718741334613625917315330848652467224660056191768157077710056389812587410649487949125590291496923393971576073233705708197279600888101698937467247825273427791676498307926120399916536619182973375849428874515191456665319551998541221856644607671426859045348032855732969441382887068259209708145036681687538287270048907699920834019598236829761242781262637032001902911688140505525898774614165714972358795025665956063787641654773898837268940135736194718111446999256507977249050541596173384346887872801212813854758578673781883949116518005999859707346970647122923989857995045094422858029701388458664399533279544201741888929011962566643684365441080888917632317544303823618728473097611057735080664573714582319852898449072357437624730631087966155105647707280389452721268295703721103863023969533102099464904048082651500648285961298585874489627412881865167307101168367467126755801593676496642256080178081381701615933596646292048077110261224491792176751813815717098543865856606719310547795317740593967629808971277148362353499967238774869061094939031110230975230090846623402323131650360841973114498445026840213266830518806197323910813009832972247724153002783451355991960970507163802001439326973578631948068707869288331901781057082383444786377711982790618111515905268550672094649258347287471554876611899197265201534819218998526115322563625005513733611749628959482467907415330576676603805665326504779862267251902647829030555504513850297649860766295589195397502610422872269783879157002284233907348650077640097168081055295944886215718236172784651689004045526606544109053627305894036878277023458344993493778132366393049500511426467253212328814267829894472090065108995533256298058036921965160907912028516923704368760686550228787388188329947643715174158573251420616576390038501920877485170707820898178019893352017735864723526825798813073214561431446736047136129171958177227692074440147862060517123039188228807979048481179294697036409838547827377723521658746623677901565762531383492329847559140678822656163950148751024553887141365129350513570182407474012261271905166553316823883960840948681326111907544247699788179642397733785751092492554270537983026240832613870538623292651960038011471463538733129482689721205462938561651078138156763218305760026355383179552086064645576501829111681179554574154402761078373784246344584628939854915074724125109387511178067146755838625733234985004172539204049878187264197629786277257471422281799559313288972952765147613975708353912784183734512022487922062071934899787628128332823426626769941237515828710297931330718495138215675622300537751920438952267919226026477526481361491947233935834852098502739316739522199712268335570445479283064029489011683028337518217843907631801579011884319248412185917520693568842150545175578099012931722022717147259664157023039106517629729925770272794026122839988946160632209868014030526844725730340915329123904544104083121537642711993724187144960622826368352437642205309135776635810693195318506102437172800436870374314418021082515490550776070221237902343376265843611409991601021107690374252322522069437135889767666735586548859673973517467320417421185612886022516104970098330408682115826777796216832272327039625651457651350275096761707723880050758941641329593567725503932624390815811265758148432290986071739967211856206562583582454782346708943661300895743564826689733679609823156765593601648520393702802097371762499551949804682866942736099264308572035013744352730362055934126964967145928214875969864694967876328864574320841180229610174256104171301625572497928683967807171292752155778018208987458014563970528756472509300547205941675562461540832426564911902412538810493557133595194263946531444343309285320023112669163711006856710804291300193526527360118860536327310812585732172237339281258634647305596588016558643752197217728512725357346505186899587287456667747172954301057619747047505860579193139551079455121588383958859519098772798442920861855932512283223876203154422273497697886110994411655144720243071376501588032325303560619611777229641223336946657421072465932923836528010200647505910422213063112483906407505564279634655179261281499588826211976466120799101504964334026796207238660446697687971393997586647944581079403147287530480080731838155046206527505444435293847066911925393635381073145991455351812770360283562256280773427591465040808912087057061912589967319236412207776044712081171060207423138699061744909880950929147388851343292680736102009066300147152401855091849917766543343389262191147411074248280319478497565613853437002186793142328181865029960219838444990069423670198911813516467998377359810429705542133032279465460494183145281032374022540379053373295000848800542927874176791431090118843280926257610297698846624920923226840077228573050153241723751213384635423316638246655392571528257254307930760456197691879271272627650300303532390719151161140719349965446026271934545314085053673674596882128086559411402208895887663668186325023898569129478944157453398184390668571088821841582070025830552804727074519277098434718549000001220182291947012197905796842730101137594830166422874868603355359098162165121157435329862306439323989160109196198967209413736960893461885094490490425654407782843627947080696246060002763827889284905067137756520773424634855235008345777749859781937441085642192272184654218691307021485644516475332256567380086983188792357389261088953172092569283718779154063528472590285947772941191251032954116448690717366441634922337509492881319572150680073772790680312462253291808966245341464572586005420107079972348148347826854018787743917824502012118711294395610544525972955007710430851909637611670369568524096657774236829440438343864506787815143872146128878822507381812965069362793500626866670587153975030565878403974804961249381877834561438541269104166799767226462033169629817113946831717998771730069591164534067424995580003196494281356879495897314987800547613142962574384196080810753237006363276884389155219082499136506744184363870644048489889754463975507881700055377324147024684943809696451279307759799088332106018538062065236700580245433845871870512228878992027307682270538792387928011232876644475858430061015217222140573926594786618578294873170757847097644681142556349358619323180056195513281894513223960837136409372654133721759320643884954942223704570729131575455346389162575813031066158747806946750633095292855405851265365163012765640821872857970306590353093533059625320380955324636483594115344659572477761010525276393181765469911458945828698295470083078252198956469823819910791323760972900134623701088175381884616630051569699598884320358760822033650041804918617258875317982296863474234236925668563115861007467514617140655710714731839256091406178888560471491550057202298465056145144463558564141342647181722624402441762046652096721039375427127505886073842054471126579329885739293777802773276397174620177377655956836200155722615394857794945996416158310835985870485587237340019655952540290430548442309211831985157410479435386999241173320668539540176892978496602396089525316816010111789717414988075780637966411080219059030614766608249317212840972107635547474946739220155692112450618691655282255411338561228464204008524846358273835847585145384680764802816079787263899935088738099088343181816524267600339429997167359573196534865055117296074246492501555130388818350948166269726808948442871064957268563199339834549295084582678851986971767826188838703345096809618479224777442865542439247009650058079865862917336520786734711559518341277394721943363262142885791920951594250574353388016292239594068815849557628856878150385888093326230102594873762802709796366191643808071904302413446606327491907659830922644140585992644119913138757580459686876243587311179404802676423579011546695443397957870798017011106673720989837873466357818506244918462318334379130131434952864325084985010225714101057627223207097876526400018487516303653737946128724279059615057064750433640714534112014116730623682248659861481985339806771670182793985997399299219204659387989349986543768139448574526642430001027168076453584185206719961282825014847108067678394611038110295557484640214664115691088808432932526461059312444797512258484448594648968371862291770149448929464164603452275325247646062456131950242055520691018075803188786203775251337899794371073894005239240450872278760271276961919154023206151493586977241614509811221691960379086271995625629194844082663884568644680030555901090370868534429808856278451401388331374924312233495550994432418406962254969281812892056660474723123776445855630492744660973632589620894957868199831243614159150256310487944003979431951541420917097742828014377634903009651683162119222045322403653585426494698340110519820033307351660597546074987860738413919163330670658528680110649476208136711709039145250283391228599622507863931399735267618135423905810560459215166622756259040892705902250431617975699341121724162558454158497406091345577642913055229940427154953792170269522902792524005193951992124041761631456274905725489879939606051127439572175505605985898464869620748959762793657152111940342840444749235679674823973091578307085476467484079868360135597171397295262285093933501215988273318910763450578561446022170203146947469982576800991340384311980924134275351113825480659762997150677096273547209676703080278428886872310374474845706241554301037982103426803516349494614754914169641067603990142195146235367331977273748453969449066459209717056540298451809176960201024829179961491160644512027110640361053003881544616731204418430102984127901338455326381972424301851823362054873751817989363615982409558174200554752718498732295001541676468373457878761868753719027673830042650946632835607135362666434133558208546048460992091679267083729225028817562433261838682127408388385112674897282183021815470199483025252965927520461246522272766738536440971112945712705669699186919890888314536283996461981372082055451668331705795857050456189020019079629100308662890642110608524283008042777186494232338012832183975297844637840766670371731818333237613445685639913413385115389278107592971793841458943626210786269250896905035264934464552561460774540144870838868640407452497916215297205640127065847677700988448357754366579791063949815005288514301168449755492222480403573237251758352193126833729898275829177630257655820393654914341027064390644371681891841141061171206190643267909728633129903792182025719105302486919881069202276006194790571209922282169757434455942890770138267487582020131905029328637073572517914471717671533763303315444188361659694824345089810876384840375048927308327157196309384907365474951045367713229772012545665820555002161167487832401832091554006281666717702708034664597918987288301437655200892596304664234928477620299961529561978592614331578731473773601544936996642947038028934903252266318795065810401181551355800461391640821047203031936601597962457305791890259999705552983493824298678402252863414766571509293337419984097791310890691295410911086916981945798222915919627110446476784529399689237159821382290128629055597728023924933038484599202059849421535359337069710320669274318034561355603881824744749174865656112007925368186927004703647986554435342360706275256999220147779747159710158210634245731572062707147467162441488775015980483822611519932580134166091803051859369663912388481732995889330345896302027205186789650877505335260788676289671748147260422403650738235564221174111448925321749883014961878300427321451900305727118182535959034498195862798289675210755009816122968076387111302943334351837315737461748981032660674091764791034403171756733052154338437702181407760085323907746610193238823085591413575693181584903087741731621621065626973850008787803605175395268995664686941116161854899569783896132080860081423408373048429550658427225511591255396000146643669670362326780127357280843288463673155065101675451666487609431625308153709211467800324312880800548550728576467904912979971217470254797051102068871058664961927852926338686612301637273148884525398977732081837067733928593725316594946946748888783732594657155212949870480556424149463737400530630473808701932958919395074324593483734244567665813469244575727118786405006159525182448518646948708140215242222708703180407993001004962497739518350183139323006715838451592462176342584431751159862996611426746277646050261682679747825681322270133185454866051403737126487493134275139551044773978681824121319688313066980718564386698279906552939643888374263980781286530888841116065689676178966737957919245220180602689307667459320243726486459784163441520652359422812828193085060061180264209688469733989138948205986543725147905957219676366198758420883134147280517678069581896838266312544829643803547243687018030803083889875067789565191813035794124817566750395563871329840471864633045926335267564492721768328624807448440733755628959243641919093037632160722168279799502100998899445700060986782700994914184846525350554061286864730205331444508861255876348767628380982413905653581957667883307233005218766118934652120201633669263982164084862299118693831333368880197414250026732351313656770015456447567287332443842772747654192682348118203539176849759199371498202252406242710767415619835515645866831182338125009086490488962552466930264725727400040178811422721062271947025287118170861789312173306100472945303478432764776462724041512826862653838579525174831662282211702484897159440665196753931460494578876926950455169776754828255933683946589474108181370930202759593028485529859777004163597335718823424453512785993361019802749447855410235371104292166473244760678411646241476076310205598510247168198774063237740577085256777286429923443931592819196260362659130550518149418767841441439127362148732957957436747276816239296766274349978486375392596957066568218664254796602357133934840506512651132521752453040809002520406248362163706623369410671690440893574795686903128267427844162361038910549093219448465465825825315027607485476557733139633616403346210284733126402949769206546084559824534362238450026755012673956381260442756260730677171427109451779472858122871891234553260521854950681036367100275086008664294531295157357561827537972418520355059903788359065092553559622351895157705732823920515551415218284381242585371593443955691470898762365812781303889431325454918229326091779311265125580492841556738569705943134161734113592685385568879200122238655716112299621019893048056936178588961166824949309221746821021045240831856318930694751854253397456772018929074856619491422772560665424746178267414931093918605388141631142096022616585838343480586886307761478996829824909027336502964000816030629901729951552487525423396261619824690245582804711437579398841861077082792258062915100079684117444524614993888881148193666239153946620124548754608656264464016162463376859199898150109287950259005099819490862438792624904523599990302628265310222978768465178450323018791679053659748849512363447737470484259339307060013000957275937877997578188906167161573608090363364564645361983367337703384832359062633657887964145753064307196765203193012862465559478084609248197909712515050014390905213874932183252857463226559210854683246652857824471285042558650420837251955595382229127607246646510927436720089629510488901100214123326850713721361689672253750384330232746605510884102947603109374187173036562879186538718522603794326469450614826095686197931035975014322132559946535958765942998543445289659847115636899206732725086703176368704098036433550440477611610824924836663099461850160540845382996765243344771408656914152152713059780997503739478760821576394043155542876375368605089854897973564364744177890180225329888199304653420397911732297184184895720251776989443778832764687384470722716054525356239119964756441972038648878913858021268003861105759369125121132036567206583331251497472947920842768181506548881561618407444228454181190432957539238789797707499189078940814092695889223503659865903460554187018947677585237195470635711918955966414429616267190011993605178379210792215060563213097035324251422403983221805919668905246419437378975549471955603620374265483450418509342362880338801562834391529228602984964308128203932112601527318776929543636911303718338337930964137780564861446311524357513927690991547948310757783553008162126236022753408599637183528723678671868434743505516289528015482488662004338126250264653759897399300858937107001499745009046402810913122654309342773124516690720443714842704460110602292469474191170554832963218958591535863763814749568503288330952456352167409664082185828137838827636919021860591636632103199704069179127747231724381966172290691907374707001340749756304014119268243865740916054599705894446086249549558063683517110078417778868981840478287511530084635452840104065065202619931028185495659476149540122643477771155202557536700878854049200097441131152537110779134417240973207152750539314537370937940248140934272046514917413690829335404822044826030493648524933023356553573449957354652110102025866044268370849821953063167669124497797440697896382916263578474804934199610732838144653588478938204612356006171120155166381129341246253238376121106060790897347823364379611813385049404963312227378427654993400613984601680371745095223438212410463317220312342854738916064603383774379673746365578130410087963731611173916350282071183004672857526599009427133475552105432516953341626014158909246629793153765684180218430315968661226010028901185559642124359155360510959127626277546259191385636362642628143035091194183602947745472184257643498230839980210512540164386965613894201449573499032403429756867971433292997622658617106775246864396146307979606431493770121590743765993923762794511767049040838306167966854020321463780628799875365612847302854887738081544029832272665585313237077058451912535984233583347487595258057613080185570559833723426270380313231481860236875745324335455752374690141228833997088649508250332183383084821788207557888958981190964598866465533456698756207224018751110179124045429000114566127170841654374697541345773839172768526729651873453678012530307468394041110340808582741564239676804868553791434848282771002814301836159721390740984645122316686187692071884496698048548405377165893297868151464531771553987581609998550688010793532907102616554710609854548923643822271811948916672903409038265585363874083745127611544497238857983992973200389399811247143853949855031654656201599967654156797733710399152734600749905908355870526998001120462067106042341074140259853855750314045075356003650813732578735528521808243353726812336850319437407041556116342983806311341361042491820686964460843593993107796693767868255171973313460519646037390749888761530621383678722186015198197923502443377468760882537477956620343402274095826673733131509306635718387520958610952817652533720102847499496638389385820793093163067693846590210418901072219589508955209889268607666728039703965667263814427936070305104796811043745947982971140205456138125472397122920806493376226679805179711435682589300712958835191865746390673649039470840755317159686936529912923500489958467107670554622960094392050077222681315973639964696163212449152753775024759914176629065059265448112642984350187638101255639133588086262625188661313191071026449445418138662899690700802139362665908040903151460923521250989942352201303200314793876495690980149465294296289844548427514748709923870883570090721536527599980309224726126258051410942776767403024571446130761570407918634388984659801512077334920648255440871592604462433818816339906936538623392965228347368259963913146121715837745433490331635613113993276220403237570902372245848582964587863837701758044543051523463665555217531535470962909727809559769621724477807947696491797489970542289733349784510987117482391213097374887997249349980154211221686838531487287104385117270488954195702888891807061786121233785400576010998716336158068759344735909529324943202789504549715064143984875346583594856829626594396213742701017596955322741412396969355639871744881822497308509287017347106882352406589962536728959210529988930594592021465956320619931070289036920852232034456322565370177845915765746231691402319904553730685056812389265099521356748966507016903979730309742916717327088503234302792664055068665513116770981436195810548992464074283489217446224623761939942393124703769885991222872077964969303076839921692734339396782188080766177033754737961957810038544091736230363124889093338077750231011911144509857439556130751325984996065244578816832027588046250289304528479678719595976433516463457549999252735604504986049446468031984517215024075611465665747306245553345202085273025716213405693332723209899733981911413327744698192408413348997200571138234631436760858186140880369397064913034810711598474245888755903926676935787617678344776846688539294307046674666822043609983991575687039312641777163540223250326270581630144538087323228477290868953252852765845370656492293221832253354335574750787074314152291474285537361525616500683135132559861259298928698909559647624633265855850994722843184739171430912855587164560513364318536606046834160495886253206874863405001453215290331038329357251216855904223339395215586527183424144958948655720276028155664598236126016984305977207271026380695867854566282362557527482188397665287356609614709338346628795567232520249657013936934133204381288206644518845937923804436627075958695614898630893775883855481465114855570288369235915245965219108213544884369131952781182247845455488623193534740668785933214579688269197777072823952605304984606449637319690893310475183576133891020587840451844377263529457464392732442582763484639704637470162843859320925271030237892641098799850869836894311751680309336479075699006726037451345776598567040945855504371393906314472179803206586459387300643869209033506440379737773995433448948159695565111559355084595268575208871428274937850394135550275658462699938560878457575270684167974808053351989208744758479541250783575119892360615978845021698501325365558291910256866490242641361695600351035455620785881606756225648520682951139499470049383974733126062666090927925705718949827567726463047891224105933026995967061827302548431034651771966666532344550690230970285460123662628151520873102782954526214469461563686297919365783371734028923062271427351589283425401169476354324316391211210863356009835985252947612354544464602647772149500673878780190649470271893168917838926637695517678849263499470129212065655111126695394215866473176216819516657268176585295216670945377163716852261257383489472188566102209200353602614117603124179943579446089003083149364562574163594883328241376447170182947305644911359061071441992635362245906662125969693721285662597299465644801036859999260874629280925732180780505860083438647250190706960251107296695768237639874311293403706737977811227265831031519197117100744420350374399277982100416424531085157054742064332898125702390969712772421323472633988299425606816852272354634923187922656130216176752925123786289525556456860387624689825305206879613609846104297756526743040310305858088393901565215524429373613475948048072462656716172550233548906593482493214383317243036070365369427231912800315710729983703900505217705736730877115763822718754644086889285743448013801003956766329756797799570851876845404956655737022641972157274487688851910204670260915096810667967497386546454462776816828443018308696065139284619940638933757513886311763600596737725174979912755326040303595778780853355508719393901071784187543914765993422579309675185699369178218731080923933726965218183719552563277759314166594194819628198542326459128389381732524652092738315460786954065164358013333775935109211030303180380995163365910382907006331518365250517162708679505050035816542012722778884145019769535004219944852558866424696613287915470949612535850392114637859614735402410554704636077069539794285257483491652945068489704948514804628437174029298953575873661074350680540773337420034781611153496838910309632133320876827583663901678816356282353218427117592017057336103286620318095693262211406768993259193309321153196265913840199649424027509098600200488508325100828606667548376428473066374239631674739721158308351240127078326004874067739215394535653913253670813899729352513925067266475006395797671710689588197305893884097067976279996035079869009219758080305234347601793393127636378172530257583819414101100294024750249321536490030023822447476591029453583038380207964795947187648878597483959110906583691636805172050770802509285056413925662374844960486965138299008745884392779313518880820813218166767707150238223682145703828201827957271988120903557884844162814224730026059486343166613547759542134726426148955527452001049678475224233906776672955449093175664054481475797002709393045341792430649672650166096541408283506972311510545846894258841366337324238438972823930832530705588132149515910363326475337905778666496338796920913839591784631049538480924842141674566009312952366505037963902201086273626283015162351489696085694116749565495114369653427674156619444680993803250943430679944492832225465322820045802147848296752126940447859152508248477898787503921275533177654089339015445065051833754155851658826629746045847841509097191752209153788903399042160901454879678656543296416670895531986516467681480067374514760294920380797716201280999293739516791387707345643347227347309227929682815630349294130289891783654819790822020760305683480916845779933040832604884660095325315729584713506694302534478883345968559399973520526337812057074256567349148135498217809830612807228939060386281025948653670492340107388566780470558911483572740452182174098079024169618916401877606443757742117961184740583263252639970759109610481220659499104739772839507281387596312833098331550092468526799469197965080416472571915627890705751549216496275909282534077635244659917328267585684924803059713003053141722867900513225536855127325857603721109931871590022734987050853301422756091649378816324529269712548812710566520690243261585599402714370776239790589255649598864851753974422200684147317132969371908818771867678422959076315441424329978327436483525879598058112915364968813603325881651092768288731634042623854758654176474086197170933244858361416001789971858284714884652504367066497030185305212739554943469053173074587701857784884184196125465927179647873511038793335637524682487842708858050587380668976970290762794179199425437436994687216874668792527666043872950827461659488476151532704105926258802436608901552744286640491990161066237337612596428829968366927458982250393719163860240883508330654714584046328107175895436723629549548742488619636773520593178836115547326895774099398447882259269326595942798148281810078459997532364510650398081024152496336018821923675511085465949062284132076495890137131955687706925890027598013935734590895014349623791138310139810821553852954377256246109028193443329049977225240848531117202473323659805585586304842089442674733732503125711388183050472490523906405411124517542572792734060911632477929642103426491103594069815406551681492585373650112800781479490235027636005874197411397463907965979104646149424303196993568442346687451715976917711153530444878259845243201413131425574250308366437355576404423119212854742354921442953618709633999725464377233352648115376286627823303422537871156766224179746310062211129730275205842250272627020040207810182487525091611443110587692271102257193742212387261995599913484524836223294841626155518646417478826851196923853076376639438138008714843052235662714700051728436907192227220509104773805252278142480284744551085532034255674046028269862982497619485920958420140097636004302861363082218846743961235151752623872292174720826979127397026015194709477324267661168237101425240608906381321212311914163900413711018843568818488849206631825365457137789370789935114862206412520114186449552647835695843299938928511485935177045553888509166043722491753138980608998446499653496328739559386550111748895554331618071402425394205644039933795886594558193008612991120669076026734666129215166933492279754403838337148108170546603569922921010934502033667272657543042369043720924653179240093739165970167548091190557625771163873641013691559053203402565083398972203054656498593263143558986440488012252448688657786809026965525254865301908778771535846221950210281815564877424458391743449230521528956569591942269199055076189012142824471463679805032777285991071302020345118790715069686738493077461183835772007277348493663413609396681124382771125843398064545973084758570561316139146463379803298514265750397549412820396736905095788509800633423744723919725222281746123070225724133190049447742457434427794106800406513797771874423403473195162245788084403887456638472274612816458810249636468900711626075315616168546487812127155843932825209695243083065722053931511745498554013306788961359452983520670137828621761060932364030138964664246038941559074328733648691281299667793891068668490559667181445106392497452712096798897381859267963754232745027556601423288712846889436671179723226295592791101038760844042826654442203318739853901391258050668313481312979202394870740786076738674321303300221282193037147302201794747103227980308168634615066411439134982469697813474224299946040429904375294024013389519310292875758591993453153040660079772501762411202168856686051021854705225083904439109813489469890620501050771876721815187192202559937681440571545170292975821274232753812262844024094201661943252988275945183899988013279020104823673624937656063052846979471716107873218578770273513529831009266929922996574480650842153490784259427570440334606634199674537019114548988459898090872884965457934114161223752749648692292527913873218038939808378985089779108459468798166822087631371347174571871495168640875766338181363694120208728412187177198516777426636327775326639944870158591113708679873975197965934617924710389317115972221576354321586135640458303620085888964027826006666446367954470218066531054112476876140116556615313519214263164913220858692846764134616423386349800830989503494108139852387081379843155553168223421443366795958429172936620363928424161884711385227129437078733939806831543615579835648615538772911673009676317685850844815211935819287742855388633417729798642110181021451633381456003214488721480576812358011885610629967000547385697680502413692892927531086910190229241109320324820158676414493890747012066751934106141508665428429688102811272090253867050451501479110947499432966834920615032532735256585019910792284611148468118559838989335196866923146259644065394305195661518944529519672672030713952337778977736686126560937419254485547477015273666997738143409647815588213368689291753973948088185800631699336073239176230848764307059980230567608962712946373218383491646122483138366710464098110232277219716667690822230782182349653927611506516974298702397268833123122287009721419541147063178245832706122581207040441687876529326155248450787220048744853618840834177584048490371096546941599342606491970519262476853516293789035206364277158633587320055562712679090109191652270079508960819745377796462398597650347282374709197388957587039722914380632075645924681785329328843562140524832842011951093947660800017468456288465101216092629680846922795083461814736278573110549990370838834795921374069740201865155709645794787642338831255288024250525843732394560954586324754466464725261662850504514729810699889441450650732436396943236558148637502796213331532316016628600600810157143023353769533592594398445443921363789439788851973939229238059441501918906874811614570954863509399285421860441220348578317042697643577031350425445325566675437096110850229676352972045651838260994560404403680675914099853123612050739496519581433998741348664714049617731937591101909531411966440774637844407135679299392913659905413970949410048531780226047525040919453546009450440057612677801518546392015183454935131061752110716061197494282163414998111834012377315983791943226553700403411443578565664788391009480622733169634314151678353273059565416523046234140252191149053499963489506667927046508094717910200975029363266248655216393534339777546614937666208463691906380238782430516817230280493152926856773313994732174769420902157685203038799537018300422249775539164410491832638639838439057291714503287570491206223053845660483378436155626955807019862056848247288762537022270542336836394641849484619007679280964265449660528574113241491916842505228876650858675627004889951546756065002589952256081704966775045297183692214905801270251230121932678699826803101836097495332177769038455124771171476188068119502121810499799770655521944699471219104696134051528748293994925019063257708060023036477390849356158494692559998238650197851045823163413366626395712070634448342010569833487313570109566395944017785307881458733840034386022512260849705309084211443761153438549008755368157446608179556490206719400331200612389017044333282932412436762244064773930806883278627069198447375854649049955694905212313669572249213186257120090209702845866997164982359108556879869599721058302102131740805055593319393720211567440290698686000759750554771726822869501458288354339011803408391741015615481176887615631268312460171762594750910129995684182047933825510594208704482884478153597096334218570408929197089330730848989984432550355032351914942317481819263273637582773374369564542101851990878776652828629974226544670444097897967873722076123065893793943888135047179830164051190044126670597925335800366249438641871439683349294330317249743360972350119761702765958423364267731332245162146312048743670611611817860501294937019675684738214064818953686880376102682282807594587057392210450917583446372092672617722590695051161799452614697818113727017339876044653666496175122281018722417160724753920353630271528034093303831633865405030041595347592822834002657878948538122726660520883679932122694527546060390002742367947989736940557489594929570155248179799788964336983117331230983022070501777565323468393516504524489073715753073593722537850311853408466955128801719340018833972422210054539462352018479246015793613335645451433686852434150614073105822629074130224531743713041720633195216252467993769612205295267555415868972804339356620299733938116001056447509902513480215265356116436372110633769203997061098339104420641736588083416167987835193319074331467194801632522619068919596527743734013446476374412738734305631011148646704601099182609233038807998732083961502325165435371398343222615157354748091964620901537556640351519923553125932226175452317220101920931011421278766896206242665256230456448572086227785416289042141329604248927215504492985209984393381725795629683050879744645735579046477702224375931421111060253468650592899948839598480593666991803554077704323783108049492711827888008493191396422312241811756466540140202424619069933211907542855887456649301376942202312597921380964531749431204416149026000530412310673999111722239954140363581039566767001484804666574308618821517530462308642781180410947118982039556265887596065319860234046958047516893416719571643153859325742597162595785504886208917150273121463776361806637457049071250097030779574593496867898563706220942608598686011285304133077627639221483698368588623542700814870223374019367022700231939067560717972724850727769066926257744190197585952458979469578078743681694323062302260687623578079943870530582040146562454881370742762477291091349432555765008790303952948008019691704705607087932897975014937961560255255656620634521095402950861385482122329351148555035782327252674155924887813587992624676154920438583332324509759883226277205882787907054016773460178418777155303447062376621003694601491597734624267208696765283262978834282633408732374284288394915838876385007146652174164309436093620588167416711431658314958848680598320706485714588023235847946124571472153840090873977496343656884033406441068758782559399776522228536885680474199492393216445681587401091023264560712019106224625473559500451100906984355680375180981114125791411605112140166208191720217942164194843958444511655890142464818446119844700529335368369775353748837846191882982710040619314222980704182996802513829984705031764090225598757138730202408164320926937507193373087477120410594821510131558908676539652224798517022551062814534734398822268785368368850787562045099946198880215133544124716597030026080930425073749247122292050644083794344730770125255690286373257975142660202954471978637136891194444845023932302449879964878369247972656321811432760492367735831955800303304506235355512630276794890353652124769548544701402170560432997635367782165811547984708693362656116716661928715488127391433114998037835309224778288303795304887123501907029176392126161070502979822800527062803138656623517376500568138714928042786480197145325613388153911801222292208421227506800087714068998102109004672755634944950830442592033503676389212350782114863329578941290340049483075510505883363851502150084437555528000025661955382681523599514505421259398400848960535384645429305895661056167412431266893198534341352145508497698346383358405003693469770321157836293433640756112409946287079143754198661320634190686228841448844551387233281149128240300148345155830050633588307247564337184680946552203435957833600781968579892149122526218519105383419521335165607402816639616282655732808670145594790203790832285841052208894175863650205428589948377273135447229183719403810800559623805607030321527573455875310521323587591489800590060212595107661377125947134951858308345946507162251586899826765188130659753906415254150752058435508201131232090951266442057823600763941188558889677272583157141238229859995387250968905069736254352665064343196090747761536672930527484256271270660625618076715756564341810370653134884233873469706689468982312716142498797726931576204574701412671513659954398131374508924481878711626508958141667690710367836426051640871422534594144403385889136650626028915875704907974205247977692114203320306779126827863869348163348739342632366503447364912711077535211236082768799020145291397033724404375923439930962053097869283275300276396833401513072689179656101569864338661109439729768831845361652818890481637900040970468286907944305031341861110346752510098289787580531315684217093527118002020647004877727528848770691720115395778236405516678481667209750347623922932651500534903369668491869851848290007177779387733648343086026767927108312601263286752543745401115225410602173747557904286293879752807785827732023250590165649891299015060155792572394038633849407527476964990802978660762568114197905665206581563552964601874786478535844576986151305285546544315882030428580486504583249780148487912312147812901810580790553318769475873990443727107161033091207061720143556954195191935659495539325613743537116723726476370741204845528142184478493821680181544858102336189155496524607860484934868258225485949190300570903083946809262785173679352591058123291202572588921490085071984902955200146608588600385460976448618910301716085694339297252133942121680264059761513104380611970960388781942024811846572224339360859760855977262120207457125638313485477814906644242098151961958365062215383367940255999776700081425383544195253545903333522276084519485174636642647641074531370573766015995858862431118308949651768490817920190444190579739499584484035104068306143915719643145943931648198091022748978095884865962786798822121803685787500258269469508923712603480034727662259260146982557676820271427773934942517936545350844639640277990390574996556210700217781432138571105757962199721323608347792268739321096115529196150683258906114298166259344969538789231182277225447868477877526825621600501902262822264228835532179408941682549565037799522144100676552610448904939251851971520957872210990919775354388042697871806821140888695989689945649415750832756918958343274195190258306796363669753467186348714912311200921989162494757214428970404451711725861294426301369452002403412961603522755202367312535450759354656664109105688413374445761431238650278026764087790391820688400676053361801266155349446798176719006572096907135130228155337851280981463757056400104819778924300924032569105279436986343003769030829394873925316020770306352366032236188960152933827950948605717031218252189670808812792616534722236967865012449915473763178435178771473430835279865328819391071260794065408276804143163124373709065767438213201052971273346421335639611342446282805137974658487287185714630247907251399108636433891137801186112086900654298572763522858345033745407296039716610449994105256865765410127338223948527165732430686898688427404890137155541358251050076144633184536805182827325635533838203501632199978124653383460869514633594245037254233125261752642567325978826408519492771269464824776809763529410125572769371715818375337582611831482744575615745610813409973962609046923863693285831015294845750274218052941246353115288123567113948649024205936749583039006810740057149660974098495438409767714281015406036499221366293417146095508220236114828763964071299412393267111818411776750232752160585134318151013794402386975623681665296053471687883019681976280299502484364316942559237261629124991856698242001457467291177594288950889636396453978526882180126821980505945391022127675406847303848722974930327678237431938413016380993756345794784532266405864100562590479138686874572298762013897102764614408791536393868961060014182296863848147213166800701469792600261175978017739860844903625626900190321675331330090869545753804170392452422062373204035091022552686655427884367829428729547849522807972826063255057437403849446802254473378973253032914814211353351664385114019265886398545824236077599803640071029913368639787957985869933252970386155299551859855033880358975215038495431660701192259030024343900194501215006198607659539739454148818726277182438402983003478190312680772653543972617714518746237898371648788086141864767330548051202119271567004915705378492081097008802951511040570287716177647583604662534904013997934141982783948288782116987023213844601411135578469550894030409982620815315489475793398923521225549022004420616085651925197309148154860161985257241726236182413529657606037669328022090294659587855485494137154041373003055054883836216099369970930555145100770183714274182763162069200097526684246764651758309537860668840607425842296033116305116935847181635824194075865365884126948414547702220236144125150816387437962035798423257040027639999185106177946332447815971622443862363354147567592696128431549473011943772279629564564147745896629001687912332100368106013892653079677219411042616910464562259272626790159639542649443192026594889463911627141563529403834400098658499922534676862351480009957813863881309848346168381535329260367851355172038756047923646353879785159187843837597220316801874936428612656123131586012429017240010177058357618927978869149522756339340398663109295997836528851653698521431026136374160379078928382382052112412887615699573432948113454158285965946198379331719435623038135307121455994991235332769151493396837109223555795535142614103526663998074161724572874142510408865551691833146221761765024442650956428366647408955512374577207347269041708522862463836008689178275950540377212574633571275155162827752382791530368188998204564575147681157835981556294545054119175209518710734405600888824776788963983194192701400219425510416778501639879593568016481083508856965945360615760357145447068945117357077612431125397281263344820132151246403840805507017657368596389200598512807510486733436021885117904502429377921479460086334329759954168223670953083221059798138109462651982969016228366737556638364940510163715898201418385693239258831992112009219794967345916733274322484482368171989169117227187986353542298652670888305457543219729576234912434663712243440949559896395869451685544103726745765361394631668173260318026843564055565359054155522778751571916586816358317823820766150494048688409021906947144636532958601931451448219855236375891959124144492514900867981042839022301073231794069304170920279363186047069284956675493773089963774070941296101833172625561564253671073104522291162482990838560357723827353251732650200929801378398100036375546877283164585943230223004182688076758064606197216379011261974576475353650725097543543197034559507696514122427591989144969119750462351426750744952223778253249061429355571954264901871903928228316062187475842216525712498894032820543906421654933205882192854325997251781690899386977640552507542808352490491990258607627109212318605510220381113024212620055217219756787935283103413149265063048723659534131094248422808436683213249441455681984453019102135039398203209900054499790720287441806667836284747287094403604962109250281969511186987936937496857012340628668166271837101219605365950005026297022840099475930245060809870795036488496491818521032720389593650428048690143248622283673515006327150909909362356854244810095379342660846472579671818757894704748789490990195968455979452176359043776622779304296208559539204153664708756568502439549842480570933366430131681424184910114410831775198203192815785179407520964393635948597165232758884516067217526062829254413091033533529040481243188559227139775692810301719740606094656712848474854775973306388892455489105220127381521101395692932136802434949438559440974973697898908196933143527188772382593679566534390517713677287336537615342864753853250698494851474825021692956596380163277203649260193633585105679879913776751259419460110798521123170441121625616721251413629895008697084426340420166647507812637974892880064163599994565514645506298933996936077317889109799371438752899223301429807614906434070607804817067174018286518783035803934172397710006615319652731417716064182826764852017845503714732574551945010298425704631122489323897940040613968043121773536306984885111094607681429662631704715696032883697443777082455050300313638673509712068618281538118409972398342570310294830091412577691728992419691063132261294316758296904136356338420056874911687250034685785773649683348193893812449612771910279116895564438137647581918943755926612443945069732750752359449176838990690136553959107865620710273463665408350517424428091268231432670316349307884188118662748463300388335862040889321045683825649807215529753522956347163099844429800477042097701512207761125942276641688790092480437952071880865386329391356475037328015631220912579078244492635286264364550368918757408158204261868541359271973450061412139298917391962847220927169913693599064002933322145501301022883862979066936687053274011927804533518111029602551918831485355048430697616132929982626534242123524623393624766807322967995080123264616766175163997443551019870660313072555128599315410106027607056214712113498440166016850847804678557698562707569784919768904818140111579241749160787573080767224198452090113969970577220267163211149138029723115310514670050595669999541783586549902885678172761594609795931792528225721621788050505636252289249776393692493539705901539764920521305296745173307492715978859146496876371574235004344393006891135542137306577082610961930315634554301801482648268803265504091047723930913232983317923726586180098400416072521045445362036015222137163513056746935194030918425312037142529092703894812416457631826579928738096250118999807174804638834367467233064328460469924599278229966900085189129812365925192531193741353363671344223533372920069736928515699037131040260376313343625242201416480015375021169284041895180035398075982867172899180920545257413904128496720834978868132723098429420937114699741569749178892767621036499008137120950327654463025223276356360543376067364995312820151270179943325825904546987650966526374666009259717898737716342344224724553941676127036769551500537464139397582723071940041305640597577165458582287532164260152676704929838812024466974883646159161331620516005316480410129296950610073222646886293622483982460216885118327891652089505746831192020547558538932732988837799101798608580367105034920078283618682581260685492130410283652738642479304283473123782898518507250384383056237359959755595827897416894220167974143719787586774636690560204575355654068176799131320196940143537590556531701958389532996165639245541393379075677208191588421244588908088617249458647376183381942145186644240640436037500460297685773211038426505315819452979323901378278293290234375748048475408001900949645061134322279636501515069458217448835680139724930608793987394311471129507071152518575973190170193862563786909086864795223553802673653113264826522582404286289662844581544094934680269627566227499368245598386513116074715925129676037160270046396242602273742281545261273250040972094218222560585068279997807751846725703074709243056533611280079116776911507779304297448608882953481860709503690247107171947455325569607729521171013577909097150997004792209699904004687701073670601586776863674842555175488172190852505850268988678038140889946880925838393003392248542126161033854012112697440375545022427472099603548730323379986433290502502554559938743441071524999784684559801240987342497273950526603774950603802867164629220277048576262618272887036047840345724747752813562359157812118575220543580989348366461743674524734405919853039727534658181361137034580936932167586623447156565327000724713717816732591468732653173118882935847806677693830210605257252644451710561294665574004016479051535165837480759469849589859367552176545697518884205009868999180087467738525766330368601201608044694952675848650822037231632930850074546597386559410508742336747846380727762901272358448817165430478701245971812057455487297382256712982839451812276124743864814441090098315139487584619468485595733776846205368124881326801662898390267367740548761548755288403372220688546311107643171232824546051862109085275286707925907065419002464036471165259157121164073872290675242142667572791747405799339436243315594253325769394640626491962105771806965140299219136684900181085765939175837855499370957943857109265446769776426250474225857648666181584591813618969591358948323916953505187977503421698988674286343770247997233849536449618628470805448104811872960579043280326776805530392319591693687730338211177643122830203764045677016541217997568170463077226349711749452247674346569253293113452720464650039669311600413647850811746045569212688072281191866911847420138653493828560809989230477659698167309809507768861872252556403850805463107593028876285896315744977531606273366160641387069585397136104372438098433711615443466680567218158724810948260379016601067014718796257374313067892521547206539691142252876541001029464867335247416791282653678043591450580930493620257685170302630870379688368497229378536959990704333468025591316462332017540790490514021131500804138050119251664035417879984233765356836004281719706264172988528478784062278180554332821567362522089073671430958487223423095077902966691850327861779272804047292735310957177028909282429691676647522012052125433079973171926795685799370616651295304998314288565473958327067828135273163534490363338645621113065758291669838987093627907898341700443745792845282386175384325344962995156741117931097535517916318773957983132709123226417609935059374517535844505684852142890905028224752621326995058480350620599273097897265035512413879779399910165309175712395751583436901538167212876312191116070509226874669185033347244299789154835519755764339051914710860182854684039639419951933851595929711999522104315901514609414861666251275414963630642188944066808284231921086495373247563168732776366318691339142417163445594897224147112014118059502307600260914079031573237859554856882229321312883343235077355470028308906255852889784910693094870887929868116096830320988218623122673322397402477884798895382278787549081042947184311938016706742618854636617802019178719708166273310448690285316063151641659186545315236406554958362325823746050996140267049150094390069573340744740458615294880492887324628909586031878971819270783381889020801464465091191134606931806156399347786633151862541331406852147760570775912315074430950447556199493288736669323037322076162670790611681321905759115485453516239038828867616369061335972389389860321656813802991923764479255455849966752714823642139505437029992642754302074257568031006039409500828020066856409080762794154504133062947067774222996906144756340054145421568535409666283188573273989118749922724878139463384561663378980538413379058385375504896725572752621743806669626596311687620857338885818084886553604636959748894937059309533147780157029960932422968280828838374474853446890112267267146051982979858479783761891536402304484854026469403069375709217479575730179712812521480206022969851376749276224379714892794223603646356846018567441582829285752343966792482601742457684151071698297384236082891602598105592333656846566814110502613052914899992198574238370237347477434662778942996316370045051595679559418309779669452743113850546294070831096139583464622558537589529295220681975480965418023599177526125492394786826089764400241900104290194727465295408362884359884637512889636510666621608240987940613504188737487314812774847991305471170728502134611832181646037175763803019393957218274601342745312108301926079318654989616372046660159123093739844070398668352022942836155761557288184373577508131205471440650913877600199469132942447421432680923731568600686918355152083695956399076625194488801809353561133020201742237522545718164872011322567041541213472049374590985809266741991820932194682438923245203172059783577128199061457944309655976190997153174011621684573948224692600711805386089630987844876223119875985274562712116330674944150005842953007293973474656938087529550279029530680151761630049682608753017973069799184061499244139034600168911616228934445793389355300361213453474337628034656306709051230272730523344629544249122910606949343104951587318869976816063442483547117256713667924314486790984381149802036299816122089822312574910755158861980199509946762611651966676371399900288390006567495299946855949842012445987897594975094261768062489649700120181519068818903021501223879950238921197702657968822726651259411500944948892772321873679574267079704150663386121059240676712089864085609055843428141276890105560315701783582061846871494408567084443209902881818522811110964576085802039709118963211712789511517130840154958261406342327498228540718872058122164548335669264846218388722664872061197163645186233943965925369843243647090181696923603565528457857489203456957252470120556846073330359513370412463184555206579977275522351565051276048145232292182114029635249287920736423275517093285252264444702222599642233554900228534545904219120512049811047371147210100695051793336242032954687667890934699276391059333362003134939800932953635552506180753444645596855408101207964509931043848807230427285534006947608320037183061399388500055715356082971986028554820668507110664462377026776096626543797248493548879672518140975788419080441514996202916308169163310363129750623734139968019531910814485480875499131976306468680892416336396811621012601852032049567366731458395973731206246649795823569512982970118172208870615725984240087684660684835777078598639277615875272165831287556251196027364502989216027428705757501059338734419231739409644802371483401519941180502478641235145541811569163142534437286232235701577794138111613196793411724528607214202462976989451241390201722088838980856746734568836357265473509289635522912436924768005168476419918621111772925067824222424288489337077635429948205672839493132151259911394739339068447230415622242357570736354049315525013468807617102010584907674855006680031852931937677664917162999515432038214877170503646091047906138410337258325385232386270600667257541648830952777955801934620643029093040418184607271624576282741319154528668801297059981431693209580047178156533570944428661679964567836387633235621394458135637830608062911688334912870495023938389336476312517865080914383106801067223839036209327803777373605721771518937986063331400932017463574268249628323413708890432120930645707613266685208017670613916127684889115908062786851910007359024746227576120582737699824209734292851490183556917012817136814134281344673280844588390520981349699925686446304529343591860036481220796626934835056730637058719648327376732649668195686047661520438830915418361212219205355467980778528097182609840456085552370014827762469843447293245837831896882876419503107544579225171031973704129254265865488408697224186168049896752291278961153711050764732634341737450810727546978749390611735334386876481013415704085100199273269885769397307258600941405099699912468760500374552477917258092001985398612705300426464906933849477821977461332027726745364594102822625100369688086261706410968635682269356805911230445291384333555738790042514960047160728164734317681015599302091258766548885335357551335647403790007830594120545825384508173960278880990668078947551690244954744228304360154808564234277855655267650349192234963565174307870138544812403443845963430946202108759585424174322330296422856722696113339131351193143829765667787435471924751545789224700299218995185076762121674328489482205309347720966883811148632477561209982885805802935488547247474932420689174581303012761520960221534289146142214503002274595305466259659791362068448995707666511381770615792096720577649048507713944629832100212510145788581758321086749589037499450500030726137162633547730764736837643739771981166221601957688063421182924549465632746323406053682819086758927385680982075128071508152904314305779202453579793214096744361982286676309533591281773148745935999217735132466441157061006669930499735882480468822538817419319831115636681551390142016396313201231778908952011466475704479060049185677162446180949506027031396918335671562830066171515942409614539592641397991852948995291046654943427414924604210814411995210949592361493976710380406122954986509060249790869373424403224786498922061577633853082696679601403612282271066296998506389952849160022486317175815819024601113115908709130336792348666091397284666573262406605192683103996023965747846244492199608276470273695879781054543749140490766243713469593040765209178329209393368367528679860411733046319629186873302160674831039054420427656038748247061373194402404199349838614989895884404541607870272866893287979333420454137828786248839333285463617163032887291975791604438515524801888429292953596697775730086321280999156446485558188232106347576693867435701284704076359842432033215861360297913954259256164934588187742597027309961317841922415349194104707990637497983493841893367704211912226803719732998932964008037541954580525284631972156550952703884318289547926394110497652973541199462618145445638481537455166098653756408613306476601280271399313698625660977527240416963411689517253814580599779276258461067965210102633520291100595513341640897245715714446001875484509784356824322370347985579400069212800453036170231275812743003153382108362392832236111630449868999483017831977544517704350630486922223546356471162131106051619701606373423501476498933660051342034841370625299787608427587930588084854749171162719599819480664150392523529244003829071531258830078544695539143501569165633217461848865910388792275374432887807180246123206148423620621337112526483929251479071217242967255684354061530822517955584975151323834475183738704310267270239515078085170285308908230119403399120889919163516169584456913056748970570158867460594687873821199703996106195004231746691121711579510523273225640363712759324496618411932535784760808830177165417147908088581901143664630570479947890219507968423785585436250324570249425866529395370543239201979166129921920958582672841560999058901842656408755542424120118628867760797517564435538727862000834572631468757068877716249235480229138390036636977436369863790361291688475697057625679642895301125454554022017055576123242175437461534233961874722708864351005688154641067662084069140111732297857834904172849945344626258076412185904119397004591348801553659969110467805867324004649443113855554752260644260301604107879168487420834910730070593054627489112593304683259823020786565080278090075735424132049094865036297374574685893615636149227031883025773296893122776411050745756913160372677246586070717320203155973881258776140544023098744559259691029499596513218813521009813470252918443083492561583253266711631634701339271540571549754196506904558675157027387154327588872980866633545485220531031034591994239647072104702899744121105530581802955178232569042623044975226822090364415699559375717480229391379890975881022273731191569098210234332244311899767202478458268613272803660621558606954613184087358932019735974517153625873576964785308232991993888542324387160058987472315900757989014239005814013036854453132228814863244994976185539686457875600418741671003463907253575213952436172192331336945853921488848624190873967522734920743207158065238026459046494313778137919333197023301294359961916615975884473569322723153644665343897448937691882717892563967382440700275743548424786089013771348629091060009498298820207020039119662757624895727881157580227537694074119052476918285082696371959377534941978005130045934932519037763289989661073773175228859542916660135045456687086402623336106235435011624565261411225655071795953686977838991281988114395563124974837851337671417234652029577280041238443058495602394142897316296939264853307411316352561534188064216617890925359434188195928581051915966198828767876707368818289142604152646192893353654290692358263792200391086300227582270904344082230342498915680654308052169087022346747570455921014411410715588242114581660189907216201642550786192846107942425764990266926172530238995097923912397905290855951158591951188594862926598886350342301553266389593732691476094167502149829220155445924111214150233548257112254357678214804887372080023527261035125574417897296426484087091335058787424337456139591591291615538521211430227322936460606308819784712947335570990756061706093335548267562270364318464434883893591484435778099468700536739462639503471113238721530347683739302526148336199725545308070193956795840133499660730532722646706806527260710303050983383696904753400242581163606501781620630341730727688401828761610033405341471393075926281064277942767628730658732129366597416401385669991655298042256251339018230914907909296974388153154433399544222323727281963491402537486846611960837101092546036870138023741126263556543090726774035136447379240255022880944361605779253234233084064331015250260197535992970086266342901699071455705115161113337648456663257444260021686887933945307398564305513378225537831254954463916755054851260075801736919922012997810650410144002367405801589695846928184527338290846693259043354328999710239098046422988583335307946848510342484991079061471604097702103305813661112852560744839642719596631115958877727483206923406089339067136172803617354460139270323976369593065241549539589095223556278353815890919857737769140857205987740141437377434308294916020253592835158930319537946699757091588977333956938201888847943187973566804797492510986953741124684744878117817619689445668696913788729271105457382608965274608179353865755159248843348323505463814839900784727058838402675552009143054463333259083818302561655066525349200697588857776867011591939791085359599862510034877584436469889157970662896413687796552624439396573516946802540693697742685465998355040603796450563541841469681463721100906960848964193003796412759775445150085367836908141149087604770582325555547252073941376224234263043033270042743297005937750495496486441829525820016652706271467206796442556399552099953192618763601082220329706865727664578768103634607198234880405400304515791057609883950275819843994862141524119360536765727073819419573214153543308954606788509074730245858656441209788523681720530565179729949655908578486947153509749484047147806401212707092447461647250140623083027824199925065298703728148120462535402753183025845278430273399998169925458360462069772443774028753162016264926410900071797191368794617534900257125084124492616427953762426040583894883474483672234281829751129989550062258808235879123370445590851278168926896737844120684664155289726409007144036223648810830934708580419716265914865709367683416637805732802129116665349025143179226052948705516086475212871327096267661878255124856642003892654996309900526687535384103843791654029544736260165501858961487153172418818935097265857522861865635781057239582669400420392319655222682502399553243740019429703504458754954316096821577007223237034849550633688019705950648622739220205057193051461133599017043117585811805617028947339446177753429619781904951875305139462146093345914648984452308569019129885623157159099570309589903573128132387343920649633070892610477295768577950235863684037328237691389919940058251765959408659050428487610327628865004836272601195261262540231808413041608838817790570753805850737537246810892775542932375427508033831181354058193987453863286578524716712290633546549296869607385826650396178509177424566792445025239685024062359996810615260793244734524092651967032829933196470638007125205076705550192892328204284181734734019390314744334620426679597619032685562123647305180474929184552175348665486342526267410488260149091307801779882754500581482240175026156122627361605184124249510480707110645390278878305419876197731134435996467098851935072053724317485835475783566825451482448713351661106346092233939902691279766829202025725406787581692237790118915761722373025230011616922292937782294804475217799971060087690278189578872545706231040668178700334857109505974670400534258205399340631935364154143481935296442264967613560519906559372450246962940949846741450014340269291676360917439146287710342069968642882899614580668999893021443998959041845963254424139523983886605679474928650292230188509353783143975733293634724463295300700559250586903341367316965690802697648122203112009388419712430232555345972929577679923301014634286007811578946287434565495620611659140582376828339495172771834133080136622772608460575356029713102830283400097095241684948058289958393445598801466549526130881316067696412216530521678190920445277771511929862328648401535177312738243134062407893362546687612195787979594717668974563348846251138726473478836449192217084158050865617523867566011362771048746617490145533589484798461603064252999382653637928455492999410659973551511489299935200279911664384455010473132121831391530099350848358072858348597225097406408459847227116284043364475325389065297270878569702351562484312515958754474806742504070657194745685906129718659406695633633359473068529634226857874933709800820628034859048677311824888989172024977489375476652872739890859870210946854241486943470114428477172519381880604787978257068433952908706163996690352983674922124073522210718608548223546265878754318796047269808745906511121620128891060154431256215112718786112160541531921039604314223138404892304943390261234010025672421252450626382891358707625869656637875091138902190882395655470291474703882934124171987812000687743873247653888683613833495056760164396488567079298826784902575733372381211588498536491890240096586691361791762072503023765145288349528728916474348927928359250856889201315636925672007142533799121198285633997517042377205955178322314334932218976370107074050835743008433741392319724735344478522721854127688239336225981909100368854462599158975333983349440909823050241292257751952878114094660996485830251846793929303409373951417322531372225121595393641777430047762041918103316248643851715406741652813534013476942119648767108733340373875972225674591782060053442319315249306223199472346773058944566715836854486169482685334165084636549163511082187174871044259545840526848106196196672119130785167988545657325956515845981178307884412468624449594487320325970719573683546898910950114433258198488060644938074619029635965381069871543735189796898487779090029429965525424667982720909200540419252468200234152330615089626752084756513833701907296563300219955859288754500083309413927781094606452090588924174466990371881878315266219573439479109472681886667488005709243059681521327795426137501762530844915364230474205049068552721590526863137570440420393920914712559918213812359225784033359542292711339431645967087564615384114900352927143383878782013868730117597222721222548142740322736073664333090599175928695662610741298243134760710742995914519746458177094743507115651138269196017561864199471753079343198004777068106950483415779697927885416573886212062056007409628147522821704637827354638607285088603352914877633597872662310457174284867985528944380903982444809966864160828684372280358417976134460155225917973058546018555879138315698455491829324392554019493046908288251437056557854671444545923538195268578365844184232576862505249585059420229889717200463825263537941082736059972889385122661524197005862902739619552304783955713363936307865120012564394585387883440611741815779333759362956711754968425174803575213600992136483869222294987555735708527149859003906211390958890808052313482193939064352759187659064441156372066181131918718958341870329128195453679197101049193612013061888270485316234695367517995642881145731914740049880968293074555785630967155309321343913034570004213538292656911129598474891638546555051760370864723434539609362209337097764067438593990264462962739210308135706541417726888069838560916686655290736118238230276325269677911426783784257482436876532521157118786098689452280062570316858062963626476116028279267935507979041663419583421807143688338175113120300515645585576705017052276274858697828589461093786103220477413463820332654324075255400266216201600387473752020926915698575484440542131014540210527653407925837420651878532303009984763249924825238795781170948633844800467050095016088876979219930714254887817558801662048010972389735071299050785689987073139013079622337242457976611256104731387660675796874591300308003046306850316571837466245352277429679038522639788404861002608265575264958276450921634976449409410561617343452909527456892151857829546849422755837699754757975262603873275184472237992224964489384052831684344965370541411311963389859959357282002614225439098356547178356154761977667907348158640797316397412264028605700958582335415827785423673824343911312651001076869982875707173680476096756985689766040632120717320444552415479772585335059189583048151281198247485085636585089912924891039803745652695794971038255966715705420369561659589715678968038430742381259792566508704672495888332526781213811215017441274031707688697226181739601075364719901431099848708518917684494655636593385403773181317591572798799150296625489996214052718797011556776802157082585080262561814739733755648566482535487885204864308827953275937322546847425873623955225199952216652432125731177427869972923848763616820021673939116325496698891560049129208281396980018982261560501482327095796486464567160110800404142928693572878590937467705047086670354646200232488418428676820929672305939317490054472341219901907448257960088905722827291885078446534025177783816340264647122245088673193151426407018221115388828159086613778077454766746126738084352139646467412538376603787941806973420313621023355074209923860099066579229836249259240730674594917147951726233033770467143407726842241343289128899651627682260562780359471409450594430275492050189239033262996706765530595505243955695107921997049924100711395663329235406805815956358863052797823820799592793421657554178551693928939150533731956579268021952569803575185326236217713077710756896364451199891595654727735351645608745254224173775363220542182061455200361416280685661543904499789101099385695418263118928765907910440850921951068577854982385039550780612354304454778133997413226065754304040459779314681515516743639064342107555736730368067478468828366114922640082956295660606449837613229613659238304061244982525243263968147134409844713588700295346131496963805728528647840095715996878145455232947827023217446745426625158066753683800940460889380274770760404846403478708246830768720334083222784417469260810882585254419921507801370073865524796599097865758394725927848247496286409651692226053264994201380257843118292099814192169110452410370409830921166580736729940950343161582735695176847923771035002680547825477103840395809380091447297471204119601613687698972512555460413550335571070567178038821137841196047520937166556981336070486031078167341801588732182138254715026272694028899318081374404780560362829587088799583745643226457469511596137618828208401521032475458778558200562548551736572162590916804581253115924908584857590563549471727312613198844178175669937269777257339361488280246093575529063801732387759396212600702990758603924281193535894202302621386843081400859713826745645621637694738367809709361033066121830383292530920416274001453711235375934474294152442888025288690749274724746243488052359126590453887912881837839348349236254877036672699111470598871630091957602986478571510093527799920220442531604318517397756298969746091826079294219611234772283882087997626619092425901000781507389008733999556699006202266134540397031060521532734935448059839445606821457383023226209769934419428627408198448673491166320934547118928301432753390369046416980572220328103031345913957492981115980837385195457400527567811012953703304812598880470285627545515828455598290024054895414754115247475054506585951313915308359850845332094354566565199804683683985229218007532774569970829355288877816567496067854171347392216602311387637260649246538115851025292984403716881311227283141737906166025767608361513937794284525645742201942002820759307317966650597362608099580363000369029317461932954880277706237528855996438156835390728648457157606136094433237649461582051680064904997957395148938450986366062936485554023414615196484430810680337183118675520596608186795207791769199484610641045007503062625039855961685788484151091127963894598070357248976205081643051176102997610457193884235235939135942194777710413359808375838367776626645975634442905009953924299117384242635702997445535245756469651290123185123460453525085028769743801396178277987469774751307575468378778152852860013730303301723607180010335610688552916883010198851767110776981316352524048758504180369407377648040548652199895213638525987468672317572413106906199365411343445747899989756174987890205928734186428562163558189917297138385746291013838393563005753406047595037548773584639017095791087455662835187417965861915091906560510902387085489269723682454510784677038355459438121787646191277557562034175690109348851535608967710508347455743877350874878739032527749009104702685737053442634664017325259674658640224328012250456046929779125303747661690460149244772394875243633180973275476530244138359477222601580117488043985429031004553267547300144304670729821674611547163882261499209927528765154125456831669761077873112720579664838748697882883825399208116645811939335060004088021804597050500223952768450683531808756727277903232833564897832592722846065051559383648241237043267457897955247680882428993184944339326135095217250183556915655327149988893030340114356423240272876063219450246423147346118491770852086833707859556778038552101057991317518899071085334740274586872991376866087253106843610478102332258837470728143822849664467835828308243553035890545857663864320259655918710480800504472162532342785132407381522691429406560308644197630773421796776537280541986044969602639709689414076058850925381543649691059861033539910047789123813792374763846041227821984245182294080749901310193197676362762250622174354474279210224104237439387617946300368698105698417955003114177667124500722657342092228481265269729891668376464151802408101098690341513365310189135891908617392110104042220827026822256602628998757151060313212109012286839904268914464838678208637987515974322546172660770893576944053614824921192962361319698197883439176972809123381350804508343818636860536073255724684935410994657393973681792076972359744156446529070234064526213413143204797875091962346247492282785063011476874541322342603146876778731413166489815098974890507504843265055617530730997076902454878830519175198647779908690758436315482009462639170217273278205931224836367905844226008502056851568979868115916122168058384829577549703837159429009896554080013011838495492950010855373419125525016298542714442860993954848481317534776939411571826210845597508260550840002126654984093552127252772492347553308189389773595186109601594471312588523897928233589775081815934768274714593582613338618362428446668302802424837392483673200087275315384474971803502667960315430078560201035953217293330106946485722555596613307034141078427491880138624181637245681090383432756656696549776367328592191224792031727011658848899083862293926691063598787555471220181296038081913307718236479198070440070833251453060312454852212862291287495447051947914234305118260343542022528324889292146460575926690272167550923996597795358733070849137146818782588108364242028160285212098710691266294403964458608674319107161106295512532851405178006729727075427665056470434516218754285043519612003962657568548060269838275005602792155719669785386539271634269592832706451629302940101600294396487764757380803475655570549061694787001784679219602430904483313459127592948095141943199483429139811197980590293271478886860306477589328350501099508425159800247530264618107350195838495283714830248943453169237256902157193648158716501511566121951886483930068299964114118973976154083198940131523016414462882038721560170020627043610525683119185012237693268390937316979366742824028549374666400278780716253706318560888559769956807401195404357689094521367468895025895318561102651747506558456099740832442019758448560890231731656850943028040657723407406828615489664149887317281149127351964603357181353956240489684190683746470759198476801652467745729111788063297009346670799996400995877602744744838455961512873526242212881871380540486001782750108891916573013947001865344006585253262184698245776455474656206003899562673351323929721171736898819690879282758442883909212037139923475343863447560286533817871417450054503849593799611273144723814846287335664213465442822218011862116636441084013716655097598437472981833396362637366389307941660985158073318353555820950562626682782179409814518230322453843080787300115053888330155350663691166552177035398122211733965479552261545021779350777144668825298619640356319902172768557194242080648963101779006309997808585835207747183387515797995547355429904320675827703125267306267342567240453814164098037558811477945497348058866648537541098007165892240411930238898664811531033863576001909160362635257454296723742597614312369768143947030286864135442245188745333674454022511282917427780099942941370753142572614140424465351375211897446885066439778867482412930482712456714902318524555390101671797153629132989073719262036937961755505906844116297357549840937716473720969739932718825666824523746038010616911838352662601068466194658667986040852197192964445684246811389448988519234308016066906669030944301286161379040315201620058767596497034783044458517597462793777653509391556600783182852399070293258752496609006321821254007679385181356384574165072112130468796436235413345737445252718251342574033310740162155128775949828414986264942193123836066702677825118069480955084833841250953539907596582472562148664467737922691110712735200948339225885889712717298949064873018804066058766141719802304212303755370957465157792331812909675267077139337512266045733861111443789905347162966750812309594199937418351170021208027096133016561058963944429749714352081190477431704102374487590170681963300179793957180730383956557987989643417510145433483556716532992360378132381797670704064967226165249850945222889065456259942385750281933994161404680039956104579712260678717600847728759514374947702871064595080576920092912746874355364011952592053329075545688926326323539816871754381198147760135787763840579107860972399626294583912544971534106923098607511714437552712637915721643412437502063666711560172837932809313368702497198228460604903121501500488881837393102003494323111480496831014490081175292898313673035608021279827240759063931166511456255487056982994706823969410915555824869852848900604613829273534086926500776149630948499978152884331061926358562557541157668493785673564801430304857323932579287316992723041836675337557469036893761613740302048306244029554412991944917697324014535147437661902901091560679487824024977745058864124014744542456080092184482157223457947419641562502558441803555465116079793334353494992939846139363102271355842951745873540416993734379954125699281480149579870194965933715454617885805990211114533672306709323630843650523229430408406180790948126167769035276056258069661106705583746162653069523354270617999269460456544893259290458413527562986337447908636816380195952687030079103907365315746005066172087847814320332325133246991539060472366375146375072912054661226680181618751737741326347243294651865550018622092069079105378285136396038107860988550150745964846947510863481957597956154773858583824168739695359091505078778918221592450115004046428254749496637457801058503066188974976007663391475986633203187088598465541486823011948841764943241000442835214792470801295793155296737941001955115804269410329308864705185112906028510385944749826916818186523554703321757520170950667536110413582341698684333052904654150688990725566278645768832540165630933713714182406673966252758683430277905391187838604764360505506079167625217303681056980007141486422954668511597328893263391003974669560079368178009984448322286468359217223118272774999931870154692978609952265145404281896672325818988955764373110577833079229335686778545181716573993702465650961737948890037342044726984849936654019768910796534131226735272867232282600840887810903906041447435975132765956223809887745661566440636670937128496300651019032873166152439797469466039905895586487086653941487365820424945895475960398701531411112150317725821288682780739492817068177424860802114821256445901570611434693761921929299702002405730100941694595530002430383523280923844505423413312254133256096563406616528884254169841513388612951031968437943034728212251886428042585952539574643853773203429301864636960778946616825618082963672502773859838168268580484184520748881676675491173727317918527324664027115359273210188018946009289076107896528273977331887597491905787133725027513757308903288281945283683764378979541511624708516315128415492484586550569139341038982204485785932376388330000021259190353654045252917733109683992292674447302369845571453657557730021000317397976850528380301569611829765928078691169514576598826691719203383956145447806077813005815238702414239509829996407319295888523725987349083097185086172443595805587354460203356128280571575463170914287789436139055037969080440809904583601990005397278771953566525033654283247863421539458548619216185550715126722430474269530912114099591307904234974522673262428922021768939621116860934284909058717958998197207104652652745619823186719912565129089153003741632885173707587981148127550296331087397150247673490798462592892985134529226409391579109819286029828956020364190050200343287798070083257175171514567930713480115940284587900798540312402565604600145503708459621306666260805425326532191094003743954282151314835742892310278468614738052718760820216809495043368160417242251932914504734450760636151994714442604741304960292803689271095332609249831097574786997115395768981565830459675586087374836366140954272185208505695922599340692218531820149553982523356508667609257321670658350658312206514623984605682776948970730963335889215391756753214546433054642176213521431479840397107714404199521999860681179110022861189580314709250374601960729828049803649207399611100378445065238161445692012328846575075271765969921708711965182911821404581844284401530878790275060176557507632826215185131975068036836201613282110620829712348624788712736589500175353092148527019258043059439314762009904241725478840023221633905322790138276907094464803608169650099343059449317382621656670294772067039354696616345007283479447769860760626102609421270633427686725369616132104062326385948235923132056140918522997803081503919017719580277474324674169824587891894691485635024828943426875740347302624242257526888963286432682039748783413741716720270700784969321888094818574615880925826419679915330267992151499915755214793492122622844749546544277467827949677243043919425181876137077563517967909272839576832615734301249857255924439730074746598487215540295712797551761945421994006607214034190873787600763514553871313183734388999114793903326355850897454203439860603726264974658591929305789508607728483962719437616024159550995471937536577261401512745283382949417779459249021535272804317265361384202520004166506349372353582712511933901809126074802344005736019042625871604889658186002561422804368113925871142695031851977042172129007950865759651134891142262153951046879704996734939493397741138460882517209074803202679903585861346773868887222978339605371538665982749472070427617799476838402259944435308612635018209941222116741698693365425077626664678213961722720341417051344940599519872894940351687163782042420139140694347876039049935547356205725399350649196955600956315501169010598013521451060416350392941008823552730781849616671127077244527071338657857620188278488682509614214620416009827073241960791625473254697575308639782850022919941990122084972409381077719903368138259005539740347085277815487324427527611902702546867134290020677712533578539258844863613235423766997027737858716847280391580924272893316076674557642647552783586289216600213700693185024992960444563174099282577377699705219779884549462299927446656937146627884123762393856003884468486207018905804290701507844509195513086917489561464502500276715453263582680001583337406646349804365110788403872589287290296338938445610018946855113748876585348561440228708620460540892299009466162381011596901256343557863115830782120337294881127940264702037358379779853775649991011249081267803766423812912014044873741299627451888993918030275169748916464547192257858510590591870867983380845530908434429791953614688626921930381140370691038450129774167092598849127703408979762499874111657697979261625519775970362322596377496496030036066408638063028444777759066517255050990002152595349708928374119702246306012533734475693941311950666947360709438415490250852179119743284243947344688803183460117624786608706716097232634093346552691962228485183322253568628445755040484893499580743554098099385311799386900431881860985237431867628659892138841048811750841491378521578456087599120114785337860512377989688040683019606448742120114861855017266321694250882580328373259095817588027179525999083860922061097878206351282807871295231796513199280886622415427302723038632995682381430947363898762040104624058349376155866060067748690060768917217525461195346721174383385729402453919035041927239898987940848366571039275491722210308671288729527689143369973590545036399786437884698678401135591477836690618959286355760043944729340042316268097764423107598779546568312272666690713703535596664012809653534197707608648499042753901539602344590606666027797512892899215556138248140553394015185737940818543273248051494799882968707465360877361945441340592230757742350482298020870642308388481424683061725242817693555927951941278931056640392507053532714314495524269152829632153915938285092855526947629698366638298978665572611087247194864508703425841554497572691739516207816450267567031652822910141140187395165104702164292532054963362990286247281684675729202693804182467480905592784166311782221663587783359660495685173928317279178442375082703835531683023693307795631343091534972213749558817565098157210366507421978929775769113666279351190742059349013592087177621408035477222223648711352260440348135493146485485293920260138217334841240490084978791481610247310186943781784770646823430720400071867762352596532208359637901825081269631790387550166289727553553562876025953361894180054105391614865084883654742653451718554094902199469775447457946354100227201943335394773600636473605018965082483462015968432050290536175480023961665569446698021812980644306029557636521439220503086589128059072177536571150711835094014980214780541282372779680428819523528497600132417210291244312082200548659566504375007383561625476313157868756528272844502941949645824157275144575585212900258454055087503929526232746956192922200857989386368956848537836058595386292810381525056838883670904193053150673002316964328140483808636551130575534115648919123272870626137233114108365510287992948536927304813370723225707107396455083908859348200808445852780402154231576796882402720828827705326907801586032094349326099617790449672468618169457881852375619334561040101442193757673067469220216125397778007458912256699041237826652086999146336491832218872152045664992471921083761488952045471686042956902656644851731725004937691994363294255889145302109361953994665397939747923969500751395795393761226249143296965991420219439522609130023885209356420288663191246498852814016693623558073014202912388659119843839545661210386879389595828282156319314863613860995803607567885414775716412671354509130878663149860959992683548124745625124302773659788623035860450358950519343083429558265220768777215579425479906328529178908306639230994970105749075090973897970940266196708177563584499606146402632548743919457066529001545666867816021159755029237010532016708562504575482191790996108261244432578484078014003854966865721097379028971962836025116144547801072392881916787755929005348912674405561587555570115108870920346919461464990637641965837246991725510320651151218573092316831994957039155887928236968489476852995630252825035241520915584776456663363565354093114722795085069983457840191994451153324753872518466465986690379181729958840136186858148768874925227561818807727319957261054487888618554678660644994277672562822903096841543768286516777003049889082934213115395820591235030788258717312734518150851773962515271995598736475840135494429897430501798478656467878422505054389332015670305314946970711035605541191661542583813134699913435115794574611327060820634692714668875101870588489736710532022103064677541805405430989397727879698087636700729543416167908893856069388241352233107999644987273605060191320355794959706798634577724245592387114768216383359952451768995385845009791541572866419352914277230664534048378901791281559113751689018056485493229631311528557129800067967857259554900808923253013445227076155394980879255637866373768168477910090069343447811955320953471758872436457191767285697972088234180423799267152073145611052533123882821794040714545100137582963516225870687454088757366415893025483276483574690248288280821154400055922214575915599523644821924001345751895444088015636462851605797591328364490562626462493686689562475833697300956437506427585520267469928234696799728741165941033200331718975780464786891561571026862313514597781463222776459391541214736015721441896077638545943224222341533505817695322673598460295269323465167870551621453562733348175137221125531541054618335484240232641630319649800999475872066001793818431193865368915539246831208233759913391777755317121575615332209270942453218781358975513824171539346949481941655827738526500894129808095909463401401857852143557374237312127953250203203115544223739030545836992274511986832571994245053727924600636540626808145158058329790899974679504783935283539345284297659050770028185708353909463854262030008117995426821396724031866980988639869929595777708599940517635726878845180564274589016076035682107464430762365896222568402718373081321376026811323063445735433678952565982946374932746556532894262738512732926241475517586461369234829938202772439927327926316127824004716752464672612482263778295229102711129242675200236279038814226655551411515199324374098617705967332139636615218235521742929203641153119412020799768244817114551890623972124487454896167675271648047653657790259265021886477316793584607357848518625925085347365349129748395869629711082959726657631311140133040769523936141219757030200413255994018260267908451279409369894098946511173663471722650746993271875216561470036483692233569909142844834054542404554598434894602173741357338421981408802514465083489067893243232304759801623466319376405907434457007075255733544278036182641929376430699691102473971204553264930236409984332282831584819909771281873533690799277723951178261935917874893612468353825758900610327373076034097653046834774553160532587538817067840294604043549664377158189424654498727643453591222564392946234338662458668994826279367496325487037245086289223751762123031617670901120014913648393152008337312530656814098172471194135925593263030587081012524655270744619797606771062938723770887293979619458863635728543135072436594120800436513120996211749798147358179659956337224945975420374619104642398928308634500580923020594962155745833436889310271382999363836604955712599332034815292713337552846172239290942755872780652566002132614449589505995979239148296332698238319603289835191955609475666660665325658608528588990759699604531082279563420853613159034811009115419579678884931508605378909380280595270040251015399574961123281613579792459891391112690824876739993361194487800189313555641910633488504380687497164264886410035566316885910681538591237556212946607291302947915206803774054548900965632973920781100743833288893530522578905557756489852688319066714842244719208034075120313723484161801414919730818561052830518980498287591319941067165120664594946883059264247961039389954602526616503866104174197699312042147032274571801569792201445856139602742848770894044165926450136719382775559072687200177948189274737768766838338128846738804075382319106553136466022950516665168767967259535879014877806375074181378362250848190661338406998266393409212479490745848447151272584192464252411726361597743941179725928171456564236093855997018279321044101523181085900551292411305390451732004130320396917295152393880939649547136066703696620015411880755983409307129346609069666305895015704468182804348983143782897711175328408421173860299374339911276612270470753332752537069548659515910122402826347215354362231871091195474746184882275529646074685168494459725710093562328365617419378920250651046867904751559728681890433575440988947746723110624052049691181782753617408284906609561684449414457772551192146871237115124109098593473437743721505496054504595358287955630645480431396263646672743907538168694660951701382791722704400202429415271361798535510427739262888276409816791085667486306578977795415785593113958242406421250532531538901853866586600941126762020390150238169117592621480956869672896458640806167623070104170396575218817444671292323756245070174142090107841986349595941290126965971687339173221595830403109876388506409737845768098859359504130751536185747701814043249300441516038614663080918395550330268543356181071882718540431723341600341516329478682935413373241802972532096034214324137949950531418734673226159751306291031475400787479764781639106177612688083352555504884803501112643288928519093473958970510411251988674570494978214278409704535031996243996490820158578568560645395889675002981266068792613846199576877927507582629727399400645275882686120489036172306993393963243227685914308728847356174897095195554452847808576016516608296649080371324995568696120725201128771933005451458609951115704858316502687481523246478491257539100576267532074870013749885527680444858444158128678630192084984423426179860815459344641279559252116344107607299447928850519568238191465588097697338702007048130768688212589820622544499957601088877088206340069392972654238523721659105028257043722378238606765369770563319560693317627435644984644267154677161212642034793547651351523681906232706735017364059275821293241294177444179293695357195621588568704296496533672189925564318080970275663710337547819286148288835946355994492884614211700747517631039846899691356300527958583665817061695550006026468459144613790030621739665022854965613257097684268277621085433392686745361354837602813039007431309166309400899910450985700855588871082214520947760958937138427399447916946765377027688011680551945889107518059753702966596550891070546235960934499555666064483673356602480322175717586614089367506182047713673091435977376717032699769389464982240420608245833684316084462735481224194014884015658075051685864890842906984909204784926132624367606775043672626912855088475649078009551036188122118293193132937621330277856867944983304058589060809167762121065277666378330819684466911788103661266053729012465771445601254962302727711999341305375282810566593796774529509514229589922584932073410339839127104210821288847763928517170685620429219057085245019633151838397610718609392769709105567043722429993177292904713677192197460039070760423733445945254811902374920225019653222062831820202352982508286613791374468803002020700436504308814109856875677951593409607697694440445070123860769644957116860727803722258851089871114697893992343469924227884100453630159862205265362485735004222303677154276525431573525516171529833271429612970892638015537119700981411400495313772720379993207253544724552852512373244589395404847687779841336823200429879306749210126235069885944749913051438283239273764528913352991519848681850782115101462859276080377649963658397945008010716779780448775074517246015352479834311733763338950652227271843889852985273678073508784135370370027536037738813606749929767091144805646267874773157972699840223730025910115829600275438385138458830590655416899943175402413997709335201505995386200381177267456829859903557897157020622967336713553061888706742210827892533953212051473457242856411241805930509961384015690749162108681399657175980012732464099805501375439984288607619866608097913243932711462228611895900120925606254033404502553008330310440072154651874592488124993394984974646595034871712143788801740605744479383899443524874100569190084842938177426125274301132969819986068795573927580029842517961510618321100832731310811305493136766576288356689633431099058196395889622924235934007723559854299410881382700445784447804826946272700426085602192663845739582151771314478940852359504160146838258726688666994528566801898063639517757288362173594441347296763209366929392935857588129238985346573080767201280460650137876145259013204964620045368051432119335868758798943368033358721365286736985808343721783145558072251894153917170168110785466935817997698198843246742747182367830185512708863862036356939129164869774716324448927129091057745853326794308766126367425401493784299248799010595499856560862745718680906957897929238683162613126578175807962845615700009611314803322793528825297082224193940390737199811762553745598043195585412497327321441448827739360588169636238028100729046866205581919877294670119347556820215901813664988751196334873720042048397421484243560002005970767051869511241483831158888188446395713964141171387798810522894153878483422995137114494983941049915092231760199538587697082226886516268262540341239904903089453528457397201126269638684658926794537253797230978127097638920575113501256644701537123726252840940898493192238314249368750288756104523788600113660085865919292449443035512999508380906524402502886857379051649226271408052922866625862530476155581863976280171412380438825880451148052112277813795163424401842435071427712784199273894236122253973288026939260314211664236465114386967435554300477917975010290132186987627602273811680028013928103521882718013382994406654666485291335651805615205471075264231855596013241593974437779293274008290007769808823067749937940525586551258429213859027691919808291210386669376578000956975657003092216242165996410234157283178145241263121835311794035317321388801647002174245767228271080819274361234403651121282111890788788837472040958696165126290147430840973063856794264484782318560120937399013780549707264839901061897796409128336236402302039459000435973289464195799986737371012499281692400174815837872685603735092970625976506951497613133652741693937022550233233501417815014462419483818666449956949077593854270582902826428376692013045880855305640702310209624810865224761410953394454604239067485271760680801658849696199858403185336521495063112201690810223148104750221901460206080483744097120713316985841725520448840068415993581874164646816196015548327751028381373841987098479579510579787635058013995169213338354537118327939959964669337867428761315098784354670882852909979580209722975525171349577669197136908023362655254468325152309471439780964031176847275554924261147860581314153032920942704263690048637145394579152821021761787929611119074922232714998526306943032468234205643416145140923507378467583235306434632876356402862377774504715591404595435768376513557915818747104606992243887636963878552431493828154958069460951583247105602265797748171150356240068338287085786249012869968458252345015694814546242459965320965017495859611696967814371230977413316657727218916091485119818449024231273694113217770528509448384376051508823615517503260692756793241475614877882590777871141236612415480053398337041207508908548890437441899356291545244320659929070302386228471170642395477601953616202381131083890152632108270795267061607567315510506015181672520755461688614507771987984215050611720806330247271871521125242991715607832493136107122265471488978719257482051042902656396125657096624040895505109174406630448086409938267986523134890700010696799469762965139386908764073261069916071512829344009787826392096223853237900748601351948694412411561445361795673195970760006162987335783511084830801119444338113825911310857175485592987653104725187342653413828488214108475270238036758463984250784543857817605247142191083542539001140405042922906900915922244391955884571868775081839187294797933032519035108875519808256485749184396017974031971251581245617617740137586210840180459430469647056788481121467256737915837207190288858637225339000645894240870698583661676762559963388255997227589769702280758920890089867982323853439061442924603017922360822209346061787152984267850134953943875957802215727287779754081054814748954225756678994998192459234544864470088768888398859318785237866329674556694680383677358617105624466456783611544633246074514035119911172837029871883765455465077707896487361779041569574345806552450008991406690966642845109561921693839960654375801630759376524317001721003715394924836645038034933259535777091539159707041032465857077680217326082351240551736972885626648414757199862312256449625784305178041408181964920242717329020233874195851146552083551509974401457870953475996783740837290096814039242690685750682446157014548957830341450963455903356138537758442671733549042806835828516022004435909903632792579382919221762657773839530512932935825347926056160191135820748412028841701667066992305187429099697181025538831615028921887919850480963758181275459225771744477541258778251305929536722874610186027630182134665565780061819345861998561666104468168603111628439564642417167766528137670241450022096628856988060064358504696674029652595837102644383505278887920380343018310552438217925304032110444908928869532714311420108565708707885621615950692299329046560373480467941330512516351543831766487556825504128954452339330847592942508132103034319194635541640636526661130867200188583138776399010956878880355688299797424471222098386801413343165782359953120930848573351937839210942990426981556152867628397924276308722975001937247807503323555069235290849470875478918672345834632985857189682123260976822179289535913142034867691477905899882517290981309079531250751690099955556869987442075918497757191745934465196928005315009023537634839780299068346649855974098863914143314883240542500124095136538400182984060351258368429502707679670688816498473278863861217632357954175527164716190591233377676712907704380708343069325448654750473622914082745924779592974881191420964460607455726812832233974537970711509033387842362110119703335351655306075459214476016542266637071450692457958508998183306069714666045358415994456086153796992093222690623193464693725556710049232521910891090372550692099084799447692525231569482330350233612116951035549844566855721218998700715762588854381916153756846321927034754884483501545481115430536804609956540295942846922862029894068299381340484421166860131634768220713439901545862689704963205297635266938726479355546780469661873370509997110756129570264029639262098187025501669897264913638073878254189323894292426462041609553114354085986811645891195190808490680542111291929214883998529378526743370845564970283786137178038056646976991025993553700304464082991559024128866418413248822337014324081323090509216992860033817007162351788792000929789384419885788508291057212578893450266653339369481849834909654598856623151418107309879009147836254143997866075798933627988795844422554303672529702387770345891597947903203337907905668497408642705505503566313149778442871317310263316282142910950514221901925369799035905446573479230506826308558905275686070213138069060269087594097536885741400618850043360218338588033064490665268565550713106566202428013399155066008719736898914734876466198896644916363656403305578083993567997033695637468939612358757768588722867984569875169160918630274589621833711877654483310661804493683985088201525510106812208956414978757849185973635168935609829470464679780106580428327746508934515428234112282345526838988804237203217237443583824892905103863302439640814823031249815417562091841578804557889964951430929880637259268662305773506969232347790299522116981618921261938632159702613597645715726604845517233157563296726590206983591451200632342431032806987592805595449936630817989683870743837208957847505438743045114379354868005756341765472944254652562458391157586409220988721163701481572420348411973172928838949471676874908130596009099316256562516130121802207006224589935076907680066978186317342602753540571304877439337336765744479951292602458827423419535563437730488353045240383441352063751454748156630503039567980834102422765770070763526802633595259926679669048688126580625276015051344664271810409891244778048482274420375341999817359023403685474260069432042261589131863771941905471083476862023924380588659118602008316220532590182556614223508713805291266456449424473423438724995785834190922816556341464442707633326274936573164585483002507986912831367164975442401603489851925936745330006465150392683743269267476708664935839481154110273233040467332269660589180484437803122311666210368601797005591765392847363731445839675513868707787233506509841965588245794811609980994079522489228515778097994574149333371096155129620694502843910714201403871271760001224601419587844399105045276947315885038921563045142404230927740724764035780450904670574238304231677911470270088687540926214333189979841392393264750424187194528488540179131686336635383522141130560620131877007734576391611062221246448014772188465714832007264387794506719683572463304009289231256604546787875059488168057230268729072926504923129937745337763667815192844807992801740462252096226916101302587896126029215799295043176054009768665642651504684871461772771035832636798684832567246865953743621794728188477516138030876537356981024349911207579572700146034087364584193772087582108418200292449515761776916375154775852947555624732384290263819952096537613359012626571870770505096528415815060406630699398566862926407026132702769684196520734864337273575611078531424308192216662075918069118455681352971957995872862311295744111593489421327751887860413405104854414085216515837084144779274201292823208580742675516073453839313109392849655567033734527047897717804338926471320467676713869752098239478106984978736101381744286585307169996093088068343122036671780300009608519665947411734139588162385106528231121553121671568664358880106183619449605938613741375487797858077234292236386321689332260893122618983910416153227720770728431288485660019479514956373167870863585362427542828266890322536596056576180247633803718829590458357123960352724082370418743586241875305742009311348410704816686954088320494889097846285779362578084792240315638807743103045226554065911910632200591542426565302458967165657081839795605488436058024650459076312040052105554004771382741273182751552979582184297614170280999705158468425086563601998117236375688604800128083182738298197609964779481062024767985455951560558360069155995319382491224270514912505265667932006963654954432783802761614739027403060120524271340333912977915788523565520076340282396296592992783818053737015210300085660477291042527431556059098746022302584489723875240163183812010105381515975211869457150531134995590872340838446281826611901715304069866457021084009643081340532311696805444909635683250712295114033266948213480337062195184394262395529662033557130314269073109933239475576665996599235122311506890700447307962153019289742979616870068605580571636277132457046984606912385714446757038477232705724525763653903152962268636469944781846255436084060362968711691233851502751252069463991224934824849493293448707528649914044055612061109357746889956055827141628720652727101538535700506505254359472823257841918570546746965272176946931089051827775210829548224099129902798582784990697694657417213034313095320905586375043811600136793554491612662369262158104478731674986588343339649881998209096303136881869165111581662442115902142522088148724909223856064231099213507218136414932561451118373549998164746205612647260572550690546436359093160386353633684974534808878617473458564137716315427335508981358312693423601114945065542239614071077665447607625120364661244729439521592961841318493855782356264626426406157974067413912083084346303805165706030352791621544205497666579552256698315805107308420319866910417311548958273564623317799733527998550961554476435632842671189689107921659254014576286462077346618313667900440971877783561550431995391572879301782791408083400507794075581990453640194389043134728781944729572540317494427595451648207904941225502510600371760675043361142104806805928137538178693385176600581750483691081635627548139523007487665266540437814938505306518659671017117098318057889627993026365105607879811666791499131091233031655937805915481519254206810347911087391752252333450154300224435995725574273999745675624691271018408615350988913398431047222027810820985520636170029438277650699667739228381327956971263482354397116830878367664065781532637010983421407743784168190012646299860233045184598755085977544584053231901736302777492202743957141655908055306532445001086766633868929480070570322951269581532093345043649047123269276976024532410267388686087845641665314906818183460777315724053923966926526919539680185796938778612593428346270141609373547471582389982748201688220898447877610272132036553094397163653269005609777664776420500496020499013874221648871196885903315415178524202466521070628583283234765971219686982022443956898968772606198995884289272574479266945335341771269662488801201575357812779624329899801621272142053149719843044952542403000975869528858039017643783694962619625980690729437523770721416009117288100322246310945675655673242782039768279430310888363327209433473931278304755183289862856032507709216818825814873540112612334558899292971464392534998653439184785828970297009648471171433472181545387218898926331365178699139840245119420030557529057041459899139804936084192124239647390957929879606951757928950212724421951593454507174695689505592419284937898671497683202171993533585012910715316358532417870372777697158957539914528864939997533959477164760511179215279587778031221707385290887834812163968134529323286542450238178033441670776411786638301703061826067535555334705997807298982407221706669395973596735831444446719984623247825050912822424494879725961264980407796080014887478673305781256115109122243435208339213972393722784751417999940656868542376512289550819696891890119254537534987160780021882613670658662416669524022499540311745438400951828527160055168052965966735519344309995070774465604397848149157407249347833106829123468716744828358554551419121144486267048488622050296612110615497828445015542049436423305859691165707223725437249872006873157274693174768078860495227382623866684048778057563971903087373682187374108897545280225048185901699519775734218542333244933309580990991490031848790578978742784800191857958186953654430384565476042951763886854663856828990289283221088381849985998600026579864069075166846395511766601992673581267772493948611213595726920963145101435218519748958754780392394380544976756268885424795601468892832404631214486718174901484142948466592926964721618274167227444269150426038416222904925899272787157365100591462471093026376602050885819478623591151699442006161279771082885285353117359068922522693470804241259256618135819397975602645146353911129806201417556171345262597968082061622514079735842589538900299569427219432034697434262639667396473865446429541583382349685052365427786579281874788028209714074615736381943323147439283470465450302916360442087283761629071631516104006192653488894308543477017386592399044040436994247378209639324079183099884912448597131182957572892017672001781581475136706939765036439653411569436118701558598024855001861025679592864975721933204817977936423060944567206738012235099509777568550170343669063020730414203117976516248307935606497336107140811472079490022318483630777201577998260369384979504284446564233247546662334531299719100011984559929241216502454209321037138443720090519768182807818222120771862265468128224114718761867957296981150656021205464605975469577707267673718236313623262159434030799245592121757911559907884226463849442023589919793889588093369156964114332119664937286919827976040916153909829000122704152017361470831298817257775515452077292674432473333863130015574865423522433134815596029197906387580211777989880862483125181854289309766513352821723161110329494763577174588866666020097059054934145573798852745367324452714044109984783781584447276361199394365274297180043211770463270842319055713378756980750222127497431611465153402562753041520207105961866657930973271602813028748754709022337343250702647435589505892538786283627539856470390138766156616439937304780821816554905133849346348500558596610453443331665127640183862948816456129533562502245607840644687513572366159922841437755329299597725798584966084300744314675808624991170709149550382438574613821666307286782221079373805763144985672933798354641277071938472568350681680362279997133627951846320502827791927666860078064834752934513547714652334759858503192272669880412952240254436327770543627420518695333656393705180743347038668889432262227683128618849871041114757171955541110760721363043908890447058251290946903248734547073582641460585026217352359822076863766969607778796470658266417789246606856404903806686374311749103821033608799570112265126000430625882723949478511787115967092684006772454179455878321641312339773758159651835213121635241218960297976709508107607981563571164937380475613188786201403033838700620146750471418649031445310329579144795583174948458230441033042027972641540807894786424077125036727492419231159992210664376698389260117384145780043045126299612656471903389471808659740228812235199221928317109013688885274868058895232668953539487175494690259471903160951228081380848314457922553300782434066647004382150906696139789164089415388731243137142388488517492156365564195719116320241417675539281823054788093063687119753531094602175017682953872274593257404371047189385035541209014518899128451242886854424348029853397431193336971229913237860115633906369126031046214632926920233557458715334922877185671882322615955503883971743661936192556383049176661374522488123493264515175858532678623479179625868901173086699504299056402219504721402189218060545563910056002932935179257365827102100446561941613254929937430177459753929059839727772645892251693177564715114197276998331542511688751761989946763108372842734966300284831472465160562984987246511856446432426989318375740830649182316536227845799676056151600361512221669563792830388726323632180670671655632746257753480622376220105300548125315803851788040756835089718526533250780907726990111330305599144798671115680386128894294044225262913220969001101051275843136557400554895148978640247231214451617513512719934223745634480150619967449512588421726860121448473110518066351571107141561094636429783022867546101845428744052147814903166149251750329870848624682225287061243724234177024225950273651542377283364564717670705503633481394224673398730346193078798841050677008827828044855196765158194231226868618398380808802604840254492661216553177011431885760769389382180468620835258196847895471454444008436886380000329139130269726937060941347444988103989154750620545921160845569297079564450912457665715782421047234569638365411206448245323500409363739318654305855346007644142130966612544975057807580201254430532624613911444037159568672422298264236302983808482584051611308501056939192018207290589525174437825850539758519608025616476718860099356568691943857922551624420705552423819132083288918978862235020746265990514264457389691615147496540968116650217183216892030263466944489999869626895972922736012081485427262259786159454803857108267782448360488218595318977038071559002674425097402505118350049291141399972560002048183212722946174565054114813683926505560788748901250298508137226197340444870606864731487501708398268330013718702199750295807998228330815948893553156320240974226982465476338968559871129956958808504274045610164843162056904178911521574370012979371149091302062179487814291598712697696362551213466182569232675873162722367968392010169706619815149890157021997384046999096636251850683016784084586866118521337664183852870763721282780704379929320345951069913597027482845034419460495065459029628473893837106735129832494422580315725122261501567408845036364840803228098114283415365399376387493217801257828957576857633617260691626417108850416220696439506416786224821669368183172217895881093933410494150350359674134951005686871298349250340991719300616198277551388221774135591684666535780564216754128616894917438622082969478568033794707513274775451419134551953423725438015926845462810561689509237522645067340486732202620146944540598777844506692548237651985424152882991131873169336192753900865988220090802406305461143936983462302186873333393662572378309653206510446127445789279464032479617692739824379929778752849914290551977787717829647458980740642131250834114114949637457302274480467661444940845395239521645176104396613213414108096361506420415045858926507151864640631619564788429166708106587191140315250716233909241515460492125425288041012049091883281965248919144433277073152527308706537107982778316909221320478010614493961345579630069843878280405135356298955589418365290588662230312982777085571064624698207689465027544363615428060885533577895905249294705491578507245116828848891321619805243050996543541970969522193366409475801333100735534402722625549683822530370409232584017538374985981510354124669909681236878542955776364651002714206010321339532792047749318437674286275384308095944914155749911178100978325043934748819828735725722461591426793686819652384907655851098633673153075600015002022190001417675954198826115038671319154291389486497381022600095665660584645060958619487668380250658456633404614469122252875084610797714816136171176156796973375118940252960412783532401499825131842975543495752206441770818761167548196815667745516048241225925523616151013967425397628478492296181011935911071967826075380095769245171329726572236775336155223409749171967068881525770258849539856695188542288459470512133904594890190228503618258095754843725070428335058217035545286546307779482054050234734485850486378022110083914992952238212932448808569396749205138358474688564555054637202638887111006266583558745058881603378328848580173000121484198019456964176420186387530219023062929451482450227746607111577279927648115097808271369941938675814907614185688625964342879446241644930012976453919865015551187921672087391785378754375014680335839859834882272665399556041748272566815256713399256944318140681779101141538306331445649069708003562993904309841029824438441177513325928157973875227409390129159262140439037437103398810579087898376934422211673481099695261731137568747709315258186832143363604968717660992075115053459732273370197138318538667889205618869794169071565443191241211820347048936161971721144396044869578586309434809254143953333280196207952655110220697258135868817282702447833144438213753222587868336862036813242943267930842897514846533236498175225766233647365361712027030525309734746437784530058265281069081208082748433867768125758130554554698749538724342602778536384053000009106459360777460751120075241086079858650580842472138347968173130255687149869817303033227068509344994962774816022027605034758597100762715263836741677204612959692066964232114143181944487173437957504920976486437284541237096336100849343310456393963561727642859687479914188957211876142807450383699039205652153804339459667792265003352539318946783256208010885262937827919756859411509098895282726571710917077417025533851239420051800483499175224744997210197031145636072442901901605145619440979933556837784956777232761294344366826787285536820704989919346109631370441085733863111362500793593689383873467039325778081620538624480270651860620748671295175800771854296467548978679097762586375943941780945518026385786179165024325574806440167273699354543930347851099035929328317072990792783566612739041516372929049183770533076293387914202710103742217935140352616310143577745169700431386807898357348210209726899312710563241494921629444105439234689588671561163156378675559065553034929825074672662117772560317562590351834986984675089022524672552235121367123543226659396058588991226152718609361678678265839843968973722143418586280367160769066438914370626471635067263553173906697371023188880025013346777321822667666182852979078842011857501157834904435115586314639133187874929624683704879297037230295288133483642079152897966350154562698805113591616596666992894447590669621549540548391440890826810858927326774749330544649083921254713653216111221154205685136297764456169823798984576717194826677596605894229150780336432438651213694118834509657621411340808928995197412133410816745512844855350782250693697359778848655403968193885055424402728971403685729364727892803734058186948506457817971869252590402588511117348689865783647523206126239045137954256701187097442729686138883474045360712940182934540090259441865440831396159967614990412861156872264531523446078550756232669863157186154342853221513709600712843435315617938941747563787574301908988536140281495159873750998128721619799721856163128983267232683431413430792643477003328430140904772045168747808985611505020405245096983021538246372427921844793028599629409564196522984774957171989403816490426521206099499929914046969604198621794561651553912055384212871669300923907343870134167127329962114615338609041386158241025018688565234419039781013934916116713829894616678627469710563949733054248335258370466162176881209813573224109386792692010747368049093023208912736247072441331523201003508312238798247459314395450162690586951469996365298233946934248633249454625982760832402918640824173439400465261349817112664598522347773109139502575285372335804623470631564895420975429761867590422292761253295504254340829323036544560660025019694148970095196772082950789755385527561729775761309957308732673772453537891755576144223829393170196828217955771837638568137784095790745584601518265257409731956882914985698595302997023055875999447639294095653696711549871983673874444613250680663940293443548971452624581503591682895153685485185636269065545649747816944794879625129797491017461116660662881876281209203852800335722190541302869483873392270782191728809603071881111116648757137531746837497156194445405731301977884351809565193084494055983851348883943298822050337684082270247223531526760066131176183793044892173725734256464577739403850920860030165001112614848417602996223735196744106859894974524626204485982113443034436034536247499300675778919914845306522950063233567279941560726881315901053601009597988418179799782002733971828734601832139717200630567089208921886483097462449052144513554396983075883896431138499769811649940861664454406233746311376942127287138561080481031778609114324618862854397920924406368603220234767822595900025680244043513008714836308409538900865937721970311791363024109495018977151613619723550763237225610264645881860183663940911177032889453985629189666455917191006769692525124701961245249718715389000309103778864600223940479721581170196720760712966436953597331006450145839492771964337770833178986323478818058815246567552232055370673374957422562053700229959564527305157608309733288880734091363909163444333355906247513580586438723654995666430638126500226904672156776016235084978867268172166179536071785266517170218788375068518105914306126414300478909399586863170100550369108887902459484472485959168771996140735928485430213727031925160522760788574395588932723207814000875543720856951975776670457885799126610508151882431572515052921968925175751083636240999683700564069267792528623697697315243850404487962458486620636673050616367845808593215363847974463735836170414046682271876258622754302930552864518272419461354608773766914172405758724631543852432267955174908238986535216262116155188884640828396479229340925266483213143272903784125994895777226316304335183428847540535567692854024672760431158234537423336668724974723216094331553291312017511844177989869736678622001823058668423278572275195291135380664756552398810470122626446370014016192936991742739874318501944536073849622414079191894382257267436520977581854220845518681497162392086087682720807608474581315883927782339065037024600040949152270281293083717409698034291042345566439155642156909491881471602130583163952104910072449680852451801444578666045208258772619079667202928184807418103892154470318040912689734316073868153685191145331637694063184653903465117771237981565046908620800653921339202988480754059667947528881495758288939762319579579320782491469874470124530197538785876639492842395360275012864624604589061891946044932511810871669381095655682587546442023314796955855710061750556652085952930651643606363259102388807355446251248507984095666248731925165213819845161798685779469008385095829948641688738414538925803534957012710638566288306852166135113925854380260119081030323483890458787694525570810099021455174479782593644026032109355513111298400765761327723359017432678779781017985949190241326929969992623974424053470561185239700657811706066530523219441955065242613548420573407567618388953801997129176138034122620228994769130093350325153729812134388533896359522562041292343641281520283549841522897207888914834810065539358049254692394036439558982212800601443162324987179698803682452747939401335522802716362161572838191774078035557723251047255088107483766951825478327423880685116528762338685729546614076089583880895181014937836389970402355799808980262483138166268527060137070379833633259668082618201919329335609566459495989214097542793993983059947636078991570915994604422190263886603965603533957046714001312431914066535250949279325816779177887456580083212019305740841393639140250222442044723977444086187661919271436737926187855387816676814011631453331064194557736151330649089387983809845566865125527897290009426112892469022694432214821451549104715044285263644321786458327324177649135957528763159103846285199312839789833166011632672541854208680296708524636783203672473357210523203652606219828066719508676231630953273454566335002555154319911335675107750387370701230428224772469456011376109840538692452548961769703079890303076856038130514814580837128263956618168546624532443965022438214289052465321450043930306894901161528479623158265971919720662450863236645672528227169416948529461852216469963103900706121331949279960648266529576277393514059209425609726290632545077313230622142087941994180538663512922856450766014584960844567616255375737013521368842904114728712148182483465986672851320443779070733387406066172863754984388528497506120186786059049935097950994761396077372028698230819242611340829942586480917657951922656008788362191890267312603082269096169540048819757864426071550982735472519097961350197241246188905905292423058044576681699086604211668935573468195638621100432455312143344212832035042911096164558900008126793778856371575622969641012880550058719823849897715266393053389464937061669318324643326858004265761534233449837384418781954017216985054413493817885676952946373814365916566786526296099597422539078458404695017053988813462068366108658065374793923214005927314216255134326764995815543653310362359885655999213348517855700129599524974300055349368487106263356960252879192970421217984291312049741730005336270021433996027387045308235166363423537017772699549540215597012998055600872121751376909620020438873639945608743477121232990917288601975857535872416791574911671321771958413539518204580190414948515991912874952917224516250099597637251742613595430176854341192938515360106260738093639110447851640240843128634457113024792448970814046541345278625830848486649752592653141450174777585012471470650718992923203841474141161719401898577430252770957406570477664615833828713167419359994824009459317779555386806578327623237913933426071340589667896404739751082879677950565532912257804916027120020375608346068969696910043133909409748353774441470108545661630866528134656226220901077941580413721704550059915696313598351326919584586362775734597519927943490056773759156555094104804913725662734975987486686744247733125192723754613823517878223258180313078234233637834873605783380277696949384363620359538606138339880093209224157196858805260405415559310750118293882741821747533742864360477727387718483174632905125329921131166136543687755178462571667374136021647153122862018436467880615145274268149039964348711676928428840458696925833829474094240172900117974339561886154190457488968801345772094445489423242564430057424868275823499745568127038030895245360014789871185564847648003809009458150122490429310612571181804268214711787335877106939795879378904855371535548367793015318634679203260518211518572375573056019979961840911914001077435725253353272088818446896580668612255020669780894913592439528450003328149941157808076909768190844527872597917515967486947394060981674580447483959674885881110032665382357108339610639536990410593602122281044612298662613297849525547541351295958890715483552542328954106177882748181440094314144030908581552580431614955078992824223331333940593984975274288356891667599203548403665534312761374726597133303443649537164649871198836359253874340588069057198903812780061102199780186703903219958492995828857424570324275794884617594445251067778280669720968146282267172218795513006688500053753478633087046890951505588583299512698270666293278214758585825696407560015325305973117180564400068643595716239895072927458304091871316510624938646498331405637022053169019367351785056252178993842017870263670011577553610742407039149107212557451554093399141992756481292574919508254118046500973854647152252168333888133835382877631772692532147626010423029343295209845828131025154788016340630621668128114591261295448127918808524446681061785177203478230906308920978093986409908584009578995528485603851117614370886315546662732499011363754002100410424296550623198749131532459813716045631070723535707077946022361539389719899510597619902669659961504397726489621673363630711410668142229643422409736275287668230962204578491157285056887668317052519837740990520483197789481813292732727609860430375420683263829590355171257560282924078449339819879063263792666008269949427105476550456836782688827410373530620558399740187060122421975977131996294418260511205260430492440868921827818648362664997811669275480651309662123470410616994990669489384850239139241512946146691380439044503334804182722846968544288124820395371758372202706737067826385672828780986225953834848975554389494873682936048425573562178924707951870984976206252113116111595269886543546334302728146074562140502388526231798017105023968069290653876732214388676610742318818528625182744915161171825020188089312289063862702305386468038831081684046689485392267701230713471930011000272191865051481063224023649217753993910028737438230956696900801343691611507123177134724367103109365719015369864735049177275319422944476590662452554514032422902012650169692360769441982672505421737459704858239691329094745307573618802647434560018327066550463808493491833141422592370742227781888593900317513449019312792776863213003107897906630701172029627108919120864449567782319635565373997504281511217597573126497538083594798440831319210159699458114048417430181418208074921323007881844552475969637746591476457437935291456150293146615314349931630753890752110280359382933466119902792495862417963030785338681606700366607117497306614669339970461441846268197335178622351615170867804886940999582759665875624473764184555273319660347468122943995350724585877992853314774823845870337441653499408299911837316194891221393854294293267900573527655121032089437581650100756612426548525461083418448638345265768356131523019410932777118404981040245747889128571659177531335743022942797815243466862299531735540145635180696791196663647931680808583334992733875718365327373121941227167986571463392129576827522100011728133087223641443690858466318133461445044908839958417744558716155240888129421394093416085414873745134464488855624269886691841332818956017285153954176367932419208224973254417493815625559428029715015879050795464522738936641803696315771459888973056286367353812086475513595503905752513532235952771923907187851294551072188433866436911294586869914664240335372105685219669850170340874285705124797625273772892163574270489044430250812594627051932511011386929039337323423355488031399602540832097137143253297084012102482232104720090716668414419810741486755907119892752652065191207825314199548258743938511071202278474673505444466174307013575584059316945399277551651725552764255118015143741317131673505751263046404531274986840245338934654305844899629398841167950450724577705549584726023225447172788052367853030770959326977893087007523795810925875635226646611838824447585563797425875325925040910464084309724786859627024936832897024988905268707280792340983674965801872503755399627390013440373909631067331430619046858459225963739148737857160588728667897372412626956629614610171979027044826196550795300807621049130181656475443240057502922258592044726478085730023611478705101482406196976223787709488506234942589136519581433675730559411574014122910287607136655122288079729872468246487242448779968041406922718819748291969231828332220937587212789382864987188596672096385759850299529342580232963945881979015448936248892304274912030738048404192793731263128550706069022574243314938404726630335602332967930476823285247743712509467248546668296102135544748209812460351730912365605723734821515654226558714289615285594882014574105123828668721027174733385644875748067351871186975601487987986489715839227891430245564686668161784157468778292350816867404284021085345383991618908183629680624987674039182458540433543449022381497720006525357159524628987910131833262643337251456931284979872489841941678310221138227745790283700138268459270593248696467185538246222088107184371271319724560217302521994071266909711832549146574144787068820172271789753372982500322694820757796117082975353206188112441192428702364910975861188841057662368972978516090799303914067840086338253171753476954007136248660665861743511540765659295245844102812164987178098293222687111349382413528886497483639869364150630299641380646023987817300465658648043676924649376771440222485278120652070467931068667679791488770276274034854573586392055023315143403464805965141289931271127974278462860004458524885036687748452338796711389258118362128373628407742140629942962181557054639264762677584827310162411633810685622870695752130461349421002103661169177671463995496750489360493854822522785953614423725625498837773438740087739414170403242657462454101082927378324866164427177651679997942179620973200976020979792696913492667843951331936164505445812136180865591188647413305193299510937460902747411745328861120201484046505983906864588830881548584806963642664491026221146199615761835384424229804381800012290867171117612602928361399294189078994671378754625558880378347771792454537931815888784560270213223436312309927106003878493897685446160173550237861258839695048515155164270898962624421774661000527098868946067136910705589205900471909244106277437317491504681129147780406232390311482287863787011524939450955474410483292659327938465612404051277449165946828765869804786744804412197718186264137906988610129558746527019750658756173252875238310300029987096104010476726092677158355253116925856470658866136156055304368350797672702967334164031193880022936749546942706882461503561512548505249674485639985686317075171205673576612017623816949946691713601869873200583731706077876057167799795564382672667576298739881744982939129974269748114696911545450820503876177824361063626761618433950648859010858942189251466515908022419429875424579134251054329639689650945620364125193292807008222408718202005095726906225442203519097406146993151943920214488475426393573432167356045624394247649172300995918682573383404510774103932704115759319072525099514138725397061724920505288291569153076006346758639662494721302786180810334782222342726458803813688300161543618198135565249624228942358844132769012715308995907721265425622056584720915029161537916267656635539368757481997801770129675603094896536971877442797974329519900566096602973650096051358198185191795666976998393596593004765800237749662205131382292378919628432174494929663785440377111377548585388391351696593958851361180117617993251227848977167508716248149289273876334635871256896617568344091344761122249998323115468809476921761668156770067104737970024460897973138463993444683145224623919360613248710834240381344879681628600530377462084021802203003416243123730494436129661537870003982206308090289267118928853583266725077122819786187743805583250913279852282139484530433786930805399189194997930066310152112034780375343773306169105282938875249887183783308824377796723225778167059109841125941051061093936837881450587759296048336893407417934305104911295393829297923022713703616521790666534319787042687850692404287753339233882030254451806388240491288481625275996905535862071464994133485584492167834848792865107574510685017277638400558372481059670758025865377972554823271762637063011474440164742109212631081446852915138472114546344723003775543953843438657052604690819251559320976964554916811020756012744511755777603693556712453909303636564756674329212986916039916088074254302200432587054620439315135093903593472662220892392991699273893045151485457861620578859292240111778381049936841757064199912743935904720006796802639107465618990065516929571424308261678167364774354377157343840270497742185199670661102958942429971782018942608131724209185254592707663999557232100074643402961794725332384369783184283755483715165800273009579242955351816577464012702162867514406104014100569314472159132359053378581479832674822847465606110243390042572487087705985370178988442798533514060532756738592285657125464511078372149690996592258796932957426948678644981370466522224509138988159177636947706845163875377054880227396673865793073503369166603874132945832104033226468065061835516906032509161428436233661666957267723488690498414722236673508759043581189218591789895204565490857440635970563601273831514127476616714869082027674180791438360557230843656320252112045416819849486234475430423374430519317348230239093140686466955712868040096904996154633778683194163548978772971912710642669229424438353605982316480014285734098925841482829071700820349326551526513432941450170156797316799879057709331597336853695280000967188942448511372359438116297067418401419419353764449289166387208278272658068783138901512627442933953555795607918782132881250591666493735940364263144103422888088533250314724354276675689209118659783154182200660850525735786206159607938685434408076124321104755124114430559764821269660038499371506836863937897576744658872954875119861019381161112243145541679577022155776064115941329865776761032561359889685022480869148703437607821353926708623023941883764920879262601741119184956335463355404933882892143297595770479124588384144340127594512076184732306650365577706304483599830601053299140853823570745468401369355997274014219531319169367294102429327683392188115347957341333614919722786047326257934407078785271690834878363839393548283734981321130606980908848946805817883613632311805496351610516228355100386939794353083402842876782235497226881257505277409600723974310217530012936879180701488305378356034380114643812115537571976437392125901813974568158784775564760928369878442171821957904773521647886108890162134986763936633044913522368270993367058849263979542257872074818688396259967472588748617540893035748427093234367987216861077695713141220336971408651184981037610400313717337105019516714660953632294755306955990686649140992550187412903962390552915328445573712878406371314944009060159939873156269907210515528714726823787784150266063002747988008635626588310375728047927265639895003206063005800187617539210637404079606174515222943275865465891638185201057979853465294159081764909093797487676452905578076517415670027232452042905002964752996288915550694341583695582829872077811870784605529797192849262651880400209550514904661262304914265834925039370027697154038130673348134696714510568926467711876484320922980080525933410757854715864166563312194778305726953971902332097487705052077340232171148460938756612157934287201917682851509100694181422503989656883874436066113816730412675047537499625666234824581015085259402457459984940934528169542200321171354308018805012818061100565716290440325483678933344577200681695782798117712923092192933486609099940458637697780269306505907824692012173856594408860604842432196918204239913478837622904353876229750592187391970604399380199690668772397358873101441571558131691317348979808810683600576709773474003837505606652058904398062368822688672650560341105703883821658529532628433892158503271888431697413200361755459258432339903315288711104632412014994381826504990993627274726453344044339482306325086649834116865401132170238231546513764765839629155046870980761326677282958899037278919162797873610416846552676363934916006661559947542708194197527996057245272192842303928034169360727202875238351832704808326177314183951764734131312665031219484102384614824244906986230333574712251815259773076708914226835718841406296896993385604111954166167108597064612293076722901653818205454066451929406438172860623815769405555291972458766381112767312148390398650075284436417804734772078355292710319965214560224472955197758093971925840521893880168943233409325811239495008914842538737350819611842417737240707039672451667060733651634996188997769743424549152472101970263889096525588986827092872715516532534845141570367464425005727128358119043244074996889083229621914865121486781787735775523757825860503722726624418266449645986057840206584231173258238266754198954848191131656143803037475039796244327194937196933425705766334699239572986221870070233028832594825748196581995623053301580733288086515026513877220143074560759310379949567058698015167054608976909992474266296745331714651914902578307899661696483271086372661161734858918255779935798525759749950970162919123638731167176526708670660364776112071680255719530605432834117411881945487787094310686685672779312979004049930710424203747961875980010463977092337009766460389996559978320291606944119331627561229850206344523510367436951179300027368922887171840518882505065496976978461782116980113168558952874341610062182306745886072448248008046837052014946782918400471435733887191374634099980781184864989867020651318100394019695632888705790911392102087709481749260694319902393705819666021153176099703825513876900034103575729660316558572969676379026415964143676397933785055097268963407171921004913707373851992010105146362690498732247409163406805634809998804149732738820553176692274991664445808619798763271035364834588925398928278004269906163733899457044341521390096205597858480277622671247870820367445145071735817075164983222542467294077542361078042028852093581955212893717814292201921258953168540928452889993589544739153749435396765632662905764859387902365237100339267401264238021016455345602925545453978250619257144178289827998368394560481472532195023008222477882170686730395043175372694784246728545843070602761268062444369823840776819588761135106562814939774673941146866469249312285503109436828714357926464921344419043080306818529746106405059745577639497585864747613436404659871310130080256814824662225042474047995011880382814194008813557603672834375783218129003841028342770274525947384353320274845728978370559270285551434104989685451383428037110057207210956358759599267422495903525088831730721881264116840631674814442517133593855720017560745979552430000658342035563893222071610391684393186806413534792247423480432528146021599514717631439491346708820922645759117946186026858642160537529279602891746646621131570832895598586502682658060365372326247924504602504468217733145438438799790636506721072740557892209952092780292025670111308440204761859175430838960637012888519225773903232821018788017571731783046017299908628578834807787738737336171674554585081180500021792109177513629980168508274551693368442704359718953714926501364976658139879865022405989166442595264778231691767506536936634673202940916514818388100244943697506560316797583642850013609592039486363424346460863979694186322062048012942301048607964418870949073403631942312326048793725655002224547402478007446257281547937853146155637113972342061354067686766274505248526142337174707002725238791859456119532667792769509790192282068206987627171123897996723762495700821139266401588214368632457534534207610628862449394370707373539696082680832084025790213896240562786861087727162584712282142078450806045214495249731933473845383179475751330415364885517916899153210880275871750908087521603693027198505360081945105932207914671152979268487811349863472463646743843024033183832217831316096823509472833235067750058527634051181167531982063237633743280688391766060560584653287996496739935658425221903218772129388492018650005870930719704350081416536605346901833307458541990926753180144966502626200386794703475087765107263906163947538761756806803566931406855624237532715024233989349603213807783628934322551696705652012174017647015567684969459814480690673301237358009848313544591220434831134584011857772362069118175431765650984736772896943866864332831198979725794622652322305319261892778929306096891484697698383823280431635952197172831123319134987934719593655054975483627549234724761628885227739404316810667902081093971332670026194395753221222068436828757690995482308488550940960715415896683359384255052663441648663286251055371749913793980580065915296130623320278228382840571060959250526353011953440195019028344392995908657329146528357500758009376270186487406528029795566702979602873673395770900788993981528175283533693110504456933108482830662231880104833410681041789697118890136048717395017928404031845497412686071989840070759500773850177776219561123664766205389757852832038041435387173170944424728924274161225390611973406342703863429946037239557634424717049555389142296734672845002478160629574885259997746362630010166198623732165804645681501146741522799299802995021433309718461806302501496895999912189942965664623679418494497068633005279990592991106766203524846919204927620198683253354352259429020736066754770319542836135890943972691657921172712253779918516060328747740861155521774702821797753575639709170710426553872027070978329606479068062741417879811685321429881896778425767551020023132065564104872595498876571147349646367870474108013588405703962563001365597043551815274777169249501246862742840722276511452857702499652690133256446537097477919004486420810440890825230577995451498805677267815574141997262599169718715750553976872714718556603531543773947665530072233130666972445538249880381700847646920072400265982590218001956059919800899391739322362964845881595273320818445023252911001390070598308684732071363864593652319744197536534827521911557358107597574829277886922919270199726783351538172378897740178764831467259174716957980289950203308765482099858532459802929263900938230050332112775587773375247649629712678783019356872463587968869123368544208107549677219735754952359710881196976857341976889816918789566728338606226879641366003578820235423589323001436284353991168545365921094598327855918933479396742686589985845994368631746748965325296970089509889069474148880902936132780576454863274555554961576150856316978450856060603227606077723011744520737176246217163563990961075587612883890719887818763531590137778317007051566201274164579913253502190627044823438685307265410363377356976943383954573107701366430490512774649410148457550692506150121832150310981642383013560054074719088565510322609909443567559249767655424060544269591853102083228507408004207258615524244171906898739577034419932774802008113480552849571476190376106554305495166583862364322102184135928629401833427742875730501485076541763990325413122203718857377412905108380565562330875606822641351742489418099980648476919391291110232387520420826709974082383026591884549717649960384758996265590955018489267729891276421368192357727843647662912420022564298480847347161007572655784181502871344534524792655000126166028700342895361251075264047329192852538394673693541834213399053665766647595281470948211913521352731376100705203703560393759305539796921602156735934508872996472526587972459835648701537184872461053954887757675214824226238500840441673821773096731192950583385783043268220295802203724551435474827109955065550224285604818726804633794927888937873164596190332331555658774680232347639828152483751532517892342299780714362446867732689914922441155353565805934786873947809573829279047807538432007671114401078302620165554998967232574980059794334474821048954153845784691600608007094665481269098139355643704630660726113668883499948168531464088373301871849227066921531877373741117313055802560706156833456289407453623715395190516827034524822167179785382134987118425381688780545026839252794788315259272574158516818265881713590313186272263677696214768258861569385073255868277081261790367834077440589357796810643764393346348979718974709731026505325196852227251776677679093317187169155382385471886215675941442845522927026018024724378905720762952453886679685258543844782669212299003374100915936293844159126455952162487957474923571100717417100497095145360288695181030524282588508646896759360948666780626301990913071338342574959873257222678536267110367569630853929354088759920734790889405514115812559147400157988341048244686593479333400029023005309668934706009043376590886193725481272030650567881824606348444223199609447804931787914720523607387052257855448516350290722444288118728511978417307907525595874458717593615548928761084506001166754958879066682986115806445799986936674192745125115235600664403661576566825644882501720281288964830525856721037406054570471648985607907552157779732587519576954320087135449102386562990629072141227046808343911116694097248148814857719208069832224275611657104097114077798490129103421793809493868161109882226670924807950236687071683514723365153310159329471813590189358081022034431805912350524062288787159175267906768092171444355204812370121531811116519812725173202146851896689939739478130638309302197065892336000873257405274559960205620577332677308172484060362072089350678362109887087916868967790583048539534336690463806952073819294501473411894214953306405952999516374109854961064150833895783416122038301861944360429664909211732895471421941139971248277131918859176373220112458940895485703972099819650781983709349883126351474775103938201374695753890403241864206468070764872940761255540763763739761315121906277327048319029207039162035645125098487881605071720282355331622576863280034039252137580204136996040479448919737992215938592313330300573256044000905575451163231851658686071632256617140453532380729829268518162567965889737569853996042618992403363216379112080256248452048617175618612979304492739628366343753843121904091814432167241105353450725366381037305821140004093259978626481780803973547977834589940765084145434024976357817099662091778337012749684024869399256962005856620530880522118135277246784963664152932192431657175353304676928138474014692153218897342734550360692429603336453258274830063613691267309515195231217603403976890951162440870911743457043444518917906486167642603990736365088050235403352555876936318973285842696703669060951298340467861414011162179815009431812904888487353310941047095395419007081766998750594271812905285343131181733198111919535213047614292518624930253415170545150549506432228639465800717734147366326375458952006351541881280417162662646842713032292939554190097063392824170432183665489259170071019306357784640631176727413547228167627062107673393038955566102945548484079494497983531346610244115630794478040646435522812031345542100741097830870262256691014706220449627661740522472695280951434110171630832195998327649625789829421306111413726201942145170923815958247999457729900216369652650837264072641154619516422414533563033062917798714581080630061798686049270798414099828134858272932991776199297108828428969619288081570373504835665206588709518734794000074252131441834486845623547839536437510813211196551065338095502174316302816047380527121760813376580850806678900922653538638557741407075769185187662615600823294907065702292597863196238788320537020856094471315199202806722128126926914368474991609272178822299701274924146015313814857508189768358757718923364497984227997717852741290638235095788768339473501993634722018627462166572193195886124229445556375009587375399672254028693118862430954496965611748611845636531647054057783496811595837976505810644285027547484492162873870782426623671116065713481856812610507752734258369736819484028111799866939070128174957767667859478949202562511073029163950018386757893785735014043245129732321767080386220797607351328336705264713495580722467903801740085416753299536321177686725552343898124537693404538291809403304416532129751812496753321996892892406647434365536364902638559588431386416875993780054690268303061596711484566740977801857095339892081824436844715694920685741851666044256942309375738118736688614487538125122348414435782084384210625918606121663133640888768154649869702279561552242124774297051850862951834330671164849617165010140337507313754233729951353649934154439960153135924827874844947259023397386969601262208320985818744088136051713360425011318984067981097196346665658643443195421994358485184268143491322579864911311948556778187662521722632145324609499377525045497216345090843512378832881855829598938698908486045270485902109578100694777977673646414968121855448778260181741446396547673521335488568070444655071298816376374179900190656888057702453695093038657304300752642943541499845376417448794069706781881816659901402602045917159961389107950838044949839938369878917993713805418806911546539579820038664190370732227676616709825117931131130569317199633284973192752953819058200346929355920863715452299655547580325397558548251003247527987858064243706695735819457853993442521270566375996603290495914216641669801141539495202590540610548992238900405697393407425712641922431891613815100858960904521554077900024602725991243071079332301936646125575361924425816969915112102019338151480683972655234814289185609653083392373916722220063791464602280698482467986792341963396308264735319487548551894199461020266390398946589344201294628888037050728065734758634980954585215427949546002080611551684517272899782688271758952822455825032498691066847515905405235717642504701202335595823151056166108121324534478497988688179690721710545924405968930707854275842315524366634673440340115512270710764917619705724926900522965412557777326732037960970964902203068890334742453074263630876163278976814508934101061975484375300327486324357813197773511236661854159328696939021475260070203224316036559074813384409499880041398676539615712529738511588475580209466022812388040761728064424731171385524359108653908085514714676429556063523105881221745161322268556165616769004975793277470700932340037078321596631712994117240974711375036449114560467300731493620207917100413549935591947670803063066753915459989576861898162674518226098868538161809477349295408253888454157768198285720266871749185382084954649601157998599668336856894665351684667602400901281201042918744368932157605572619754261427996906690728045588598533722092825051914740135335887673985972648858225598876574009544859705347763831235352953223178913615138318776846293873112704639530741913372910981188929777740769716852566202455338342649905905399458855051488863680263501211946751026964402678961957674904347196897118971023037154193432240176308667252914511330122398593600809308680205445930015866978953688037465307119277033889770461377290780189648076681699961294703059823183447935187448752992458683175447211611728085531715406862062728495642719192678264453064137054385102579699876978897382749353692339359391024914629284288037962019084560483607284470991427765541228067259773967698562505203282397397799794063970484671959746289315936135360206718016441584974667582449270551858814737937889351419784119404944582720521059220494559636143133576473549963334092731308865075111226802822616675817170797658232904021503923426934536023476626682468843145707934561166121799866015253376683296935075568654371239208479754548333112472809039316388295687974226917004709626027786594236345621353712397890741845005107146559750970456936159539910246602383093690723527282576139685888493531717737189489970789222437774800574308994362912117793848859160868525495139472310877603053828776078703230354552257670155439475620074062723852366102309293069196942059542341762157876002367426116373901457740111771916216174525466096109028849087117711057802072046740486485419191993702525621119436931177282686451899494036458625557585104164412557233043970484109513893893534062851652957375663212310307006124995681982061170702484847412318765584339298998016179945641785612076852407527630077180944327553213307798028550101549562139350337532413380808289518922895727149154840578900860271625894324907427771802404232645613488515209278591303515321992390985289938327313368069244554657889936604341939968487993518948613899123393535409518522979784904470306670280660798258982789224961633789995348045140593977618456130930066669453439339214321470113737524857531337289030772616020336015140463019870420540359879337075181047250711551789876429861312764762411981304166176635586719904794415724632701984806144844826361504194726049254514272592824565685392078416608398063771730048532599216089161637950270633225294624289082370209052921073299607061392391468116462858861243277054578351754374488484211674756021175407357836116853170772709907127010767980877216726797018408334541173370723288718280981788773989210609815144343201047957816403171572293816675366755353308407153764470613805233637012827329645121018150388810502184300810497964529163815839533621003207352172097058066744037163811002240503087333017227888338531097789369873605248173221966104182825401681369839562103214238396288660009957212244592733770678528009625451040389947977279463947097533148898129769581818558397573253140586371777587960676318425190206366595981435854204344061759210605938804945430630783803132604894524665051445786413889205065890175189116759991038756069847769488661321190739038992826476662307586537887548577176115120874445606514088828863452005632643089159480612534788611924747416354562216312942960542835866997515875518943173836458146405792236269736715659140481119484610816041915666167828753523933973063301729714158982799645169886719059104846803063538177325077725854929646266271925294902474382913965496319942631400863268494082757763990293980538798137539523381478466463036606760535139840734709526788926665236174371669953419046191535954704995616245711819835518982418452405678074646254031142156141434378493458889203199506452887616776946273814530585936810252333619800516884002635137006439860765087715175740178964168088942271751336011149863680895480405169962803477902361860292622292604684574968838940368299826454450977620600166355215979339451505006169186754110984120603165751459391291153050449244531994952430165003036358602098752987333881442446043426536354015367360925055114664111846290400983837634229327823021086121136904828507721371474820295245829682743139039214296686401804802070373257200403213032730477072566955271792404332114097655488441172397869059351346226824993474070858727021987946382294291869250570663690459340123407966928857023505552890023039226098752131707937657776304434265377720522659586549064549054757747723678147963277660924527873956061206918023971211038367573889855625534855334260647477541391900302842423054133763325355757667061224583571622798192063748094600772435086968261485438894460234914071307440128039860663927887235962197828734153424104123399218227942090252582892575920253853175515630619430306735425898980393714328982215259700802410035395669865396989789181164978476498707873587360632998660025715553400503123294420917433112245313806727831565091442748624583913350312887088869144727582791467791531451624727406073912417863893155559378807235998400755313159115712898121978337619617418156736609766223576144330480279659040880593485076657165624689302852307124898309489142323826905843690283861935386990714426361551155209936931235076298282475458123201018466059794265266053743578026287164176317691974527343549512774433698315977594113564539230959640454810905145754536551593195194902263211785903650202642989897453055368114496005950348690500401851228723960290632578849684613404185758162260632242114060782924934812310640345085587551023094170969105695374509950913589506968996746325440802047273043909151984256696051059102463117213045313088191348899981343681734334891892162682630373849964696852034391840375067330989687258504568858648605624738291724801613042057091857828911018311741595542676430643227369830592242737299915705087679048431379960296485094792293842488405062578456477812752731547414614538043736919017296533542209762282250797134304464594840304118304763537812771203764038083458273607885708167323251892161975802983918343965697649541529987272819549807301277762650403058923720174549680896057990435798363557171333799805514573596981894831536061924530340910197890787737678433573174467040558267099738061374896596937484332437376920959091332101447603935727781040276746528615646129110486434140555297796246659969316336872782915868856535789691665603433151035990878155121603130276716113771916633859894842129536671299558147561545878667826015338990797631500914887701527709184627170568866628418486249856639203192276083368053437415506152630915725313924224986662422602186278152264870451536632448980760023887522989982422013940956934341848172209956290387502905060250961814719283181547501901390205178660757160151742635176162277136211473309384268819328353411321685138876935529824654004056884678497090638036331520621781653892262212102259546478572513974711302414921519551420617614200219403707767278068884301747203875834456162483913724866068302359585242682590267661767625991698514859084500270823525971557144325377213674630380052948023530822542746166154167459621776992285575957825962778568872553384534361261365174734610464451644832246426165854965910690596647595845625780499750796039838779645596345367291332250400981451850260322862377095182517559841127824539051649557025687469368252252212229542570777606935554213115762694341549411088469295354567112172908318539942944632171096987938397074188671404780012146793640494939382395257240521459831688782782203367868980655478844397638044758175201040130710338337743441427791832093005929414786213209437740043343027619936120454362433715656913071093156492493927639707677725346696687550075366447538013285159629524765257250992469154190308765183136263496772661115213238630180081011362759644150201064211095177728219723621800245757374340217802911369978357165700572059926690541346674453571790975393700891699944054299802940834016855574625058854851521729675588358927090992874304198642759187253067574990423954545483816628383737748750379243881186980855429557939987212430822047575649974633485816738530870905077201970409348154098587609282531416388683364859004027767566196372389991223096816485157264029288225302156155020416054986584528306712346249215510387876191724532878491131733893601078677358711982401994223485987605481078344319211727351798614136809982382873022789313230579073926971370240436753403836993899718827775259939811565825987822034459769005654348811075593038917453472675910617987775363521507507267745436222616679097722003276511284898961954689657657435702760481186572157005751248005012174530525889651342688201285705413068778863453498845792282239606983639632972695207252449285542011600799046038500051785479324477388705412189409360226659631353161860745412711445567412865872567269290837247382204495127919623437161557703306985818571661527399393340888284001116079639286673278813784856325929378381329192368546813527661910902913783513075854818992906512429574961075959960282708497548467881389887991284806041692356866282041760789206183140061670335901915873885541583079184708734961429356428127224180811074678666581720637938229891234682750403117701964053858489626029982850115915258721100449134021878187649485415880458531117583797313163427194757125159761010396811871767341202296890108705331014519662460591300585784352040563267012912918124597247123576610360424250172456400950971434213584539316685420578659792521863177858170572861351800177565033905943243101607577477077548320307508446603101283160927477293263939881388197073780727091960930782435196841171040767732542791331861336859224953210704465982673621860047887720984853209431885265837405434817842240472740390004867344322615309722421564588483231620101785896749463418014175207430668762505168618986612575034250304241651599566021803182016138247636406163138640849541216807487087026364056731507029098721695045947139196741726454907324127165379255911049883233226047210747687549910004427481037533624522785571628567335813318641282306564039454272587159443442405379990895642702384448720626402049519340579179745612799164084556903015998381633707281659069504661715756925984303807804714099082723867572128498743148861252866360737833253243370732986042471290255309040509900631022893725286246382399105243678308924948975354416685743447982203390223633809493405487012531940131141522998868647842663524491094454047214482847233861510695948977381675645643349938236243087030023389449516245293568732981165704263456278372005809042523524887950657105196542978791519032867050671746974582037795856257112342577616349556434012451353552685332259801799993590339094487065773238900373929506621477716912601122718055362948363598761413625489878637850841977282185798722526268563512252996627991656946214888175997949520789703506376931805716617520075648452350396449782042650719009629617082544499723675423922509335252670881465301264949994755274241203949115871203383985895380795103200654073219817551939446705947221915014067878969945642691635088394243116057268311668584676458224540287447403266050945097761265807574889954687005349448309876988683245859297780296111384843093507689186266095096681490831824552546772733931303441218273689728929642323731086405058339503500554007570662513498427478694038988013005132046187361629002795069290989162129445787899845602312868536764547077042741628849784612751732062051361430183324282906351455636305755511953451367162846235100287424798042338611046771304532598885028343023922954179788091254791971232703195656836377918097593985292999736459147920776199170520981648424360394392106163088775824235917939391588940188552671178581195500364447850288905577692899501446569985791532749013614652684351317395666416198407366988023027038034689216351393245428691540841136023844808467345389234762132263633340691888928156434655460121933992839532098022565385660225959689789041959539510016569677944801868821156451227875367796680749224396978446687544119697543235973607374230484668891418840654685331395385981755642043366143101987318295258895455636472732024228963412946534664614065634062046874688359485437491097840262002483617295318108996033494872935353492696131418581724767005423314959221281973804781317923536393974710950465907552729319490740123116189357200738087418695380900037616655193003370021353257454811922868335460826770004501229253896776117067490256766664233543619187058690282644205356846365305882900668866727835797742054595109567679696107301125962322511198728715055465434717054061311951838971587165426240087294629764672097074345039764697086265099143415392402140921279210176554038066927880838236468996642245018479058661396225398216648789155258533195236699411688921486097655165161171584685405332614088003493592477799727157611893449958763521595776770847202305984207964552375784585455356976781679136304540450755773153828918519788728892267098074665438481320829219330850422429683336694745578264182817121946320791102793603967264976783161473087208314778891654417604535646096987081172159308708362027427888545134077598138794716199563483721608326490435515673596642262565719359086037093227830910534443571056850021630754385906734181863954144236790787522371278890469168544742991975791625689081752250318535245986291491949097993209099899014439236151837297084206526051288971733792822334877600950796443189241814159104381087353705969292997687506317953825873356974922451061144908661515276050185321719076195936516976847732392011793135550524453876870877377804603201102238486221224383616782993276113566515246327540610327693772606151778334570545193279674966263317837304541637319827673807224491226332298006275123808031320400480505472994742125389048340034289325921028498588961759815963171016186829384145210254148660511457820704753862545101567165467826086354311309599221839268351667280647687647909198418295852125319640619658582269210501400360920648859336356810707975805229098867399212620864377505262431066892017496055994248919905797864700057327982459445585698208101789891984117543541186577235497237934508849804801550867607173897797015359307100936132160221272092454151117196095928995747825780703657005888805524266374470661871609998341404153052359978149515823169092730261731040935974078806785150702306535654855002228036974700851344365142062227880583204163699169472181033532374554574211123744239259149454417258561367644438706706832802919139875734142943164495578469245367681844991926632359942254058549755059027273056769636600924010574844526079957567107778518500977540514918725524041941318560645301621846395476876423408654129587234562448742400374070711980586475422919024114154967123108057921281689555462683625702042749162247467758261766947832912533773675766008020593318648012706266180075465342699518851080802355905178116089522406210725660177346897423796812091325187601691751077159444564100639776968820022776703761328503547418957548092178158837522472522341444207115686186200598758751636081133577975679079334162340836360593434634303131833295398618489293529054159227322828746601306404073429988873861609627942453955682378385667491462414171473898199647680068154120269459176448070274628062080230790382360805604723319303857990211673940774638106881030721929876526783485113501218347185527192885483304009620572603334028237265509941618063293211535861529838179748520736955741958571911248442646972142092297171318984701672944923577965225606058132056846071784285576506830291899130463272317991526121375188526865941543108778939934196665638376648816121540637568589356196313383406861542023113218841044505456513068555243296896962982097860152094265759852653600667286667455785067743261386469694000159873729016642301250744265512598173898095305978698711198293052884763723705388398573008761759268948274930080170555287249997438420501411081631958319148418490312272748790290397264937134360718766374214737504162603218540361679316426012856409700579679387927644742016378051396823634807523049803766034682986149408884636712620522183842463228141920538290008156452591263985966790867469981667735664223317221799161414114593939900775944335935371272379149815158903970884238453900260355711422394243794843616479821338762912772476787206619646233457121754928321693652583039258253078662881371561058861799184369261697948768066109269035147626717756936854419629998302322340452021443057887732025745967776043584162134748241361907555992510936799058938406524939293547570576331800571607552977366069210599312888197275392518462681818525923615187330903766662834366805185344872578590724398700703128418444548377932137783191406557445606826724634883482443747562714856993128671353233613377846645578410883469138540605552779110809138099482234876773466078445848161337438195048168548114783347054902160391517057275557281057350121904780971596305685061959268373780322969558489512683178800975882431528364662739340733309050362180338609602626420895262131146180380724673255894430636205982457923997536261928812325742674365372343363128475039006195583619236442878004255722558300109292408649580839689979986235312600487398766219975931135612802238556986760807708876564248761384160032411985579964293897737815432273370272544253237954237721118331209515439350847171003388793808346877113644434921433882148577748457285911612748154224244885105990460813330581528282112098396483635997721856666271168795334029091478098839213229920413216361738748904382978736989946515982217215283074445966286325401883714061420631885408756415172868125823461456622812313939201712975616779132964061387522238639506455697786157602283884578540499501891057542296050050810871699637550889293680579847440623409746309709699373361423705073652325363509995353538351592435063682827801529231212465930425240294067306167989593660593874782746503702860527207675876723064218451765692288393724741197357102097925004249123992979015286659328859291150857099643332019842824198940827976454631702459389536186423750923521362330817094671496409654573466697895437918190103841197846651915289801861085835838528521401091886534762545999602836487530158199933642866068367374689746312589125604567585827229361683827414573185768359416431036075934274538312461252530024284329328870999020687687949675113486202155645666740706606903742682110708131712772055607398727775425772442648016016775526990433656911565852189464601389811478304081512663116332320392800490260640072045157581013944106713273346904373509938163146964007495675483025013293405039819418718003562296960340067247883565108729212713233549155235117892769922380216699677161556818955118016683138469020289398308565865175903409649730476350697497207055868630016121979958026861373034828094202517279828220702224284019952853176669362017190892337387954922951601847862959332355747887417086121957772075158800741466798949833842263365391885851319045549109280608444089506306621888337008367987763991233994174452515874021801573448545512010686706211158241157509704503166412338881605446160984533643611671482514382062432008963808854417831297484272740080642629596218040537014776802022821833617189527990610701460649389081282482808653738571190270350776896996512409844097601942002355157568788792570743118935679378967639339075406983999311578332529806008382277514988251363706290014365989434757997611891251137870615787196484245707906576117835597814965255372953217630528428915062017643288950228199194605935416062282592416417391550102856393859915337560384626053570185500324971682908184444365159158427028716273220624346705027928478216152549505259612604040722208865064719431000119282111655797582209127844386804911507010187937713927960621523735516943935725373242752098937307101096331082139899397438891235403315261992368447665940808006193132488994506176707299405418889962769300606935248166975887604520516152476951364231519577113625381992703082405283454249366363960044942209792411914864046188323977502608769393082142836203462860104979125286164342317746766573451586318293450004807850381496369365215779764914464697688027662417440430790288016269774758372018390401275799875634657156056863063746700698064420351376078675983505251415026135092201048654904800886933828350259490252651727104043983950791640224314161569948629313221311480886197247030092505376335554362427796543700802638138307119920052616043767188097267734094357694187537765621552014158999263959078672019803861726872250208117600124444009865049799922864431917761032556225445466473064518997243040677014059353342234305506381528000487881320338837984797973309320658216172652459080666859125789901008625062074913815797965405853338908958277936778097125125890042681484789446710549493557783662252746509225664902655652823077822282429010067327887834580705923671815498744097898047536671906149367914675446317907790553623016068570674867697198913253126878777094909361203045957102715282570391608357919581903813490008153300925601794717780120385928100283214180014209196730199179825792478088304838681801073692989907659857959424437513439031828231639051718357500311764148590014123629327390533399044446062972776699953560966043268334109343622364618512692349987900999649927637747950953291392018765350032734795356780501679839057392432905796465816404572964218570844931301053219975076768726355964871494783258451331545869149990412432768610304448118428776776078125506852094414156677785818760336603876492617387195336364378400231234732376391468275999273835654298880872176257608076210540939011178312811578367657834261415319401499731523923859917330398328018334889742922614253683962526946542436492234465608779127501133305706195431559368277440827344079208537057448711385761931145289499289709837680070577236947855457478063285768661766496849489051513694276206957350780563846162370544228047609743791848514128216097738919797448224171553922319947570357952075318571309806359441619819253814519592518280629175147328774640715558824535491331961049245916609646934532901191945614377925818499980577228900612172655132207187721445813908328139372342462658086097108994949292280529376482484032472887479697855463007846070826153019652296165975002042620872525820919775917601980673722526898369822361130016088646473755720762640822773006840060682106078617829576849519453641744793619861858581895924684992620902689144342805118017829557485535801280874296875837918684193969462428526005074803016842903887349095811616022072690905376699015482797899536854207569567774787356035640471991379206501508541487555388708518586581153449744088526626965842516654322423058942949465063807678802829045134269873698039738636301513030524629311688877857313480943278565615674227373860225717312052958378477738444202126010146281249929062520873651953528870242295295661780508159748377598890781499152606961034380553513892540497732924084686065913188664727225732466533237003456082490343054596601878979338070421238737635906006330657467983746808824394541902954303226234258116690920691827105599037233023940465934376531575926342587544086970039726632418278447651399354143043347322223994230265842832489029059103725167441337293375821393760903360961665233895438475493565962150186912219888033272420323413693876306343005297331479782323617440977239723932497206425862479391932018607595304366836058139351387035099002335176884650358022737154405144715148554450461292895509518637938029575674048904668124373341973114342701852195747628799155141597116604940053938393670159219061518229182936811494126879811952061074069932955469102109271895010314206660707313745674586683500145875601436510930094820089300271089282494487075702856652688487476918587536358478565869029429316101496991532510767285043300516360473200565121415866636928953894430257625817421770031702968552208572158756734451655074450006254956631046912430571012292456568005514410607567037360806151196085740845354404548522267201041927861340797038981607329434211595956483789039281438196925606750729718938939310070739983962656172210713368797290808272694454768633260196055091835271275683675634620020724098955593513396663175312866094815287421861162200480922776033388525483520736818975844785982399899520307106628584620524288660955048268553271072136244460433129178266486737856036482090253617431344543822801521007872604533938179813261776519379876733314172847387192426523940268225523457047790224275251531602926879627263687108780601853073142910022682776387296409827992616578799158246065319536339312555139179033694558954873697724310058282432361485296323361879303043253803054378375404876043140480872220144951048984444034001651394891779990932398007521140603001251458969489580454330096016334913076219048810866268048709978043062842364354763589833767292750431274198735576154571682369947948508957823263989960250910162573946648626112914326681562998507019336328200463297982265792357942971236604471205140585266177619536500440476653115554375828487103320581650742677963293582720989216252244136233649573047784595087254443445440900797085789009779234469268560285004899182097271835400610823643532693962315420688273699197880616811821166165800590918384090913205373795064242344607441995480167092937676182896551404338767999526944826230323254868195668107363138443350308312315905219753903377647739055090353241081789473427145097691674123339378490715707562189345959827909791073658761577351127744721341174565664159748648712196461016057385050328868974202040007796505327388623647592771217696800947648943759936942765450858347206242722660758478949347087648470449946315343020440505977654688306417052160096522458195276174742247237810725693725598383290151362056382412745486501187359681689862180495315820939121989891735003629762224517666025110322517380640471437895752290541358046288520021276572584905950242103602764859360930123314069622118987936236749899010179656516955210295727346166190987921397223090408210804142877365491355145390911238516317450437462575193092840009299588182986057816701098626593449698641917737455230878727428970649847137631273124177316535925515047527532214005098428472597604685461464685394776754772882377340473912715230805015828582376407116571488307926666007856331202059533430280146014717504333578047886154342384341947611984021006006042685556663349661982058848639947824423161156998755601288690196972124030574179583483728201784986667911208440982096098730998820878138909102168220158270393004432594231438010105206314262376878499821654638876290067556456277105793293743040807100105078620737375548213861356425098851724838532334017552754171751506621917194457981048295684865131418654740909210476367800653701379059256307452252104386067250048696446984074649172293022876769039861156422302160143772140930863107116038772094506050664529435636355461062495712296291643240323572748603156295577473547132493556353567759018298189159193642740693034331078208260726242574589169120857450968225333925413990189150019565668235310163102979047747258039460127781466593968012502442287992454170583641531761805379696659731346244788807946613655176895939144111572054961458027111517947242548548254378108808817382124815784140813283176179458873509076542238481751841123199436034840623705787860598622384327540814615682260031414308600303789749411591598470296490172840470218256958357600791611790636232211828206839841586273751340984553694538392885420737893453653009255151015486762965867683322063784766623273119326298466504584150065589021824603363216723054771962154686872726747753326205557514381442232119151630876354581439183312223044737519704620665878968500515828217686306244430712629597719722297657174859189276580360752332037752148842638672201767504912010358832955600846667322274317027503719128763316879105356737452059621315637327991600146352126172892802088560771151971373225661677120359393715663124144252785717638038238148456940405614748506638048105730147473313606672505491239690356915679820627204958296949504891560243154046649058701413547570461416958697216685363080981712101557498256492272144275714336352012334395089294362083376862446410277986131083462428262842035051574883455108155626517783340725657039844415445383892015587818373986706573696661671829962208584038005011028234834885307485101833234380961055722752123051179922467570126824325103082574863304820533461861695529644172593838741307721082123646199015329789094649773917764262161240660873890826494111953775957780441127871465022553965969630806835965380034211071733010319731616086230264857037515570984674399474875452591404114193922914589495848049613681511056229103164562005770945584986098395105563149000464196047432142039883710604605096653581251977076385714807859425786132264728968345541260283533022182984115367495562628388415620033407011209056495759660677844459958817354571223086872325020928656692827198098603062079441724192494234108801140909711365120451487524320400461520019324713359132707122158899826337815920210625363075492879212511439410566143158294065661041750466402094374499941479658073913236123125802935062893841613505949241547334096475593229288848060042275608038785376819790665190881390872288995747413461425920779942181973466520096779852623525929018231239445418631073283232339484475022452633228042490550010974229966029067753036528593887383904152477724169176250814156573511339182734251724931018128643683745529726541345933895604436280432199523390887424438054822380928660019009083560890320035980884973037121788872649719064819285470181325908225557853985062485284467390570249619278489321093095358358849911985859552203062111365422062607936793202101198867470286744406114932329380782541357816229714365741839491311196304335626224285176317055500862543836008112025173628318932604053184046718298614244793678479034753603495209653088689817381752825194322076520035469177592849908172167716047727788822049447731629196346894683388423160092400886748666346063141933425008149167694877129210468316844373449617233418310617362601902558536157423719890651440615291648153949741578280388404698176597311637914759549397452554016086820401868934373878413478326130270407627690622414170807879474935325767590106135695798423300729130553271486710626069984105651234244416662170135828973376306986806208238366644905607856622421898507518368605487074477414834155637286290613236919839199806128468140857418359599271115269273780246206216099196399534081320040563462899167194501732370184595992024216506129500484480249297737476695866158823455896190158140933026979421772177875469578433351651306310585196134513140451228273621688124706378365497410800549358391057261324036097484544559262543175464315482804507210579713470523095756407299687842359141060461713556894001841494054740419622735072259522239175357222701111031126578535409986567328980051569532199566254642962895980023947508798279803148159253732549378765917489032342819241746974815217320761610501059133654730232761600284651864076148358566866214100407771569250742682607169404725721081628004053878351900560682404920829740254230918625845879048318860604015234073449138607768798616612825003283821280937624283255138387924448534028255375160700039349502631218032691148056493356263278865506391917149490706968993149613074963574045354901950616085903444664496026956861007422939209495333977573292637926487928077985357200426473926457149402143763522007764506166008087916234730794175245191749603071240312412197319201551336434213706804049373264481080556147609328142048992776739213381670427491167970866620745040051119383576239590962111308564383823782388111657092565227813311859391043502658771498501581160804216106473788235598739300802974934564172360390621085987185012957042598115110583408541669224554410724239261054052598383336386333458343126363721269204611189160519181116584721885594825426847435882527305808063058948047195583691350267879891977686604384166265418769598749963454272686619813824350452245404898422492912431219653247267154618024536393618754678288109774745270526657403025841797188805039723453217888162903141834648388026626485955558632098276469268115239384020603711891442767380221167686813752569728070508406371358121780116398014509435689883580442372408298202001008584944582249801498106658314089792739638665839822406675203643852491527740710293479180472234322549136945411801770227772551471556534572139598145431978083933908066034896453284681294999328745542872633703709486397902298368467675384134913597919779589928936124503967327939831241631862445814749206896637085159101526677689665162061748239196890677435705625461017379103137827736848593709506268948207354010382767488803313257341539327272753431913431741212630264757029063937990063660508952096170336324989337486073942682507397926990886735320388971124870323519249361833505812857884186278665822024668986288973395191129131957574508432114169656546964766299121891400858090288005369645331989404909117014266581364509574494618504835917041453615528621247310842105994724796099037849242304273993943199326732417538878307161228828991232810416860779000393650041603700594243949369371641492080188870540185244234944679375575248373590376317290600030460823927305136318100249889545581265143883229961519351443591251707364350138187668758279850099922942267230719040031384166379034074651558194999144592004227052992751073936652470305919839642182269686958508125767868907328830190738039411419727790080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000