Run Code  | API  | Code Wall  | Users  | Misc  | Feedback  | Login  | Theme  | Privacy  | Blog 

Scheme factorial

Language: Layout:
+ ] Show input
Absolute running time: 1.82 sec, cpu time: 3.46 sec, memory peak: 17 Mb, absolute service time: 1,99 sec 
edit mode |  history
33473205095971448369154760940714864779127732238104548077301003219901680221443656416973812310719169308798480438190208299893616384743066693742630572845363784038325756282123359987268244078235972356040853854441373383753568565536371168327405166076155165921406156075461294201790567479665498629242220022541553510718159801615476451810616674970217996537474972541139338191638823500630307644256874857271394651081909874909643486268589229807870031031008962861154553979911612940652327396971497211031261142860733793509687837355811830609551728906603833592532851635961730885279811957399495299450306354442478492641028990069559634883529900557676550929175475920788044807622562415165130459046318068517406766360012329556454065724225175473428183121029195715593787423641117194513838593038006413132976312508980623953869845352836267459097392518734779173869805487441821856484385034919643337438460714767001812780976866957155372296285550289272206781394438418019284262150410723283833180314781970267867953720297839908191207514385320315987350802598715337625358079963009440543477488062342154476447411933871956050323566830690842918572341005321690441862428022969210906180368548246674457243488267814557389594098679827750942585126459140078338467531116282637542048000769090635146942667444841487805855830330025518312543819591174055032202944155030072599397267387091090410509048935575856186584010343135613498915777195140413432122199605649883727164515471756877418149808129380621557382929925901600555377061721868087112516881136375809745667071229426653470592407287485067018990634023375726409487683079892949781196018233255995648463766978652875779214179298901902429036379098118717809157838949630038804711212242332765434040464702401532833090030114837188050603998942611255191761760269081896025751064217976164047270804783888429423075248611387991185231260087057071175072491150737081659593642140544252179306969287380725056827134253296563424717935291623524871067250916074480231341152017296504390921345016062563191983290199528188801223083351542610748874511031648971929695646680450759243723825920525488066443003156875075949041570874163813140312683487544114268054160416312937747984190660526243979973063435611502591811288360112144671815939609291225379910651586021846531842299768594001415779797353877639377659314237754468579267373067826491066245245830648694658984214237406617175798514399976735474773547028053199589759130559701227942085031348719992021803884839754272349939272081319246808715120527216420524321314349116960268297877078623681330646218519883137293063987891599258209218813095397525301970746047734057091090971159834865963483763523819882482700145445889844023028723789545800664888886200180231786025687543136672413854460184315351056508185003278679424240255565569055335633302414471604340660252980518379980059275135742809559837493416777043888522419063863053381184628101548590149538058307494475969657290209152490967277371187649815559275857809384616264043358082536889785449853024595239888832993457557806790445333227193071580200946189254503393397244035603318665340513383672855145415895162817641585968269431814636358041252624584001522844730116481339265798593490207066712090824374950750660708387827604509116842409883423948051214172057414568156308128138799176916875880966168904504528449612539859180319591655157678798733336245833331555464889127794987238171845182464471293620731021908850648579291407976083749730914500672402874842123174453361384601961794588526906424548866152702670166578294286932902889637245961654792352471699843341442572960702610266691704046504565096781201921689522356424392384233387621767765206967271584542626374552690432433987554961457515592456864052646885475100500994921991758837973359473018314657440314083708331178246583501038858284201032830148456380679302846894320372870400889008023065240199993695916774641833058460211007001687541517040530759046723463540044394434102550244385039027893672044613384425605552913178617200831852872047626774463229786409838914589372588623232129094643092049087315704022170861491912272185731727479316190861981704205141368713336836670357453609922877957415588945513929993254419853563441162943915885714236170240823543022103566866399133489101282753961205676209670138478029255932134868076172348471480235727782113262340759730161049099137848425798899578073288764295852275262070163351641302243679867581512634719697504007771698613849993643470012476690621432885398373304964451271688233996317000948167801633893429425591224547789285583859853093670397532216335928526753072694497606226934573040189527858800089574556701262222215759447690827781435789561851119516814312103295482265498840121930821543729814434553775004873410956445780085753166285725217961050886744793330875523618441654910183190937068035393033480526477949550380810134243932119654813832490448214720937908517758876357811700721828174996307513138766631171305200004238250797708476821919632624267112431411775505037395302838782904608458558100732560734699443942166844701586169482444260680109839967059482733542293874822127261785216988109488771370325778812239283925193967743471331107975777545897629208570896058546727918211389404054761960364618115118362476888617140685536209069234055705809468883302840259831470908222446335599433624852366351023176895125471611154405208222436681064792237766968569025435313501701661013097633311258718236581634802034083553079890092491416384175213716007693590010041375234969964662984440031103637353278511564758958321389652917018953639156254793271854493763648648197440914054622673007145830307317786123400278117264794761103274676215129656636221992690818707435225535510383089933296681735922170634807913117847204937403308222035523659669751822788818104395010788805436309826735476584660159701976959283683553114011184068333116906179535341922509705166700874826401511296992088984258482865315503149004760149342565916862475240918672586336689222940504340016883304252194927927642351509529297186363908009446867750190149168960765157274457606821112188765270659207792647982850616088549748959499490127421638081461563724066074076739687219211623177338007270899152885148931004231275810512447406201351127236549626533441757508697437550593720787776708424017415703832909328491894844586725862154957212861659562414377752729246896149553245224085357624358224932312640526164614495709988019971547058602019012234454943524233120240739388416605002697810641932319630648500496742385871243248799002036590626794807659822103755523318149571177884976710368274760582425108406390680533059784647131863306227842277973620714788250637123454400331681135027765338752716325047863215753148169377583772065412760231637138537024887852538502157100159944059284374557949504296814355119544010623556778850344968329729821192165580992063097171331315746621465341623840638865957704904888822942882888823112056614927425302213032363426732029061249102366740097662363550630688169846496825648147130588886660394636861697481815484689136715237657868893593216392871861737188135838555563447723670288989436411228630055442274342536952257704038811335882648030303571577435048383566036250676055902953174461793598305478949318638330688439955705898641582849317543477341113996373196583799868639484883613246381696668879046804527002141572916259004771364212720451862403287767888099474908998934168290468803770932292645508122577535101756894012153452753355209542897543016473557859564962868798201069371192874491486787868600374837796295001408463687557893645812576481077840105218070923499850814555554755384768463449992547607172762177941383318129330012767754997069848650729757187915966382048148369281888958073926610678714181320893272928339297840782477740515950641803410452176779219962526050274742250165997647163883075464777892295433177372790601299221615798583303546054226650544751564734436149364285640733622739345854968457278587563940174450032402726042597397402600251253201737473497474162259744074982544051606954573250562580301274043054086840288708849888926162177853732118751662763121809899892439506304854674049094097841370893603601342129640639820466586676911266676626970100182214899765055286759162063573633051170813617643462631503059297035608789131067555773062918625809192587153075007399878906795749650506885768776407984386387792883716099318235648140060126947467417936926535128942917299734554031402189989660708331430207535816420069684361155662447001404817082698467278873565319279707889045454491106103817532668584933253187886218077374112858275221175121556281172167605639253981614393532861767792651534663128769687054450149100229512424818801074719970678560697668577577228599178346962077129805508382637013542220153675027115544193954954851474465239128223901356476265960147686754443838624187133848565033447737827285422220728391105075199420386347112008247746206173731155584984451855167341289525661269051369581716968388504376423692613835914575180271029450979239493663586907152728238051205856062789394935393792590771333032545966480423895684962106648075888028339369408839773529500980913174802880292672078388046098383040622013427301027513075512118285083501984438199445951899728811848050860361368424996313968296266207034175313929211857046243978042961410062986641389074839767633514551840989309111158139948207144690299485173772398993412742608290377728605241942073637620892641881912634972033319416956927731020972786248174908470131531599284167921765678894903166173335374076352819163638097796917241800282795960977261501462358951254364638834496505708854392506445164445494877465604296921751897978913383512338896955421815470512486009678352525119767813822773327415728890319837262963683106510080636677547997308945559632229164573804462242202297772817756065373221304036408182850772695937282808464312366210003129262428046735103861837659367660750275639561022622054150904649268983290154630815457879908148611015140705229095708433599229599858046449886322319549103447671031949077533614762841485244603919791526858047925738218654951467946252017404679203233984351697342609442185392593989521018733879244218945409411698695440720044851323858114821623299558716972592319315047358026514981965395035095837923868079257173118101245238129172703379840818953855743484081795072313531784648902550609052282125254634501360144757300336716789882091650053424655566734565081301394698886136547771569784101867926173988385856176650046289676174996849645592655739100351720114755041650542511501757513350063011846645783248354138806681991218723866750051202408812028522159523082370498763046015323723148432985441227092773228081930677282901011837088802190459030522115655582938051973921534818302561802414571404378349671092565449026723956155748474105606821256613685636981595520562714653685619563333536117125682313188453235583923229787838276210287364766559055227749129005557888999446375574251844493081947669828209698407682359944016190032997539087437814568970476875816422832163934983391134443577331281870686410104009883928881948972586759793272151588951506425653646753067906678640436895557426048191229811094293524110086728780341280853000628627671439945592076270769006941681889715196247909500351141034963642678984116429198304486158976483366021868769195635981088297273384904302972914164703023419674473174563089829036974601920273707547703141586691151123128245703612587356569778382189492808786377021644103972405251729037836977508980490233900379325818604504533187109579296513114877762238273741416599432937503897346566376038131976422115967356579252475496518888284548904581917044886816474545932549729064740640991133722383906383273155695595811384346962147078646078035544852789058084315717699254726852393250016698804036497833423080997602279258743996975331462453854120166712917557064699574876550482234645649715754289849105139956382477203010077788823975650104230977974134161626210138019015625416883256213447938545019692592664972177231640421000753965121638513760334938714129271381766416904616080859202624766656749282024027087598103672967715448956995893248786406526709239161010038617234194378855654008141898502168683170651893683363403738738075839076647382216555821545220349510320637852621184782093512045640885516833199860733091653309888462398527834545989877442316023420869460176623418099630223353540849878046696747466824032384867813632827908981422667463368427366044683698648262932989435710384360770900746709705329363059325848432700213304071062658232182808224978533768610370215419724728286519518570473021867768267759113223440375531854156967153278091190675346056620638595016590983041876119879679081780066047283869100676152499921844926241990249980881649724840431078544633403641102664867894936256482991260061778376256024396966020955513312093710619344293219100112434415794057899929062645309889691656921384531307384692965321057357695365489353940896690810907190536391007500885074816717883877133016027948763483133657709568114848964004505737891365198651465223717090645556453168635284843642396075749790552644464745027928478764227639363579168604276185049558492374933816792473682385936536847342445414016903156965222130837479345537989962926205190830268575790682046382788827203694852279121531709554289026187111822001928255975385067791323841437038909587281554483367700373973566974948511295135742374543068477467596728899590856217269351086063391895605121517721499541414406987065208189091961767930640433364694917237010112220519454343515754408671842852830523291166531694218326487267646010597712038982176263782311908720213866745865474074306139715106848821104614827608052215814207742586500920536478177554909445322344536951355550375373693721065448663548771407209113332346917064195602106595687296900319366908302395114116969209810436642990162091574414677922979412395427198937720990989791846545617351928804339405923988896453869320103937182291438416505136092101271161472992724681917074705096628858678957879968254179962268694278803549162483674362579346435623628188982354579906325688328349422685602493634872344210151769763266641892026806310030742828825546606694200707611916946621972473800908261480216547448462316521451022636566378552937249406841968606347002017570523788657681191689532215599076116434529085532514383497655009082773829524927706825875541911062661476448321716470030250581051484046891134987532956181721803309545900945191710934425986461955555957189703477775793780146839138518461123561253348015645090726604519623531639096468292601171935747274416184063697676932804109251103453777818853240502981966866045785292574002551401161122620396535913149484336170776178204462104257734340608225453658558779975806717498891363403188974676557292664591754245620505730955204433499083825724287947817491471145103096973944293823372347835615202932137536627749521505579552733851631803606409166716067049101219452318539677505571112453082190939832920217690387932062878552526494754591034034738881141200401102199084192879431764266793980160198756146818392697074157678618921707534201691276739644913883732130400569054884129026979995047540781786118616892125805857081611252955797015807061806931613551459418373915256896168073065882657517225896919102664424771690728332289772855123769462025799007449514200009086483385449007171549364767022511116058163928553743540087698459277841757621166722879669873057159138534896078954544851951107176051159884137210666244937559681743352803897198290724745405644792010512211813032219673271874133461362591731533084865246722466005619176815707771005638981258741064948794912559029149692339397157607323370570819727960088810169893746724782527342779167649830792612039991653661918297337584942887451519145666531955199854122185664460767142685904534803285573296944138288706825920970814503668168753828727004890769992083401959823682976124278126263703200190291168814050552589877461416571497235879502566595606378764165477389883726894013573619471811144699925650797724905054159617338434688787280121281385475857867378188394911651800599985970734697064712292398985799504509442285802970138845866439953327954420174188892901196256664368436544108088891763231754430382361872847309761105773508066457371458231985289844907235743762473063108796615510564770728038945272126829570372110386302396953310209946490404808265150064828596129858587448962741288186516730710116836746712675580159367649664225608017808138170161593359664629204807711026122449179217675181381571709854386585660671931054779531774059396762980897127714836235349996723877486906109493903111023097523009084662340232313165036084197311449844502684021326683051880619732391081300983297224772415300278345135599196097050716380200143932697357863194806870786928833190178105708238344478637771198279061811151590526855067209464925834728747155487661189919726520153481921899852611532256362500551373361174962895948246790741533057667660380566532650477986226725190264782903055550451385029764986076629558919539750261042287226978387915700228423390734865007764009716808105529594488621571823617278465168900404552660654410905362730589403687827702345834499349377813236639304950051142646725321232881426782989447209006510899553325629805803692196516090791202851692370436876068655022878738818832994764371517415857325142061657639003850192087748517070782089817801989335201773586472352682579881307321456143144673604713612917195817722769207444014786206051712303918822880797904848117929469703640983854782737772352165874662367790156576253138349232984755914067882265616395014875102455388714136512935051357018240747401226127190516655331682388396084094868132611190754424769978817964239773378575109249255427053798302624083261387053862329265196003801147146353873312948268972120546293856165107813815676321830576002635538317955208606464557650182911168117955457415440276107837378424634458462893985491507472412510938751117806714675583862573323498500417253920404987818726419762978627725747142228179955931328897295276514761397570835391278418373451202248792206207193489978762812833282342662676994123751582871029793133071849513821567562230053775192043895226791922602647752648136149194723393583485209850273931673952219971226833557044547928306402948901168302833751821784390763180157901188431924841218591752069356884215054517557809901293172202271714725966415702303910651762972992577027279402612283998894616063220986801403052684472573034091532912390454410408312153764271199372418714496062282636835243764220530913577663581069319531850610243717280043687037431441802108251549055077607022123790234337626584361140999160102110769037425232252206943713588976766673558654885967397351746732041742118561288602251610497009833040868211582677779621683227232703962565145765135027509676170772388005075894164132959356772550393262439081581126575814843229098607173996721185620656258358245478234670894366130089574356482668973367960982315676559360164852039370280209737176249955194980468286694273609926430857203501374435273036205593412696496714592821487596986469496787632886457432084118022961017425610417130162557249792868396780717129275215577801820898745801456397052875647250930054720594167556246154083242656491190241253881049355713359519426394653144434330928532002311266916371100685671080429130019352652736011886053632731081258573217223733928125863464730559658801655864375219721772851272535734650518689958728745666774717295430105761974704750586057919313955107945512158838395885951909877279844292086185593251228322387620315442227349769788611099441165514472024307137650158803232530356061961177722964122333694665742107246593292383652801020064750591042221306311248390640750556427963465517926128149958882621197646612079910150496433402679620723866044669768797139399758664794458107940314728753048008073183815504620652750544443529384706691192539363538107314599145535181277036028356225628077342759146504080891208705706191258996731923641220777604471208117106020742313869906174490988095092914738885134329268073610200906630014715240185509184991776654334338926219114741107424828031947849756561385343700218679314232818186502996021983844499006942367019891181351646799837735981042970554213303227946546049418314528103237402254037905337329500084880054292787417679143109011884328092625761029769884662492092322684007722857305015324172375121338463542331663824665539257152825725430793076045619769187927127262765030030353239071915116114071934996544602627193454531408505367367459688212808655941140220889588766366818632502389856912947894415745339818439066857108882184158207002583055280472707451927709843471854900000122018229194701219790579684273010113759483016642287486860335535909816216512115743532986230643932398916010919619896720941373696089346188509449049042565440778284362794708069624606000276382788928490506713775652077342463485523500834577774985978193744108564219227218465421869130702148564451647533225656738008698318879235738926108895317209256928371877915406352847259028594777294119125103295411644869071736644163492233750949288131957215068007377279068031246225329180896624534146457258600542010707997234814834782685401878774391782450201211871129439561054452597295500771043085190963761167036956852409665777423682944043834386450678781514387214612887882250738181296506936279350062686667058715397503056587840397480496124938187783456143854126910416679976722646203316962981711394683171799877173006959116453406742499558000319649428135687949589731498780054761314296257438419608081075323700636327688438915521908249913650674418436387064404848988975446397550788170005537732414702468494380969645127930775979908833210601853806206523670058024543384587187051222887899202730768227053879238792801123287664447585843006101521722214057392659478661857829487317075784709764468114255634935861932318005619551328189451322396083713640937265413372175932064388495494222370457072913157545534638916257581303106615874780694675063309529285540585126536516301276564082187285797030659035309353305962532038095532463648359411534465957247776101052527639318176546991145894582869829547008307825219895646982381991079132376097290013462370108817538188461663005156969959888432035876082203365004180491861725887531798229686347423423692566856311586100746751461714065571071473183925609140617888856047149155005720229846505614514446355856414134264718172262440244176204665209672103937542712750588607384205447112657932988573929377780277327639717462017737765595683620015572261539485779494599641615831083598587048558723734001965595254029043054844230921183198515741047943538699924117332066853954017689297849660239608952531681601011178971741498807578063796641108021905903061476660824931721284097210763554747494673922015569211245061869165528225541133856122846420400852484635827383584758514538468076480281607978726389993508873809908834318181652426760033942999716735957319653486505511729607424649250155513038881835094816626972680894844287106495726856319933983454929508458267885198697176782618883870334509680961847922477744286554243924700965005807986586291733652078673471155951834127739472194336326214288579192095159425057435338801629223959406881584955762885687815038588809332623010259487376280270979636619164380807190430241344660632749190765983092264414058599264411991313875758045968687624358731117940480267642357901154669544339795787079801701110667372098983787346635781850624491846231833437913013143495286432508498501022571410105762722320709787652640001848751630365373794612872427905961505706475043364071453411201411673062368224865986148198533980677167018279398599739929921920465938798934998654376813944857452664243000102716807645358418520671996128282501484710806767839461103811029555748464021466411569108880843293252646105931244479751225848444859464896837186229177014944892946416460345227532524764606245613195024205552069101807580318878620377525133789979437107389400523924045087227876027127696191915402320615149358697724161450981122169196037908627199562562919484408266388456864468003055590109037086853442980885627845140138833137492431223349555099443241840696225496928181289205666047472312377644585563049274466097363258962089495786819983124361415915025631048794400397943195154142091709774282801437763490300965168316211922204532240365358542649469834011051982003330735166059754607498786073841391916333067065852868011064947620813671170903914525028339122859962250786393139973526761813542390581056045921516662275625904089270590225043161797569934112172416255845415849740609134557764291305522994042715495379217026952290279252400519395199212404176163145627490572548987993960605112743957217550560598589846486962074895976279365715211194034284044474923567967482397309157830708547646748407986836013559717139729526228509393350121598827331891076345057856144602217020314694746998257680099134038431198092413427535111382548065976299715067709627354720967670308027842888687231037447484570624155430103798210342680351634949461475491416964106760399014219514623536733197727374845396944906645920971705654029845180917696020102482917996149116064451202711064036105300388154461673120441843010298412790133845532638197242430185182336205487375181798936361598240955817420055475271849873229500154167646837345787876186875371902767383004265094663283560713536266643413355820854604846099209167926708372922502881756243326183868212740838838511267489728218302181547019948302525296592752046124652227276673853644097111294571270566969918691989088831453628399646198137208205545166833170579585705045618902001907962910030866289064211060852428300804277718649423233801283218397529784463784076667037173181833323761344568563991341338511538927810759297179384145894362621078626925089690503526493446455256146077454014487083886864040745249791621529720564012706584767770098844835775436657979106394981500528851430116844975549222248040357323725175835219312683372989827582917763025765582039365491434102706439064437168189184114106117120619064326790972863312990379218202571910530248691988106920227600619479057120992228216975743445594289077013826748758202013190502932863707357251791447171767153376330331544418836165969482434508981087638484037504892730832715719630938490736547495104536771322977201254566582055500216116748783240183209155400628166671770270803466459791898728830143765520089259630466423492847762029996152956197859261433157873147377360154493699664294703802893490325226631879506581040118155135580046139164082104720303193660159796245730579189025999970555298349382429867840225286341476657150929333741998409779131089069129541091108691698194579822291591962711044647678452939968923715982138229012862905559772802392493303848459920205984942153535933706971032066927431803456135560388182474474917486565611200792536818692700470364798655443534236070627525699922014777974715971015821063424573157206270714746716244148877501598048382261151993258013416609180305185936966391238848173299588933034589630202720518678965087750533526078867628967174814726042240365073823556422117411144892532174988301496187830042732145190030572711818253595903449819586279828967521075500981612296807638711130294333435183731573746174898103266067409176479103440317175673305215433843770218140776008532390774661019323882308559141357569318158490308774173162162106562697385000878780360517539526899566468694111616185489956978389613208086008142340837304842955065842722551159125539600014664366967036232678012735728084328846367315506510167545166648760943162530815370921146780032431288080054855072857646790491297997121747025479705110206887105866496192785292633868661230163727314888452539897773208183706773392859372531659494694674888878373259465715521294987048055642414946373740053063047380870193295891939507432459348373424456766581346924457572711878640500615952518244851864694870814021524222270870318040799300100496249773951835018313932300671583845159246217634258443175115986299661142674627764605026168267974782568132227013318545486605140373712648749313427513955104477397868182412131968831306698071856438669827990655293964388837426398078128653088884111606568967617896673795791924522018060268930766745932024372648645978416344152065235942281282819308506006118026420968846973398913894820598654372514790595721967636619875842088313414728051767806958189683826631254482964380354724368701803080308388987506778956519181303579412481756675039556387132984047186463304592633526756449272176832862480744844073375562895924364191909303763216072216827979950210099889944570006098678270099491418484652535055406128686473020533144450886125587634876762838098241390565358195766788330723300521876611893465212020163366926398216408486229911869383133336888019741425002673235131365677001545644756728733244384277274765419268234811820353917684975919937149820225240624271076741561983551564586683118233812500908649048896255246693026472572740004017881142272106227194702528711817086178931217330610047294530347843276477646272404151282686265383857952517483166228221170248489715944066519675393146049457887692695045516977675482825593368394658947410818137093020275959302848552985977700416359733571882342445351278599336101980274944785541023537110429216647324476067841164624147607631020559851024716819877406323774057708525677728642992344393159281919626036265913055051814941876784144143912736214873295795743674727681623929676627434997848637539259695706656821866425479660235713393484050651265113252175245304080900252040624836216370662336941067169044089357479568690312826742784416236103891054909321944846546582582531502760748547655773313963361640334621028473312640294976920654608455982453436223845002675501267395638126044275626073067717142710945177947285812287189123455326052185495068103636710027508600866429453129515735756182753797241852035505990378835906509255355962235189515770573282392051555141521828438124258537159344395569147089876236581278130388943132545491822932609177931126512558049284155673856970594313416173411359268538556887920012223865571611229962101989304805693617858896116682494930922174682102104524083185631893069475185425339745677201892907485661949142277256066542474617826741493109391860538814163114209602261658583834348058688630776147899682982490902733650296400081603062990172995155248752542339626161982469024558280471143757939884186107708279225806291510007968411744452461499388888114819366623915394662012454875460865626446401616246337685919989815010928795025900509981949086243879262490452359999030262826531022297876846517845032301879167905365974884951236344773747048425933930706001300095727593787799757818890616716157360809036336456464536198336733770338483235906263365788796414575306430719676520319301286246555947808460924819790971251505001439090521387493218325285746322655921085468324665285782447128504255865042083725195559538222912760724664651092743672008962951048890110021412332685071372136168967225375038433023274660551088410294760310937418717303656287918653871852260379432646945061482609568619793103597501432213255994653595876594299854344528965984711563689920673272508670317636870409803643355044047761161082492483666309946185016054084538299676524334477140865691415215271305978099750373947876082157639404315554287637536860508985489797356436474417789018022532988819930465342039791173229718418489572025177698944377883276468738447072271605452535623911996475644197203864887891385802126800386110575936912512113203656720658333125149747294792084276818150654888156161840744422845418119043295753923878979770749918907894081409269588922350365986590346055418701894767758523719547063571191895596641442961626719001199360517837921079221506056321309703532425142240398322180591966890524641943737897554947195560362037426548345041850934236288033880156283439152922860298496430812820393211260152731877692954363691130371833833793096413778056486144631152435751392769099154794831075778355300816212623602275340859963718352872367867186843474350551628952801548248866200433812625026465375989739930085893710700149974500904640281091312265430934277312451669072044371484270446011060229246947419117055483296321895859153586376381474956850328833095245635216740966408218582813783882763691902186059163663210319970406917912774723172438196617229069190737470700134074975630401411926824386574091605459970589444608624954955806368351711007841777886898184047828751153008463545284010406506520261993102818549565947614954012264347777115520255753670087885404920009744113115253711077913441724097320715275053931453737093794024814093427204651491741369082933540482204482603049364852493302335655357344995735465211010202586604426837084982195306316766912449779744069789638291626357847480493419961073283814465358847893820461235600617112015516638112934124625323837612110606079089734782336437961181338504940496331222737842765499340061398460168037174509522343821241046331722031234285473891606460338377437967374636557813041008796373161117391635028207118300467285752659900942713347555210543251695334162601415890924662979315376568418021843031596866122601002890118555964212435915536051095912762627754625919138563636264262814303509119418360294774547218425764349823083998021051254016438696561389420144957349903240342975686797143329299762265861710677524686439614630797960643149377012159074376599392376279451176704904083830616796685402032146378062879987536561284730285488773808154402983227266558531323707705845191253598423358334748759525805761308018557055983372342627038031323148186023687574532433545575237469014122883399708864950825033218338308482178820755788895898119096459886646553345669875620722401875111017912404542900011456612717084165437469754134577383917276852672965187345367801253030746839404111034080858274156423967680486855379143484828277100281430183615972139074098464512231668618769207188449669804854840537716589329786815146453177155398758160999855068801079353290710261655471060985454892364382227181194891667290340903826558536387408374512761154449723885798399297320038939981124714385394985503165465620159996765415679773371039915273460074990590835587052699800112046206710604234107414025985385575031404507535600365081373257873552852180824335372681233685031943740704155611634298380631134136104249182068696446084359399310779669376786825517197331346051964603739074988876153062138367872218601519819792350244337746876088253747795662034340227409582667373313150930663571838752095861095281765253372010284749949663838938582079309316306769384659021041890107221958950895520988926860766672803970396566726381442793607030510479681104374594798297114020545613812547239712292080649337622667980517971143568258930071295883519186574639067364903947084075531715968693652991292350048995846710767055462296009439205007722268131597363996469616321244915275377502475991417662906505926544811264298435018763810125563913358808626262518866131319107102644944541813866289969070080213936266590804090315146092352125098994235220130320031479387649569098014946529429628984454842751474870992387088357009072153652759998030922472612625805141094277676740302457144613076157040791863438898465980151207733492064825544087159260446243381881633990693653862339296522834736825996391314612171583774543349033163561311399327622040323757090237224584858296458786383770175804454305152346366555521753153547096290972780955976962172447780794769649179748997054228973334978451098711748239121309737488799724934998015421122168683853148728710438511727048895419570288889180706178612123378540057601099871633615806875934473590952932494320278950454971506414398487534658359485682962659439621374270101759695532274141239696935563987174488182249730850928701734710688235240658996253672895921052998893059459202146595632061993107028903692085223203445632256537017784591576574623169140231990455373068505681238926509952135674896650701690397973030974291671732708850323430279266405506866551311677098143619581054899246407428348921744622462376193994239312470376988599122287207796496930307683992169273433939678218808076617703375473796195781003854409173623036312488909333807775023101191114450985743955613075132598499606524457881683202758804625028930452847967871959597643351646345754999925273560450498604944646803198451721502407561146566574730624555334520208527302571621340569333272320989973398191141332774469819240841334899720057113823463143676085818614088036939706491303481071159847424588875590392667693578761767834477684668853929430704667466682204360998399157568703931264177716354022325032627058163014453808732322847729086895325285276584537065649229322183225335433557475078707431415229147428553736152561650068313513255986125929892869890955964762463326585585099472284318473917143091285558716456051336431853660604683416049588625320687486340500145321529033103832935725121685590422333939521558652718342414495894865572027602815566459823612601698430597720727102638069586785456628236255752748218839766528735660961470933834662879556723252024965701393693413320438128820664451884593792380443662707595869561489863089377588385548146511485557028836923591524596521910821354488436913195278118224784545548862319353474066878593321457968826919777707282395260530498460644963731969089331047518357613389102058784045184437726352945746439273244258276348463970463747016284385932092527103023789264109879985086983689431175168030933647907569900672603745134577659856704094585550437139390631447217980320658645938730064386920903350644037973777399543344894815969556511155935508459526857520887142827493785039413555027565846269993856087845757527068416797480805335198920874475847954125078357511989236061597884502169850132536555829191025686649024264136169560035103545562078588160675622564852068295113949947004938397473312606266609092792570571894982756772646304789122410593302699596706182730254843103465177196666653234455069023097028546012366262815152087310278295452621446946156368629791936578337173402892306227142735158928342540116947635432431639121121086335600983598525294761235454446460264777214950067387878019064947027189316891783892663769551767884926349947012921206565511112669539421586647317621681951665726817658529521667094537716371685226125738348947218856610220920035360261411760312417994357944608900308314936456257416359488332824137644717018294730564491135906107144199263536224590666212596969372128566259729946564480103685999926087462928092573218078050586008343864725019070696025110729669576823763987431129340370673797781122726583103151919711710074442035037439927798210041642453108515705474206433289812570239096971277242132347263398829942560681685227235463492318792265613021617675292512378628952555645686038762468982530520687961360984610429775652674304031030585808839390156521552442937361347594804807246265671617255023354890659348249321438331724303607036536942723191280031571072998370390050521770573673087711576382271875464408688928574344801380100395676632975679779957085187684540495665573702264197215727448768885191020467026091509681066796749738654645446277681682844301830869606513928461994063893375751388631176360059673772517497991275532604030359577878085335550871939390107178418754391476599342257930967518569936917821873108092393372696521818371955256327775931416659419481962819854232645912838938173252465209273831546078695406516435801333377593510921103030318038099516336591038290700633151836525051716270867950505003581654201272277888414501976953500421994485255886642469661328791547094961253585039211463785961473540241055470463607706953979428525748349165294506848970494851480462843717402929895357587366107435068054077333742003478161115349683891030963213332087682758366390167881635628235321842711759201705733610328662031809569326221140676899325919330932115319626591384019964942402750909860020048850832510082860666754837642847306637423963167473972115830835124012707832600487406773921539453565391325367081389972935251392506726647500639579767171068958819730589388409706797627999603507986900921975808030523434760179339312763637817253025758381941410110029402475024932153649003002382244747659102945358303838020796479594718764887859748395911090658369163680517205077080250928505641392566237484496048696513829900874588439277931351888082081321816676770715023822368214570382820182795727198812090355788484416281422473002605948634316661354775954213472642614895552745200104967847522423390677667295544909317566405448147579700270939304534179243064967265016609654140828350697231151054584689425884136633732423843897282393083253070558813214951591036332647533790577866649633879692091383959178463104953848092484214167456600931295236650503796390220108627362628301516235148969608569411674956549511436965342767415661944468099380325094343067994449283222546532282004580214784829675212694044785915250824847789878750392127553317765408933901544506505183375415585165882662974604584784150909719175220915378890339904216090145487967865654329641667089553198651646768148006737451476029492038079771620128099929373951679138770734564334722734730922792968281563034929413028989178365481979082202076030568348091684577993304083260488466009532531572958471350669430253447888334596855939997352052633781205707425656734914813549821780983061280722893906038628102594865367049234010738856678047055891148357274045218217409807902416961891640187760644375774211796118474058326325263997075910961048122065949910473977283950728138759631283309833155009246852679946919796508041647257191562789070575154921649627590928253407763524465991732826758568492480305971300305314172286790051322553685512732585760372110993187159002273498705085330142275609164937881632452926971254881271056652069024326158559940271437077623979058925564959886485175397442220068414731713296937190881877186767842295907631544142432997832743648352587959805811291536496881360332588165109276828873163404262385475865417647408619717093324485836141600178997185828471488465250436706649703018530521273955494346905317307458770185778488418419612546592717964787351103879333563752468248784270885805058738066897697029076279417919942543743699468721687466879252766604387295082746165948847615153270410592625880243660890155274428664049199016106623733761259642882996836692745898225039371916386024088350833065471458404632810717589543672362954954874248861963677352059317883611554732689577409939844788225926932659594279814828181007845999753236451065039808102415249633601882192367551108546594906228413207649589013713195568770692589002759801393573459089501434962379113831013981082155385295437725624610902819344332904997722524084853111720247332365980558558630484208944267473373250312571138818305047249052390640541112451754257279273406091163247792964210342649110359406981540655168149258537365011280078147949023502763600587419741139746390796597910464614942430319699356844234668745171597691771115353044487825984524320141313142557425030836643735557640442311921285474235492144295361870963399972546437723335264811537628662782330342253787115676622417974631006221112973027520584225027262702004020781018248752509161144311058769227110225719374221238726199559991348452483622329484162615551864641747882685119692385307637663943813800871484305223566271470005172843690719222722050910477380525227814248028474455108553203425567404602826986298249761948592095842014009763600430286136308221884674396123515175262387229217472082697912739702601519470947732426766116823710142524060890638132121231191416390041371101884356881848884920663182536545713778937078993511486220641252011418644955264783569584329993892851148593517704555388850916604372249175313898060899844649965349632873955938655011174889555433161807140242539420564403993379588659455819300861299112066907602673466612921516693349227975440383833714810817054660356992292101093450203366727265754304236904372092465317924009373916597016754809119055762577116387364101369155905320340256508339897220305465649859326314355898644048801225244868865778680902696552525486530190877877153584622195021028181556487742445839174344923052152895656959194226919905507618901214282447146367980503277728599107130202034511879071506968673849307746118383577200727734849366341360939668112438277112584339806454597308475857056131613914646337980329851426575039754941282039673690509578850980063342374472391972522228174612307022572413319004944774245743442779410680040651379777187442340347319516224578808440388745663847227461281645881024963646890071162607531561616854648781212715584393282520969524308306572205393151174549855401330678896135945298352067013782862176106093236403013896466424603894155907432873364869128129966779389106866849055966718144510639249745271209679889738185926796375423274502755660142328871284688943667117972322629559279110103876084404282665444220331873985390139125805066831348131297920239487074078607673867432130330022128219303714730220179474710322798030816863461506641143913498246969781347422429994604042990437529402401338951931029287575859199345315304066007977250176241120216885668605102185470522508390443910981348946989062050105077187672181518719220255993768144057154517029297582127423275381226284402409420166194325298827594518389998801327902010482367362493765606305284697947171610787321857877027351352983100926692992299657448065084215349078425942757044033460663419967453701911454898845989809087288496545793411416122375274964869229252791387321803893980837898508977910845946879816682208763137134717457187149516864087576633818136369412020872841218717719851677742663632777532663994487015859111370867987397519796593461792471038931711597222157635432158613564045830362008588896402782600666644636795447021806653105411247687614011655661531351921426316491322085869284676413461642338634980083098950349410813985238708137984315555316822342144336679595842917293662036392842416188471138522712943707873393980683154361557983564861553877291167300967631768585084481521193581928774285538863341772979864211018102145163338145600321448872148057681235801188561062996700054738569768050241369289292753108691019022924110932032482015867641449389074701206675193410614150866542842968810281127209025386705045150147911094749943296683492061503253273525658501991079228461114846811855983898933519686692314625964406539430519566151894452951967267203071395233777897773668612656093741925448554747701527366699773814340964781558821336868929175397394808818580063169933607323917623084876430705998023056760896271294637321838349164612248313836671046409811023227721971666769082223078218234965392761150651697429870239726883312312228700972141954114706317824583270612258120704044168787652932615524845078722004874485361884083417758404849037109654694159934260649197051926247685351629378903520636427715863358732005556271267909010919165227007950896081974537779646239859765034728237470919738895758703972291438063207564592468178532932884356214052483284201195109394766080001746845628846510121609262968084692279508346181473627857311054999037083883479592137406974020186515570964579478764233883125528802425052584373239456095458632475446646472526166285050451472981069988944145065073243639694323655814863750279621333153231601662860060081015714302335376953359259439844544392136378943978885197393922923805944150191890687481161457095486350939928542186044122034857831704269764357703135042544532556667543709611085022967635297204565183826099456040440368067591409985312361205073949651958143399874134866471404961773193759110190953141196644077463784440713567929939291365990541397094941004853178022604752504091945354600945044005761267780151854639201518345493513106175211071606119749428216341499811183401237731598379194322655370040341144357856566478839100948062273316963431415167835327305956541652304623414025219114905349996348950666792704650809471791020097502936326624865521639353433977754661493766620846369190638023878243051681723028049315292685677331399473217476942090215768520303879953701830042224977553916441049183263863983843905729171450328757049120622305384566048337843615562695580701986205684824728876253702227054233683639464184948461900767928096426544966052857411324149191684250522887665085867562700488995154675606500258995225608170496677504529718369221490580127025123012193267869982680310183609749533217776903845512477117147618806811950212181049979977065552194469947121910469613405152874829399492501906325770806002303647739084935615849469255999823865019785104582316341336662639571207063444834201056983348731357010956639594401778530788145873384003438602251226084970530908421144376115343854900875536815744660817955649020671940033120061238901704433328293241243676224406477393080688327862706919844737585464904995569490521231366957224921318625712009020970284586699716498235910855687986959972105830210213174080505559331939372021156744029069868600075975055477172682286950145828835433901180340839174101561548117688761563126831246017176259475091012999568418204793382551059420870448288447815359709633421857040892919708933073084898998443255035503235191494231748181926327363758277337436956454210185199087877665282862997422654467044409789796787372207612306589379394388813504717983016405119004412667059792533580036624943864187143968334929433031724974336097235011976170276595842336426773133224516214631204874367061161181786050129493701967568473821406481895368688037610268228280759458705739221045091758344637209267261772259069505116179945261469781811372701733987604465366649617512228101872241716072475392035363027152803409330383163386540503004159534759282283400265787894853812272666052088367993212269452754606039000274236794798973694055748959492957015524817979978896433698311733123098302207050177756532346839351650452448907371575307359372253785031185340846695512880171934001883397242221005453946235201847924601579361333564545143368685243415061407310582262907413022453174371304172063319521625246799376961220529526755541586897280433935662029973393811600105644750990251348021526535611643637211063376920399706109833910442064173658808341616798783519331907433146719480163252261906891959652774373401344647637441273873430563101114864670460109918260923303880799873208396150232516543537139834322261515735474809196462090153755664035151992355312593222617545231722010192093101142127876689620624266525623045644857208622778541628904214132960424892721550449298520998439338172579562968305087974464573557904647770222437593142111106025346865059289994883959848059366699180355407770432378310804949271182788800849319139642231224181175646654014020242461906993321190754285588745664930137694220231259792138096453174943120441614902600053041231067399911172223995414036358103956676700148480466657430861882151753046230864278118041094711898203955626588759606531986023404695804751689341671957164315385932574259716259578550488620891715027312146377636180663745704907125009703077957459349686789856370622094260859868601128530413307762763922148369836858862354270081487022337401936702270023193906756071797272485072776906692625774419019758595245897946957807874368169432306230226068762357807994387053058204014656245488137074276247729109134943255576500879030395294800801969170470560708793289797501493796156025525565662063452109540295086138548212232935114855503578232725267415592488781358799262467615492043858333232450975988322627720588278790705401677346017841877715530344706237662100369460149159773462426720869676528326297883428263340873237428428839491583887638500714665217416430943609362058816741671143165831495884868059832070648571458802323584794612457147215384009087397749634365688403340644106875878255939977652222853688568047419949239321644568158740109102326456071201910622462547355950045110090698435568037518098111412579141160511214016620819172021794216419484395844451165589014246481844611984470052933536836977535374883784619188298271004061931422298070418299680251382998470503176409022559875713873020240816432092693750719337308747712041059482151013155890867653965222479851702255106281453473439882226878536836885078756204509994619888021513354412471659703002608093042507374924712229205064408379434473077012525569028637325797514266020295447197863713689119444484502393230244987996487836924797265632181143276049236773583195580030330450623535551263027679489035365212476954854470140217056043299763536778216581154798470869336265611671666192871548812739143311499803783530922477828830379530488712350190702917639212616107050297982280052706280313865662351737650056813871492804278648019714532561338815391180122229220842122750680008771406899810210900467275563494495083044259203350367638921235078211486332957894129034004948307551050588336385150215008443755552800002566195538268152359951450542125939840084896053538464542930589566105616741243126689319853434135214550849769834638335840500369346977032115783629343364075611240994628707914375419866132063419068622884144884455138723328114912824030014834515583005063358830724756433718468094655220343595783360078196857989214912252621851910538341952133516560740281663961628265573280867014559479020379083228584105220889417586365020542858994837727313544722918371940381080055962380560703032152757345587531052132358759148980059006021259510766137712594713495185830834594650716225158689982676518813065975390641525415075205843550820113123209095126644205782360076394118855888967727258315714123822985999538725096890506973625435266506434319609074776153667293052748425627127066062561807671575656434181037065313488423387346970668946898231271614249879772693157620457470141267151365995439813137450892448187871162650895814166769071036783642605164087142253459414440338588913665062602891587570490797420524797769211420332030677912682786386934816334873934263236650344736491271107753521123608276879902014529139703372440437592343993096205309786928327530027639683340151307268917965610156986433866110943972976883184536165281889048163790004097046828690794430503134186111034675251009828978758053131568421709352711800202064700487772752884877069172011539577823640551667848166720975034762392293265150053490336966849186985184829000717777938773364834308602676792710831260126328675254374540111522541060217374755790428629387975280778582773202325059016564989129901506015579257239403863384940752747696499080297866076256811419790566520658156355296460187478647853584457698615130528554654431588203042858048650458324978014848791231214781290181058079055331876947587399044372710716103309120706172014355695419519193565949553932561374353711672372647637074120484552814218447849382168018154485810233618915549652460786048493486825822548594919030057090308394680926278517367935259105812329120257258892149008507198490295520014660858860038546097644861891030171608569433929725213394212168026405976151310438061197096038878194202481184657222433936085976085597726212020745712563831348547781490664424209815196195836506221538336794025599977670008142538354419525354590333352227608451948517463664264764107453137057376601599585886243111830894965176849081792019044419057973949958448403510406830614391571964314594393164819809102274897809588486596278679882212180368578750025826946950892371260348003472766225926014698255767682027142777393494251793654535084463964027799039057499655621070021778143213857110575796219972132360834779226873932109611552919615068325890611429816625934496953878923118227722544786847787752682562160050190226282226422883553217940894168254956503779952214410067655261044890493925185197152095787221099091977535438804269787180682114088869598968994564941575083275691895834327419519025830679636366975346718634871491231120092198916249475721442897040445171172586129442630136945200240341296160352275520236731253545075935465666410910568841337444576143123865027802676408779039182068840067605336180126615534944679817671900657209690713513022815533785128098146375705640010481977892430092403256910527943698634300376903082939487392531602077030635236603223618896015293382795094860571703121825218967080881279261653472223696786501244991547376317843517877147343083527986532881939107126079406540827680414316312437370906576743821320105297127334642133563961134244628280513797465848728718571463024790725139910863643389113780118611208690065429857276352285834503374540729603971661044999410525686576541012733822394852716573243068689868842740489013715554135825105007614463318453680518282732563553383820350163219997812465338346086951463359424503725423312526175264256732597882640851949277126946482477680976352941012557276937171581837533758261183148274457561574561081340997396260904692386369328583101529484575027421805294124635311528812356711394864902420593674958303900681074005714966097409849543840976771428101540603649922136629341714609550822023611482876396407129941239326711181841177675023275216058513431815101379440238697562368166529605347168788301968197628029950248436431694255923726162912499185669824200145746729117759428895088963639645397852688218012682198050594539102212767540684730384872297493032767823743193841301638099375634579478453226640586410056259047913868687457229876201389710276461440879153639386896106001418229686384814721316680070146979260026117597801773986084490362562690019032167533133009086954575380417039245242206237320403509102255268665542788436782942872954784952280797282606325505743740384944680225447337897325303291481421135335166438511401926588639854582423607759980364007102991336863978795798586993325297038615529955185985503388035897521503849543166070119225903002434390019450121500619860765953973945414881872627718243840298300347819031268077265354397261771451874623789837164878808614186476733054805120211927156700491570537849208109700880295151104057028771617764758360466253490401399793414198278394828878211698702321384460141113557846955089403040998262081531548947579339892352122554902200442061608565192519730914815486016198525724172623618241352965760603766932802209029465958785548549413715404137300305505488383621609936997093055514510077018371427418276316206920009752668424676465175830953786066884060742584229603311630511693584718163582419407586536588412694841454770222023614412515081638743796203579842325704002763999918510617794633244781597162244386236335414756759269612843154947301194377227962956456414774589662900168791233210036810601389265307967721941104261691046456225927262679015963954264944319202659488946391162714156352940383440009865849992253467686235148000995781386388130984834616838153532926036785135517203875604792364635387978515918784383759722031680187493642861265612313158601242901724001017705835761892797886914952275633934039866310929599783652885165369852143102613637416037907892838238205211241288761569957343294811345415828596594619837933171943562303813530712145599499123533276915149339683710922355579553514261410352666399807416172457287414251040886555169183314622176176502444265095642836664740895551237457720734726904170852286246383600868917827595054037721257463357127515516282775238279153036818899820456457514768115783598155629454505411917520951871073440560088882477678896398319419270140021942551041677850163987959356801648108350885696594536061576035714544706894511735707761243112539728126334482013215124640384080550701765736859638920059851280751048673343602188511790450242937792147946008633432975995416822367095308322105979813810946265198296901622836673755663836494051016371589820141838569323925883199211200921979496734591673327432248448236817198916911722718798635354229865267088830545754321972957623491243466371224344094955989639586945168554410372674576536139463166817326031802684356405556535905415552277875157191658681635831782382076615049404868840902190694714463653295860193145144821985523637589195912414449251490086798104283902230107323179406930417092027936318604706928495667549377308996377407094129610183317262556156425367107310452229116248299083856035772382735325173265020092980137839810003637554687728316458594323022300418268807675806460619721637901126197457647535365072509754354319703455950769651412242759198914496911975046235142675074495222377825324906142935557195426490187190392822831606218747584221652571249889403282054390642165493320588219285432599725178169089938697764055250754280835249049199025860762710921231860551022038111302421262005521721975678793528310341314926506304872365953413109424842280843668321324944145568198445301910213503939820320990005449979072028744180666783628474728709440360496210925028196951118698793693749685701234062866816627183710121960536595000502629702284009947593024506080987079503648849649181852103272038959365042804869014324862228367351500632715090990936235685424481009537934266084647257967181875789470474878949099019596845597945217635904377662277930429620855953920415366470875656850243954984248057093336643013168142418491011441083177519820319281578517940752096439363594859716523275888451606721752606282925441309103353352904048124318855922713977569281030171974060609465671284847485477597330638889245548910522012738152110139569293213680243494943855944097497369789890819693314352718877238259367956653439051771367728733653761534286475385325069849485147482502169295659638016327720364926019363358510567987991377675125941946011079852112317044112162561672125141362989500869708442634042016664750781263797489288006416359999456551464550629893399693607731788910979937143875289922330142980761490643407060780481706717401828651878303580393417239771000661531965273141771606418282676485201784550371473257455194501029842570463112248932389794004061396804312177353630698488511109460768142966263170471569603288369744377708245505030031363867350971206861828153811840997239834257031029483009141257769172899241969106313226129431675829690413635633842005687491168725003468578577364968334819389381244961277191027911689556443813764758191894375592661244394506973275075235944917683899069013655395910786562071027346366540835051742442809126823143267031634930788418811866274846330038833586204088932104568382564980721552975352295634716309984442980047704209770151220776112594227664168879009248043795207188086538632939135647503732801563122091257907824449263528626436455036891875740815820426186854135927197345006141213929891739196284722092716991369359906400293332214550130102288386297906693668705327401192780453351811102960255191883148535504843069761613292998262653424212352462339362476680732296799508012326461676617516399744355101987066031307255512859931541010602760705621471211349844016601685084780467855769856270756978491976890481814011157924174916078757308076722419845209011396997057722026716321114913802972311531051467005059566999954178358654990288567817276159460979593179252822572162178805050563625228924977639369249353970590153976492052130529674517330749271597885914649687637157423500434439300689113554213730657708261096193031563455430180148264826880326550409104772393091323298331792372658618009840041607252104544536203601522213716351305674693519403091842531203714252909270389481241645763182657992873809625011899980717480463883436746723306432846046992459927822996690008518912981236592519253119374135336367134422353337292006973692851569903713104026037631334362524220141648001537502116928404189518003539807598286717289918092054525741390412849672083497886813272309842942093711469974156974917889276762103649900813712095032765446302522327635636054337606736499531282015127017994332582590454698765096652637466600925971789873771634234422472455394167612703676955150053746413939758272307194004130564059757716545858228753216426015267670492983881202446697488364615916133162051600531648041012929695061007322264688629362248398246021688511832789165208950574683119202054755853893273298883779910179860858036710503492007828361868258126068549213041028365273864247930428347312378289851850725038438305623735995975559582789741689422016797414371978758677463669056020457535565406817679913132019694014353759055653170195838953299616563924554139337907567720819158842124458890808861724945864737618338194214518664424064043603750046029768577321103842650531581945297932390137827829329023437574804847540800190094964506113432227963650151506945821744883568013972493060879398739431147112950707115251857597319017019386256378690908686479522355380267365311326482652258240428628966284458154409493468026962756622749936824559838651311607471592512967603716027004639624260227374228154526127325004097209421822256058506827999780775184672570307470924305653361128007911677691150777930429744860888295348186070950369024710717194745532556960772952117101357790909715099700479220969990400468770107367060158677686367484255517548817219085250585026898867803814088994688092583839300339224854212616103385401211269744037554502242747209960354873032337998643329050250255455993874344107152499978468455980124098734249727395052660377495060380286716462922027704857626261827288703604784034572474775281356235915781211857522054358098934836646174367452473440591985303972753465818136113703458093693216758662344715656532700072471371781673259146873265317311888293584780667769383021060525725264445171056129466557400401647905153516583748075946984958985936755217654569751888420500986899918008746773852576633036860120160804469495267584865082203723163293085007454659738655941050874233674784638072776290127235844881716543047870124597181205745548729738225671298283945181227612474386481444109009831513948758461946848559573377684620536812488132680166289839026736774054876154875528840337222068854631110764317123282454605186210908527528670792590706541900246403647116525915712116407387229067524214266757279174740579933943624331559425332576939464062649196210577180696514029921913668490018108576593917583785549937095794385710926544676977642625047422585764866618158459181361896959135894832391695350518797750342169898867428634377024799723384953644961862847080544810481187296057904328032677680553039231959169368773033821117764312283020376404567701654121799756817046307722634971174945224767434656925329311345272046465003966931160041364785081174604556921268807228119186691184742013865349382856080998923047765969816730980950776886187225255640385080546310759302887628589631574497753160627336616064138706958539713610437243809843371161544346668056721815872481094826037901660106701471879625737431306789252154720653969114225287654100102946486733524741679128265367804359145058093049362025768517030263087037968836849722937853695999070433346802559131646233201754079049051402113150080413805011925166403541787998423376535683600428171970626417298852847878406227818055433282156736252208907367143095848722342309507790296669185032786177927280404729273531095717702890928242969167664752201205212543307997317192679568579937061665129530499831428856547395832706782813527316353449036333864562111306575829166983898709362790789834170044374579284528238617538432534496299515674111793109753551791631877395798313270912322641760993505937451753584450568485214289090502822475262132699505848035062059927309789726503551241387977939991016530917571239575158343690153816721287631219111607050922687466918503334724429978915483551975576433905191471086018285468403963941995193385159592971199952210431590151460941486166625127541496363064218894406680828423192108649537324756316873277636631869133914241716344559489722414711201411805950230760026091407903157323785955485688222932131288334323507735547002830890625585288978491069309487088792986811609683032098821862312267332239740247788479889538227878754908104294718431193801670674261885463661780201917871970816627331044869028531606315164165918654531523640655495836232582374605099614026704915009439006957334074474045861529488049288732462890958603187897181927078338188902080146446509119113460693180615639934778663315186254133140685214776057077591231507443095044755619949328873666932303732207616267079061168132190575911548545351623903882886761636906133597238938986032165681380299192376447925545584996675271482364213950543702999264275430207425756803100603940950082802006685640908076279415450413306294706777422299690614475634005414542156853540966628318857327398911874992272487813946338456166337898053841337905838537550489672557275262174380666962659631168762085733888581808488655360463695974889493705930953314778015702996093242296828082883837447485344689011226726714605198297985847978376189153640230448485402646940306937570921747957573017971281252148020602296985137674927622437971489279422360364635684601856744158282928575234396679248260174245768415107169829738423608289160259810559233365684656681411050261305291489999219857423837023734747743466277894299631637004505159567955941830977966945274311385054629407083109613958346462255853758952929522068197548096541802359917752612549239478682608976440024190010429019472746529540836288435988463751288963651066662160824098794061350418873748731481277484799130547117072850213461183218164603717576380301939395721827460134274531210830192607931865498961637204666015912309373984407039866835202294283615576155728818437357750813120547144065091387760019946913294244742143268092373156860068691835515208369595639907662519448880180935356113302020174223752254571816487201132256704154121347204937459098580926674199182093219468243892324520317205978357712819906145794430965597619099715317401162168457394822469260071180538608963098784487622311987598527456271211633067494415000584295300729397347465693808752955027902953068015176163004968260875301797306979918406149924413903460016891161622893444579338935530036121345347433762803465630670905123027273052334462954424912291060694934310495158731886997681606344248354711725671366792431448679098438114980203629981612208982231257491075515886198019950994676261165196667637139990028839000656749529994685594984201244598789759497509426176806248964970012018151906881890302150122387995023892119770265796882272665125941150094494889277232187367957426707970415066338612105924067671208986408560905584342814127689010556031570178358206184687149440856708444320990288181852281111096457608580203970911896321171278951151713084015495826140634232749822854071887205812216454833566926484621838872266487206119716364518623394396592536984324364709018169692360356552845785748920345695725247012055684607333035951337041246318455520657997727552235156505127604814523229218211402963524928792073642327551709328525226444470222259964223355490022853454590421912051204981104737114721010069505179333624203295468766789093469927639105933336200313493980093295363555250618075344464559685540810120796450993104384880723042728553400694760832003718306139938850005571535608297198602855482066850711066446237702677609662654379724849354887967251814097578841908044151499620291630816916331036312975062373413996801953191081448548087549913197630646868089241633639681162101260185203204956736673145839597373120624664979582356951298297011817220887061572598424008768466068483577707859863927761587527216583128755625119602736450298921602742870575750105933873441923173940964480237148340151994118050247864123514554181156916314253443728623223570157779413811161319679341172452860721420246297698945124139020172208883898085674673456883635726547350928963552291243692476800516847641991862111177292506782422242428848933707763542994820567283949313215125991139473933906844723041562224235757073635404931552501346880761710201058490767485500668003185293193767766491716299951543203821487717050364609104790613841033725832538523238627060066725754164883095277795580193462064302909304041818460727162457628274131915452866880129705998143169320958004717815653357094442866167996456783638763323562139445813563783060806291168833491287049502393838933647631251786508091438310680106722383903620932780377737360572177151893798606333140093201746357426824962832341370889043212093064570761326668520801767061391612768488911590806278685191000735902474622757612058273769982420973429285149018355691701281713681413428134467328084458839052098134969992568644630452934359186003648122079662693483505673063705871964832737673264966819568604766152043883091541836121221920535546798077852809718260984045608555237001482776246984344729324583783189688287641950310754457922517103197370412925426586548840869722418616804989675229127896115371105076473263434173745081072754697874939061173533438687648101341570408510019927326988576939730725860094140509969991246876050037455247791725809200198539861270530042646490693384947782197746133202772674536459410282262510036968808626170641096863568226935680591123044529138433355573879004251496004716072816473431768101559930209125876654888533535755133564740379000783059412054582538450817396027888099066807894755169024495474422830436015480856423427785565526765034919223496356517430787013854481240344384596343094620210875958542417432233029642285672269611333913135119314382976566778743547192475154578922470029921899518507676212167432848948220530934772096688381114863247756120998288580580293548854724747493242068917458130301276152096022153428914614221450300227459530546625965979136206844899570766651138177061579209672057764904850771394462983210021251014578858175832108674958903749945050003072613716263354773076473683764373977198116622160195768806342118292454946563274632340605368281908675892738568098207512807150815290431430577920245357979321409674436198228667630953359128177314874593599921773513246644115706100666993049973588248046882253881741931983111563668155139014201639631320123177890895201146647570447906004918567716244618094950602703139691833567156283006617151594240961453959264139799185294899529104665494342741492460421081441199521094959236149397671038040612295498650906024979086937342440322478649892206157763385308269667960140361228227106629699850638995284916002248631717581581902460111311590870913033679234866609139728466657326240660519268310399602396574784624449219960827647027369587978105454374914049076624371346959304076520917832920939336836752867986041173304631962918687330216067483103905442042765603874824706137319440240419934983861498989588440454160787027286689328797933342045413782878624883933328546361716303288729197579160443851552480188842929295359669777573008632128099915644648555818823210634757669386743570128470407635984243203321586136029791395425925616493458818774259702730996131784192241534919410470799063749798349384189336770421191222680371973299893296400803754195458052528463197215655095270388431828954792639411049765297354119946261814544563848153745516609865375640861330647660128027139931369862566097752724041696341168951725381458059977927625846106796521010263352029110059551334164089724571571444600187548450978435682432237034798557940006921280045303617023127581274300315338210836239283223611163044986899948301783197754451770435063048692222354635647116213110605161970160637342350147649893366005134203484137062529978760842758793058808485474917116271959981948066415039252352924400382907153125883007854469553914350156916563321746184886591038879227537443288780718024612320614842362062133711252648392925147907121724296725568435406153082251795558497515132383447518373870431026727023951507808517028530890823011940339912088991916351616958445691305674897057015886746059468787382119970399610619500423174669112171157951052327322564036371275932449661841193253578476080883017716541714790808858190114366463057047994789021950796842378558543625032457024942586652939537054323920197916612992192095858267284156099905890184265640875554242412011862886776079751756443553872786200083457263146875706887771624923548022913839003663697743636986379036129168847569705762567964289530112545455402201705557612324217543746153423396187472270886435100568815464106766208406914011173229785783490417284994534462625807641218590411939700459134880155365996911046780586732400464944311385555475226064426030160410787916848742083491073007059305462748911259330468325982302078656508027809007573542413204909486503629737457468589361563614922703188302577329689312277641105074575691316037267724658607071732020315597388125877614054402309874455925969102949959651321881352100981347025291844308349256158325326671163163470133927154057154975419650690455867515702738715432758887298086663354548522053103103459199423964707210470289974412110553058180295517823256904262304497522682209036441569955937571748022939137989097588102227373119156909821023433224431189976720247845826861327280366062155860695461318408735893201973597451715362587357696478530823299199388854232438716005898747231590075798901423900581401303685445313222881486324499497618553968645787560041874167100346390725357521395243617219233133694585392148884862419087396752273492074320715806523802645904649431377813791933319702330129435996191661597588447356932272315364466534389744893769188271789256396738244070027574354842478608901377134862909106000949829882020702003911966275762489572788115758022753769407411905247691828508269637195937753494197800513004593493251903776328998966107377317522885954291666013504545668708640262333610623543501162456526141122565507179595368697783899128198811439556312497483785133767141723465202957728004123844305849560239414289731629693926485330741131635256153418806421661789092535943418819592858105191596619882876787670736881828914260415264619289335365429069235826379220039108630022758227090434408223034249891568065430805216908702234674757045592101441141071558824211458166018990721620164255078619284610794242576499026692617253023899509792391239790529085595115859195118859486292659888635034230155326638959373269147609416750214982922015544592411121415023354825711225435767821480488737208002352726103512557441789729642648408709133505878742433745613959159129161553852121143022732293646060630881978471294733557099075606170609333554826756227036431846443488389359148443577809946870053673946263950347111323872153034768373930252614833619972554530807019395679584013349966073053272264670680652726071030305098338369690475340024258116360650178162063034173072768840182876161003340534147139307592628106427794276762873065873212936659741640138566999165529804225625133901823091490790929697438815315443339954422232372728196349140253748684661196083710109254603687013802374112626355654309072677403513644737924025502288094436160577925323423308406433101525026019753599297008626634290169907145570511516111333764845666325744426002168688793394530739856430551337822553783125495446391675505485126007580173691992201299781065041014400236740580158969584692818452733829084669325904335432899971023909804642298858333530794684851034248499107906147160409770210330581366111285256074483964271959663111595887772748320692340608933906713617280361735446013927032397636959306524154953958909522355627835381589091985773776914085720598774014143737743430829491602025359283515893031953794669975709158897733395693820188884794318797356680479749251098695374112468474487811781761968944566869691378872927110545738260896527460817935386575515924884334832350546381483990078472705883840267555200914305446333325908381830256165506652534920069758885777686701159193979108535959986251003487758443646988915797066289641368779655262443939657351694680254069369774268546599835504060379645056354184146968146372110090696084896419300379641275977544515008536783690814114908760477058232555554725207394137622423426304303327004274329700593775049549648644182952582001665270627146720679644255639955209995319261876360108222032970686572766457876810363460719823488040540030451579105760988395027581984399486214152411936053676572707381941957321415354330895460678850907473024585865644120978852368172053056517972994965590857848694715350974948404714780640121270709244746164725014062308302782419992506529870372814812046253540275318302584527843027339999816992545836046206977244377402875316201626492641090007179719136879461753490025712508412449261642795376242604058389488347448367223428182975112998955006225880823587912337044559085127816892689673784412068466415528972640900714403622364881083093470858041971626591486570936768341663780573280212911666534902514317922605294870551608647521287132709626766187825512485664200389265499630990052668753538410384379165402954473626016550185896148715317241881893509726585752286186563578105723958266940042039231965522268250239955324374001942970350445875495431609682157700722323703484955063368801970595064862273922020505719305146113359901704311758581180561702894733944617775342961978190495187530513946214609334591464898445230856901912988562315715909957030958990357312813238734392064963307089261047729576857795023586368403732823769138991994005825176595940865905042848761032762886500483627260119526126254023180841304160883881779057075380585073753724681089277554293237542750803383118135405819398745386328657852471671229063354654929686960738582665039617850917742456679244502523968502406235999681061526079324473452409265196703282993319647063800712520507670555019289232820428418173473401939031474433462042667959761903268556212364730518047492918455217534866548634252626741048826014909130780177988275450058148224017502615612262736160518412424951048070711064539027887830541987619773113443599646709885193507205372431748583547578356682545148244871335166110634609223393990269127976682920202572540678758169223779011891576172237302523001161692229293778229480447521779997106008769027818957887254570623104066817870033485710950597467040053425820539934063193536415414348193529644226496761356051990655937245024696294094984674145001434026929167636091743914628771034206996864288289961458066899989302144399895904184596325442413952398388660567947492865029223018850935378314397573329363472446329530070055925058690334136731696569080269764812220311200938841971243023255534597292957767992330101463428600781157894628743456549562061165914058237682833949517277183413308013662277260846057535602971310283028340009709524168494805828995839344559880146654952613088131606769641221653052167819092044527777151192986232864840153517731273824313406240789336254668761219578797959471766897456334884625113872647347883644919221708415805086561752386756601136277104874661749014553358948479846160306425299938265363792845549299941065997355151148929993520027991166438445501047313212183139153009935084835807285834859722509740640845984722711628404336447532538906529727087856970235156248431251595875447480674250407065719474568590612971865940669563363335947306852963422685787493370980082062803485904867731182488898917202497748937547665287273989085987021094685424148694347011442847717251938188060478797825706843395290870616399669035298367492212407352221071860854822354626587875431879604726980874590651112162012889106015443125621511271878611216054153192103960431422313840489230494339026123401002567242125245062638289135870762586965663787509113890219088239565547029147470388293412417198781200068774387324765388868361383349505676016439648856707929882678490257573337238121158849853649189024009658669136179176207250302376514528834952872891647434892792835925085688920131563692567200714253379912119828563399751704237720595517832231433493221897637010707405083574300843374139231972473534447852272185412768823933622598190910036885446259915897533398334944090982305024129225775195287811409466099648583025184679392930340937395141732253137222512159539364177743004776204191810331624864385171540674165281353401347694211964876710873334037387597222567459178206005344231931524930622319947234677305894456671583685448616948268533416508463654916351108218717487104425954584052684810619619667211913078516798854565732595651584598117830788441246862444959448732032597071957368354689891095011443325819848806064493807461902963596538106987154373518979689848777909002942996552542466798272090920054041925246820023415233061508962675208475651383370190729656330021995585928875450008330941392778109460645209058892417446699037188187831526621957343947910947268188666748800570924305968152132779542613750176253084491536423047420504906855272159052686313757044042039392091471255991821381235922578403335954229271133943164596708756461538411490035292714338387878201386873011759722272122254814274032273607366433309059917592869566261074129824313476071074299591451974645817709474350711565113826919601756186419947175307934319800477706810695048341577969792788541657388621206205600740962814752282170463782735463860728508860335291487763359787266231045717428486798552894438090398244480996686416082868437228035841797613446015522591797305854601855587913831569845549182932439255401949304690828825143705655785467144454592353819526857836584418423257686250524958505942022988971720046382526353794108273605997288938512266152419700586290273961955230478395571336393630786512001256439458538788344061174181577933375936295671175496842517480357521360099213648386922229498755573570852714985900390621139095889080805231348219393906435275918765906444115637206618113191871895834187032912819545367919710104919361201306188827048531623469536751799564288114573191474004988096829307455578563096715530932134391303457000421353829265691112959847489163854655505176037086472343453960936220933709776406743859399026446296273921030813570654141772688806983856091668665529073611823823027632526967791142678378425748243687653252115711878609868945228006257031685806296362647611602827926793550797904166341958342180714368833817511312030051564558557670501705227627485869782858946109378610322047741346382033265432407525540026621620160038747375202092691569857548444054213101454021052765340792583742065187853230300998476324992482523879578117094863384480046705009501608887697921993071425488781755880166204801097238973507129905078568998707313901307962233724245797661125610473138766067579687459130030800304630685031657183746624535227742967903852263978840486100260826557526495827645092163497644940941056161734345290952745689215185782954684942275583769975475797526260387327518447223799222496448938405283168434496537054141131196338985995935728200261422543909835654717835615476197766790734815864079731639741226402860570095858233541582778542367382434391131265100107686998287570717368047609675698568976604063212071732044455241547977258533505918958304815128119824748508563658508991292489103980374565269579497103825596671570542036956165958971567896803843074238125979256650870467249588833252678121381121501744127403170768869722618173960107536471990143109984870851891768449465563659338540377318131759157279879915029662548999621405271879701155677680215708258508026256181473973375564856648253548788520486430882795327593732254684742587362395522519995221665243212573117742786997292384876361682002167393911632549669889156004912920828139698001898226156050148232709579648646456716011080040414292869357287859093746770504708667035464620023248841842867682092967230593931749005447234121990190744825796008890572282729188507844653402517778381634026464712224508867319315142640701822111538882815908661377807745476674612673808435213964646741253837660378794180697342031362102335507420992386009906657922983624925924073067459491714795172623303377046714340772684224134328912889965162768226056278035947140945059443027549205018923903326299670676553059550524395569510792199704992410071139566332923540680581595635886305279782382079959279342165755417855169392893915053373195657926802195256980357518532623621771307771075689636445119989159565472773535164560874525422417377536322054218206145520036141628068566154390449978910109938569541826311892876590791044085092195106857785498238503955078061235430445477813399741322606575430404045977931468151551674363906434210755573673036806747846882836611492264008295629566060644983761322961365923830406124498252524326396814713440984471358870029534613149696380572852864784009571599687814545523294782702321744674542662515806675368380094046088938027477076040484640347870824683076872033408322278441746926081088258525441992150780137007386552479659909786575839472592784824749628640965169222605326499420138025784311829209981419216911045241037040983092116658073672994095034316158273569517684792377103500268054782547710384039580938009144729747120411960161368769897251255546041355033557107056717803882113784119604752093716655698133607048603107816734180158873218213825471502627269402889931808137440478056036282958708879958374564322645746951159613761882820840152103247545877855820056254855173657216259091680458125311592490858485759056354947172731261319884417817566993726977725733936148828024609357552906380173238775939621260070299075860392428119353589420230262138684308140085971382674564562163769473836780970936103306612183038329253092041627400145371123537593447429415244288802528869074927472474624348805235912659045388791288183783934834923625487703667269911147059887163009195760298647857151009352779992022044253160431851739775629896974609182607929421961123477228388208799762661909242590100078150738900873399955669900620226613454039703106052153273493544805983944560682145738302322620976993441942862740819844867349116632093454711892830143275339036904641698057222032810303134591395749298111598083738519545740052756781101295370330481259888047028562754551582845559829002405489541475411524747505450658595131391530835985084533209435456656519980468368398522921800753277456997082935528887781656749606785417134739221660231138763726064924653811585102529298440371688131122728314173790616602576760836151393779428452564574220194200282075930731796665059736260809958036300036902931746193295488027770623752885599643815683539072864845715760613609443323764946158205168006490499795739514893845098636606293648555402341461519648443081068033718311867552059660818679520779176919948461064104500750306262503985596168578848415109112796389459807035724897620508164305117610299761045719388423523593913594219477771041335980837583836777662664597563444290500995392429911738424263570299744553524575646965129012318512346045352508502876974380139617827798746977475130757546837877815285286001373030330172360718001033561068855291688301019885176711077698131635252404875850418036940737764804054865219989521363852598746867231757241310690619936541134344574789998975617498789020592873418642856216355818991729713838574629101383839356300575340604759503754877358463901709579108745566283518741796586191509190656051090238708548926972368245451078467703835545943812178764619127755756203417569010934885153560896771050834745574387735087487873903252774900910470268573705344263466401732525967465864022432801225045604692977912530374766169046014924477239487524363318097327547653024413835947722260158011748804398542903100455326754730014430467072982167461154716388226149920992752876515412545683166976107787311272057966483874869788288382539920811664581193933506000408802180459705050022395276845068353180875672727790323283356489783259272284606505155938364824123704326745789795524768088242899318494433932613509521725018355691565532714998889303034011435642324027287606321945024642314734611849177085208683370785955677803855210105799131751889907108533474027458687299137686608725310684361047810233225883747072814382284966446783582830824355303589054585766386432025965591871048080050447216253234278513240738152269142940656030864419763077342179677653728054198604496960263970968941407605885092538154364969105986103353991004778912381379237476384604122782198424518229408074990131019319767636276225062217435447427921022410423743938761794630036869810569841795500311417766712450072265734209222848126526972989166837646415180240810109869034151336531018913589190861739211010404222082702682225660262899875715106031321210901228683990426891446483867820863798751597432254617266077089357694405361482492119296236131969819788343917697280912338135080450834381863686053607325572468493541099465739397368179207697235974415644652907023406452621341314320479787509196234624749228278506301147687454132234260314687677873141316648981509897489050750484326505561753073099707690245487883051917519864777990869075843631548200946263917021727327820593122483636790584422600850205685156897986811591612216805838482957754970383715942900989655408001301183849549295001085537341912552501629854271444286099395484848131753477693941157182621084559750826055084000212665498409355212725277249234755330818938977359518610960159447131258852389792823358977508181593476827471459358261333861836242844666830280242483739248367320008727531538447497180350266796031543007856020103595321729333010694648572255559661330703414107842749188013862418163724568109038343275665669654977636732859219122479203172701165884889908386229392669106359878755547122018129603808191330771823647919807044007083325145306031245485221286229128749544705194791423430511826034354202252832488929214646057592669027216755092399659779535873307084913714681878258810836424202816028521209871069126629440396445860867431910716110629551253285140517800672972707542766505647043451621875428504351961200396265756854806026983827500560279215571966978538653927163426959283270645162930294010160029439648776475738080347565557054906169478700178467921960243090448331345912759294809514194319948342913981119798059029327147888686030647758932835050109950842515980024753026461810735019583849528371483024894345316923725690215719364815871650151156612195188648393006829996411411897397615408319894013152301641446288203872156017002062704361052568311918501223769326839093731697936674282402854937466640027878071625370631856088855976995680740119540435768909452136746889502589531856110265174750655845609974083244201975844856089023173165685094302804065772340740682861548966414988731728114912735196460335718135395624048968419068374647075919847680165246774572911178806329700934667079999640099587760274474483845596151287352624221288187138054048600178275010889191657301394700186534400658525326218469824577645547465620600389956267335132392972117173689881969087928275844288390921203713992347534386344756028653381787141745005450384959379961127314472381484628733566421346544282221801186211663644108401371665509759843747298183339636263736638930794166098515807331835355582095056262668278217940981451823032245384308078730011505388833015535066369116655217703539812221173396547955226154502177935077714466882529861964035631990217276855719424208064896310177900630999780858583520774718338751579799554735542990432067582770312526730626734256724045381416409803755881147794549734805886664853754109800716589224041193023889866481153103386357600190916036263525745429672374259761431236976814394703028686413544224518874533367445402251128291742778009994294137075314257261414042446535137521189744688506643977886748241293048271245671490231852455539010167179715362913298907371926203693796175550590684411629735754984093771647372096973993271882566682452374603801061691183835266260106846619465866798604085219719296444568424681138944898851923430801606690666903094430128616137904031520162005876759649703478304445851759746279377765350939155660078318285239907029325875249660900632182125400767938518135638457416507211213046879643623541334573744525271825134257403331074016215512877594982841498626494219312383606670267782511806948095508483384125095353990759658247256214866446773792269111071273520094833922588588971271729894906487301880406605876614171980230421230375537095746515779233181290967526707713933751226604573386111144378990534716296675081230959419993741835117002120802709613301656105896394442974971435208119047743170410237448759017068196330017979395718073038395655798798964341751014543348355671653299236037813238179767070406496722616524985094522288906545625994238575028193399416140468003995610457971226067871760084772875951437494770287106459508057692009291274687435536401195259205332907554568892632632353981687175438119814776013578776384057910786097239962629458391254497153410692309860751171443755271263791572164341243750206366671156017283793280931336870249719822846060490312150150048888183739310200349432311148049683101449008117529289831367303560802127982724075906393116651145625548705698299470682396941091555582486985284890060461382927353408692650077614963094849997815288433106192635856255754115766849378567356480143030485732393257928731699272304183667533755746903689376161374030204830624402955441299194491769732401453514743766190290109156067948782402497774505886412401474454245608009218448215722345794741964156250255844180355546511607979333435349499293984613936310227135584295174587354041699373437995412569928148014957987019496593371545461788580599021111453367230670932363084365052322943040840618079094812616776903527605625806966110670558374616265306952335427061799926946045654489325929045841352756298633744790863681638019595268703007910390736531574600506617208784781432033232513324699153906047236637514637507291205466122668018161875173774132634724329465186555001862209206907910537828513639603810786098855015074596484694751086348195759795615477385858382416873969535909150507877891822159245011500404642825474949663745780105850306618897497600766339147598663320318708859846554148682301194884176494324100044283521479247080129579315529673794100195511580426941032930886470518511290602851038594474982691681818652355470332175752017095066753611041358234169868433305290465415068899072556627864576883254016563093371371418240667396625275868343027790539118783860476436050550607916762521730368105698000714148642295466851159732889326339100397466956007936817800998444832228646835921722311827277499993187015469297860995226514540428189667232581898895576437311057783307922933568677854518171657399370246565096173794889003734204472698484993665401976891079653413122673527286723228260084088781090390604144743597513276595622380988774566156644063667093712849630065101903287316615243979746946603990589558648708665394148736582042494589547596039870153141111215031772582128868278073949281706817742486080211482125644590157061143469376192192929970200240573010094169459553000243038352328092384450542341331225413325609656340661652888425416984151338861295103196843794303472821225188642804258595253957464385377320342930186463696077894661682561808296367250277385983816826858048418452074888167667549117372731791852732466402711535927321018801894600928907610789652827397733188759749190578713372502751375730890328828194528368376437897954151162470851631512841549248458655056913934103898220448578593237638833000002125919035365404525291773310968399229267444730236984557145365755773002100031739797685052838030156961182976592807869116951457659882669171920338395614544780607781300581523870241423950982999640731929588852372598734908309718508617244359580558735446020335612828057157546317091428778943613905503796908044080990458360199000539727877195356652503365428324786342153945854861921618555071512672243047426953091211409959130790423497452267326242892202176893962111686093428490905871795899819720710465265274561982318671991256512908915300374163288517370758798114812755029633108739715024767349079846259289298513452922640939157910981928602982895602036419005020034328779807008325717517151456793071348011594028458790079854031240256560460014550370845962130666626080542532653219109400374395428215131483574289231027846861473805271876082021680949504336816041724225193291450473445076063615199471444260474130496029280368927109533260924983109757478699711539576898156583045967558608737483636614095427218520850569592259934069221853182014955398252335650866760925732167065835065831220651462398460568277694897073096333588921539175675321454643305464217621352143147984039710771440419952199986068117911002286118958031470925037460196072982804980364920739961110037844506523816144569201232884657507527176596992170871196518291182140458184428440153087879027506017655750763282621518513197506803683620161328211062082971234862478871273658950017535309214852701925804305943931476200990424172547884002322163390532279013827690709446480360816965009934305944931738262165667029477206703935469661634500728347944776986076062610260942127063342768672536961613210406232638594823592313205614091852299780308150391901771958027747432467416982458789189469148563502482894342687574034730262424225752688896328643268203974878341374171672027070078496932188809481857461588092582641967991533026799215149991575521479349212262284474954654427746782794967724304391942518187613707756351796790927283957683261573430124985725592443973007474659848721554029571279755176194542199400660721403419087378760076351455387131318373438899911479390332635585089745420343986060372626497465859192930578950860772848396271943761602415955099547193753657726140151274528338294941777945924902153527280431726536138420252000416650634937235358271251193390180912607480234400573601904262587160488965818600256142280436811392587114269503185197704217212900795086575965113489114226215395104687970499673493949339774113846088251720907480320267990358586134677386888722297833960537153866598274947207042761779947683840225994443530861263501820994122211674169869336542507762666467821396172272034141705134494059951987289494035168716378204242013914069434787603904993554735620572539935064919695560095631550116901059801352145106041635039294100882355273078184961667112707724452707133865785762018827848868250961421462041600982707324196079162547325469757530863978285002291994199012208497240938107771990336813825900553974034708527781548732442752761190270254686713429002067771253357853925884486361323542376699702773785871684728039158092427289331607667455764264755278358628921660021370069318502499296044456317409928257737769970521977988454946229992744665693714662788412376239385600388446848620701890580429070150784450919551308691748956146450250027671545326358268000158333740664634980436511078840387258928729029633893844561001894685511374887658534856144022870862046054089229900946616238101159690125634355786311583078212033729488112794026470203735837977985377564999101124908126780376642381291201404487374129962745188899391803027516974891646454719225785851059059187086798338084553090843442979195361468862692193038114037069103845012977416709259884912770340897976249987411165769797926162551977597036232259637749649603003606640863806302844477775906651725505099000215259534970892837411970224630601253373447569394131195066694736070943841549025085217911974328424394734468880318346011762478660870671609723263409334655269196222848518332225356862844575504048489349958074355409809938531179938690043188186098523743186762865989213884104881175084149137852157845608759912011478533786051237798968804068301960644874212011486185501726632169425088258032837325909581758802717952599908386092206109787820635128280787129523179651319928088662241542730272303863299568238143094736389876204010462405834937615586606006774869006076891721752546119534672117438338572940245391903504192723989898794084836657103927549172221030867128872952768914336997359054503639978643788469867840113559147783669061895928635576004394472934004231626809776442310759877954656831227266669071370353559666401280965353419770760864849904275390153960234459060666602779751289289921555613824814055339401518573794081854327324805149479988296870746536087736194544134059223075774235048229802087064230838848142468306172524281769355592795194127893105664039250705353271431449552426915282963215391593828509285552694762969836663829897866557261108724719486450870342584155449757269173951620781645026756703165282291014114018739516510470216429253205496336299028624728168467572920269380418246748090559278416631178222166358778335966049568517392831727917844237508270383553168302369330779563134309153497221374955881756509815721036650742197892977576911366627935119074205934901359208717762140803547722222364871135226044034813549314648548529392026013821733484124049008497879148161024731018694378178477064682343072040007186776235259653220835963790182508126963179038755016628972755355356287602595336189418005410539161486508488365474265345171855409490219946977544745794635410022720194333539477360063647360501896508248346201596843205029053617548002396166556944669802181298064430602955763652143922050308658912805907217753657115071183509401498021478054128237277968042881952352849760013241721029124431208220054865956650437500738356162547631315786875652827284450294194964582415727514457558521290025845405508750392952623274695619292220085798938636895684853783605859538629281038152505683888367090419305315067300231696432814048380863655113057553411564891912327287062613723311410836551028799294853692730481337072322570710739645508390885934820080844585278040215423157679688240272082882770532690780158603209434932609961779044967246861816945788185237561933456104010144219375767306746922021612539777800745891225669904123782665208699914633649183221887215204566499247192108376148895204547168604295690265664485173172500493769199436329425588914530210936195399466539793974792396950075139579539376122624914329696599142021943952260913002388520935642028866319124649885281401669362355807301420291238865911984383954566121038687938959582828215631931486361386099580360756788541477571641267135450913087866314986095999268354812474562512430277365978862303586045035895051934308342955826522076877721557942547990632852917890830663923099497010574907509097389797094026619670817756358449960614640263254874391945706652900154566686781602115975502923701053201670856250457548219179099610826124443257848407801400385496686572109737902897196283602511614454780107239288191678775592900534891267440556158755557011510887092034691946146499063764196583724699172551032065115121857309231683199495703915588792823696848947685299563025282503524152091558477645666336356535409311472279508506998345784019199445115332475387251846646598669037918172995884013618685814876887492522756181880772731995726105448788861855467866064499427767256282290309684154376828651677700304988908293421311539582059123503078825871731273451815085177396251527199559873647584013549442989743050179847865646787842250505438933201567030531494697071103560554119166154258381313469991343511579457461132706082063469271466887510187058848973671053202210306467754180540543098939772787969808763670072954341616790889385606938824135223310799964498727360506019132035579495970679863457772424559238711476821638335995245176899538584500979154157286641935291427723066453404837890179128155911375168901805648549322963131152855712980006796785725955490080892325301344522707615539498087925563786637376816847791009006934344781195532095347175887243645719176728569797208823418042379926715207314561105253312388282179404071454510013758296351622587068745408875736641589302548327648357469024828828082115440005592221457591559952364482192400134575189544408801563646285160579759132836449056262646249368668956247583369730095643750642758552026746992823469679972874116594103320033171897578046478689156157102686231351459778146322277645939154121473601572144189607763854594322422234153350581769532267359846029526932346516787055162145356273334817513722112553154105461833548424023264163031964980099947587206600179381843119386536891553924683120823375991339177775531712157561533220927094245321878135897551382417153934694948194165582773852650089412980809590946340140185785214355737423731212795325020320311554422373903054583699227451198683257199424505372792460063654062680814515805832979089997467950478393528353934528429765905077002818570835390946385426203000811799542682139672403186698098863986992959577770859994051763572687884518056427458901607603568210746443076236589622256840271837308132137602681132306344573543367895256598294637493274655653289426273851273292624147551758646136923482993820277243992732792631612782400471675246467261248226377829522910271112924267520023627903881422665555141151519932437409861770596733213963661521823552174292920364115311941202079976824481711455189062397212448745489616767527164804765365779025926502188647731679358460735784851862592508534736534912974839586962971108295972665763131114013304076952393614121975703020041325599401826026790845127940936989409894651117366347172265074699327187521656147003648369223356990914284483405454240455459843489460217374135733842198140880251446508348906789324323230475980162346631937640590743445700707525573354427803618264192937643069969110247397120455326493023640998433228283158481990977128187353369079927772395117826193591787489361246835382575890061032737307603409765304683477455316053258753881706784029460404354966437715818942465449872764345359122256439294623433866245866899482627936749632548703724508628922375176212303161767090112001491364839315200833731253065681409817247119413592559326303058708101252465527074461979760677106293872377088729397961945886363572854313507243659412080043651312099621174979814735817965995633722494597542037461910464239892830863450058092302059496215574583343688931027138299936383660495571259933203481529271333755284617223929094275587278065256600213261444958950599597923914829633269823831960328983519195560947566666066532565860852858899075969960453108227956342085361315903481100911541957967888493150860537890938028059527004025101539957496112328161357979245989139111269082487673999336119448780018931355564191063348850438068749716426488641003556631688591068153859123755621294660729130294791520680377405454890096563297392078110074383328889353052257890555775648985268831906671484224471920803407512031372348416180141491973081856105283051898049828759131994106716512066459494688305926424796103938995460252661650386610417419769931204214703227457180156979220144585613960274284877089404416592645013671938277555907268720017794818927473776876683833812884673880407538231910655313646602295051666516876796725953587901487780637507418137836225084819066133840699826639340921247949074584844715127258419246425241172636159774394117972592817145656423609385599701827932104410152318108590055129241130539045173200413032039691729515239388093964954713606670369662001541188075598340930712934660906966630589501570446818280434898314378289771117532840842117386029937433991127661227047075333275253706954865951591012240282634721535436223187109119547474618488227552964607468516849445972571009356232836561741937892025065104686790475155972868189043357544098894774672311062405204969118178275361740828490660956168444941445777255119214687123711512410909859347343774372150549605450459535828795563064548043139626364667274390753816869466095170138279172270440020242941527136179853551042773926288827640981679108566748630657897779541578559311395824240642125053253153890185386658660094112676202039015023816911759262148095686967289645864080616762307010417039657521881744467129232375624507017414209010784198634959594129012696597168733917322159583040310987638850640973784576809885935950413075153618574770181404324930044151603861466308091839555033026854335618107188271854043172334160034151632947868293541337324180297253209603421432413794995053141873467322615975130629103147540078747976478163910617761268808335255550488480350111264328892851909347395897051041125198867457049497821427840970453503199624399649082015857856856064539588967500298126606879261384619957687792750758262972739940064527588268612048903617230699339396324322768591430872884735617489709519555445284780857601651660829664908037132499556869612072520112877193300545145860995111570485831650268748152324647849125753910057626753207487001374988552768044485844415812867863019208498442342617986081545934464127955925211634410760729944792885051956823819146558809769733870200704813076868821258982062254449995760108887708820634006939297265423852372165910502825704372237823860676536977056331956069331762743564498464426715467716121264203479354765135152368190623270673501736405927582129324129417744417929369535719562158856870429649653367218992556431808097027566371033754781928614828883594635599449288461421170074751763103984689969135630052795858366581706169555000602646845914461379003062173966502285496561325709768426827762108543339268674536135483760281303900743130916630940089991045098570085558887108221452094776095893713842739944791694676537702768801168055194588910751805975370296659655089107054623596093449955566606448367335660248032217571758661408936750618204771367309143597737671703269976938946498224042060824583368431608446273548122419401488401565807505168586489084290698490920478492613262436760677504367262691285508847564907800955103618812211829319313293762133027785686794498330405858906080916776212106527766637833081968446691178810366126605372901246577144560125496230272771199934130537528281056659379677452950951422958992258493207341033983912710421082128884776392851717068562042921905708524501963315183839761071860939276970910556704372242999317729290471367719219746003907076042373344594525481190237492022501965322206283182020235298250828661379137446880300202070043650430881410985687567795159340960769769444044507012386076964495711686072780372225885108987111469789399234346992422788410045363015986220526536248573500422230367715427652543157352551617152983327142961297089263801553711970098141140049531377272037999320725354472455285251237324458939540484768777984133682320042987930674921012623506988594474991305143828323927376452891335299151984868185078211510146285927608037764996365839794500801071677978044877507451724601535247983431173376333895065222727184388985298527367807350878413537037002753603773881360674992976709114480564626787477315797269984022373002591011582960027543838513845883059065541689994317540241399770933520150599538620038117726745682985990355789715702062296733671355306188870674221082789253395321205147345724285641124180593050996138401569074916210868139965717598001273246409980550137543998428860761986660809791324393271146222861189590012092560625403340450255300833031044007215465187459248812499339498497464659503487171214378880174060574447938389944352487410056919008484293817742612527430113296981998606879557392758002984251796151061832110083273131081130549313676657628835668963343109905819639588962292423593400772355985429941088138270044578444780482694627270042608560219266384573958215177131447894085235950416014683825872668866699452856680189806363951775728836217359444134729676320936692939293585758812923898534657308076720128046065013787614525901320496462004536805143211933586875879894336803335872136528673698580834372178314555807225189415391717016811078546693581799769819884324674274718236783018551270886386203635693912916486977471632444892712909105774585332679430876612636742540149378429924879901059549985656086274571868090695789792923868316261312657817580796284561570000961131480332279352882529708222419394039073719981176255374559804319558541249732732144144882773936058816963623802810072904686620558191987729467011934755682021590181366498875119633487372004204839742148424356000200597076705186951124148383115888818844639571396414117138779881052289415387848342299513711449498394104991509223176019953858769708222688651626826254034123990490308945352845739720112626963868465892679453725379723097812709763892057511350125664470153712372625284094089849319223831424936875028875610452378860011366008586591929244944303551299950838090652440250288685737905164922627140805292286662586253047615558186397628017141238043882588045114805211227781379516342440184243507142771278419927389423612225397328802693926031421166423646511438696743555430047791797501029013218698762760227381168002801392810352188271801338299440665466648529133565180561520547107526423185559601324159397443777929327400829000776980882306774993794052558655125842921385902769191980829121038666937657800095697565700309221624216599641023415728317814524126312183531179403531732138880164700217424576722827108081927436123440365112128211189078878883747204095869616512629014743084097306385679426448478231856012093739901378054970726483990106189779640912833623640230203945900043597328946419579998673737101249928169240017481583787268560373509297062597650695149761313365274169393702255023323350141781501446241948381866644995694907759385427058290282642837669201304588085530564070231020962481086522476141095339445460423906748527176068080165884969619985840318533652149506311220169081022314810475022190146020608048374409712071331698584172552044884006841599358187416464681619601554832775102838137384198709847957951057978763505801399516921333835453711832793995996466933786742876131509878435467088285290997958020972297552517134957766919713690802336265525446832515230947143978096403117684727555492426114786058131415303292094270426369004863714539457915282102176178792961111907492223271499852630694303246823420564341614514092350737846758323530643463287635640286237777450471559140459543576837651355791581874710460699224388763696387855243149382815495806946095158324710560226579774817115035624006833828708578624901286996845825234501569481454624245996532096501749585961169696781437123097741331665772721891609148511981844902423127369411321777052850944838437605150882361551750326069275679324147561487788259077787114123661241548005339833704120750890854889043744189935629154524432065992907030238622847117064239547760195361620238113108389015263210827079526706160756731551050601518167252075546168861450777198798421505061172080633024727187152112524299171560783249313610712226547148897871925748205104290265639612565709662404089550510917440663044808640993826798652313489070001069679946976296513938690876407326106991607151282934400978782639209622385323790074860135194869441241156144536179567319597076000616298733578351108483080111944433811382591131085717548559298765310472518734265341382848821410847527023803675846398425078454385781760524714219108354253900114040504292290690091592224439195588457186877508183918729479793303251903510887551980825648574918439601797403197125158124561761774013758621084018045943046964705678848112146725673791583720719028885863722533900064589424087069858366167676255996338825599722758976970228075892089008986798232385343906144292460301792236082220934606178715298426785013495394387595780221572728777975408105481474895422575667899499819245923454486447008876888839885931878523786632967455669468038367735861710562446645678361154463324607451403511991117283702987188376545546507770789648736177904156957434580655245000899140669096664284510956192169383996065437580163075937652431700172100371539492483664503803493325953577709153915970704103246585707768021732608235124055173697288562664841475719986231225644962578430517804140818196492024271732902023387419585114655208355150997440145787095347599678374083729009681403924269068575068244615701454895783034145096345590335613853775844267173354904280683582851602200443590990363279257938291922176265777383953051293293582534792605616019113582074841202884170166706699230518742909969718102553883161502892188791985048096375818127545922577174447754125877825130592953672287461018602763018213466556578006181934586199856166610446816860311162843956464241716776652813767024145002209662885698806006435850469667402965259583710264438350527888792038034301831055243821792530403211044490892886953271431142010856570870788562161595069229932904656037348046794133051251635154383176648755682550412895445233933084759294250813210303431919463554164063652666113086720018858313877639901095687888035568829979742447122209838680141334316578235995312093084857335193783921094299042698155615286762839792427630872297500193724780750332355506923529084947087547891867234583463298585718968212326097682217928953591314203486769147790589988251729098130907953125075169009995555686998744207591849775719174593446519692800531500902353763483978029906834664985597409886391414331488324054250012409513653840018298406035125836842950270767967068881649847327886386121763235795417552716471619059123337767671290770438070834306932544865475047362291408274592477959297488119142096446060745572681283223397453797071150903338784236211011970333535165530607545921447601654226663707145069245795850899818330606971466604535841599445608615379699209322269062319346469372555671004923252191089109037255069209908479944769252523156948233035023361211695103554984456685572121899870071576258885438191615375684632192703475488448350154548111543053680460995654029594284692286202989406829938134048442116686013163476822071343990154586268970496320529763526693872647935554678046966187337050999711075612957026402963926209818702550166989726491363807387825418932389429242646204160955311435408598681164589119519080849068054211129192921488399852937852674337084556497028378613717803805664697699102599355370030446408299155902412886641841324882233701432408132309050921699286003381700716235178879200092978938441988578850829105721257889345026665333936948184983490965459885662315141810730987900914783625414399786607579893362798879584442255430367252970238777034589159794790320333790790566849740864270550550356631314977844287131731026331628214291095051422190192536979903590544657347923050682630855890527568607021313806906026908759409753688574140061885004336021833858803306449066526856555071310656620242801339915506600871973689891473487646619889664491636365640330557808399356799703369563746893961235875776858872286798456987516916091863027458962183371187765448331066180449368398508820152551010681220895641497875784918597363516893560982947046467978010658042832774650893451542823411228234552683898880423720321723744358382489290510386330243964081482303124981541756209184157880455788996495143092988063725926866230577350696923234779029952211698161892126193863215970261359764571572660484551723315756329672659020698359145120063234243103280698759280559544993663081798968387074383720895784750543874304511437935486800575634176547294425465256245839115758640922098872116370148157242034841197317292883894947167687490813059600909931625656251613012180220700622458993507690768006697818631734260275354057130487743933733676574447995129260245882742341953556343773048835304524038344135206375145474815663050303956798083410242276577007076352680263359525992667966904868812658062527601505134466427181040989124477804848227442037534199981735902340368547426006943204226158913186377194190547108347686202392438058865911860200831622053259018255661422350871380529126645644942447342343872499578583419092281655634146444270763332627493657316458548300250798691283136716497544240160348985192593674533000646515039268374326926747670866493583948115411027323304046733226966058918048443780312231166621036860179700559176539284736373144583967551386870778723350650984196558824579481160998099407952248922851577809799457414933337109615512962069450284391071420140387127176000122460141958784439910504527694731588503892156304514240423092774072476403578045090467057423830423167791147027008868754092621433318997984139239326475042418719452848854017913168633663538352214113056062013187700773457639161106222124644801477218846571483200726438779450671968357246330400928923125660454678787505948816805723026872907292650492312993774533776366781519284480799280174046225209622691610130258789612602921579929504317605400976866564265150468487146177277103583263679868483256724686595374362179472818847751613803087653735698102434991120757957270014603408736458419377208758210841820029244951576177691637515477585294755562473238429026381995209653761335901262657187077050509652841581506040663069939856686292640702613270276968419652073486433727357561107853142430819221666207591806911845568135297195799587286231129574411159348942132775188786041340510485441408521651583708414477927420129282320858074267551607345383931310939284965556703373452704789771780433892647132046767671386975209823947810698497873610138174428658530716999609308806834312203667178030000960851966594741173413958816238510652823112155312167156866435888010618361944960593861374137548779785807723429223638632168933226089312261898391041615322772077072843128848566001947951495637316787086358536242754282826689032253659605657618024763380371882959045835712396035272408237041874358624187530574200931134841070481668695408832049488909784628577936257808479224031563880774310304522655406591191063220059154242656530245896716565708183979560548843605802465045907631204005210555400477138274127318275155297958218429761417028099970515846842508656360199811723637568860480012808318273829819760996477948106202476798545595156055836006915599531938249122427051491250526566793200696365495443278380276161473902740306012052427134033391297791578852356552007634028239629659299278381805373701521030008566047729104252743155605909874602230258448972387524016318381201010538151597521186945715053113499559087234083844628182661190171530406986645702108400964308134053231169680544490963568325071229511403326694821348033706219518439426239552966203355713031426907310993323947557666599659923512231150689070044730796215301928974297961687006860558057163627713245704698460691238571444675703847723270572452576365390315296226863646994478184625543608406036296871169123385150275125206946399122493482484949329344870752864991404405561206110935774688995605582714162872065272710153853570050650525435947282325784191857054674696527217694693108905182777521082954822409912990279858278499069769465741721303431309532090558637504381160013679355449161266236926215810447873167498658834333964988199820909630313688186916511158166244211590214252208814872490922385606423109921350721813641493256145111837354999816474620561264726057255069054643635909316038635363368497453480887861747345856413771631542733550898135831269342360111494506554223961407107766544760762512036466124472943952159296184131849385578235626462642640615797406741391208308434630380516570603035279162154420549766657955225669831580510730842031986691041731154895827356462331779973352799855096155447643563284267118968910792165925401457628646207734661831366790044097187778356155043199539157287930178279140808340050779407558199045364019438904313472878194472957254031749442759545164820790494122550251060037176067504336114210480680592813753817869338517660058175048369108163562754813952300748766526654043781493850530651865967101711709831805788962799302636510560787981166679149913109123303165593780591548151925420681034791108739175225233345015430022443599572557427399974567562469127101840861535098891339843104722202781082098552063617002943827765069966773922838132795697126348235439711683087836766406578153263701098342140774378416819001264629986023304518459875508597754458405323190173630277749220274395714165590805530653244500108676663386892948007057032295126958153209334504364904712326927697602453241026738868608784564166531490681818346077731572405392396692652691953968018579693877861259342834627014160937354747158238998274820168822089844787761027213203655309439716365326900560977766477642050049602049901387422164887119688590331541517852420246652107062858328323476597121968698202244395689896877260619899588428927257447926694533534177126966248880120157535781277962432989980162127214205314971984304495254240300097586952885803901764378369496261962598069072943752377072141600911728810032224631094567565567324278203976827943031088836332720943347393127830475518328986285603250770921681882581487354011261233455889929297146439253499865343918478582897029700964847117143347218154538721889892633136517869913984024511942003055752905704145989913980493608419212423964739095792987960695175792895021272442195159345450717469568950559241928493789867149768320217199353358501291071531635853241787037277769715895753991452886493999753395947716476051117921527958777803122170738529088783481216396813452932328654245023817803344167077641178663830170306182606753555533470599780729898240722170666939597359673583144444671998462324782505091282242449487972596126498040779608001488747867330578125611510912224343520833921397239372278475141799994065686854237651228955081969689189011925453753498716078002188261367065866241666952402249954031174543840095182852716005516805296596673551934430999507077446560439784814915740724934783310682912346871674482835855455141912114448626704848862205029661211061549782844501554204943642330585969116570722372543724987200687315727469317476807886049522738262386668404877805756397190308737368218737410889754528022504818590169951977573421854233324493330958099099149003184879057897874278480019185795818695365443038456547604295176388685466385682899028928322108838184998599860002657986406907516684639551176660199267358126777249394861121359572692096314510143521851974895875478039239438054497675626888542479560146889283240463121448671817490148414294846659292696472161827416722744426915042603841622290492589927278715736510059146247109302637660205088581947862359115169944200616127977108288528535311735906892252269347080424125925661813581939797560264514635391112980620141755617134526259796808206162251407973584258953890029956942721943203469743426263966739647386544642954158338234968505236542778657928187478802820971407461573638194332314743928347046545030291636044208728376162907163151610400619265348889430854347701738659239904404043699424737820963932407918309988491244859713118295757289201767200178158147513670693976503643965341156943611870155859802485500186102567959286497572193320481797793642306094456720673801223509950977756855017034366906302073041420311797651624830793560649733610714081147207949002231848363077720157799826036938497950428444656423324754666233453129971910001198455992924121650245420932103713844372009051976818280781822212077186226546812822411471876186795729698115065602120546460597546957770726767371823631362326215943403079924559212175791155990788422646384944202358991979388958809336915696411433211966493728691982797604091615390982900012270415201736147083129881725777551545207729267443247333386313001557486542352243313481559602919790638758021177798988086248312518185428930976651335282172316111032949476357717458886666602009705905493414557379885274536732445271404410998478378158444727636119939436527429718004321177046327084231905571337875698075022212749743161146515340256275304152020710596186665793097327160281302874875470902233734325070264743558950589253878628362753985647039013876615661643993730478082181655490513384934634850055859661045344333166512764018386294881645612953356250224560784064468751357236615992284143775532929959772579858496608430074431467580862499117070914955038243857461382166630728678222107937380576314498567293379835464127707193847256835068168036227999713362795184632050282779192766686007806483475293451354771465233475985850319227266988041295224025443632777054362742051869533365639370518074334703866888943226222768312861884987104111475717195554111076072136304390889044705825129094690324873454707358264146058502621735235982207686376696960777879647065826641778924660685640490380668637431174910382103360879957011226512600043062588272394947851178711596709268400677245417945587832164131233977375815965183521312163524121896029797670950810760798156357116493738047561318878620140303383870062014675047141864903144531032957914479558317494845823044103304202797264154080789478642407712503672749241923115999221066437669838926011738414578004304512629961265647190338947180865974022881223519922192831710901368888527486805889523266895353948717549469025947190316095122808138084831445792255330078243406664700438215090669613978916408941538873124313714238848851749215636556419571911632024141767553928182305478809306368711975353109460217501768295387227459325740437104718938503554120901451889912845124288685442434802985339743119333697122991323786011563390636912603104621463292692023355745871533492287718567188232261595550388397174366193619255638304917666137452248812349326451517585853267862347917962586890117308669950429905640221950472140218921806054556391005600293293517925736582710210044656194161325492993743017745975392905983972777264589225169317756471511419727699833154251168875176198994676310837284273496630028483147246516056298498724651185644643242698931837574083064918231653622784579967605615160036151222166956379283038872632363218067067165563274625775348062237622010530054812531580385178804075683508971852653325078090772699011133030559914479867111568038612889429404422526291322096900110105127584313655740055489514897864024723121445161751351271993422374563448015061996744951258842172686012144847311051806635157110714156109463642978302286754610184542874405214781490316614925175032987084862468222528706124372423417702422595027365154237728336456471767070550363348139422467339873034619307879884105067700882782804485519676515819423122686861839838080880260484025449266121655317701143188576076938938218046862083525819684789547145444400843688638000032913913026972693706094134744498810398915475062054592116084556929707956445091245766571578242104723456963836541120644824532350040936373931865430585534600764414213096661254497505780758020125443053262461391144403715956867242229826423630298380848258405161130850105693919201820729058952517443782585053975851960802561647671886009935656869194385792255162442070555242381913208328891897886223502074626599051426445738969161514749654096811665021718321689203026346694448999986962689597292273601208148542726225978615945480385710826778244836048821859531897703807155900267442509740250511835004929114139997256000204818321272294617456505411481368392650556078874890125029850813722619734044487060686473148750170839826833001371870219975029580799822833081594889355315632024097422698246547633896855987112995695880850427404561016484316205690417891152157437001297937114909130206217948781429159871269769636255121346618256923267587316272236796839201016970661981514989015702199738404699909663625185068301678408458686611852133766418385287076372128278070437992932034595106991359702748284503441946049506545902962847389383710673512983249442258031572512226150156740884503636484080322809811428341536539937638749321780125782895757685763361726069162641710885041622069643950641678622482166936818317221789588109393341049415035035967413495100568687129834925034099171930061619827755138822177413559168466653578056421675412861689491743862208296947856803379470751327477545141913455195342372543801592684546281056168950923752264506734048673220262014694454059877784450669254823765198542415288299113187316933619275390086598822009080240630546114393698346230218687333339366257237830965320651044612744578927946403247961769273982437992977875284991429055197778771782964745898074064213125083411411494963745730227448046766144494084539523952164517610439661321341410809636150642041504585892650715186464063161956478842916670810658719114031525071623390924151546049212542528804101204909188328196524891914443327707315252730870653710798277831690922132047801061449396134557963006984387828040513535629895558941836529058866223031298277708557106462469820768946502754436361542806088553357789590524929470549157850724511682884889132161980524305099654354197096952219336640947580133310073553440272262554968382253037040923258401753837498598151035412466990968123687854295577636465100271420601032133953279204774931843767428627538430809594491415574991117810097832504393474881982873572572246159142679368681965238490765585109863367315307560001500202219000141767595419882611503867131915429138948649738102260009566566058464506095861948766838025065845663340461446912225287508461079771481613617117615679697337511894025296041278353240149982513184297554349575220644177081876116754819681566774551604824122592552361615101396742539762847849229618101193591107196782607538009576924517132972657223677533615522340974917196706888152577025884953985669518854228845947051213390459489019022850361825809575484372507042833505821703554528654630777948205405023473448585048637802211008391499295223821293244880856939674920513835847468856455505463720263888711100626658355874505888160337832884858017300012148419801945696417642018638753021902306292945148245022774660711157727992764811509780827136994193867581490761418568862596434287944624164493001297645391986501555118792167208739178537875437501468033583985983488227266539955604174827256681525671339925694431814068177910114153830633144564906970800356299390430984102982443844117751332592815797387522740939012915926214043903743710339881057908789837693442221167348109969526173113756874770931525818683214336360496871766099207511505345973227337019713831853866788920561886979416907156544319124121182034704893616197172114439604486957858630943480925414395333328019620795265511022069725813586881728270244783314443821375322258786833686203681324294326793084289751484653323649817522576623364736536171202703052530973474643778453005826528106908120808274843386776812575813055455469874953872434260277853638405300000910645936077746075112007524108607985865058084247213834796817313025568714986981730303322706850934499496277481602202760503475859710076271526383674167720461295969206696423211414318194448717343795750492097648643728454123709633610084934331045639396356172764285968747991418895721187614280745038369903920565215380433945966779226500335253931894678325620801088526293782791975685941150909889528272657171091707741702553385123942005180048349917522474499721019703114563607244290190160514561944097993355683778495677723276129434436682678728553682070498991934610963137044108573386311136250079359368938387346703932577808162053862448027065186062074867129517580077185429646754897867909776258637594394178094551802638578617916502432557480644016727369935454393034785109903592932831707299079278356661273904151637292904918377053307629338791420271010374221793514035261631014357774516970043138680789835734821020972689931271056324149492162944410543923468958867156116315637867555906555303492982507467266211777256031756259035183498698467508902252467255223512136712354322665939605858899122615271860936167867826583984396897372214341858628036716076906643891437062647163506726355317390669737102318888002501334677732182266766618285297907884201185750115783490443511558631463913318787492962468370487929703723029528813348364207915289796635015456269880511359161659666699289444759066962154954054839144089082681085892732677474933054464908392125471365321611122115420568513629776445616982379898457671719482667759660589422915078033643243865121369411883450965762141134080892899519741213341081674551284485535078225069369735977884865540396819388505542440272897140368572936472789280373405818694850645781797186925259040258851111734868986578364752320612623904513795425670118709744272968613888347404536071294018293454009025944186544083139615996761499041286115687226453152344607855075623266986315718615434285322151370960071284343531561793894174756378757430190898853614028149515987375099812872161979972185616312898326723268343141343079264347700332843014090477204516874780898561150502040524509698302153824637242792184479302859962940956419652298477495717198940381649042652120609949992991404696960419862179456165155391205538421287166930092390734387013416712732996211461533860904138615824102501868856523441903978101393491611671382989461667862746971056394973305424833525837046616217688120981357322410938679269201074736804909302320891273624707244133152320100350831223879824745931439545016269058695146999636529823394693424863324945462598276083240291864082417343940046526134981711266459852234777310913950257528537233580462347063156489542097542976186759042229276125329550425434082932303654456066002501969414897009519677208295078975538552756172977576130995730873267377245353789175557614422382939317019682821795577183763856813778409579074558460151826525740973195688291498569859530299702305587599944763929409565369671154987198367387444461325068066394029344354897145262458150359168289515368548518563626906554564974781694479487962512979749101746111666066288187628120920385280033572219054130286948387339227078219172880960307188111111664875713753174683749715619444540573130197788435180956519308449405598385134888394329882205033768408227024722353152676006613117618379304489217372573425646457773940385092086003016500111261484841760299622373519674410685989497452462620448598211344303443603453624749930067577891991484530652295006323356727994156072688131590105360100959798841817979978200273397182873460183213971720063056708920892188648309746244905214451355439698307588389643113849976981164994086166445440623374631137694212728713856108048103177860911432461886285439792092440636860322023476782259590002568024404351300871483630840953890086593772197031179136302410949501897715161361972355076323722561026464588186018366394091117703288945398562918966645591719100676969252512470196124524971871538900030910377886460022394047972158117019672076071296643695359733100645014583949277196433777083317898632347881805881524656755223205537067337495742256205370022995956452730515760830973328888073409136390916344433335590624751358058643872365499566643063812650022690467215677601623508497886726817216617953607178526651717021878837506851810591430612641430047890939958686317010055036910888790245948447248595916877199614073592848543021372703192516052276078857439558893272320781400087554372085695197577667045788579912661050815188243157251505292196892517575108363624099968370056406926779252862369769731524385040448796245848662063667305061636784580859321536384797446373583617041404668227187625862275430293055286451827241946135460877376691417240575872463154385243226795517490823898653521626211615518888464082839647922934092526648321314327290378412599489577722631630433518342884754053556769285402467276043115823453742333666872497472321609433155329131201751184417798986973667862200182305866842327857227519529113538066475655239881047012262644637001401619293699174273987431850194453607384962241407919189438225726743652097758185422084551868149716239208608768272080760847458131588392778233906503702460004094915227028129308371740969803429104234556643915564215690949188147160213058316395210491007244968085245180144457866604520825877261907966720292818480741810389215447031804091268973431607386815368519114533163769406318465390346511777123798156504690862080065392133920298848075405966794752888149575828893976231957957932078249146987447012453019753878587663949284239536027501286462460458906189194604493251181087166938109565568258754644202331479695585571006175055665208595293065164360636325910238880735544625124850798409566624873192516521381984516179868577946900838509582994864168873841453892580353495701271063856628830685216613511392585438026011908103032348389045878769452557081009902145517447978259364402603210935551311129840076576132772335901743267877978101798594919024132692996999262397442405347056118523970065781170606653052321944195506524261354842057340756761838895380199712917613803412262022899476913009335032515372981213438853389635952256204129234364128152028354984152289720788891483481006553935804925469239403643955898221280060144316232498717969880368245274793940133552280271636216157283819177407803555772325104725508810748376695182547832742388068511652876233868572954661407608958388089518101493783638997040235579980898026248313816626852706013707037983363325966808261820191932933560956645949598921409754279399398305994763607899157091599460442219026388660396560353395704671400131243191406653525094927932581677917788745658008321201930574084139363914025022244204472397744408618766191927143673792618785538781667681401163145333106419455773615133064908938798380984556686512552789729000942611289246902269443221482145154910471504428526364432178645832732417764913595752876315910384628519931283978983316601163267254185420868029670852463678320367247335721052320365260621982806671950867623163095327345456633500255515431991133567510775038737070123042822477246945601137610984053869245254896176970307989030307685603813051481458083712826395661816854662453244396502243821428905246532145004393030689490116152847962315826597191972066245086323664567252822716941694852946185221646996310390070612133194927996064826652957627739351405920942560972629063254507731323062214208794199418053866351292285645076601458496084456761625537573701352136884290411472871214818248346598667285132044377907073338740606617286375498438852849750612018678605904993509795099476139607737202869823081924261134082994258648091765795192265600878836219189026731260308226909616954004881975786442607155098273547251909796135019724124618890590529242305804457668169908660421166893557346819563862110043245531214334421283203504291109616455890000812679377885637157562296964101288055005871982384989771526639305338946493706166931832464332685800426576153423344983738441878195401721698505441349381788567695294637381436591656678652629609959742253907845840469501705398881346206836610865806537479392321400592731421625513432676499581554365331036235988565599921334851785570012959952497430005534936848710626335696025287919297042121798429131204974173000533627002143399602738704530823516636342353701777269954954021559701299805560087212175137690962002043887363994560874347712123299091728860197585753587241679157491167132177195841353951820458019041494851599191287495291722451625009959763725174261359543017685434119293851536010626073809363911044785164024084312863445711302479244897081404654134527862583084848664975259265314145017477758501247147065071899292320384147414116171940189857743025277095740657047766461583382871316741935999482400945931777955538680657832762323791393342607134058966789640473975108287967795056553291225780491602712002037560834606896969691004313390940974835377444147010854566163086652813465622622090107794158041372170455005991569631359835132691958458636277573459751992794349005677375915655509410480491372566273497598748668674424773312519272375461382351787822325818031307823423363783487360578338027769694938436362035953860613833988009320922415719685880526040541555931075011829388274182174753374286436047772738771848317463290512532992113116613654368775517846257166737413602164715312286201843646788061514527426814903996434871167692842884045869692583382947409424017290011797433956188615419045748896880134577209444548942324256443005742486827582349974556812703803089524536001478987118556484764800380900945815012249042931061257118180426821471178733587710693979587937890485537153554836779301531863467920326051821151857237557305601997996184091191400107743572525335327208881844689658066861225502066978089491359243952845000332814994115780807690976819084452787259791751596748694739406098167458044748395967488588111003266538235710833961063953699041059360212228104461229866261329784952554754135129595889071548355254232895410617788274818144009431414403090858155258043161495507899282422333133394059398497527428835689166759920354840366553431276137472659713330344364953716464987119883635925387434058806905719890381278006110219978018670390321995849299582885742457032427579488461759444525106777828066972096814628226717221879551300668850005375347863308704689095150558858329951269827066629327821475858582569640756001532530597311718056440006864359571623989507292745830409187131651062493864649833140563702205316901936735178505625217899384201787026367001157755361074240703914910721255745155409339914199275648129257491950825411804650097385464715225216833388813383538287763177269253214762601042302934329520984582813102515478801634063062166812811459126129544812791880852444668106178517720347823090630892097809398640990858400957899552848560385111761437088631554666273249901136375400210041042429655062319874913153245981371604563107072353570707794602236153938971989951059761990266965996150439772648962167336363071141066814222964342240973627528766823096220457849115728505688766831705251983774099052048319778948181329273272760986043037542068326382959035517125756028292407844933981987906326379266600826994942710547655045683678268882741037353062055839974018706012242197597713199629441826051120526043049244086892182781864836266499781166927548065130966212347041061699499066948938485023913924151294614669138043904450333480418272284696854428812482039537175837220270673706782638567282878098622595383484897555438949487368293604842557356217892470795187098497620625211311611159526988654354633430272814607456214050238852623179801710502396806929065387673221438867661074231881852862518274491516117182502018808931228906386270230538646803883108168404668948539226770123071347193001100027219186505148106322402364921775399391002873743823095669690080134369161150712317713472436710310936571901536986473504917727531942294447659066245255451403242290201265016969236076944198267250542173745970485823969132909474530757361880264743456001832706655046380849349183314142259237074222778188859390031751344901931279277686321300310789790663070117202962710891912086444956778231963556537399750428151121759757312649753808359479844083131921015969945811404841743018141820807492132300788184455247596963774659147645743793529145615029314661531434993163075389075211028035938293346611990279249586241796303078533868160670036660711749730661466933997046144184626819733517862235161517086780488694099958275966587562447376418455527331966034746812294399535072458587799285331477482384587033744165349940829991183731619489122139385429429326790057352765512103208943758165010075661242654852546108341844863834526576835613152301941093277711840498104024574788912857165917753133574302294279781524346686229953173554014563518069679119666364793168080858333499273387571836532737312194122716798657146339212957682752210001172813308722364144369085846631813346144504490883995841774455871615524088812942139409341608541487374513446448885562426988669184133281895601728515395417636793241920822497325441749381562555942802971501587905079546452273893664180369631577145988897305628636735381208647551359550390575251353223595277192390718785129455107218843386643691129458686991466424033537210568521966985017034087428570512479762527377289216357427048904443025081259462705193251101138692903933732342335548803139960254083209713714325329708401210248223210472009071666841441981074148675590711989275265206519120782531419954825874393851107120227847467350544446617430701357558405931694539927755165172555276425511801514374131713167350575126304640453127498684024533893465430584489962939884116795045072457770554958472602322544717278805236785303077095932697789308700752379581092587563522664661183882444758556379742587532592504091046408430972478685962702493683289702498890526870728079234098367496580187250375539962739001344037390963106733143061904685845922596373914873785716058872866789737241262695662961461017197902704482619655079530080762104913018165647544324005750292225859204472647808573002361147870510148240619697622378770948850623494258913651958143367573055941157401412291028760713665512228807972987246824648724244877996804140692271881974829196923182833222093758721278938286498718859667209638575985029952934258023296394588197901544893624889230427491203073804840419279373126312855070606902257424331493840472663033560233296793047682328524774371250946724854666829610213554474820981246035173091236560572373482151565422655871428961528559488201457410512382866872102717473338564487574806735187118697560148798798648971583922789143024556468666816178415746877829235081686740428402108534538399161890818362968062498767403918245854043354344902238149772000652535715952462898791013183326264333725145693128497987248984194167831022113822774579028370013826845927059324869646718553824622208810718437127131972456021730252199407126690971183254914657414478706882017227178975337298250032269482075779611708297535320618811244119242870236491097586118884105766236897297851609079930391406784008633825317175347695400713624866066586174351154076565929524584410281216498717809829322268711134938241352888649748363986936415063029964138064602398781730046565864804367692464937677144022248527812065207046793106866767979148877027627403485457358639205502331514340346480596514128993127112797427846286000445852488503668774845233879671138925811836212837362840774214062994296218155705463926476267758482731016241163381068562287069575213046134942100210366116917767146399549675048936049385482252278595361442372562549883777343874008773941417040324265746245410108292737832486616442717765167999794217962097320097602097979269691349266784395133193616450544581213618086559118864741330519329951093746090274741174532886112020148404650598390686458883088154858480696364266449102622114619961576183538442422980438180001229086717111761260292836139929418907899467137875462555888037834777179245453793181588878456027021322343631230992710600387849389768544616017355023786125883969504851515516427089896262442177466100052709886894606713691070558920590047190924410627743731749150468112914778040623239031148228786378701152493945095547441048329265932793846561240405127744916594682876586980478674480441219771818626413790698861012955874652701975065875617325287523831030002998709610401047672609267715835525311692585647065886613615605530436835079767270296733416403119388002293674954694270688246150356151254850524967448563998568631707517120567357661201762381694994669171360186987320058373170607787605716779979556438267266757629873988174498293912997426974811469691154545082050387617782436106362676161843395064885901085894218925146651590802241942987542457913425105432963968965094562036412519329280700822240871820200509572690622544220351909740614699315194392021448847542639357343216735604562439424764917230099591868257338340451077410393270411575931907252509951413872539706172492050528829156915307600634675863966249472130278618081033478222234272645880381368830016154361819813556524962422894235884413276901271530899590772126542562205658472091502916153791626765663553936875748199780177012967560309489653697187744279797432951990056609660297365009605135819818519179566697699839359659300476580023774966220513138229237891962843217449492966378544037711137754858538839135169659395885136118011761799325122784897716750871624814928927387633463587125689661756834409134476112224999832311546880947692176166815677006710473797002446089797313846399344468314522462391936061324871083424038134487968162860053037746208402180220300341624312373049443612966153787000398220630809028926711892885358326672507712281978618774380558325091327985228213948453043378693080539918919499793006631015211203478037534377330616910528293887524988718378330882437779672322577816705910984112594105106109393683788145058775929604833689340741793430510491129539382929792302271370361652179066653431978704268785069240428775333923388203025445180638824049128848162527599690553586207146499413348558449216783484879286510757451068501727763840055837248105967075802586537797255482327176263706301147444016474210921263108144685291513847211454634472300377554395384343865705260469081925155932097696455491681102075601274451175577760369355671245390930363656475667432921298691603991608807425430220043258705462043931513509390359347266222089239299169927389304515148545786162057885929224011177838104993684175706419991274393590472000679680263910746561899006551692957142430826167816736477435437715734384027049774218519967066110295894242997178201894260813172420918525459270766399955723210007464340296179472533238436978318428375548371516580027300957924295535181657746401270216286751440610401410056931447215913235905337858147983267482284746560611024339004257248708770598537017898844279853351406053275673859228565712546451107837214969099659225879693295742694867864498137046652222450913898815917763694770684516387537705488022739667386579307350336916660387413294583210403322646806506183551690603250916142843623366166695726772348869049841472223667350875904358118921859178989520456549085744063597056360127383151412747661671486908202767418079143836055723084365632025211204541681984948623447543042337443051931734823023909314068646695571286804009690499615463377868319416354897877297191271064266922942443835360598231648001428573409892584148282907170082034932655152651343294145017015679731679987905770933159733685369528000096718894244851137235943811629706741840141941935376444928916638720827827265806878313890151262744293395355579560791878213288125059166649373594036426314410342288808853325031472435427667568920911865978315418220066085052573578620615960793868543440807612432110475512411443055976482126966003849937150683686393789757674465887295487511986101938116111224314554167957702215577606411594132986577676103256135988968502248086914870343760782135392670862302394188376492087926260174111918495633546335540493388289214329759577047912458838414434012759451207618473230665036557770630448359983060105329914085382357074546840136935599727401421953131916936729410242932768339218811534795734133361491972278604732625793440707878527169083487836383939354828373498132113060698090884894680581788361363231180549635161051622835510038693979435308340284287678223549722688125750527740960072397431021753001293687918070148830537835603438011464381211553757197643739212590181397456815878477556476092836987844217182195790477352164788610889016213498676393663304491352236827099336705884926397954225787207481868839625996747258874861754089303574842709323436798721686107769571314122033697140865118498103761040031371733710501951671466095363229475530695599068664914099255018741290396239055291532844557371287840637131494400906015993987315626990721051552871472682378778415026606300274798800863562658831037572804792726563989500320606300580018761753921063740407960617451522294327586546589163818520105797985346529415908176490909379748767645290557807651741567002723245204290500296475299628891555069434158369558282987207781187078460552979719284926265188040020955051490466126230491426583492503937002769715403813067334813469671451056892646771187648432092298008052593341075785471586416656331219477830572695397190233209748770505207734023217114846093875661215793428720191768285150910069418142250398965688387443606611381673041267504753749962566623482458101508525940245745998494093452816954220032117135430801880501281806110056571629044032548367893334457720068169578279811771292309219293348660909994045863769778026930650590782469201217385659440886060484243219691820423991347883762290435387622975059218739197060439938019969066877239735887310144157155813169131734897980881068360057670977347400383750560665205890439806236882268867265056034110570388382165852953262843389215850327188843169741320036175545925843233990331528871110463241201499438182650499099362727472645334404433948230632508664983411686540113217023823154651376476583962915504687098076132667728295889903727891916279787361041684655267636393491600666155994754270819419752799605724527219284230392803416936072720287523835183270480832617731418395176473413131266503121948410238461482424490698623033357471225181525977307670891422683571884140629689699338560411195416616710859706461229307672290165381820545406645192940643817286062381576940555529197245876638111276731214839039865007528443641780473477207835529271031996521456022447295519775809397192584052189388016894323340932581123949500891484253873735081961184241773724070703967245166706073365163499618899776974342454915247210197026388909652558898682709287271551653253484514157036746442500572712835811904324407499688908322962191486512148678178773577552375782586050372272662441826644964598605784020658423117325823826675419895484819113165614380303747503979624432719493719693342570576633469923957298622187007023302883259482574819658199562305330158073328808651502651387722014307456075931037994956705869801516705460897690999247426629674533171465191490257830789966169648327108637266116173485891825577993579852575974995097016291912363873116717652670867066036477611207168025571953060543283411741188194548778709431068668567277931297900404993071042420374796187598001046397709233700976646038999655997832029160694411933162756122985020634452351036743695117930002736892288717184051888250506549697697846178211698011316855895287434161006218230674588607244824800804683705201494678291840047143573388719137463409998078118486498986702065131810039401969563288870579091139210208770948174926069431990239370581966602115317609970382551387690003410357572966031655857296967637902641596414367639793378505509726896340717192100491370737385199201010514636269049873224740916340680563480999880414973273882055317669227499166444580861979876327103536483458892539892827800426990616373389945704434152139009620559785848027762267124787082036744514507173581707516498322254246729407754236107804202885209358195521289371781429220192125895316854092845288999358954473915374943539676563266290576485938790236523710033926740126423802101645534560292554545397825061925714417828982799836839456048147253219502300822247788217068673039504317537269478424672854584307060276126806244436982384077681958876113510656281493977467394114686646924931228550310943682871435792646492134441904308030681852974610640505974557763949758586474761343640465987131013008025681482466222504247404799501188038281419400881355760367283437578321812900384102834277027452594738435332027484572897837055927028555143410498968545138342803711005720721095635875959926742249590352508883173072188126411684063167481444251713359385572001756074597955243000065834203556389322207161039168439318680641353479224742348043252814602159951471763143949134670882092264575911794618602685864216053752927960289174664662113157083289559858650268265806036537232624792450460250446821773314543843879979063650672107274055789220995209278029202567011130844020476185917543083896063701288851922577390323282101878801757173178304601729990862857883480778773873733617167455458508118050002179210917751362998016850827455169336844270435971895371492650136497665813987986502240598916644259526477823169176750653693663467320294091651481838810024494369750656031679758364285001360959203948636342434646086397969418632206204801294230104860796441887094907340363194231232604879372565500222454740247800744625728154793785314615563711397234206135406768676627450524852614233717470700272523879185945611953266779276950979019228206820698762717112389799672376249570082113926640158821436863245753453420761062886244939437070737353969608268083208402579021389624056278686108772716258471228214207845080604521449524973193347384538317947575133041536488551791689915321088027587175090808752160369302719850536008194510593220791467115297926848781134986347246364674384302403318383221783131609682350947283323506775005852763405118116753198206323763374328068839176606056058465328799649673993565842522190321877212938849201865000587093071970435008141653660534690183330745854199092675318014496650262620038679470347508776510726390616394753876175680680356693140685562423753271502423398934960321380778362893432255169670565201217401764701556768496945981448069067330123735800984831354459122043483113458401185777236206911817543176565098473677289694386686433283119897972579462265232230531926189277892930609689148469769838382328043163595219717283112331913498793471959365505497548362754923472476162888522773940431681066790208109397133267002619439575322122206843682875769099548230848855094096071541589668335938425505266344164866328625105537174991379398058006591529613062332027822838284057106095925052635301195344019501902834439299590865732914652835750075800937627018648740652802979556670297960287367339577090078899398152817528353369311050445693310848283066223188010483341068104178969711889013604871739501792840403184549741268607198984007075950077385017777621956112366476620538975785283203804143538717317094442472892427416122539061197340634270386342994603723955763442471704955538914229673467284500247816062957488525999774636263001016619862373216580464568150114674152279929980299502143330971846180630250149689599991218994296566462367941849449706863300527999059299110676620352484691920492762019868325335435225942902073606675477031954283613589094397269165792117271225377991851606032874774086115552177470282179775357563970917071042655387202707097832960647906806274141787981168532142988189677842576755102002313206556410487259549887657114734964636787047410801358840570396256300136559704355181527477716924950124686274284072227651145285770249965269013325644653709747791900448642081044089082523057799545149880567726781557414199726259916971871575055397687271471855660353154377394766553007223313066697244553824988038170084764692007240026598259021800195605991980089939173932236296484588159527332081844502325291100139007059830868473207136386459365231974419753653482752191155735810759757482927788692291927019972678335153817237889774017876483146725917471695798028995020330876548209985853245980292926390093823005033211277558777337524764962971267878301935687246358796886912336854420810754967721973575495235971088119697685734197688981691878956672833860622687964136600357882023542358932300143628435399116854536592109459832785591893347939674268658998584599436863174674896532529697008950988906947414888090293613278057645486327455555496157615085631697845085606060322760607772301174452073717624621716356399096107558761288389071988781876353159013777831700705156620127416457991325350219062704482343868530726541036337735697694338395457310770136643049051277464941014845755069250615012183215031098164238301356005407471908856551032260990944356755924976765542406054426959185310208322850740800420725861552424417190689873957703441993277480200811348055284957147619037610655430549516658386236432210218413592862940183342774287573050148507654176399032541312220371885737741290510838056556233087560682264135174248941809998064847691939129111023238752042082670997408238302659188454971764996038475899626559095501848926772989127642136819235772784364766291242002256429848084734716100757265578418150287134453452479265500012616602870034289536125107526404732919285253839467369354183421339905366576664759528147094821191352135273137610070520370356039375930553979692160215673593450887299647252658797245983564870153718487246105395488775767521482422623850084044167382177309673119295058338578304326822029580220372455143547482710995506555022428560481872680463379492788893787316459619033233155565877468023234763982815248375153251789234229978071436244686773268991492244115535356580593478687394780957382927904780753843200767111440107830262016555499896723257498005979433447482104895415384578469160060800709466548126909813935564370463066072611366888349994816853146408837330187184922706692153187737374111731305580256070615683345628940745362371539519051682703452482216717978538213498711842538168878054502683925279478831525927257415851681826588171359031318627226367769621476825886156938507325586827708126179036783407744058935779681064376439334634897971897470973102650532519685222725177667767909331718716915538238547188621567594144284552292702601802472437890572076295245388667968525854384478266921229900337410091593629384415912645595216248795747492357110071741710049709514536028869518103052428258850864689675936094866678062630199091307133834257495987325722267853626711036756963085392935408875992073479088940551411581255914740015798834104824468659347933340002902300530966893470600904337659088619372548127203065056788182460634844422319960944780493178791472052360738705225785544851635029072244428811872851197841730790752559587445871759361554892876108450600116675495887906668298611580644579998693667419274512511523560066440366157656682564488250172028128896483052585672103740605457047164898560790755215777973258751957695432008713544910238656299062907214122704680834391111669409724814881485771920806983222427561165710409711407779849012910342179380949386816110988222667092480795023668707168351472336515331015932947181359018935808102203443180591235052406228878715917526790676809217144435520481237012153181111651981272517320214685189668993973947813063830930219706589233600087325740527455996020562057733267730817248406036207208935067836210988708791686896779058304853953433669046380695207381929450147341189421495330640595299951637410985496106415083389578341612203830186194436042966490921173289547142194113997124827713191885917637322011245894089548570397209981965078198370934988312635147477510393820137469575389040324186420646807076487294076125554076376373976131512190627732704831902920703916203564512509848788160507172028235533162257686328003403925213758020413699604047944891973799221593859231333030057325604400090557545116323185165868607163225661714045353238072982926851816256796588973756985399604261899240336321637911208025624845204861717561861297930449273962836634375384312190409181443216724110535345072536638103730582114000409325997862648178080397354797783458994076508414543402497635781709966209177833701274968402486939925696200585662053088052211813527724678496366415293219243165717535330467692813847401469215321889734273455036069242960333645325827483006361369126730951519523121760340397689095116244087091174345704344451891790648616764260399073636508805023540335255587693631897328584269670366906095129834046786141401116217981500943181290488848735331094104709539541900708176699875059427181290528534313118173319811191953521304761429251862493025341517054515054950643222863946580071773414736632637545895200635154188128041716266264684271303229293955419009706339282417043218366548925917007101930635778464063117672741354722816762706210767339303895556610294554848407949449798353134661024411563079447804064643552281203134554210074109783087026225669101470622044962766174052247269528095143411017163083219599832764962578982942130611141372620194214517092381595824799945772990021636965265083726407264115461951642241453356303306291779871458108063006179868604927079841409982813485827293299177619929710882842896961928808157037350483566520658870951873479400007425213144183448684562354783953643751081321119655106533809550217431630281604738052712176081337658085080667890092265353863855774140707576918518766261560082329490706570229259786319623878832053702085609447131519920280672212812692691436847499160927217882229970127492414601531381485750818976835875771892336449798422799771785274129063823509578876833947350199363472201862746216657219319588612422944555637500958737539967225402869311886243095449696561174861184563653164705405778349681159583797650581064428502754748449216287387078242662367111606571348185681261050775273425836973681948402811179986693907012817495776766785947894920256251107302916395001838675789378573501404324512973232176708038622079760735132833670526471349558072246790380174008541675329953632117768672555234389812453769340453829180940330441653212975181249675332199689289240664743436553636490263855958843138641687599378005469026830306159671148456674097780185709533989208182443684471569492068574185166604425694230937573811873668861448753812512234841443578208438421062591860612166313364088876815464986970227956155224212477429705185086295183433067116484961716501014033750731375423372995135364993415443996015313592482787484494725902339738696960126220832098581874408813605171336042501131898406798109719634666565864344319542199435848518426814349132257986491131194855677818766252172263214532460949937752504549721634509084351237883288185582959893869890848604527048590210957810069477797767364641496812185544877826018174144639654767352133548856807044465507129881637637417990019065688805770245369509303865730430075264294354149984537641744879406970678188181665990140260204591715996138910795083804494983993836987891799371380541880691154653957982003866419037073222767661670982511793113113056931719963328497319275295381905820034692935592086371545229965554758032539755854825100324752798785806424370669573581945785399344252127056637599660329049591421664166980114153949520259054061054899223890040569739340742571264192243189161381510085896090452155407790002460272599124307107933230193664612557536192442581696991511210201933815148068397265523481428918560965308339237391672222006379146460228069848246798679234196339630826473531948754855189419946102026639039894658934420129462888803705072806573475863498095458521542794954600208061155168451727289978268827175895282245582503249869106684751590540523571764250470120233559582315105616610812132453447849798868817969072171054592440596893070785427584231552436663467344034011551227071076491761970572492690052296541255777732673203796097096490220306889033474245307426363087616327897681450893410106197548437530032748632435781319777351123666185415932869693902147526007020322431603655907481338440949988004139867653961571252973851158847558020946602281238804076172806442473117138552435910865390808551471467642955606352310588122174516132226855616561676900497579327747070093234003707832159663171299411724097471137503644911456046730073149362020791710041354993559194767080306306675391545998957686189816267451822609886853816180947734929540825388845415776819828572026687174918538208495464960115799859966833685689466535168466760240090128120104291874436893215760557261975426142799690669072804558859853372209282505191474013533588767398597264885822559887657400954485970534776383123535295322317891361513831877684629387311270463953074191337291098118892977774076971685256620245533834264990590539945885505148886368026350121194675102696440267896195767490434719689711897102303715419343224017630866725291451133012239859360080930868020544593001586697895368803746530711927703388977046137729078018964807668169996129470305982318344793518744875299245868317544721161172808553171540686206272849564271919267826445306413705438510257969987697889738274935369233935939102491462928428803796201908456048360728447099142776554122806725977396769856250520328239739779979406397048467195974628931593613536020671801644158497466758244927055185881473793788935141978411940494458272052105922049455963614313357647354996333409273130886507511122680282261667581717079765823290402150392342693453602347662668246884314570793456116612179986601525337668329693507556865437123920847975454833311247280903931638829568797422691700470962602778659423634562135371239789074184500510714655975097045693615953991024660238309369072352728257613968588849353171773718948997078922243777480057430899436291211779384885916086852549513947231087760305382877607870323035455225767015543947562007406272385236610230929306919694205954234176215787600236742611637390145774011177191621617452546609610902884908711771105780207204674048648541919199370252562111943693117728268645189949403645862555758510416441255723304397048410951389389353406285165295737566321231030700612499568198206117070248484741231876558433929899801617994564178561207685240752763007718094432755321330779802855010154956213935033753241338080828951892289572714915484057890086027162589432490742777180240423264561348851520927859130351532199239098528993832731336806924455465788993660434193996848799351894861389912339353540951852297978490447030667028066079825898278922496163378999534804514059397761845613093006666945343933921432147011373752485753133728903077261602033601514046301987042054035987933707518104725071155178987642986131276476241198130416617663558671990479441572463270198480614484482636150419472604925451427259282456568539207841660839806377173004853259921608916163795027063322529462428908237020905292107329960706139239146811646285886124327705457835175437448848421167475602117540735783611685317077270990712701076798087721672679701840833454117337072328871828098178877398921060981514434320104795781640317157229381667536675535330840715376447061380523363701282732964512101815038881050218430081049796452916381583953362100320735217209705806674403716381100224050308733301722788833853109778936987360524817322196610418282540168136983956210321423839628866000995721224459273377067852800962545104038994797727946394709753314889812976958181855839757325314058637177758796067631842519020636659598143585420434406175921060593880494543063078380313260489452466505144578641388920506589017518911675999103875606984776948866132119073903899282647666230758653788754857717611512087444560651408882886345200563264308915948061253478861192474741635456221631294296054283586699751587551894317383645814640579223626973671565914048111948461081604191566616782875352393397306330172971415898279964516988671905910484680306353817732507772585492964626627192529490247438291396549631994263140086326849408275776399029398053879813753952338147846646303660676053513984073470952678892666523617437166995341904619153595470499561624571181983551898241845240567807464625403114215614143437849345888920319950645288761677694627381453058593681025233361980051688400263513700643986076508771517574017896416808894227175133601114986368089548040516996280347790236186029262229260468457496883894036829982645445097762060016635521597933945150500616918675411098412060316575145939129115305044924453199495243016500303635860209875298733388144244604342653635401536736092505511466411184629040098383763422932782302108612113690482850772137147482029524582968274313903921429668640180480207037325720040321303273047707256695527179240433211409765548844117239786905935134622682499347407085872702198794638229429186925057066369045934012340796692885702350555289002303922609875213170793765777630443426537772052265958654906454905475774772367814796327766092452787395606120691802397121103836757388985562553485533426064747754139190030284242305413376332535575766706122458357162279819206374809460077243508696826148543889446023491407130744012803986066392788723596219782873415342410412339921822794209025258289257592025385317551563061943030673542589898039371432898221525970080241003539566986539698978918116497847649870787358736063299866002571555340050312329442091743311224531380672783156509144274862458391335031288708886914472758279146779153145162472740607391241786389315555937880723599840075531315911571289812197833761961741815673660976622357614433048027965904088059348507665716562468930285230712489830948914232382690584369028386193538699071442636155115520993693123507629828247545812320101846605979426526605374357802628716417631769197452734354951277443369831597759411356453923095964045481090514575453655159319519490226321178590365020264298989745305536811449600595034869050040185122872396029063257884968461340418575816226063224211406078292493481231064034508558755102309417096910569537450995091358950696899674632544080204727304390915198425669605105910246311721304531308819134889998134368173433489189216268263037384996469685203439184037506733098968725850456885864860562473829172480161304205709185782891101831174159554267643064322736983059224273729991570508767904843137996029648509479229384248840506257845647781275273154741461453804373691901729653354220976228225079713430446459484030411830476353781277120376403808345827360788570816732325189216197580298391834396569764954152998727281954980730127776265040305892372017454968089605799043579836355717133379980551457359698189483153606192453034091019789078773767843357317446704055826709973806137489659693748433243737692095909133210144760393572778104027674652861564612911048643414055529779624665996931633687278291586885653578969166560343315103599087815512160313027671611377191663385989484212953667129955814756154587866782601533899079763150091488770152770918462717056886662841848624985663920319227608336805343741550615263091572531392422498666242260218627815226487045153663244898076002388752298998242201394095693434184817220995629038750290506025096181471928318154750190139020517866075716015174263517616227713621147330938426881932835341132168513887693552982465400405688467849709063803633152062178165389226221210225954647857251397471130241492151955142061761420021940370776727806888430174720387583445616248391372486606830235958524268259026766176762599169851485908450027082352597155714432537721367463038005294802353082254274616615416745962177699228557595782596277856887255338453436126136517473461046445164483224642616585496591069059664759584562578049975079603983877964559634536729133225040098145185026032286237709518251755984112782453905164955702568746936825225221222954257077760693555421311576269434154941108846929535456711217290831853994294463217109698793839707418867140478001214679364049493938239525724052145983168878278220336786898065547884439763804475817520104013071033833774344142779183209300592941478621320943774004334302761993612045436243371565691307109315649249392763970767772534669668755007536644753801328515962952476525725099246915419030876518313626349677266111521323863018008101136275964415020106421109517772821972362180024575737434021780291136997835716570057205992669054134667445357179097539370089169994405429980294083401685557462505885485152172967558835892709099287430419864275918725306757499042395454548381662838373774875037924388118698085542955793998721243082204757564997463348581673853087090507720197040934815409858760928253141638868336485900402776756619637238999122309681648515726402928822530215615502041605498658452830671234624921551038787619172453287849113173389360107867735871198240199422348598760548107834431921172735179861413680998238287302278931323057907392697137024043675340383699389971882777525993981156582598782203445976900565434881107559303891745347267591061798777536352150750726774543622261667909772200327651128489896195468965765743570276048118657215700575124800501217453052588965134268820128570541306877886345349884579228223960698363963297269520725244928554201160079904603850005178547932447738870541218940936022665963135316186074541271144556741286587256726929083724738220449512791962343716155770330698581857166152739939334088828400111607963928667327881378485632592937838132919236854681352766191090291378351307585481899290651242957496107595996028270849754846788138988799128480604169235686628204176078920618314006167033590191587388554158307918470873496142935642812722418081107467866658172063793822989123468275040311770196405385848962602998285011591525872110044913402187818764948541588045853111758379731316342719475712515976101039681187176734120229689010870533101451966246059130058578435204056326701291291812459724712357661036042425017245640095097143421358453931668542057865979252186317785817057286135180017756503390594324310160757747707754832030750844660310128316092747729326393988138819707378072709196093078243519684117104076773254279133186133685922495321070446598267362186004788772098485320943188526583740543481784224047274039000486734432261530972242156458848323162010178589674946341801417520743066876250516861898661257503425030424165159956602180318201613824763640616313864084954121680748708702636405673150702909872169504594713919674172645490732412716537925591104988323322604721074768754991000442748103753362452278557162856733581331864128230656403945427258715944344240537999089564270238444872062640204951934057917974561279916408455690301599838163370728165906950466171575692598430380780471409908272386757212849874314886125286636073783325324337073298604247129025530904050990063102289372528624638239910524367830892494897535441668574344798220339022363380949340548701253194013114152299886864784266352449109445404721448284723386151069594897738167564564334993823624308703002338944951624529356873298116570426345627837200580904252352488795065710519654297879151903286705067174697458203779585625711234257761634955643401245135355268533225980179999359033909448706577323890037392950662147771691260112271805536294836359876141362548987863785084197728218579872252626856351225299662799165694621488817599794952078970350637693180571661752007564845235039644978204265071900962961708254449972367542392250933525267088146530126494999475527424120394911587120338398589538079510320065407321981755193944670594722191501406787896994564269163508839424311605726831166858467645822454028744740326605094509776126580757488995468700534944830987698868324585929778029611138484309350768918626609509668149083182455254677273393130344121827368972892964232373108640505833950350055400757066251349842747869403898801300513204618736162900279506929098916212944578789984560231286853676454707704274162884978461275173206205136143018332428290635145563630575551195345136716284623510028742479804233861104677130453259888502834302392295417978809125479197123270319565683637791809759398529299973645914792077619917052098164842436039439210616308877582423591793939158894018855267117858119550036444785028890557769289950144656998579153274901361465268435131739566641619840736698802302703803468921635139324542869154084113602384480846734538923476213226363334069188892815643465546012193399283953209802256538566022595968978904195953951001656967794480186882115645122787536779668074922439697844668754411969754323597360737423048466889141884065468533139538598175564204336614310198731829525889545563647273202422896341294653466461406563406204687468835948543749109784026200248361729531810899603349487293535349269613141858172476700542331495922128197380478131792353639397471095046590755272931949074012311618935720073808741869538090003761665519300337002135325745481192286833546082677000450122925389677611706749025676666423354361918705869028264420535684636530588290066886672783579774205459510956767969610730112596232251119872871505546543471705406131195183897158716542624008729462976467209707434503976469708626509914341539240214092127921017655403806692788083823646899664224501847905866139622539821664878915525853319523669941168892148609765516516117158468540533261408800349359247779972715761189344995876352159577677084720230598420796455237578458545535697678167913630454045075577315382891851978872889226709807466543848132082921933085042242968333669474557826418281712194632079110279360396726497678316147308720831477889165441760453564609698708117215930870836202742788854513407759813879471619956348372160832649043551567359664226256571935908603709322783091053444357105685002163075438590673418186395414423679078752237127889046916854474299197579162568908175225031853524598629149194909799320909989901443923615183729708420652605128897173379282233487760095079644318924181415910438108735370596929299768750631795382587335697492245106114490866151527605018532171907619593651697684773239201179313555052445387687087737780460320110223848622122438361678299327611356651524632754061032769377260615177833457054519327967496626331783730454163731982767380722449122633229800627512380803132040048050547299474212538904834003428932592102849858896175981596317101618682938414521025414866051145782070475386254510156716546782608635431130959922183926835166728064768764790919841829585212531964061965858226921050140036092064885933635681070797580522909886739921262086437750526243106689201749605599424891990579786470005732798245944558569820810178989198411754354118657723549723793450884980480155086760717389779701535930710093613216022127209245415111719609592899574782578070365700588880552426637447066187160999834140415305235997814951582316909273026173104093597407880678515070230653565485500222803697470085134436514206222788058320416369916947218103353237455457421112374423925914945441725856136764443870670683280291913987573414294316449557846924536768184499192663235994225405854975505902727305676963660092401057484452607995756710777851850097754051491872552404194131856064530162184639547687642340865412958723456244874240037407071198058647542291902411415496712310805792128168955546268362570204274916224746775826176694783291253377367576600802059331864801270626618007546534269951885108080235590517811608952240621072566017734689742379681209132518760169175107715944456410063977696882002277670376132850354741895754809217815883752247252234144420711568618620059875875163608113357797567907933416234083636059343463430313183329539861848929352905415922732282874660130640407342998887386160962794245395568237838566749146241417147389819964768006815412026945917644807027462806208023079038236080560472331930385799021167394077463810688103072192987652678348511350121834718552719288548330400962057260333402823726550994161806329321153586152983817974852073695574195857191124844264697214209229717131898470167294492357796522560605813205684607178428557650683029189913046327231799152612137518852686594154310877893993419666563837664881612154063756858935619631338340686154202311321884104450545651306855524329689696298209786015209426575985265360066728666745578506774326138646969400015987372901664230125074426551259817389809530597869871119829305288476372370538839857300876175926894827493008017055528724999743842050141108163195831914841849031227274879029039726493713436071876637421473750416260321854036167931642601285640970057967938792764474201637805139682363480752304980376603468298614940888463671262052218384246322814192053829000815645259126398596679086746998166773566422331722179916141411459393990077594433593537127237914981515890397088423845390026035571142239424379484361647982133876291277247678720661964623345712175492832169365258303925825307866288137156105886179918436926169794876806610926903514762671775693685441962999830232234045202144305788773202574596777604358416213474824136190755599251093679905893840652493929354757057633180057160755297736606921059931288819727539251846268181852592361518733090376666283436680518534487257859072439870070312841844454837793213778319140655744560682672463488348244374756271485699312867135323361337784664557841088346913854060555277911080913809948223487677346607844584816133743819504816854811478334705490216039151705727555728105735012190478097159630568506195926837378032296955848951268317880097588243152836466273934073330905036218033860960262642089526213114618038072467325589443063620598245792399753626192881232574267436537234336312847503900619558361923644287800425572255830010929240864958083968997998623531260048739876621997593113561280223855698676080770887656424876138416003241198557996429389773781543227337027254425323795423772111833120951543935084717100338879380834687711364443492143388214857774845728591161274815422424488510599046081333058152828211209839648363599772185666627116879533402909147809883921322992041321636173874890438297873698994651598221721528307444596628632540188371406142063188540875641517286812582346145662281231393920171297561677913296406138752223863950645569778615760228388457854049950189105754229605005081087169963755088929368057984744062340974630970969937336142370507365232536350999535353835159243506368282780152923121246593042524029406730616798959366059387478274650370286052720767587672306421845176569228839372474119735710209792500424912399297901528665932885929115085709964333201984282419894082797645463170245938953618642375092352136233081709467149640965457346669789543791819010384119784665191528980186108583583852852140109188653476254599960283648753015819993364286606836737468974631258912560456758582722936168382741457318576835941643103607593427453831246125253002428432932887099902068768794967511348620215564566674070660690374268211070813171277205560739872777542577244264801601677552699043365691156585218946460138981147830408151266311633232039280049026064007204515758101394410671327334690437350993816314696400749567548302501329340503981941871800356229696034006724788356510872921271323354915523511789276992238021669967716155681895511801668313846902028939830856586517590340964973047635069749720705586863001612197995802686137303482809420251727982822070222428401995285317666936201719089233738795492295160184786295933235574788741708612195777207515880074146679894983384226336539188585131904554910928060844408950630662188833700836798776399123399417445251587402180157344854551201068670621115824115750970450316641233888160544616098453364361167148251438206243200896380885441783129748427274008064262959621804053701477680202282183361718952799061070146064938908128248280865373857119027035077689699651240984409760194200235515756878879257074311893567937896763933907540698399931157833252980600838227751498825136370629001436598943475799761189125113787061578719648424570790657611783559781496525537295321763052842891506201764328895022819919460593541606228259241641739155010285639385991533756038462605357018550032497168290818444436515915842702871627322062434670502792847821615254950525961260404072220886506471943100011928211165579758220912784438680491150701018793771392796062152373551694393572537324275209893730710109633108213989939743889123540331526199236844766594080800619313248899450617670729940541888996276930060693524816697588760452051615247695136423151957711362538199270308240528345424936636396004494220979241191486404618832397750260876939308214283620346286010497912528616434231774676657345158631829345000480785038149636936521577976491446469768802766241744043079028801626977475837201839040127579987563465715605686306374670069806442035137607867598350525141502613509220104865490480088693382835025949025265172710404398395079164022431416156994862931322131148088619724703009250537633555436242779654370080263813830711992005261604376718809726773409435769418753776562155201415899926395907867201980386172687225020811760012444400986504979992286443191776103255622544546647306451899724304067701405935334223430550638152800048788132033883798479797330932065821617265245908066685912578990100862506207491381579796540585333890895827793677809712512589004268148478944671054949355778366225274650922566490265565282307782228242901006732788783458070592367181549874409789804753667190614936791467544631790779055362301606857067486769719891325312687877709490936120304595710271528257039160835791958190381349000815330092560179471778012038592810028321418001420919673019917982579247808830483868180107369298990765985795942443751343903182823163905171835750031176414859001412362932739053339904444606297277669995356096604326833410934362236461851269234998790099964992763774795095329139201876535003273479535678050167983905739243290579646581640457296421857084493130105321997507676872635596487149478325845133154586914999041243276861030444811842877677607812550685209441415667778581876033660387649261738719533636437840023123473237639146827599927383565429888087217625760807621054093901117831281157836765783426141531940149973152392385991733039832801833488974292261425368396252694654243649223446560877912750113330570619543155936827744082734407920853705744871138576193114528949928970983768007057723694785545747806328576866176649684948905151369427620695735078056384616237054422804760974379184851412821609773891979744822417155392231994757035795207531857130980635944161981925381451959251828062917514732877464071555882453549133196104924591660964693453290119194561437792581849998057722890061217265513220718772144581390832813937234246265808609710899494929228052937648248403247288747969785546300784607082615301965229616597500204262087252582091977591760198067372252689836982236113001608864647375572076264082277300684006068210607861782957684951945364174479361986185858189592468499262090268914434280511801782955748553580128087429687583791868419396946242852600507480301684290388734909581161602207269090537669901548279789953685420756956777478735603564047199137920650150854148755538870851858658115344974408852662696584251665432242305894294946506380767880282904513426987369803973863630151303052462931168887785731348094327856561567422737386022571731205295837847773844420212601014628124992906252087365195352887024229529566178050815974837759889078149915260696103438055351389254049773292408468606591318866472722573246653323700345608249034305459660187897933807042123873763590600633065746798374680882439454190295430322623425811669092069182710559903723302394046593437653157592634258754408697003972663241827844765139935414304334732222399423026584283248902905910372516744133729337582139376090336096166523389543847549356596215018691221988803327242032341369387630634300529733147978232361744097723972393249720642586247939193201860759530436683605813935138703509900233517688465035802273715440514471514855445046129289550951863793802957567404890466812437334197311434270185219574762879915514159711660494005393839367015921906151822918293681149412687981195206107406993295546910210927189501031420666070731374567458668350014587560143651093009482008930027108928249448707570285665268848747691858753635847856586902942931610149699153251076728504330051636047320056512141586663692895389443025762581742177003170296855220857215875673445165507445000625495663104691243057101229245656800551441060756703736080615119608574084535440454852226720104192786134079703898160732943421159595648378903928143819692560675072971893893931007073998396265617221071336879729080827269445476863326019605509183527127568367563462002072409895559351339666317531286609481528742186116220048092277603338852548352073681897584478598239989952030710662858462052428866095504826855327107213624446043312917826648673785603648209025361743134454382280152100787260453393817981326177651937987673331417284738719242652394026822552345704779022427525153160292687962726368710878060185307314291002268277638729640982799261657879915824606531953633931255513917903369455895487369772431005828243236148529632336187930304325380305437837540487604314048087222014495104898444403400165139489177999093239800752114060300125145896948958045433009601633491307621904881086626804870997804306284236435476358983376729275043127419873557615457168236994794850895782326398996025091016257394664862611291432668156299850701933632820046329798226579235794297123660447120514058526617761953650044047665311555437582848710332058165074267796329358272098921625224413623364957304778459508725444344544090079708578900977923446926856028500489918209727183540061082364353269396231542068827369919788061681182116616580059091838409091320537379506424234460744199548016709293767618289655140433876799952694482623032325486819566810736313844335030831231590521975390337764773905509035324108178947342714509769167412333937849071570756218934595982790979107365876157735112774472134117456566415974864871219646101605738505032886897420204000779650532738862364759277121769680094764894375993694276545085834720624272266075847894934708764847044994631534302044050597765468830641705216009652245819527617474224723781072569372559838329015136205638241274548650118735968168986218049531582093912198989173500362976222451766602511032251738064047143789575229054135804628852002127657258490595024210360276485936093012331406962211898793623674989901017965651695521029572734616619098792139722309040821080414287736549135514539091123851631745043746257519309284000929958818298605781670109862659344969864191773745523087872742897064984713763127312417731653592551504752753221400509842847259760468546146468539477675477288237734047391271523080501582858237640711657148830792666600785633120205953343028014601471750433357804788615434238434194761198402100600604268555666334966198205884863994782442316115699875560128869019697212403057417958348372820178498666791120844098209609873099882087813890910216822015827039300443259423143801010520631426237687849982165463887629006755645627710579329374304080710010507862073737554821386135642509885172483853233401755275417175150662191719445798104829568486513141865474090921047636780065370137905925630745225210438606725004869644698407464917229302287676903986115642230216014377214093086310711603877209450605066452943563635546106249571229629164324032357274860315629557747354713249355635356775901829818915919364274069303433107820826072624257458916912085745096822533392541399018915001956566823531016310297904774725803946012778146659396801250244228799245417058364153176180537969665973134624478880794661365517689593914411157205496145802711151794724254854825437810880881738212481578414081328317617945887350907654223848175184112319943603484062370578786059862238432754081461568226003141430860030378974941159159847029649017284047021825695835760079161179063623221182820683984158627375134098455369453839288542073789345365300925515101548676296586768332206378476662327311932629846650458415006558902182460336321672305477196215468687272674775332620555751438144223211915163087635458143918331222304473751970462066587896850051582821768630624443071262959771972229765717485918927658036075233203775214884263867220176750491201035883295560084666732227431702750371912876331687910535673745205962131563732799160014635212617289280208856077115197137322566167712035939371566312414425278571763803823814845694040561474850663804810573014747331360667250549123969035691567982062720495829694950489156024315404664905870141354757046141695869721668536308098171210155749825649227214427571433635201233439508929436208337686244641027798613108346242826284203505157488345510815562651778334072565703984441544538389201558781837398670657369666167182996220858403800501102823483488530748510183323438096105572275212305117992246757012682432510308257486330482053346186169552964417259383874130772108212364619901532978909464977391776426216124066087389082649411195377595778044112787146502255396596963080683596538003421107173301031973161608623026485703751557098467439947487545259140411419392291458949584804961368151105622910316456200577094558498609839510556314900046419604743214203988371060460509665358125197707638571480785942578613226472896834554126028353302218298411536749556262838841562003340701120905649575966067784445995881735457122308687232502092865669282719809860306207944172419249423410880114090971136512045148752432040046152001932471335913270712215889982633781592021062536307549287921251143941056614315829406566104175046640209437449994147965807391323612312580293506289384161350594924154733409647559322928884806004227560803878537681979066519088139087228899574741346142592077994218197346652009677985262352592901823123944541863107328323233948447502245263322804249055001097422996602906775303652859388738390415247772416917625081415657351133918273425172493101812864368374552972654134593389560443628043219952339088742443805482238092866001900908356089032003598088497303712178887264971906481928547018132590822555785398506248528446739057024961927848932109309535835884991198585955220306211136542206260793679320210119886747028674440611493232938078254135781622971436574183949131119630433562622428517631705550086254383600811202517362831893260405318404671829861424479367847903475360349520965308868981738175282519432207652003546917759284990817216771604772778882204944773162919634689468338842316009240088674866634606314193342500814916769487712921046831684437344961723341831061736260190255853615742371989065144061529164815394974157828038840469817659731163791475954939745255401608682040186893437387841347832613027040762769062241417080787947493532576759010613569579842330072913055327148671062606998410565123424441666217013582897337630698680620823836664490560785662242189850751836860548707447741483415563728629061323691983919980612846814085741835959927111526927378024620621609919639953408132004056346289916719450173237018459599202421650612950048448024929773747669586615882345589619015814093302697942177217787546957843335165130631058519613451314045122827362168812470637836549741080054935839105726132403609748454455926254317546431548280450721057971347052309575640729968784235914106046171355689400184149405474041962273507225952223917535722270111103112657853540998656732898005156953219956625464296289598002394750879827980314815925373254937876591748903234281924174697481521732076161050105913365473023276160028465186407614835856686621410040777156925074268260716940472572108162800405387835190056068240492082974025423091862584587904831886060401523407344913860776879861661282500328382128093762428325513838792444853402825537516070003934950263121803269114805649335626327886550639191714949070696899314961307496357404535490195061608590344466449602695686100742293920949533397757329263792648792807798535720042647392645714940214376352200776450616600808791623473079417524519174960307124031241219731920155133643421370680404937326448108055614760932814204899277673921338167042749116797086662074504005111938357623959096211130856438382378238811165709256522781331185939104350265877149850158116080421610647378823559873930080297493456417236039062108598718501295704259811511058340854166922455441072423926105405259838333638633345834312636372126920461118916051918111658472188559482542684743588252730580806305894804719558369135026787989197768660438416626541876959874996345427268661981382435045224540489842249291243121965324726715461802453639361875467828810977474527052665740302584179718880503972345321788816290314183464838802662648595555863209827646926811523938402060371189144276738022116768681375256972807050840637135812178011639801450943568988358044237240829820200100858494458224980149810665831408979273963866583982240667520364385249152774071029347918047223432254913694541180177022777255147155653457213959814543197808393390806603489645328468129499932874554287263370370948639790229836846767538413491359791977958992893612450396732793983124163186244581474920689663708515910152667768966516206174823919689067743570562546101737910313782773684859370950626894820735401038276748880331325734153932727275343191343174121263026475702906393799006366050895209617033632498933748607394268250739792699088673532038897112487032351924936183350581285788418627866582202466898628897339519112913195757450843211416965654696476629912189140085809028800536964533198940490911701426658136450957449461850483591704145361552862124731084210599472479609903784924230427399394319932673241753887830716122882899123281041686077900039365004160370059424394936937164149208018887054018524423494467937557524837359037631729060003046082392730513631810024988954558126514388322996151935144359125170736435013818766875827985009992294226723071904003138416637903407465155819499914459200422705299275107393665247030591983964218226968695850812576786890732883019073803941141972779008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

...