From charlesreid1




\sqrt{8} to 100,000 digits:

2.828427124746190097603377448419396157139343750753896146353359475981464956924214077700775068655283145470027692461824594049849672111701474425288242994199871662826445331855011185511599901002305564121142940219119943211940549069193724029457034837281778397219104658460968617428642901679525207255990502815979374506793092663617659281241230516704790109491500575519923459671150440675063714022708749206816997694320773799941398009630061088055580632908495646136985873837243161156926223193337426026031237137974474470577018529722498995430843666840857137212029364944154287170974831131413935530744045297089403171760324151694984531445200417116893304291679778788874185318360062277649293631416526020118971740800637296068438979455658128209014527376262747971051223464408049018245540045388225514725456099147621793500803673973673690145159872945812152599388276095130964745799436065360494884125853824971810436200891968430118224049888268345706295621160720674215461836573862942034222336783316345377883951743316430425645903697694417938926772578312576553190527028108453530647938923502258320481743102027030091076257512010526293603425480530793894048060103499063772585126277037632695600313873835376370475736810457567525877842860131173913737192919031100328944901967379207377464622877883115330208176782858467622641210486725897063409983154351245709948287799837604352486193041312842365463345251507918943451186927447726452296548524441734231167919985304235250539783508197631869728016691417036294446362840814085301811306466679687291573159359303853458479975073323443196515772052672723565499198843880755550736285243547759838910279446254813379665997979077345764571275739549932503993316705155239787864569068947138958992590433778297098507780951165766905219304819308577878907729325148985511276392882063395966612370403875876988011431266744109613708115173599934024274447895164285261317026443481766476589457523478729493567486392000318437761469571523450442373498084995473385841462219273944321786741732231346917066966659050935170328942151569720492720166889822963717531110857291024662843985262266503594121687311940870571282017583700152072201831893134135376721114348015351381019227343880264987121048037199821012421632719545286276121093402058713994208485021156349906211451186996890225384556068982701327513749552056632565921106484485391506905805767753689285834656554177663617405067970467624549998162474378508145295073570060964318360377233421794573845840239519976140763708666507292042216459855858614574356159977619835348354821796612160065262363285597646234308727739323405999868323229757372036091011107973826230372020772750650009116372089608150048239036861134906736722734919474884797710657035861792074779783034639174826885763568425004383390375118688877479237862909999981221517409818052176703527244949951571771673607491586231467960419997324437389984519182655284723882118420065605229974913319937774813591233478371914577728494692717177372899364477201396670528559811256633122782788511529812413037204329452606672595015139574121321371299632018543741858430626473656271397787419483300894918192107494559304895418819848247742122894108797348729467695490963820174577244429917905918237578429835966796216757655630613112463162072129735174607202900454641765870268277445536835335687381058857396981676911489158819197252148499909833605706154797876592072426707975064101839978721502781288899153691398694255272901432655830940319546709727787884651455508007652054957134834516190283261431919569963601888712075878197118033654430806916316304200987332590689765421458479320464327647653322525366100514556233890207075874313764673186459564638597212935957972818417121911628522872726200923118866510094898795186799825083906460186435060895306792941325522332350703750929241935269117477232976039769699495852809013088979382008158842363385159371512756976299797283370998983271522896809404206797843068475407446670623129188877940730633344389809870376581161261480269372528334494022130692698783281429257113596035586762884809053827413321955527756973247600678464874094823066374506381203833199291076231577682761686646421067534923624356028592185664822725505081774745810258814678958866123887913873404158859031756456698643863332822260309918939675795534868887078675419914269976815781701631784732140177316210941899580931445977761784922565632026267402058160581999491295699163091229297431032781004839715812262186917566612400524414744943353370910999809988171421619851519857786473230876543910011563250266076306293155815853737001613968856958304848550882053611512643130644123771502450226127874050725854323936502518384050432117402379193464488478534847468981529293454750695929197638299615863436004847710907772076736621601558364932925508234888500037455559036328766902926922598041526686035937108771263335447036778673334084444221878289860575927625679778623462616860084251100370997013058911275532062922511818209222769536564719184954457258085285472326529170886785754527720686299609792794726659509771851362298593672253451797147666432873326974046954605220212261014597223068259897617548946222459085305503307331823460284721253051738154396434074196209288720954453478565974830518613912412769421654816436981347446611748605941848579896347848815738750568802088798097041757703828387083025801363470340613877394118009485031531049615689472428821003240169088824451191240596945188070560381359613619660079290797137186091725052127559490711985549459812977749090248499215275602172780038211618574952944150221847721190039086456320417759243032467704322575045703605058575236651407434571481352788981965092884436930861761322116040316945681342526050918759781301633714274331337188260106639407319280675334829220991275302061673226978621895605362587114663781103941040369030079938197326305024823222385188110561712997863917966912466396736698976161234312487822573262559569674395790673803055520109961103327003957111422028111059526768255008937209295326366532233036413500240953398219744382088948806537887283191885584398884710743740859911848062818342569631708773201077142716727963261890481511401865033648688336481672395854674565043092449392306643405365990195817806918971775669887923240871684499479437422791785461018439410983435392320089116179885575776073833886578919029445344585224970139234632761882164372009057220539309515260862051205430462793896427103964281943309819463998566985134819498078459425269738682914986639608343615222392780455732815184486833552493247247782622054068660915273628225664265261716447891243919617322587999240246831235263634862484017802996769712096175972921678719298473302859362515462864582913743365524399223655653906314996760524930351810820795236257520843277226900442652545551322488226722155039111549901731272134757330124637128139824560375148357098932250655199539592119552118151297821332203167683440563706086423808931550510855508759745210976347239653516337256659052157986445336720567702702456211863718205728301631411263943463036627250048718082926424478435326796537873650630106011978309405819074386532414682246989486735769380402780995685704326828858429179116575695338789292853562443809957127271052673655610372019739849787557200479753833961531324388779708874161189286672466762117491632470951200273184870485314286166931091536004741629351465050940510149527494327013570319834738758650206536552125729182923640944297274074154385385364724666944075849192938362105227830617256058288193096512774618546085308932585809179212750383742293869072394664957914541406306186180384239839998723153000700796810813485077585505584544946713354121567582276897787252273531412052720063026590419079040570979476897251226984882941721417320535269995758684175167224389423398844769696519182860905621412520301793827060603544012543410880418133902983054919543941189539094819042057574511571376004438743548711622158786176676911729655458201725910913228261344246169748045424211737264677647482776885787631088929421151130293687140589327012578774713973737675296065303905682930703479060547224027484060197347967702864380087205796539658705879882825846116076913004541443363032388202289965260272980175409679697677218130673719810916779040637129608298654428478173032999886331841593190713886144622582325857359503431337781087864407138258664914041613438888099460988796281645565920559884908216633335184284967036544763441008207854857760311244676159229502486702946204256909188979888999200150487503914023336683489498159176419903567353604647303534994460297491548545198952192439686542967059722238054574716981043595181674839497205341210749246306007875042473573550569738439171427510853936965567263572221986736028783181194968571610903226046028795811403221779725555922150134666535209730985850279956278107176455378746440988296788027112071312088428035224121026361378397992521236966370680367247564345327516091049439253234985084570560914288409715668422645601705740841097798468255710962473523075414208508939737043982245670853269999425496732152492483641472933234256789496946560948860806688214400857454255134055913516485852543890916106005332979930159139556357243884344010474330738935408390223825409249672102260578092875502297389775699230237682943820002511767673321354416822470307117622535579143117180825152523202135026307160424854663742001271649909008199158814509597800633653024746238111336583038861074169786157383948565809807720744623219856684863424450198909430038573329757421590399036010926776768863096344927096048903606169054686200124274206925146612002469947488711636193135692928306781029313838649124706281155838739797684729436705075161051542662240159420813663098533080405209361363678287565442953812648493903425727347688627966674235231883739986932524690746904713588024833618458232721912744334905678341981829329701478410303211209475742123094043399214931386195888522429385123186851298803824597902946508943036252651673779456452566659048071940145572672920918941424834945893755141191631469992569619913567851094848089798377414213935048501549040245872162114828530646944812832428206670668110220904252350071805680749091837290094552486841435418595870802042819292900567366836081517216200281443238495435961971936223080892887457137918573663955595573869283196939490267835483075809755761660044116670093493110646057174651670314171992981373457519345900774509514175833910947338341740248266784429693370348741332309763905866454547487208216508519320607973865308447010473821719025260166369351100691951679101168071340311775955472887609636427741400688047236082400422967455884548157475786632541620272529965792585451248916107942682844290221999908916428584756776205296789646790283753493793566372573635765451116514638790363106339032900298871452621209138985934197250408678770415644152443820068938539326685181706116320899560515526508978741601253557463590970597133678973893467139260028058626283805156155163389163054505868684518103958366332432889750356339355055354182608631468512810984587637479022168833366184982231957154665472776828370147587260052784361360038996479332942462634380504740639811754395482001426481503840836244282648506545898372000840168309702309482314611974439242597708332744175504496753897194953458660373678104500029738076522169649639633518621554540529765241814476955058117530080653345516965043703246214908997751765493135618994246175322885282964831580714078662451303786671256367237081149341276123679697893256849147312912842781443261059105871856975511048550911902676554300035680331061097088457002397673115136031869290111798884969925482542373976631609538362831359237064331433929044518918942493863991423283972376959557824228536232876754476967263734637215129557073998607741093264593961513516936424605615452201393834815640495899764219094668602253090884340391704751761570696007474494237522220017543807107763146384502667684989549006237623894911907306732184128385868800701571284468658464985945416944964711534348117900025375272016249042248975128685618931862672371286482971156158386230253019459178321059860615421127049090296691441844910396978117780843961308794670751519964971607509278547307528393496125393676542584002869913349704494482909727207242316944646347399612343987284227262916142397679362591411223176249241177159330112443014964179495528354167574105848405760580088004961373625084415158118848694092897915088047747387209480261720721519834877523127059355211603666986175929325414232161014752214360044310503839875924014183227664545603546266403801195609641592151606499892447707716071469560374276056807962400936247415818491454571530902097943406204741097357586728756315614801535494843056062369963115396331230325223144040908052882598632234154662507692257873527583677074100188412612182065080516953644407353649855894680012355025905261453127570619473728400155333317798656913224493014600441912575454524455616079096680762192561152985794930368726389968052259952378009356381854741929565574487155044133693080004936661492175671753117810611388514998197807844092600942914411810742418262855177307538629608000174358276913819872599756957708435563081470103412506410190289564413345052172408215992445406961636027601322014384536280583953670976848798325619607237195438717784530971745632655381085723493264616272575529980147551986488350429535520938739244664303518529011129051276810934008090431601509087593620768711702958861845927043957045665914909145431295863700837792140256118984591843671898741491607806428208732032753019109788908380526782392148220133899556049390818731256255076992647202125169307334101530354059390260793717404735825750827176128805268476471361215281490352238176667424182831525611304475802547128387069130535259248805320456490852392068456704800410065901063817064029936090271286682068626584471793945662174791388762636188633338267810529782966657597655257051260902412752298000904372854342230179525655057342932722347796571748506344331924952866476800698009925975789740021037689882373208794782149875146990578695414792773318665108771799870759882876813248442045366570233250227366894657932264210535017875896689269860705570642602556423053718859687513034902186079849917329218847736940043071003607560003740222263038757508021829917781615294669100052819611366428762320150292365576898093624962937861948600002180396864173326184502762242231989625592735678162444875638203755598806815305481207646830106543483255734977617150820242857334932620722176003637687080364737306443375500823956153051623076834731243671350026068913191873181949380155312619031273256697279959509875127681059344656712680606318330991772224459919993736540285681447829246003234708816628728760917844110822035907027117705426959698757522675821513119908290578355403151626975153603724858444595533242308449942266834792063935278187010246418952332855069487766677773999598329276735006483726497256837569399219276165502599267634787484419069517232644326104054070340749805971370511916283859099903531051642469462163953266026835016302473550463032146417636591281452695290117751522723787237402578080535845294098993574474805162601669527951289265267099350571499074030254201388928841249235072885789972098410436464267686525506703976589841729814192118433091475381919027787579953252575417366470119281961003771396399481132010883064276814699563081618870815193631226779286416808306302048648649530127116481957069362302112647796080276076296994705748885813878688746763602180203577184112813815394527818678223227369333398636136764693480778447344585103320489371949215271658074570589943167381274581900673719023647744807731336076881971827199931766012455995058273698912341039865831989846486808274545076152736805903747396359470733141919884409502119288151814156004078724649436476082755985674793471761927790947876942579012460896894649408876467805026298277188950425585429221344505367111041862028196500648208271362377786883412696036377580770487456869008279905350167814985863118979855994804120333722021211476724068739227984741004118273824495762896439400911292592123603059145354933080504480643040212536118493858836829303385388594063289497845106713638940211172150790062514975585436440396136101310269437852530199740807744787230525618234300327967836764160742153288944622511885958616831497150994256991354153782610627830385663214987445209296748242248210548091615381549980643352306399313219486017805695758441978911028069913355265873683782585645777875827851315806123408439034928533435257201475309650978981647340980835796558938962674201087514704585251879136190743359543554768563322391986397563007488044650588033302719297679783754253333528918565614495483961023668071545260388301124454185337763020174816204326091022387379406797517983268735331049193800459327812364691984488743231363774335700391043853809540177752576340248718144768437718188646050480174567268226920049492701081526348605712206576628927905199115542832499503198577206882020950669354906087455737715223924537178962779576870245033381352375826468924154485277978223503871510735101795434721615597099858674971517588159389780237076521022272471834680782797218003744490805745302584701450269267207989559442250688159392839316865849716779230741572508924810546836745923317425619924313502833557777043640356537158950177211238352286690106144845158884300880237987606564235388550703100100718768052385424968147068961152830269841813286652174377386375678227449827085812628655462829513046885539785282145838592955663045353061926754381577404242034725778560266413310769377504541964283398949069356794612376867612737713577501869674256259891894283348042129588924609501919382242656837147490153760434840018380757222985799864273965651010087882504685877578305858897613458090674311737178782388117359853593603950385892706264240921165460273049270983949543568625102943912217889634337473919001951029818116084754110153166332091052635763831857716030282198067031998552985204183350759317130814344298054554414415906609281898535859396029129481517233683503654071083830465718026398379512888544183916132947570793094988700673219691138844108246441829895397045321337386269882569210487201252383840190911919859840715327168945041777687754021969701922910732501129644466216554975424992918478806882076976091311441830744167384740844078061633384306886731110593182954751904158919194118298426048766675914187494326072818904480239650910075087945216075273317473051979053823359920205567177622314316823148958948070573780018964826783690275611998450379694718823308438018873397005836014523054179096649538215810950047915331883957763688210403657743282334105652893894892941977376131788834018029140347918475977612624026859016682882193400920139413260227976761308820719180727708577810679195895227111078618470700020454928051479930985206374242010879033863020547250293916168733896749822677063064756085249589923553859124501226515653323317505634123096937635689209837031700044715701537688935574802950088452515020347297236652674650670838426192621064426512483892281860557867165062347109662437237637161654899328517360909157760832081922000769974662151126778069448837602940992028904309289270553749060092685874093157492246082285716827863094139289119772540468271067392293778826115904868965715762768582626680088877653891255491440892978550074377920050042962048645324649489335184444191515936079751666023761882469718821107958623003322996482189546809118895472428145963813468454244265965640378710362961423225872095078709038328977038395363978864937653316939981620697486611430850422979658498812827040973986634170487309205816013004843059719623850241925666536153450560285848527621324184401343248478107078857551500158271740075361300813865809247340399612928476332556149116908559456272729922563120126722563823436155499714425698193080912761205055958580028233436177643345524653914628905990758187199927144039138210764636664645759207323098687123911271555774407610281429405725497333154545699276121364181748674951155786244143323665819959361548139166109101163389278210760509425961900383281183545842941224107594751663763380806914746178457409752859766552686212313120828470620422252154355861746634263426766811079815429749207975726820036309788612042552829035073711356248209752557836891972977501451383814141122523781302308307486866340954214702417949932917174246465212245553529760348380834106524380225859882684813718955941296909024608654007240888920614003822900830841625457317065319725193166825838637486749362850819839783816018651430451900513951527251675708413752157506728477804907048446295623390061484599376532472378875950926862973880947410932044104731707044866983786829907463709235512781701260299611861488262544288612193736243098335998672041822492684136320928471269053398449421388676142795021531340845921812166000429291352151339089564467484060244627277073097623793735244239313922136761911362214832336577745829794178583454404063328950596311298330198659284951871106188685446947051134846717770820816325123616771793518496259351635771607486287528961020451509682910391200619089683075663519624445561672522007659243827337493981202711821975803578789019014160169403942060189926971346252353075981392733068476956789502012183960473244805167583335467319637241938024740971088357666163486448305419237167946410975549428392404204183824400708387987511697931593193554975933299667476892892576984644183193250416354218910371156983868449807822528803250807068305837192125568851699598150753007022873246025374900774968363961600434702304254621108509790891286107043488252952074797628647844759910416074512630765579153512065390683074263245736844623981434732543185043336190051519827107360822806287274985714100003236517961411374727896064472280920802296124681245366192817012913036989572417461707598663016537276691185983600591300520142581044269229028518336647699947275859064833353452732169027865825401056269268530889184057649228552435507508459312235535487053672675585545410617337774240708957535691214880690363747826716327682713436727963100151423202049404612441827236042608266523563248350244892425381027517520663059566459337638559606344122818485460724780196770297401672155962807622879698403020137645927340110994788657066941397353990558801656160081774302038753493546176584192154828578984863815319904653908296174772706475576108416447451273550741334629460699372794140979606249089217621331240986023316739848571828634391465327823588092174670834082077495535313686835083303923974984978501484178752028238884805927885083526033120945913532266899838138736146710331700630079382677496687059273610825043776606433292118910747889024750435679493070066553457138983638797651990572195139760122383251374658461246117134837970767609114161871675582925717249374462205198803175351538166335434856785060602320167769209614295672321928343118909279844365820985593845850222558759132802676398232701392707865272197191292411522081741136760060538903942249727622370675782196280448104916784432091269042244348340208113594661507916929411694950992088644668526013384211555340114954358489580677683479979079125043662950868365770845855477704206353006636337023284796968491818133712816972942445506945835200554417418223983250707304641460825480691456228615358149767087000864344974213406662407851211781752767389495685720290226896451376304501059140952882291539627607718238542671269910356168294726421553612313513588559752743119280696752568881065020866924745159623049811571090910890425691922460830992429767949440072284598411132609049979294731656037890286095721581695855663953899382146252621966097126701359104273491890548127566000278250241285203849468661504770395520069016615108534207687979559016140583739681886377690456779068209491601662051186864466653675334583018446728263193530624122317491699197696301088484865686336814573502486068641316354679706681733949208933514291335044400866012679330654542327843256568671872783194107121070292278296913692480096925387041812709073370297099468919004434982591243364106869433891780613330022447990747850153829919996146232975136644621471202581777814896008227822985872932135908565354715799920342894949564519439473820441235325949592671882764101730767073382634178201951725864596469117043761954321826283122456758846028148571503443921941678493761448212866932764075776038859993784668115487989117437544334389882434795684969110224847899021646266838019099619498882337089385425362092873525958990325789842972849839226342982259832944716046000101295689222162382889823162459952926684894199234829705889035165982831426274576348995732693395966936612675445389242240490884069811473552216498657477582541367777865602597535834016222027802999645448950918849628439007290603556839867942058556194200634560096102481491030994655009736074479802716867533825461119914265641243763198428226175391161327790315933155078848882648263074214273932276346940114896549092005637024438976218819818640616739257327891319352550024962301018179002901571590632942276707047356630103888492520606604846773321555524792706473558504108614214562835817992691695388397570209857657009266015244471800278392603154390096527347186728090982245172439645976710112922240086018104066201393968894284702106281430085527465998316688137397273506670215931784235846523976842708242990575766733897304897229496702667613533228147987944234234851615402955234682632071160505201012269210198902898961623035351844531664487013380330141717393860332881565895226820190711711005111946790202219425965882833626632581825994332787957354050779117838295880653365399983698698704229128334765182564489252094937399668200537871417433964317990262894524934887028534244869672092975448915581060585098977163795367481810726540138007187163076376656148165626604407301812129822055769639438326268180593495374535897141639699964292547180504848703606650358805922642683272372032134129345315966760338592653797704012027252025461624544314967069013788766988245870878048507515055387048557079772581678985291957704993812621803273619064082267704093392607470831867870455122395254946134264616982855242600106190386462576829791082136123348129759862325763944868199347520187672063961912458550246746839060084543350531497084949658920674773007733505131161992909510453853179517770512770658438760395138508554699385122295377617282345340442698630571028442314104011793933327610407620902938446003590521481477349319125680291658558727619800864816714853144321220117855386981893565850928620876471763424306832791588565834435872481639553763979803995746628072243715936131727167362930711791147637567575842005064841603313483966505287900842216430784403475700782870334839915430431242927271811781710571132194951105708468060652937724634332654461262822650613176722658355361508642809252737765518894322867785665380519941003646029807419559822986436594006869110772480788416115572255151698830313651284416090646015861803823323070869564423588738089700251776924057396179362930923469947566310957842085257889678101370882406544130474986281065034138715160018159883585711863456211398875287882538932986914180496144447212503426718976885780972375825138029027341291847018462512601672423099139728548564596659609903700084559231044154437633900354408030470536426512476953639293589301662151506340784521711229386638215365672731317057013373541754662959929341715252550932059254335261518637968714677341931403475864565646963843235637540140946993457932637540689666241449149180426975916512098965436922953161683442299989370960736330947411147823800119578004206875493855893758152371973794198093381405726654729264295713184912445437254923579248523461638313142190756177581242027526912510691085574499715290222102958528436320467334283796027940142594597374656564432372768326225827817587428820088757546344899365964704042859517288164983556229461521674554703030609073845191381783260658044999766054586208328012984028056450657775180558626171553124753109315299883692853420739738341411838277197866171875087493155748804868084353445224912715680059337490944901447578754520968345907506229849922372595181643970929059924318357974440660341731179962742249501926609461944561301205162587265258404744353979623708436324299407330462101298439171522726814454594692893505494770473355607948451253054857747632679255830468897895001420714086461101726614774111900941940844622475242438639150781209987133492602148553691878999093191099443098418862862720045705310266176536513689356734414173860545466665308628187391959954951450329731218777803194993240954427061446251552791325655245802307335620887128536710411918065464082203883182124626449960242150283238642884208337077441832699569635124357235524457780211734295988212031552701872969082030944007122210846003752787438924758105903078252910838822198601602564926285616732071730997188764831482553230039113192954942462291043977356268968488728147709056702819294252694853920741235122130776551735877271768170735497760843457536630875820764805448328207021539161383721098122672589337482586359833115549551329704834722939341991379463251102630143052754638263435033978995664803373742976627339562316364652771645945395756048575644242591397632467360067759686704366645361534974352862817502649492468104699758369695336536591232877857588077935412957534567176219321296325063164848771831887156469058671595237218885586266606845927354657642296025032132648724585785931141048291458516381466710318046174223914053804774039108911944678873162573806228658916250028503769138793553670299108860952052727963848460226198273214773821989637833403317837070449220331048798246068309383019301226675149072886397518414669647678087236290460008325712480357979323745986486718475782558513217898831753469411102981441415223343461930147027293853077767726039860061082260308440595746966459367434724578330659063654359954683684846147001120997412632275767401094348252715921588810603484277654933368236444686463388252188029790499750534789727809781528425442339423444002752027180911638350337559435237320586994501420776548722314028213289156210200270134701382569634206498266591029442059365331458716755201553170542813471436468372183152381958149705254123921948655679488124390562743737802357341738031580031010123844721142891479412083717487992637645154709174182692559455121537825713497220741181961222643752090097484345593970624321137789868448648156456610476542688125916738343953394368551610394437439155178698164926072352434202457174382723275695714393522367849596508977782893361058115704197289563978737858157464961003428795213097667013778232389619459104791921682525257120685487551602116264691449297659321714433185483127125629928201609908513635135929536021097778866535602097280931448583395048049197159886462040553883972389091341016280897231824892219099067970072363784534940089448239844561732831076677993035680784655839276065868181304012829480953301835423181981416176408208692269673237748618247029757912007619188373583934633386438242095668417894636869771426571272288160688074773474958998781530451926004675614512402163345687548189496408860327444263907856178144730861332801856553970206766433596661880812199150461198098942463879743919810326253145144523579293134954085077426502128706194916646194168214662379624028952929155828471464977528639422516542059597505266856867115907139845130115898184617338754005581332729044074629031499312296325237177057133621280409440284866444427796164670486800052514436209847480685867041708177066362908360575556250926003873115898296885599906058882294350334163772888433414046783377566856043793346576433031606130231976338312274182636090024962523666796114902040567158511072709202376231508319094229845741694671770137885417035648023477195117260786732665860287337799484204634691593317031423119183939067740815041594746661257617053686249834863455860723396639209952181126035571919463968354295264351862985080942796362468816683738121466214613740456266010903336274159981759781792639092404687986374495991287424651534837833263283040610556388139148096178875494417090399391492507070176480912370511914216043487194253410138805092842306547828086963498716468892057698380705943406872372542993164467543562084397870670212732633023489003312763303848099231250301581722247163398583226478986943811863469554080273693256101961366750740375443034103577820709644273489489014295970865178530794358308364401349303041707939739711471576995875594089201531730510233926849031408565869104029399911297237792880627048191763182949440600428276936728839324153635446620635835774105769196386503742211982700705060359697544571158657297495020238790810300675230558020982161519608457382800786638056526699094590646841203855618987599695130541968318214770467768361562847541073980269743214864226297701890934787254975953125884487634753815126083778398572022771291461760377226632658481949942001416927038964158369081532686702055140080232388023245432207813145334811344512019118857887463729476494100260863313332260902929211874224671103435915947444823424137404127070438304053055698054815022052530686086631508873762141225675625689465002104307036021544890554916771461567296448037600645232406465814416659619538767337371600139947037494794405918389338046901287351156204769985939454910682836612186899798624315544483812053601247141348538499544452241487578116952222120515332317491173751245165100071468179847498084176198536365254297009280620598087734099522609556562634596750869516937124571030633791554938927740128075509852487407420258190865410866320667456579564510950888888454015119558748742595650731127198457953916319323361140392629336560839387525314990640735167900334501431141513000125381415233580845931211905420721133483824078716962308559777588131055117917489105448184996253549454942904617877686836014778017448675519294019638729910450901468831045504196865868038283430829966618577620127388549094562561578458804973446672202739512745681639845327523709364473038723526995295690274947513233935257711578341334164502342021886465764388032703505758777472699092522273211253078439754030088361293289433568340968206025001155688188012597542896224375068465117639751557304257850940750671046652793851209770316399542488705937105002515360115093026730943210605983856518260431220618010119889747181571460766991142701861326306361035862317923735525094175509423181762746072691144123715430248210300547128779112745455321980024292749875673139968739448406834375083601973296426367225937345033522992593329129338697557098473551972544031525683384502124913106788749834826237161845371427631164331788900040541275164862423136912593419111054305819713062466734512480672883959290127473045041647285416969005644614948169986150752584374272166703190387840438372385342387402716250424969645583904432302879438174741011660025188709582850100771285783708487230633426106951697959879020693374277524524724745077097355113800349350875655893259478773547749891280086392413163391994166414155330064241711270748315151765116625859567543643024639571982088417267925854615292177187986065746861322061557978469069066392594489374631005717495080215408239103220634175142325842893271145099476025984777275411378831152250934195648759826666755929747472024322427805883015258883940622440008288179312721706332311370459046146583226036830441622542422455468289959940845350229113379020561625601165269994683778835944727321087815555003295815099028560251635293924728234067219731120951922495851077249991428564585911359385492521769464922072644150047338942511133105738743950459388215564325552429143970935057563829038406162329085837673785477745238047551591175456982356710128363550827010611995833819587939584913080175821629102796916793532291154491378791106301478933393070053019933700542886102525862195996159040706599286004889268560480549473686153593906638983608468913620312623985789668796920937379745484484355629898777210029509768759941879469963705827050676602906303657592172919904653976566694200472803676583450556682547477281332491604297455512857944599088121195027154003973983256945109940032142364049157935936317129314628524449755087338953038927387673013133578686124784653336550222551544860669882671302738398211118482756428951376371563560154373097560368444298644781236482712035598843998350775302323157153230310202055604925611482632467453285625227800312425325238446007424304667588153214563623994795682497561572560945968345819235823900980109054957685782949366875879074819560144791011028584781049069898273920440627835062184234796769854946687264061901823645111123198293857522249326095312672810104272085694029072845677054413511757938158081077223056255115467509439664406466197952238552801519745609263644229974628584016273406982173453138793831485068690140427158000140063393772736054601191527150478320229910004235742085174394257618444611811486915771722024964953294607717122220635596902871318832479365013224441469408867319381142990327878581448377809194313008681022961649620431410874502867284096446089235016427311338936437690794546125278072243663780725507953120273827940105683139469709838070046980903205170728758770957635279311835927606972457877427066192310174837148214922193763613335070141120365289430379495969373207822005525360761461635570956770193272490094542775794050810728599928422628467239664399590818273152000786750159723036000351287160956658066566943687122533417421909732726086451732687586909560103560023512332028984353056168020202880739550919444887536557888585098416335935529294394434515090295594150423726196849020175720265302863297975599895709887747106508758049573456051696723020805388884910312647202278736844925019703064198952940897121025251987827418379411704772471275125385710462163792653761350578987337199586369208268475368880673803698454937712167823912339391752802580861023256255643410413944905559099008191523238667197719714455420420577429874698161249919547678275332678456660368135750758324042025294223548061954175860444217893767874590963787819708875417002836716365983616611549030129552520901083989549564316928562636699943584316638411182256828097232290538731911723710929688987129377815562956339916246022437930518703366266224284680907292776422700657793975049681143208982154173555604356365226272766798780327154913513026659605909596552223972864232717488028130925987123681420043155136328599142812802591813803536866655286126464170434170711471773138593755775179290964347768671081806332412102608869878751422455931055097148241529597230048153142931639688732438236765125297041128673149380270085161971533556248104038580229426199420984390622967501748914430873067681158554852583864091602627434404081424897326379989442779246753091799674725523174715631707206628454168919585610084801386919686085260167325937065235728091443746384893399277392909173360016269014673189606024846524624267572750324086222268232476422239566139103917828054375753185299203233715776952444149523064154387905920450280412481643465686756787028467676035356788504566967770868418448154211221917836914753677057151230533464717771841894949872863571301411062597335982386351997317984185783843563235150404227305572229535651503679605842816407800025521457953717201623504639604423070245881753148595492737341860603066708085011752839421017372653051604666872466098783102403355342653318549776144959292379012691428535138006215315584807480367587301568270227251179098162524588833774573229167967524172816082101830730624559640869596380702023376258029905962556586812267119441567743665668176392031859998598242192066146747424338049283272892609749763936929129514189283379376921742819198239039946509931452812967687845144516825023837539879245862906403282190177927704129831598622970804561163100482358523119774651169757026345210288604851452138951764872962519191183080930604725968157992707615415301897117032270708293585140211499926279973824743957808530958312485228020015989647664978835565544543765481305672582784036466563157716290067037044637077748843017777338202409631687410809840938222054800340556817405412971599689956317519538611610878917495610896638488403954888984203401768368048587222639074665237770468284834812427364714360747976310371391884994725468825617491844914975364836878445633338455083189710016098902764537453580725700483312131965610215482921281000109697569756388364846429693356244623381126460563444525715151892615187064954531884121085921047977385714749578615833797674015732893478101153307610659419955746233827440380055318452377068334973830406727897175293552576985388198990577431817561255613975605812278867495200096722906992065648379780564189041433049557201849897174221772131566069813647223036634917405732409407181400143636445979235232209041104244166100858965605573291094666082836589836359294815744454818894257311818215404715877408386879314235279637791918895843925849476804768343408031201399140713091500900265867735757427032860632487288039578563006387496024343844656559789805208870424404202637522933473609406665259323917230898552670497451593686028802732445617448437759820731261936057733911144533032096519238277228148682108353590114094191063130553480956648918430282717363948834712231966916641681686898155016285116077115223059840295996462121896130991567962155821399370530687907415963826226476538622235741950172636092349430893324706995191224688076137260215977255347627658215546718479695621096186073966702693332022146276650105795337375491841871676352943312825283035454639305978244347399139411242064490077167508690554375663093530110089371549863911294480748236120570384712409421851618729415327691005665613510066040917249913551880882853050738829899944165799989168536754143582430386239218680248458032971763949926948238095480177707022483418315185182454382440004719007721018084686492210189245186745452426827876873507293855199190821059680002176826528894349529040246565472435179784282387999893896882739028739239527685466512570465058439037978345690486247704508595421785017520679560740970668975591166311873346420694377946599690776023894776267311450485950386885740144002897719342591073608254964611869223799435761383477089342915400230739224632361190195635668306798002796962910708198754809984853990393723665398539892651074311738457523721012121014123681468001127350550669772073484046950312747379407773486216419733988099381005338958462947281574231716211012076925031126470526480565091129669198663711753224595339629134839088902138137328230567238327498284592516913480503356586648891427871087696725904000443245947456944761567906250953906593956824493529533795501007557415909170198931469532211918565296958324254530294667429949572137449749312936915993033647636094972417278799404228768007248062553906300269065063731488163881456272509051471377544520463520488841090756733009443471280115425016601908278980772703149912867610346515739929578654599438992052529006719775683540714660600046864130983300732166427638670577560280886637542922259225998991948778947912706897902098956979536625923468993013051936812178498695295417988414564054029229743939614826583001136394320195744260664618728982235563869488180430543888034740466500154794049413918370277535302895090751815929335786603375519442978380608832447129156394389764430530814967682435709835903048589765568040242154163311700382796574505531351961397890310004845863498064130052540436736233160896895290179463482827342918416652347080802473401657028284947978571013507666862155061331052633687580839888494835618605204200063465890788170252558177526458866387600684531529289682043792935471140356274072123875096670517198099767740660768392753590896967358280036076327494569633601535329509880789944793730780449588048430809077800540552339345777424855715895904768075035546293216674678926047753458710350890299544248771185493275347388787929714132385961727599134214880251700539312609178615757610648777333460762815099468234393120844405759267558364204576106419347363019503799041782213199733977705270616752386043149378023075337217993589408188361253131002705737481631987772240644060223188122364892798600965312189122340718215525592506608347496255758103616723709210597111792584640018014610851716773665137150679026518215609848423536083049662703774943209533177339383286162096387932278672047781238951951198995497021751733592308151714556283874432406223774498212111728092321999635423441345763989615031538543257859286015725869202893428837120017862961689001919344620770608323009973608961233167959433773883478729356821534880897375593802401406420085654748949592423670652464864094716157761265456463170994094165449943754429490431008017188520809021824176746865058305853064959192085146277127177366456140280060528161225760120017797283832678119964897364374381929879697984676602989420350160993853777648758357341231518689298885232945143732476575227981739374312146165713042561191436959759120366239547660541119846357646880769029204708144526014091574497053969817883052189519166067550447869535750548208840874131225218742827453099760941347649878624758237305190249367165608954701989161458447862261945587974784723625263886192963797073719889640022306523684458132549453081183547251410867522170762494884400982499265466373917520193137862309064718442777753657649091613033507168945403918563869611012745910462678066226815346948468307807155915658149047782188025985359743596823397246839096366114041253164496935704845048738040271595153193247410390399662119622506608838874034141708190355944142006380642050907968019914141885006990301493713651960976294358026390874986588799522196050736477393823842372030599353026357269625907463979448186613513121911849482287043921341381113841072208968489538768482214680228556633400604006031440458502097386470123377575977938603350120549292008160750113513071606676132214917980040466747480598140379804057211527502465294437284825074804869821785629932196335617707130507875700109523935651026903860485875867316238203773892727698890024588792718768796741762435127305993523552150863851909951436392704866146095509067056992349597030905136121611952330446534703290638500652371275235910863863321027334338112054275966109737475677229916461294811415800110191228188297693293785033509804176113249697009096557848752142139220136356067403437067558810913935452164954092162661870549620740254058954654978549935244326534371769544736148833240253295834793954333887559719401365374729077234008980471518572750607140359080750983346329920266517373748915134063793151351625695632546363689912405485506942298729085146655362864877878969408340243229487832868591407034910012984678546379506370884432834259938850456046586008885179155413445995887656484603130551799810177802541944983451590359206860055817519073872749884631576278198486420919267314572378820079537907925009158619443529601678361286683368469119192127210281528179092409107788029065640455686317209711304698436229963751076849185456261936114705814886847728441347398104999738309265387185178421773952872733079060866338739280354573987494263982843893339803763933958590147052523573219611576917295296616454282396440891497510401659193441679073930386946096290573088988205640670731164841384415822930425302475913465060881288475908669643545192802090081104305918104742225679492360697769806780652392459126811686434532518183744876087491107874559084023632328592813982472277822934101680091939539280748229934146760271609388170731555852618617595842729309970076773675682290831687539821225562951280584023169390613627973969064579220337586526956677753779387907053158854797559094941565470902418974042123171514702320473600256068741114511251256272638024359362445858538237836042283441855505993853120820164662386894439533223682747399041564919182338137980386154184139897628806872281014916593656251750556545279891027728272584161743376261413726676661709095739211167206865480942598834165729035808512886701889695291486224634096356072904154048175494674985262086350157202663387342602547140217195384944333314686020888678115954853138411169560819636216815466672280041032667962248639169635639722679047607949986553967180443939409319860729102219396472273691429936281861430526369875651996233438921549834318666347391037382080324762548957562889358199196901980210794644066024470879490570561281613419776773681670343636980422395795189673450193685878560095298909307589395196771822279646780244387733782984021630715531044997131406188117038791363994343382707159681688534173081501397977667696333119097953385001342951708806707923690328871497481623065176138464818943110888446206759022753913409246558784500015412050239160038859772884232843240658628154105879090785013836202950050524625751876798139671891398169633476818791011849881211696894036744493464131821858189073278814828210668608102900550099892528865990325506387949855447398371436048650159848809111067395646682708865282685120412706860020779963208580584351064108645009300058388683372280997757173376238414079057906386886669743536483401997925718705084804821402369243531883504536273661637663530400974771516059322035942179098255141894092979518259278014509334376684295210260335652806818294240251205197675026486671688263394343534831259718956916155770228928510118320545401136384222732539325625107116680663375711093805549317146718163323084390502732348624012658758841202613086035165196478937912989296233090110781248925450813050958959040439402837560085822715700082999380707009257628360611028940899835006300391320117622425566668993494640248896064689604830787536219348964916482624097181585362829194813334689370061220554956632083311375245570493750117765034272370512969444855920857190940420947626597715929070810715207394631778736838330738064046114736721734008535818724847593569063512642410298450275295631234833891220833082487675189747981863185489519664701194749913536262210943694558708333030791158964072579357546971595259509005088360311871781708779688445206097280248636079276757770553546740384125805690903194051162405008722012002225063888853758033545274645571683201439867826371198818148621590837186524398927786352002455981075786838530072027363210937128659100720391467599803372677995057787454468431509003140939539440410304270587472590485937765496282504096233301417027385841607591265028513381756051268646859174866807764272334993572808311534988935205210564082578575925696571517504682143611187140733060864698262418159188212714016870068438845255298956731281573939617109084163480241571765769642113228043460547104554133777001562082243096092322835699948330705009872271589553245569431972249529520094457920261883019818332493444369837794868934243194874446650998592099541452604278346130883459605591960698168167937378317235387991716069481419721105706850807501470192585691207411721373680990388463633943415231134209169034482723844405286107508056886238387656096673063842986641844145094565013160808504203393471925300993302146839173491377593434976836427865234233158725862674077551304317817584905524717468404850846280304898669206324556616485402347570290798084266669445017354033448714598245305607877451424806461844459075936592928432425570430759202273254606188157689917811540713305558587612729364272235538589903804400269347839619558054600696572239626969092755825544778573228395704060543316727784307780770732989752247541291406460511605723859173447006565255377795452202531495498988961653142349447949513256105103717965134459651856644462774717691831421213171389710117671748864338092909777206682669626213223697650000140321281026751046377907493009218959841460016452787128186208855914981327560239290792158853201253946685850492352877200881443533901729938536782002176841793042194934701269371924531166567825047091290545975532401524440742975465074140800311057651940204550560319388681799250135907447095507999391820224739517138354405931347221225951616101547774960675676323808929001349661122760770556427206949119202362025577055911169748419914199506467599685399390978418034839323388364997386096800020348953455309302667931486128439673067319925617303259372070003179529512902175524145365927477734041405703079283818480322856473103248059301307145175330384929423071621742591078679708139882066004661269159710621310473793222651184626919296658237135344607975317795375499403695979952102437626469265233066052762477273195559348066436393301081922474126587432787594196546197161420465144025554932700179519950209761204767055301547584618588835610666645455593154862397168024513364837604384179256639927860072076822293426739395385767868969825205286978131312451732115508610174581991828422646849483149043442199452979614737780340264943776702424176592792741224295585322460110103420596911337585972764126032197946208012675341678161025090073802987608758216497016563188872027169491681859251174303682435268820394640089107438258430977654320606634201411776193720155483480091066896001581522266944163938470547281426477054917419639345295195024473850878884955197780584192448000737918566854603361658962164566203971940564752781600417382406719177943605280416943848603387094660730829237924800634162274784461712033470112525848292925786772410066110440195907791876707263619591199541737672714025374062906396036241250903282013023624338166704301358988329034608079191440936005345901178051030283730932227681313642745476018568853451785552295164286431816767621665137640005554311069788749534260450283901202077842779279133805862629778479828537168319983485653365461080795490285663790529245873342896899147728058293522459550003620923455918130131513026655276203323809563517328913315390429730037537122052850839462252820109065860136795349414626672718368858262845978821606887072131291327165880970097466341964648034542289497945540719136381264058236420846523301191131564266647093308965768718123533211581177228497626692715530118082933785771552880658354084923430783887595712503161590296955933894964280466149356928279569325670850077247097261985286960820588891347059397520921812763561930613965380773468881767076033439878737841558809371503676302473089457368033408054151769094745123906486826897052198071142041301173581703827594317242899079699680470008224727073615676260550138363092347147649524951521664201924727371173952595574019069113174279479726489261826588408547392485070046975795068710386562957131672252966499618439304503389645331966223196700458338263833700153454440742728454815923599576207424096571920062866536862833689392251673042740699923405894134676705898438768651126415571930029186435186099846314716223432405980362023216058251947306539949798715623578185290787539021392167127392933381726426652273883760590888545191407351685560669926880314827353412963041829484675636202660841895495920606256382849098497786341214687024668315083164798372383001897536254138732815386513697407051317925238969854311334337807873159645203400130372368831318762435597143471160881831215197365831451950445441078688196420363557824568613718456589813917930673959327386701935018713283362010602043611798368856616908835503229493608285792308908790465818021160018618873051982160239428004703678902679224269928276389377796003952240142884656994910383194270427343451815948620159851355572538621165541001585465611443826052851725525087645289451279663515934432121747544541400042276726894085367255156172982767182880550296086918579624406909594677060349036072945896696836178681781950898461244836792425137415630569774311903985898331154085650438592725670011246659135068196867551964086110345494287893126723357505481485752550086349090891404080480250595232887329954378662364714887717316623062979901161605900413528870718897023362558281627993315746459769863642799847657803690674589130482069688286911281565426292511895189604969871679584848468329636340324217125902171372172570897659612932236683873177291526421980833742405813864993326964083198337973287596169688006282684644344363317694520264871342511704902116338614569313835462858261062495437888079389979273994895579529721846614453290340912507436372254607168119090327329791220874660147542544558400313135990756062494411948594262825962518833540617054362011490860824791175092813192065382389219590302689765616169462746908890224597478618131770640891792297865811586090431635044798177905758775510637621399317598640867941069799797396417534749886531672999443089710535499931539355870656549391302631547084133016596361377163870230254467654187383192618525243969213623597990207554453076680378142222397773475279610893829349848370603875725782552871639909446810490624423003117428402282274994434385211926655095443823687371186799064398738424413643810543364419026438820910784201181348629714284628919260634342001184852800964015079657337950823546946217186278663003675996984528317093902933388307401086718759292228736411062425330232545538420477461727374524111011345858835062742406955925113569009804188051535126116859424935998860892461182034798838409900388685315640277170812777663915686832738376244486778476702287486576692576719181492115418756325322399468507703103395369197005692071184969556783635973825805089283398137085797673863922364128867011473741404856221404333634521864104487066053415066113840666428930354127777450794747000543166465804108728352311575817161222361716795169606971621759318980405688066539770157770082120934446183425095526795427371446122486987797139830051344521016825944739994009678501213124081837939052757393575960784028300965747581177525131561100010485812546927924751246109358237240003271208397989959125248618544182465984715093307155397876340615834050648301978313175005447644988172431200153912122213948225378993710942085130334683437211904768846344975475416924775544387102558401197784739944568300096522086496154957311984139950795149273007588899396726350174750901026494528974965507246121215932304573493945187135030763150299045131519884270775666143042677676257567719207474599040021832106716775055289949523972716324250624563003625811967906029649050829114909052425476377146646267856927958712816284053945846980256784051618102982523678181350123769063950674041281224588608888551610129558319498673146803067852795255347926672496664587148880237616622338882975863380139549777078707462394346617916793289103046069649016248568325586298908644641178638357736611739919006244071050429122892237688433849141030966587832252243999655010500661034273321788459258651123989175888780637953261889691033150691251221159184391511071999688244846576862879545111191781510516845362903889738902457071732786992929819639397304174422689001829656291511779380732653609826333513222370642064035561132868405064692622953885575824627732708347747173914672373572129060965515881036295574414679615852406017453740302370723037633683759135346323486823301237763052494915246694766130468920146745245634325778437077990256740846219945366496480937952142522154585534773349707210424216708852884816693497814522439664162627325025715841875869889596842910596198462040189135725703188670528274728597724103683980889704844286130951208378581673765635195506742175890475834097937477992750958602117167034432482245355342563236948959508935156485265132417701987949340134621528293360718776199565937222796428675090410844878891103044910482211348577013987768982323610268267616597892623913889423183835795573681739177072267229305441368669342560319086496801191349286320426652360980450931520550570251776946404265722449316145696741982363543962354680606285297071314015171754383856480486603604889788515696555988939185911944424937213554620823776984066918774084630703604662445797167165114018843665622311796480241985422339656879741388983721517050653645440489298577920545813836344869366527996474271608524249217292211943666798009740095008374099302204098707102293841404656409717808445379926590311757346743348913450151890771046737782792916797622871393015855021451456365952851757149893322375915794955466926718777037567106866315906852590959734487161756340273908608239924319706078437651275374926659934743576990648125789382777933080097262442076282473201573340905658912306147942476818116952602587462528851934749033690904656401754638172321323254220875140072750734657477491408172742358056319999974689208880041927498596061590426687930218518457195075750760839818025384501674982510415722525765992898755029732261757606098911873424362390405582919647488598042813393535751652356971423274105175282203592038013884692821046720134345123079797413013555750939343007320266837437395001734871355428411768457414578095402717550268910745394942051378718754777424848708249365731236440317900114726297494169189229183723032407545857550088704840961089824602133659609385226018962459153350394554721238180523559331739801381953284277975152487760285827896952689593617763120269336424954868108297556512618529694700760115184646628008974858974143995941038648451131209102218364690987140015407113063691956893629593027643623061545261097750577016850399461676109986252454575471354683125679976293962242518789251893359713809910282679012696858422816405917710333443364216112859649064841556139971305766222656662621084609519565382402242770224134500174557810669440838328569364789811385212267450702118038194233707402348469911242365422548511140004540422675031369897477370809523208227654125957096030538223269633737056512462938196452731876826926688849088834340995119521567954677770510491432243401561591262133347526117068814382883951964459180567373501970376251667525872736733102199692313152091557932702746764534916459360034359187525480361233556980457223203412812969414087777287320444311636035259756824246907854021864011551081341035148296510937513027699561769285980302882791027320125622697130850842137532787278517590027247060887943379076756628167878215501985581860972306728036796895366928050771537563040387950420650725518962371157799305454687349152911169691695547001168519952618509512228641964950687218296322354801211844765105503851326669765735349424156924567534202032473805887293209358450151707362120065689342237674152002801195169874726172730866748395473551049398517306100554700533213428383113333729375773159644418037905576666334024852339498188601547459904760888298989818055670621732889784754427498013638410062835255731744311189672996773467209007983064511794380638564789095169594263740967525670208265182211885455156153523816948012227760601457032179178384819213558224472461307924102595869504245917992352870338706989060094306369727336826487788019050797265304008954235784856640207559730694439809145690831703631968174572338602644298811843857375994195883800427506200651663332813693404523205731800772871251010709592143874273234546457592914028050198610055829285035723366972100259707409657837120335471555210995583717286425315306570844334917249564171605900502549097977524340315683597212961825051737976004822557044438432413669433863351252833482857881057425891616969631471297927101531578485404924586599165976478236917779240664855853895532965099640810518755039243305980253745746887818107873357518016222969294553175579395220063842053982026432412460202542009074216630127613127068113736252434823169867879695593598989704374993645484544781317691019556775510939914123602497133145986361215878632360871801869574667291256562257368625412844222297762464855409499487505595882777621015024955140108794558867765760260773163028034472275737500312711870723175620986676923161277451424338664396660626282546709309511964780518717575504581005374615540241815697053318922763302684670250586536357845944752431406789014843442319131747551964914105195583242983711575382301629465462515084549432331118496836968401125108042794398593988210780427296367002970582624378284987343660754484173142758725079525103919527231759664568874799471474071243859518773521675057707853456184372794350192720875622078154332627775990658366391789877184488640772137047589134406577600753733902378671569430331417940748206189017354994246987036695348275626024352085579873067707266074349559804651187462074959491576977341070382971099395480654873724765906098039855507925917818636404789881130726977527440608393088771997505357427682990936853057894324063416680007321765264801833788931106343907575306948223933932829007867532654604534099509407020196481846038684776587646429594459411652261016311503638125277013444868284400447248863337433428807900686428764776711417611467344961141912865994109135559865519742311730664657784313064962944052359874015395297271858370687000413527264627891389445027866153875499660150683387963193328924100182729089297766688828262910404253216149435960682945029846397947461240734475083404507318692808377609241867493116378857494215221523035802930854116228074752716719661775754783927637805950292908309501503619083246428616762213452698113926719620880917021780872017505391683641614518505524290688913945851837516045206169989023753569310271678162693957165587910172272840605736723706871485794261298963291303443321872332165561805752276653116845426660619982150091905358007610331765038589192349985951412998605100424445310077877733387222205410865823920216339856476665810246718907751212468251952326343848329243421559384695660838378917411246484109323400430816115973660463892075968910449383504950029004225365863448890633080445252355184308534066581880698629793330801531146047689190588170222965455800770682391211570975433070995077546229856619106141264994046517374641414827828589982945395221932093757744668286461991433820095588238401148775571530605820758737828061523942400895636357394698481575820744644878490985762215708795099674372820473009823522892815474978460690069767498804701876802434602981934283799571211012740065903210920294441476788802699446568590136838592182279298361233747585422732896208122081051517241065412007256784576383334941705125334607898769693753403143092231296498143402778008298838792511249292445415640146808664934447209248742892228471343337982113884341527437818858584491204375105731502937672716698861100657526889250896419908650080197609205013733940066538926629116634305592395249241600379085266886112882896344307358027794103286982886257467525639279389803378692563398033471725874368892574372888960339970934196077084095643277148789509638204693896850972033266039617423673745960112211849108414577354464791463372217183296786471709681523166789842184474048441926102260473748706569528430625443742162606133077094884902260411456362479521530843909767444833021356934102565889457500067607413596583058674791656976047757649861350927854744199315602238914983891790413746446930489975983594638473210526655291257290798257219584059229381255920516613360499263140764800785998220602702124014057845536633447736028833428366264183726143633369072559017048029868720431068089188853179340929773785724458915486542901096117691456622278853618506160211690551927982071145478192885678573992771175890125441840513227183397421678567816104697387858456598805941935496769518220322682584131413320394305964218002249444782118613169244177629940955064282624875011814198831662386662297689851807339752793676790861380063227914826912854622785681396146999968356574737110017129020855117686182297295555562590837295427866591915413196965809190456877450208792066120605920465184605017256571465560007653969236210586021493470823481628421179466439761739821332277745010462042069383264390101404807375696509881058832195793078487573242773474976476912284525442628927112241140733161303081180328016105253786336833718751923228156422405784531432001761952853019245462177296871237632379171536898549333553266091128188646468229867535099712447456695049857042029917630886918299035346042968499077434876369180159712919993624493767933651999011738726773401143913395839928818219786584911770647680202997505798605817931162323066726349814334174863500155243642857133971859657345987652143142644260460627868703633668469965039263046938679772098037981137522127254863025801887597535777555273246267930222256614870889423796287208918556533842764175593424508822637152984554263168281881323982232711296693482038306129074321714455132184616260411166097837425622094778253421308632043905500103311428064786517827041283055082271234214612197110784266357076953545499248987341531150026715265943868983668505742931614551554223684116949860565538921183920613263958206786251132543589847223140400720931694216519448172827959787475744252278494745705572735659781383958174452655292779365222104895662592467627455227476038955378328622219420324696744491898509310482213036801729282930464493587251476361560287298210776420223625871340836639872142412553632688516315215478779200773395843765471926407260148381745754832981130575902241285199185760383012864873006121848488970384775763840693964319252571482701987204077857480425363210152302597249815132656349271307654986546374062573603553878277450822677524931910002876290034199786534297792441138476047711331464961421772960549819797427104229094687312948904816130290959117643356666328441786816510143198642600048926888563495571786085476700111062841047518775851310318203131940869210157192355979493888017482275443587386798484305329775920632063593325301241228527637138278807921212877675187171675692798088212540841946740320546261689876554220506148994848690476325317599583866495594272293651069019024378316387017987307172973031475977123273060840280174263075262351963757168498935420027569321541230255940218009634527329204824647808530055766781315801609972695453281481013449509514668873623419210363077982181452467417709513070978762567086292831242487664879188267837355087489070853799121983083787813174974266904088021441253863956375864458639617815003801602763153963833301728220877877051096940134430316305018446385708734212528146099101164865254251340726872952421333987170923213483474505934255132159501905923185219224070994153871416963260243007166597602758444891155319546884348539524377084041853132356553305974485652583306986875708854464495106262393247887944878391496930880921739764094610973454803914077053537870549628400423135366047710199885335718156477121202098305374827505155658757006284902106902286206474912029011211817359445640129644480796288052095232938272680088361074661783903446301996562073903119585346501105892423855745636782187240761986799856771596061977669311760031345423282183430922086151626954502133607611786959792836405325443777059054576347375989707316279526668907486255554871565910703509564512462527998173841185955054075220789076524971666604658613183567223223804975104837267065690809026169793677538727365477934512044239281664244338760294979740719474330577717417299069749753376001361921974956447708801901976681832308127352450098831225265903852626914640732724543565783519408006084883754566993083257431874426526395124161663729441445304350989487351327160778943327196265381386329360367246600696818842031653659030600393281467769842741178771921840168477999384983533840230013583609306752511877835684403131951062473705574254214192564227312073526929666466225682744849063220036364908831770004878134622474157379935042594135008232557240083373062264509717679688193530811260183006744551075913314994832758946984497228842271227452324081091930118961689876256822640969726742238440264812956741627852238918973854621293675843545915215062257830047741318331655409126807125757465114243187975945001920729102574046958748329142900939609617998346915577919805354349341264236988807374136821512946890603021613501683988406447820751350241917747487184744382621767958314110198872062856343112579434284002884670280152288330375162224390211553949932066585641424251483129906314173417939621087305168983729465460824520637338694696281425668655414640927901006207688250026135316701188745787289518023543103741207310068544332289727751325902309247080375742925326837969275164125295498235124225471368935614884808655113423833654689293882280955651611027606226107213113505510820666608392425422124207083517844128957587850444231942914994983113482817948346597779811667287361165124063254429705367013437675720800172778517806770056748615774274216332838210188010304826414365397751184961099027020393579339292679451209502587016042787079584025954377894708858237808296017272688045019273888472786979237960092817967153242458309787175418546702170227722532285998492848718119578628842064419657713941166727120246819842906959156646026751936208293053203042018785487118645590488510602740724083122008483919721681227854067082147086801250409126659978561086122967764707306850471614200778646321170938326152397021903057410477506372253677014478599748310761861370306910310506656836993220552382935008142926270341061057607083885112060613402382600894271735092899295083099501700763108876806171232023416301069375643680096110361088835961739314679470347129278175795217459946773740774077013835257985792266483147709232664110707400700610579991723630288535423032857285671573931485779113719977998576722282385884200158124373048098467887429021675284846770853164880173396294017314151999482467280774069200447551496424101861174927263753602393628862932776123204811326494755433714548042312179127284168233704553134992858578795482932478820950902293511147358139082372928823022989805177782950029049990945883676788021923761927431913930140910956044802875737327387909622024288493498724157187138399542015065047804280532644273275503554523434513642826767379969205590076847912796869686221844769749348271277801994464999593615672730593088544272811656589383637412661665856332526443203847080643525450701206588119540878723548508538009076466887259794501133547302669201667414229994818815922708392613763678134183352006819588324989960623741643717280288750532761690635661902360865745893676376510841675090954033659891059648683006285425717280585589168356516440632176591605072674477384713997894535156241493258826093108805223197501129173382802036641053250989241767257389302940775674839410390309425067890205006848262892606285652588270010693921629419543078018714146318258325230775582527812233937908516344559318459979353352737642715440574691240382199301980689328985132357732273708565870678909547343474339790624839327845333672645298084614115832243072694967135306322504232840219028741466104148518799204405013535243779453779076609817927679621248642823851516332164634511191441575699387501072090467759697822600938682457179307163492486771372590599852051839000972200966991501304708661032303981465628214492891674523562495735159755634438863726312958605744396330365071898622890876576754720127289880197502708432368775719337496109434049387424464073111126991334132114093939581629298788697780588945044665655187505351363397767073425184922396201011900617850602142282532702316320201630508969055845516542883564001180014145784332684149387994553136986718298235216516827757708042824852781118888526266450567641877104050066040893556300117257395370467679910559308964758082841911526090435538126592834011958521386990160196084588898035410831111005790016001022699787587405710825167288559461333825889567442533473930470682841483134716177797302531547810020289048761109974189716289059850797637059496633284866182707260560890242272236197433688629930953336341877201803727172911778123762914732083908715455142547940622075648650649900749117937206070938119609160181049610438950304130443852716193563975313305790372618880026417714368553885030618533462070858932214484528402483465624996546804894301778766219598759820838364672552084246591424193297960088391628873325227133576768902327128242100526998242474619502093007343896959160363151360372913922350572149749741370609169396873212892530275131881358834126070759038079121785863759866890307958421350371961949913467866562848444181620854909542317552153175661721804405963935873484427951247068787096170515839969204890290042027901363820150738363700469323732882203946088248381716205718541291420175250727663727765462963575697009227568525470799368946620865595511015472202330971792374771354363814626998707725923192605981106259089226872452784343319591235478120888157501562750989042394641695660552644959719091318111194475859611359657692495549006396425065200544752547771640451974239030094689481781620042922441736330557065006421994781417828908593758208126957812746471198656438427581987143260621485075528904954976201341291762662410710547761143016171607922938337023340848191117674698781917672236477469622317882702767058615610813443311506528007387827016857347210658329618195578741535799826257764699286628557087162360391698565750754509008636627550788203292359653676506387623072383322634558561036279014535945374248578037445015397692810519239832611849494692715632892516892147983366044358585263806290532964758088188617878327715865672816442823252374392584790968653499864496957508654992380710936977339149117447845405098483120629107704767052701617504779460258141930257639157189033115632106674556450076815080327869725973054062803181477177944707023408570627684815700699470462930972620135705201043190562907016681866016780826551315517734426898127280576346424038418271499466650340938443883000228942653812710473959301219123902831331784278179324994086470565798259610049025310129352426232872527775811941219957740826330376967412097774601014957203777957334461823767862279413166660469924267945640992437377232440188059418033537167724100929869562690449896956722611028150879061208664931768367897711234372308378670075395694296375741572370401879209732526231992603975353091865156410713057280216594490273905819682181743097819261702203597109976383660167892900021060889705096420821941381663820025162392980986286131471614898459795801292142649999568194612967631520917451413470858642681195577797247411710434474410411228700094631462700319646870145378683068120541675695306535158692960382097661737093554122234291729901815324169900940337085104542177874671356946041959694597205710043273109257916077015336777353354004458763244298926939587147097792668413615908020695422657479140418131506492289102500142074609825069252445355551448519214561459696276199314778615541929103611910488121395276141456554760147985933144783399580358096907679754536827068154551982308020413187906823040285841598131561110104878212491294533901632033388104294102705654327023889262248282845320874006993011865278720817914477275660493547600822759680294652722002526862252780281848750954635627106269992403194613697887549132539561128601005102368541365763399128199354614274358815259659130882071523039366617317078174219781714431702978795866802278743275478589575356273415531953743099094095108679490168918705154072037418289816868600511331518149245498363572296924488730701022583217563747603453388073303678255432322855571202594061208388960527211428812569764180609820174921978152910055034677763863775971496062336586193118810039558281673286272767827272131486082595343750857737547274003723569787599147378507519002064649109342066155483723553024430151570970031201200920807617643535832267917776306970781073671671314678048224730846795316177091347496610100804085116949577795858147990837653445132903119986995798560177696991629880236230423105501788336810995366343169982303468521954450024030678769319743811651645736116267509236609086881195668903082967093624501290395715519523607377371782646417666244959776146520504493197595374204079562468950364958733536873385993162930818177564616821223681857793632014342509903581673009770943998375995288895817711063474312892793126643007354306706012776053902260124128249761182471062658879437424995357962936024609808849658964907359315488767840478151290664413552708770775893142318257793404540328736141963448339656029131414429519733971613034004438318933309881428203467823098024270494270557262477629753228544026412844504909684237436021157047500958472276012291745999870198628728581181233031877409751031220581003505158047247296107830926391737344769578407513384625831130271075818315148907955968135765574740900874623565714211741738652011942964371405968914886892724679123704685535382505068584053813099575476664574268555165397507486073722649534266675450699768612425061722977490740317583464328961820777451933645461183671690351322974605068872863658167641732032608541273856142239099880152396808307083186586469905358752079870002962397199555360920702819762576336548642240625511065271823919363863520874000446791554455645579353553508587494351331140647433293065043682735270795727596230508833838720833332843488028269869928188567944972523413809642154931492789361667536432956411117818710170589220058370358608981541117451251075514424104979575858295867201229387356924729998151102494702970639274657174313245831976374662995265157035442189650817425990753587055317387486424247566823351348661298460736091743498075781999345302749854076590896306063636644848344617828947343380489433982249067544464627814424536939246877992270851369247454041033830083104730078990802781413583925880483740686109684409787207877754028026733296405871620078041522623595252639973881519325619703599638471433634594559163459431683303896169559510846692376246750765095303958773193531209388961376717350185512353104819465428867115537999579818909502414591724927567436174732041312279889867787360354724554507454928547830242639748211793629750575484522816673530603492081464530367553200852180667319433538672058440419954039536351296027593075904366147125747583382307747923097265171425436350190326729742079826540854833094107030971699309188888705736025133043499053959382779890906207486615849350285960891325941009957630615032829492796423481155992599102910617482959910363437334952861840159095917065452731804374259881735859952493091417368469466003065249906050952947381491301952242064543670335207974204037956554735837448231850785403825790164869670229744581552235964534866871533958814721207657824938846260967198553025326084330907043526642557326466519424116767332550935677531842813399387616303981913436262918524616244328007970659763093165441512623722603357260374673709587815451771307368663971305612375433128128169201125363887547517991919239761395857644889142155950744102470279934020682908533114342852795808549349995500703437698056840016946737912089582997518060395885084531992484388900359658133001459947339759117404272404165135979005897418412648402534423463824289598985300113911519710921944798036087265508864843805117449053473068294440397085795085909093031841772520539854280459360954245368964572197867828415940847102293005912083298348069761158288420546156869720202537140669774547740993957744856494302317627723718850393372900430727062975781762040204734012082579451199949386165184967740761282832754323335461873154040974639051095256507507521082076420607359923718105907416435814202083970222114336460484360770798742966218919193343595802395739331085284563889138491780091380444666978541936977406553400154352214104910074219203060130920596981020140206220696215983717273451686428036164549613677016826208410959675492277593673158694721661972658289095022354050347601831253231976764913297461447902112235119811832343552326915971472460692305195927036869518858693521057403398280905486585287516808336929343815840006236990957258448025147501701808895286008990650572421462072079183474901084819600905575511161637216555960771747636014506311441517287979025148590834925005395629899927265922025902913171188434190613964594503780096633896872716513446314896590800169403916489832763491354575664346988925951513221256208064698038891608732603273709132804797079176042715039986419134639750171753816832014480948475236023166564105300924763278022659441407543536379353055449297839353349224185078073610406813820847060478711940485721144500936350450570917543798682961779222747728181177422472155880906384847188205619751998368124721389323033376735609317644549836838631602983806363833976057769746960608812461793065909521170166430160024807065840009870328923649131795082644486511346436052811228723708352361679259028843435767544135912082363188416066503588739645022017029804191943141230212524602659439340578101725002525846944504653903585726958559389882682000168467293906993849742532831438487492190856095052534687317836341540583442914275376251082066347029658937639780158374045314720374147693632982873999742139692003833781931874404837700959448714567527782775055062720059649178637177753851224397650334588054283325482202181141033408088048161428129976576597139183946922087546620228953829505258213977076502740770715619493078095581345100329356067203633586597748629432619729611589567250993156675283537735817596705492046713525000363573125880635340732547460461847453003006373852821539493771736874828138524343286932510658322925910665183640183737559305227451287126613138606560011431308707161846615313159154402612638777515865141738488561029317435379486001384106614440650277724028195956474018979266111957117175698622847662772007803475723510441812471362006587488170682528007756307930411033511372780896894470070835338350961230760928294889015310967703798985283449667634330188326981762698910242293107399579902902824606027296617731196866831535566061281530199858275193187546570569780190211723560330726527672069206791618223566585862772040271312027805011597256910295678141268142969829083226630491775284566202111201245554282156532507793407211290963946355062146736751780703210018307344722650276256037432238615840245167195287674607411842341085159068467163960306370302520858979652402015718480633876560679209453605170025864991211208492772801286664334965567944427210296805373611998856547196822575217682217870156081017160122646874776016796196811801085860603543676015503805634210519330078355819203816639498520464071205833698540069309406301140097875511274222528188683123343151044829900032547139353450744398599472620554795098566053332548526505092116806737492074650642587323834959280091012767772787796589647396757501849067955648635750394235969486387273632828602945410262811724114426698885009707305652172889232884568770059711472863824126713098787121056445502753166601499719061037458359076494189208459701422028335803571111755297967652216087861462120090431833157461619181565526597611212845846424046415571112306210090054146355204896627709868094875940798085294438849016362139117297314785524835722772680480221208270405280532545427004423224967751708190480174402842892400785874116687239515296203853547268004430863320162832122321281990541792458436577186198357512180634216711499470363461767263034583747477339612418109404857927117846690918514236739102687920670722692897207039298778051055879370730106805596257360608999258650930942350861175221593999094468722322698708246817785891566811371713319450734635311451299538971426610828454759516596975741067248620265279175972001731113820292011268739563783184758096900834454442277235365441652032629869021063579246006861712599594715040258845824078227149319478787416372556909665407969897421901974721489843275930854120028722597812834320115771552146608461534992709929719858627939427025696787646782189833517625521863700687346003962251813959297498180250109949395365694400110767469648282386389228807124800748182201404360052441790931093082549025413412433942831745622173378456635948071339784922080975265240124381354266725504080327354194768914306966099178383301761855118022803420103715049624296700953417004022584112924821901940249135232034768657146654416554637634461249490673677378723147667950593715605005006663439447554798348079971565196704235908782600548081933418210656853014267961046068002820683366339753727709910940790267875793087830770005007313402006134443622523423143130486393235849857213149757245753944954840155825767299793418996607772834562608471796223855656494965149382203526526023422705762560207662864960562698736904797348266209559148473671017751099150546977053930271523166298751342014006980270555209913291580283329063991914994893980867197594399390106413107005190945023905144896160801849552065933835141292632689506172937094960348091820479706029108871558259471922180787941889959560774126590637979732849471844733757828749111918938993613856237459893825556864740986754596543954520342639419072663034531808079426575780811302392812360458285427244088401410707939457437476806130937949954258713247796532772556016536380094282484400630831650034039781598086078058369985553548046229876703199226471983179205779505406078916309710937211785143337556873119954604137085466767250359147287097742152866173369952328678719166403670849072161696417146583638211272822349092775898903766988616463256954795713041473793866865010050087380181970370577749855974589456448203139060775928043336819143082665307872275690279105470588414040617401091984549150904735774737389306178152992856780811531619045865541324070504066437516540387440465829264220879127232690191380511531136321071324703287561786139274657557076204656972925369337453265139639672049106949269079460696763540555034804629297118137427272533269558551186295180089576972410505985285719917448217294078531877403348058614415044724952602743449559640269102923631915617835780254540037833274619023685461230548933988531583777778200964152486510208962629432310685024977894234282920854998256730231549844015415894519721972992371822686659263510788670221860902579015147261253284924285561758338033334469595357621120651177200207204613373176827386045339479886098291208434937090342568588380996717309964976309857846042710265865031346139820062516927534024768899903755119798843785616890340156430074694048274082038180370014416411645452479974424761482039477604787864117083923148772790977295296093281367364332432591018124934598555099736958510289856901412433045961423612274613671567104884303174084520257959098310446271025662290533384547146913614970538777366014559218286404013228227808478773049874072632222443240258553156821075462483413948832513340778895123456472591345686289546305886733400855755803553885476622221118013596166421432183798839777014164232405577047627402686131701888543855037107465134562383802955247276718711656356235460833283610906091261956902726722761832694077581935110826021474161973300394732968061050163388638256879129248743078577053339318699871966836179949681692755484987022625642323148461370635709789872141125638693887519099934345965170032200300493531568252844253644353162182022580079125651122286637990329005404966614014951073081444952052499804722100906466194293422656319599278866943705598243189610318121460892124727492683779353406584299123068811565133256320560112898464552446773462255514541974167308833220369628458670659776529842232981820174873898433672041640693392505853172411836962825054316778373860782581625404817458318532560795127126687989086284389232470854762625750536281912297444491009178716350178228125712122056347156222148797344622446642119882402394424723613518247093588022800527091396869625341965605208652551873292424662647242178777424956162292261496567636331668894380944410662449288972748643797924272882974062748870224050208088843491568148150185623046174864769331256957753348352291919425059505943036289026449950534769426745071922310327046277240639431800344568585001386582461046317465805903691074523095978280339991693533970218188016265338212250163871161947332563993083871689315481537783261937646099935830616010706848554585628031523749355143646381473181871748737912889692303524894009337392247184472422294769848732994271666989441157685477233092557041095391033251964838213222088270077596455876111474718066031816398585958798960266671749553511845353251947864422764230399316703549428889145233746317806505017413746438746735501922454751457361098559467945810910912908721799018223462771174118351028458977045702100021674692171315800590962373259236599957521345958175040189187410978987198131395190704632379822458623491633206894222110759950631918143544474579670682808429195783311392622476309402334023444613496411581227561838178327988419936498013512192996071440151796705235520182143352741943827778256367159442497487084113703384711317724919020956493221456709237081126814710503766315172715243032977478644780613103428522779943593664858577165414019053810946612294756982233004970261890901825206610610994792886983409619812335768925135357240154601542465219350765811860945872179322502670689127226558152063195317231802031768810921725186612959052926755837588450580043436913110049761443368587093474980585744403813817310900792191058519527590687577888499884096120267878485742806945640297967752420417660213099836052963419696907595718105057372228632032505150691687306765498484103887842045812460092147317309949258447540140094901198969332535044381459414865751719693981418563493359868937304610772859842794274161678548753462436616636589024772838389501145268014701277849383654236811695527806910101759399976666008819758372144369307156029365712168392562708466978228749479388727069571284738345259579908425403106652656865144737500374589150992876405288486348230535787920141536967772030927105597873351643046878900477362186359654981516497392447212235342237817436086841165857910129855518579640571050805376377571844263542522379282317524327765691818027786366189728175732386163417359335204231513801284013027950052092922326052072119486677515098665907616447772366364937485309126110752030516927088843446075650982117069345422729558115945378074448066420516761518382455904876081867301451957551861818526771900166423646668301468881917073123687824684460641209797375520154222434292058793273767879343830773189463090574537926683297112738856232762306696944566264868962627859886910303860311796719141111718580014933598852722335842898309190439234744025916604502668340343902777416998020415207938482358986789510938934235290582842805112859407528808694519857319473325234692557308002987720784695865545763542274570340548297838434101559421313086059094737063037566714990698560847761157798708055489817695739424838276966261381146671901714363708192190261246471439653169749766359377127189051707809078776626886678058922936539747218360687739505633143146862425414066579582041368286941280515870022396486081814592372154831741592972334141169670056976334950774719913653713067129462714704458970869277459399597197978355181842998659938525597142504403721863448606920122952237643021429085036947301788558068274847855797748950571040631700463795696158292860465615528083547250787347422392319076405411926288022895752040254769697004153668855428208667244398919252512328215813202303198637336353836743859775832415296011724285790854448416037651873452290826809061871144535685142273543886966206484256032185303643337766210538788368584731804762158679373278519363693556763748560123631023765516412600544817668930708497218933632304186026163128574148689833615002160161980497320756836633937517920808922445463564265795965085444054742270705553535221087974342715873183004348747079780476557018477078024201542219434767653194467264661457772808366350553285221658994198552288754777530219010685214198062261414856890558799638285352488879331759611226094855756264074918070760676470319309625567156518345712028647094271821555236413637581105589004998663477298954858774715582791002713516319163226693716477024615228266548991337693326765392345780881274335143066537706232694186086046726427577446216013891169069053944511027547886529210070427063355402618383361004788829837487208439354416203136383184317766541513383456314650900078198782994248520679774240422591247037178002188689301461373551382282270352482736523139642391136216444519843730103465896052730660494296186351168476100355603283995214546922923819797000178380526343485742903985563395729057021977215751029342837609126133575170787228005631195592549734115247041262135305535694407893842026182563679342108728992890512881094615278952351106197173497810603216974548926029371367437579017322576099888992613068097788955939122534610489668291132494719594793140402406532080658608429262854172307264170564999040629459351304722761918720410967910055173998125570847183069975050463845023433868993102176722748394814808334926992190635977160144927018044093215215753362610273929448145482174774963928449551638615480281454006767642220497301562685193234089414508173890768339892459430912096889736182190990849462864574969625453874735822497281788440274200302108786096520973515299491676591649109534283721559493193243910312499907065798223988132595956214283320982633864604635742701003517609038675147791273322647198773080671265026367046651857000297253594008945789108836441836395002522819204814523305601944074791276081968528925091725720999910439511410061724362127720372807810623164990665174075182144372471719895111781341758440093823555770845341062968008866295551750300398247869650290641846066965798399976691887552411513041618729547245535394087977092742818980024024917198214140528614124812025749117777761067231717686599424656283999025050027765989162992319724193412881366434109645331549979100158863769700984476599105699477919980122051728830003000752381352951254407418411861442970578523625936408032924167958018608057478854481025615294522756593044471142008913940447122139660578043798337617075042828293669402138840585674131304778959740864767704160776239784528608416350020921929513461905218298722966008899482834341887135690174633665743666533898905974873615088436481958941068095649877963466948497933155404997754116642951307916265042346764871050724696309505140344954578285255866779452905866869074803224745037233504183431240991699238924622620631333043921105829564108853727549709681710433283579399311492285484144177186864034099676534590063397701137312089304205541387754334682259803521621670168741550236267738809247227806204494188716997873284107730248069129313817115682849288562209186630788211375947054408120654412344504150072572931025887431045526475948808236343710995393541058444412027215188581284660828071752479316253940987454884750572256513494197343460511139628545804297378017505796674166382722184238354145113788500911439562185170705617160249222709117936869604373220260018029379511571393167672072901300583656051645022700109687821888637115149456437626256326710937911372656025158416469813857516842072771803634335475220566418313052335164240034848453079838762017383248429352676309161055121800515436689293044939788901653243627547100497839752411414031857539920599625894308295524030322950318184417537808467415829752470202961946017950342071069750772448478524267324068037378953722470944880234060063787263368632800563772829791983758590907163338756536738700063604709143287351789036181252913026968349676406213611091661217342456164797616256216696107047801545850312182765610024879490331733033094083454222392862512826622633422786098196601499130396091048033933386006748408220671593610877075234306981058103361181373896741402629628435693269625288250202559727462094200344317761332748549697681681624526236059316203860006150702287221741731014574984160548860699756014545034725851811007253623693419528600006729273884877202814045889846816450595023983678470901592775809724209647920334709063574221208121260998294849110594702841283733120524978910803058733959395447064819590994489515314197711763583697717107747466362129407078954025317602699594010972357794477448038663076451392730727573040524227777947690854795705896722033778562196615289282512829471731226513897010759275957402013875812373393104441750420988551093227069662476348862871779133245803108353386546701765753306416678068727838552903455082215439300263134074433697923402227031444143333220686916673170951959917128948977161032898210739245133341157268031292062068701365759812015386744714112452914988532661892719714970000885020975604329782178910060015867873440352271120583065995791823567240923624014173766317307000930547599707886820977975204579410312621834632378364028872683490559659614463475187855026012931471477841807976838736178150692098037951775560355884685698287139587878637683245274152617779026018694545895760209511875332835410080949250508852466593379143096417387156666792073410581185841704209830009687102899336162038531096774812400182921560278023434375745351460567670682372914329199338594695888844997244749728888356118258597031564024750073809563336487455419392742755238173989722366997253015027754865291120823345151581762670767241824476705889354017642433856529149845286488014093382704411226045421693339229959549152233288311088698048729795524547642478834194329955641575809680725089090740821256644546339319093560651100077485474636246408141514963660731231016099577945326695359625165807139019510231519447908964380671446007959844548628257196199681543938765827221831491848704298575932187537286809195751564152045120689818372047379760294372906334134110004128213256900470569074518302479223438473886073775735861896478159970075390390405039855487996618344683568549858757555097409007324145163478511080891322988110468836048355625421541495573690256547102971670815842396065827408964077248396477517705930355693038012879826153667903834371165013347084336098087115730140327903343801852330284931983164903056256800716402257975540320023528033389570572641513017743279934543770408024485094437694567939329281944643421352375202528363989144457630487166583896496063737739970266043326829058455303446183177784128973004854113836016177098827898930710336819331749725289295255044075021634781298610687192861025737638033699229812766857017225258860327532581572673452895406043441538493659535916371939445445320937139276209041970872199100815915187495819001245545813564112774358265189044002449232512632689149226976622623174614803610687748915928173282014201316477534950039580329866254705580676336468143736957446994145747764967933799721556374472641096588144208521940741454608190143131653827449234622246575461703508520989986430221983143058997797393308648913075759029882701727639819306822477277975876544350275836802353087931202248542654612349538095540846811088192763715196506888049214492502411339986147683197047602326338662318148500312793151977884087971557678099475833771342825676020246488916804652830829501420249860154528741109410875303688488850045193559999537099965744689529268753345843768489570510145371694601228471578119159307958915631375721233944366667291465091102759780317805127316641516097385161347144033983854383286398818236853287346099147824693997504312421305954300060799458652512844352009243021619115639985448274120612080766788185146046178332075974627613735161902383610129698325540981081013947807496070291754754013577499472618470018340539558324600390748318595128256107194839633681431399925204575789325750081731653772465643043014524317017325921305677277323467414097394118100188898917734652791394025830240783477443154951247736384505616455525736963547243613508633617141016981018787787749802997395997172938373657614592158801819989544474777120910025545357798812677448900093017407916056481082643183026352608653050720756725576173551158669998427371054605748132048045072006622220478597698044290913831019066100754797961279406355135007501115527043727320138050286779634569244042178073814792733804917454351158043230333499091029590035647879107763783608605355187411243944477821886126112204349075020293841289897906289683959778856573903248268541340308754584492113002173013914310063777214427548543680802439540120715220304994063694124987413729203339071118319680367540163611220295046860781925