From charlesreid1




\sqrt{10} to 100,000 digits:

3.1622776601683793319988935444327185337195551393252168268575048527925944386392382213442481083793002951873472841528400551485488560304538800146905195967001539033449216571792599406591501534741133394841240853169295770904715764610443692578790620378086099418283717115484063285529991185968245642033269616046913143361289497918902665295436126761787813500613881862785804636831349524780311437693346719738195131856784032312417954022183080458728446146002535775797028286440290244079778960345439891633492226526120677926516760310484366977937569261557205003698949094694218500073583488446438827311092891090423480542356534039072740197865437259396417260013069900009557844631096267906944183361301813028945417033158077316263863951937937046547652206320636865871978220493124260534541116093569798281324522970007988835237595853285792513629646865114976752171234595592380393756251253698551949553250999470388439903364661654706472349997961323434030218570521878366763457895107329828751579452157716521396263244383990184845609357626020316768042407958946934247814145806514304533258897144676931113759240470507701854604392721283589419214379843263432294100698417738335607269111071255492745618417077586544420760256783418203741482945546153472099341059170235622611591140473275429162701127030178169587324472410986149295950880807517852655606283168352976895798900215785929124420891131680348115611623208391583288567033862533128756421231384677911610704822960033016725833901232376665967366530971386085915657236173634055705171823291890520425769728252651079969503911422622020888378071237482189501530174909563664670768257847809184484571051880968132858766824070817266599123557249784105313089662456441259022156752484885996542258742614520768470073032481574832497802205147376571890946983085120553034542635809294471351965188266960994550791194315158059368377069802910695889841247401667026290488552683786810335082813246509636489621888453703703404572644458517129229582613988281792146982148047964440134743989116494380286077064254662124152926900700655750511024892890319678650629790711699838075502809383201972706549004116860712028544543713153573471706195989892377470411613796532856261350728324978634165339893231382896142781350026963741704885055698136254023601712338889736993453417252851918847523440684549499653976577654827025830162852577896168933698818686944357929769878089630813653458268274034338286309510917388043454148802154251615238133083766123102355823378865206574300217483986924998671647488139187453493839581655762136105835492230109518801338213521982355188168102002563135928934518433995414707444435640240824926303167331677813927583930422631284166295403401823735562935667558687139378733830325352549644102733713166286647067341449201334044027950550200564583262288921760938868973015777262862769067669685562709089819044514322384687617998039835957995589413022136990531258089638618963783275657760282876122699093675741125214235002086286979194984999028230254841794598306309870166496428501488619606021103693662445488021726224401316309469200378296404435749353544986028723689309404651944584143835210369825824230375640744060556776907603013457024357390711988184384582891032581854098404636002693966379531573313702049214469526195795159530451162095613057386514554217115494070434764719175036994252758146821713860071071019053959632467569437525279959421335674349506984723098822435867496570149126380970202893851137155455650147587297071984611242429349104744922298696875890113433424496718184442948961610301500734666617726656831755496122056729867792577201776042355586628067382573479816228970584884695132893836747183662752383186072814717067927834896569769084499681746675898623182035024811077518111957278949425075798082554132146617097095861162311529955652279704867501994718701143453006835075665656507994808827852627718585775142095866903375449796398789974096601096570969556048532764103487014140735166799898604324815688117357067841955574149609289786160444611787615703842603556488751804212641530995166941143035287820977140224568727885062614565948576083632559770643498631179543941707388398425570028038456382184287167185277201856647178709617944421238732386600927450284914133424988916038393171278242428523078702700085426269988615524175499986291212424096271396263355493751932900154227106830272677092171223548087212220849848700659311820874553923833452836667614459859477475710662433972410598113250431305144378175302363786517986162223807998691966860336433813882016859706085440580616176249710614417011288533885394148228587464755430590571178449009530964767458103073668472496742793132755233264429502895578242612152438497954028915205949856729193816532865794752787630778538817448968167953648869502660120810326348492317764287846222822607273339266346420610109112630185409532296436625554907896713209593379794992246220761222594789633024531811816560886571279345057131118810171986629230925656076408790689789324016569486995028609933326950731033288943258787131578760430577524045663374346119538225184056622000671966365812284768937269737945832040361638837151179841202007228371735390183056569597891655162695319476117106559982645655368059260668317942755095070405562222174330533188148426263612187556595773544932551412188141381803616628158930044594547172790756359963295137696372431454720982590734095634193192281066896511266668253158934787469325033452012461876817004546936354118636018872262703236773588992845283512828861056610324942776290419134697267899331691296962149280901996249121152733420860012335807853026713510771117499489960766726197272468569811908442988415926630525920657070561687704641199471583304920525745966534577588849446695727542217671881082830242004744177866191232075966945229654019191598456772782411059413811336224600004345125322560925213607557115347891655937482983951515375918707617884898843836918929828178620206170560451259875903365288330579778339802477438332637665005938775233973702451408405718897300399349777374324687227067925893385518428517213604877710204455781875965158912015064265764155324241848754051070313974967969272548792051703758044208479489497014320827560849764875144793451265969781642975118401130976104806443328331359113752195100696095616928132571489670758396590549155795065445152406837684649476595760739387303378023172970315389409707931078394951466215517355438874800782528262468475865846535279167857307610668415527388403895741582889241368180040585748551541792870294733554869610549492500535252239898914553591669129478767427092035765892173369710753549071461242922186077851095190503265915533235481221273144975357371948518461729976781847870658566153627902600325314626480115333571128794767804323442500404786953951834000982138619015094193086083871046569340514831329764569874372963758325171630872118051165499374360170965360135297164954243579401118007794280587853908249654632928022079353016756240495594418835539305208877388616572637212715071736314564205460657457442676449510201149479957632548147135739093491288675917199127947320512385404472280940132689197607895604633036072650071450101317782430680385937280483246100431906026310198144768694903542521349183451411755877436121115807781112165605256253364840660076283434965379830703310884109386735842900120599600746566612253153612553680531410538240403770101306620487229517481945322813150047700743579184938644048494314424240275028808803972281582850622623039937471380365006825866157892558647332319016035824768082767226233173560945469464949489902492639096292420293164166522020669003223780936874704026383925099234663262755650359898417512606324414211333925866777957836701556847706300208337390915249066034240004666128875158398033755358400853059457052323994589376323491075837566315155057373141648037410193747504937056607270236707424983857360626896785748220848415218418429180808494312081760361938807044518000419577888329298515537846527942917190836116554109816573414974764861388850040389074565019909810050649388020274049947587071173016919168594643370665634221605382706856054749403187748420963814875841598349448614292144857705833045909297956941203735657211528998161817370595917148467765181963267832433769289397419922058527605703658668661638549414913476791284358162404712140798765759916706451869858507561798519540669053738306741469024189293264660009843087284152465031906127812661065162751564774897511205409794419197171181748417856915408996230606242668598842528063234575146011878928258039041890344278478299243190995098866496889319407724583554991402604617753765887842996748767722304609551018549587338746526108420558700513501053395873447478198678981191460311104366463484853138306003158930000112740479392080224777376111131656286995059207125876848992998457155493900511534752342837339825882029298789598058333987204136667133330086749789299670927529655848213265023935481779443305628858622542063487783755474872982327566857569853984604277366554664373466837740767393607122029944879816779418238833682533923064920942768815566700184582511503896988757100706248492481019539014413014593941835413864744694853616092241097129178221640568247507225679849077058944203311039280265920329381707270926311080422685234448986994493447200401467121395518800992754418712117221059212281081660981885175314104970747784494919635874008436934206437790290935765539335995638249805488261583379689881611921418879664727082725135519683544857011632342958787031255221966823492566330815378007111471776434442649075832524903400020805478135573001942041248220762034603225817812526160223403518647582634932724960833203122938969314231591807722739542992866813258932084939977116458734762128198083203764333809643373969718039177084892760367285564026668342808541167446857866227995635467077411575582172378727780499585117667658538841823656523056086199290525763821001200512603552487761390767004806552496857642574852047902632760323507350329435741553077059854298489247823674580485030558642328154938830439073393179087976502947990858629846439849990327253625597212736243169665623998722202354070655212070879540104771948558593646388380952296613542533840297237077076801926129602209686693670870270858045751286240930154483146568632794797032978698989710434887770184317748184441654423551017597045443512208466482341626848628350095089618617824483944205015750925945310561781542071912305353320712629720033725249091595022484943187156574045913239460642939973120754308109111823124017553341649925563569111529028835033892119229299780545557100920268134738577615646735772324482846359391935504262673260758520102028912171169846297119700328901657693532981728732095992104401316220592090108367387796691245059574510519146647965097654853834046831225488058571800182205475126266796557236204517361372630595454542111905873372732572866240164327187444106886323829192067639737683329995921069631617659550802906631987807502712949259304232269546962258872868198868806442881713170828727104669864224897112842889265473766771097310219456864750367305861833008397203408758667347628942128752716820774186308744555809438689898281666254141733564558866154856313495889465767484807450180014138356065558791028343037480241025927437319938148351620057720572494471034455278050361405335033967007204414783501121916882208144425891279268432777990461611767731921440239394466076186319889261170663937232315999102672496378272418136448539036771843138121136186565370612529021880492571901606386793182799612331670321927725603868445048583721780261863909458003244951425551701977672235502342014621586409264204109455880746301883557452119468699138922594248640571369488680561307288806987908760111957556873241119182292478530585918244922594500983630568544334968213191147288636090617000338253912973273425520355284232721499636138735936131116443570359914532521198753543781764826569078623413088092881709562469699128847455465832763639321661044209895635349846272227751495695335709043069558533566932982143772777314214682072289577601710684774940109693752648324540285238148934134981637138671985595434531382570261061765575518776829999103554468199889235095059530531608840427012574913772494506077459597657676105838082534499534965835434488415851357759078443461193783423466643238680510850276699678759888149450303878766002520249545726825722552731932163459057355320683904460090959192895786027181772150882029470848269095271624036296985739608161930143944059805939866540007081074702948755674128872408664518096138567970723871552505732979575694542806307891701137392243261588337603524093328983819145172673810311461119238410280841174959671013400551001555066441501692466581071682787967528565308224760886064543504852714870205230540840949013300231400275665365654805156336584429394098132504660995352782440987245655709893906223186022228769788778867657284764838143465693603975195286986921692897861702402798772867185632600162833947514850502121863878657285606527371440507599298481447124862844494746892680280592671519832173062227896442960702342065148457459061055154790243816381489381265198601738801158581832531849206121000848329341344366874231421200939413144620000313160035502376912061823220862885618731888721507886551421531844480186364070279037257533145608299018091346920087038186475371652691499823876749493084593355377150335438782677517468188804508442026801832579330600708754264937497898891376566507582595560640938996812917303488264591989785310000980791660319749692456086448361297643188038680010555300125188268258512007066344177394909816121053330801362229785891222137897331040485251207582258099129196866706059985551714352372032206643585947245432492804174492366701639435842550596945554152748373312498657387830698761715097046501491120715714736558304260694370738223758016991368212550548329588563775725804942036100119147601246991745251829416961567053862986031499762693858598656600854107388770518032026161770235423104356493342268597301714547155264577461728594037794709415791954732247120268063372128187337090670239772869347510399613675223844963681348180471551687701364785909184261432838591312974580741103498057116678645105883720510296405528371477454967602682637297419438607403034889633103429839919882707091311829880470298806856884015718572268862295269569417995869948083335762922610132273751545311752463364175419511388250855729164756546949166443237842626629615675700093123919305488747524664135712215510052018391142206590722325473545533499053887417528290932024731313842592545623603297854078287144042391321547292817861540929382643734145054518859659227408396244835893199519451565851304492673430144432507066732356265108371156029464093919159340804211135263431034073719983509939805291334690788265406442505608026144753093792513795120943648326843542244086047729021147617292631842396805733187752257614269023567392063124401855348323155472200874081715344368981051960801113221547306786461845049380201280245539275911944100276319064661077495314134741460513539014896759273003563001227967279912124244212864285447518497986462616847781729789778976486647200828640382929597416971015605722887428623793287204243672896346723293016041804071988364195385283716842159059135288708885045506412870845062515139756325549854879236892186726438310889297421684046840915436468121809054700833547994962669595614461391766104178785405549824638229024221711662566037791631936994580075745983194671550304286522148938382275661780479565849436793224111670363582535428615209268849843245851931277126575917784466735946403629865702300205859857477142597890716928131982569572784333880545316947843034248904213682475150684958128245480177224032431697822754669059086033049757062331092685762064005809235093095087712347689641704065760619299270424590909297021696857795280878224733777674151214735177710009619556839622376172153765991395952133066407316110777933940250797707514686193218727780588007280136167761177584720129621252468803573448890341946011961455500947889568883633733800642768554549737114068618970226170009291774354271847605948356936240871908918588160680632745294146515460211373900012688571734554659764841643820147561276028156703169819057216025651230264556950042353946057890589477588572030131388206202784018443490154964700919711053307972537985863713004259614915222014965218078591706761860861607185248569464452476732876238971782344865482603371175354232305058463793822488601597675455747600932524920178509035856291628960288470437461690121536337606064584230450187313188946794885514465421451757557332816127941948369035856322440290859500946093545965761921907802530552070882851334008604743425637100726283569643148347348267620629138920756719599601466301215073574378012105507084445832850025757770578051941762254572407045046102501603633792361854854482372943776548984763891669293160443016327470983374522226129403425521171998506440514095148812663497529076951516169406845832336577544088097428734770522837522026476501708936137154264333181223049522639179291694459587122059318329739376601257739759250291104657837943058123926790744245188164175017385877978898449554545180124620675830740461602371201730459241515764298622215834005504873957835306079460728967297827277784707340007386615283466566280665347374069529498895797257225055863438811365222435414041493745623417107661468940599434945710768583936198196715565835252229228662905066474997286507003166234184023039327485604364711900122022098334005224989126683735190057886858467829687051430258965040436377871171771562872835139170740453937111031623251759678127435861650421347230439471634008168997429920943173861801232747587826284723399158296528661098375466627320718666823589795729253335532614541757849107307962080727029246065926454649358784589689329324159162692748566456418834169977801264347115156510852247217617774000352455027992203999281487029234906819191288360194956151254046528662493279356168443033962934359251245141033511049479573283190711619570726550163202166209292791862830727489951658242534937833761928282484632131415611356780127478033459437784378894829311643333597420835929018039948102838504240428222574045683164309834166759680649912208836004942806659035141676063795009593044326258862034427452661941876821994539945867166280480369893600089070208363487651863516911813501821583114373535699883883300621603423429538728031485073852647349791115912328603651804446791256300585424265939411841196368285204277259508357322785176474277068792675293951964049277489538122656754291371240709872168305029235238896015872778209154620578255763307215685072433594941015681477496653293238857684985204223252578791073948938836398054502157456242008978539801324934886138252859401015744624382005744889862158248043409805485876120895730187947398722021992559884293859999430312558129180751141456588349768653519073904224465702424596084684911506206847900905554298106315319329620991694469699072864616756611462471194068073746114457057875066968557830621921253037007857893880724206531825781641674748900752349483845346374545654883584643306142374433031165365724780668387387913916768100674305963173189484954646879334149516933259754888138381886988979054854706807374600541569915589809930801458016810122845626484038971876185934206875285941239419846072967348187412136882959844271528923691433202727600121948617827358874156868294809317917140115455830841267558950226672249265729602129564865084101477326315082437087127993298586140569982612428100969066614510025219091553273248039301715946409954874373225204553403482359085576162650812291718501486503520606884236283092508806882483578864717315964972109337634334808992159625707827177506158597882624202914968432128806992233749373508279188535541517799280244133008766847122081353137929827131960712490036238420764590557766026964334969977629281100591808694521770653243059971236709582416997044786496777407181061327127784079238866737849193248061722818828806821021449505761110025197269460304957548920468433891526303818971800902077705794668707337600014394864082227902553000536708976304426427891725805353703439775121396088590606003828104829902250736693418336511672850046187161014239722528321500772934288880050824765444463802440069613202355677484824211092022842942847845989657506837275570227535265685787102080938933785181077472826463547204240205953898695759849411722718436981016987586165423472439835538889776249156662945959494968634557532576370500287254181819182384331105854281246165588743141625343036818421192080226264866369165196892138116868059759662099633704976192385504065688426775670663276179674932997699817300920361668303079557287252462442483715199515421788276408594080411831624197608084625508956110179839977968018195630848358795084315976207459023792187185998247759199709350901010637287748817939288599128038694951465433748364579283914052837597866948094815590711088539789458829488371304943617694598568839343704881396517182083565357932927012836379754351969817679977993288886845783049750670760228455880863058057929455868401988547086440584474915885788340777729962934147356684424519111471976074075751972476228371090410626434091668146741695519212653434121053458024040468760451031846948036062492814135427935662356700066100290249411250901788147401209340560705858740640324789764209101397563296011367454129546504090856969467466339008475322745809471584836783727579552912471023066230567110280535010068357294470778224330651090825142446034776716103358376046568222017298673332572788715775030418292346184597453721458605514839666364313438022851667740716468529757747639469521061592274015728485293596972097050990998430976458845843008013601742573987530929108148079425256702398878904003304243933627341178295556563486165446489855131060400491637898188337037123039406114199570264692520456265722918842385766760876777125417069266303995790122748672464189271469772729456164428317640369243280495533939616244304948870850101201328843448613784795784599281082435425520940658206122695965901696870281648944535717528172578870445264675753877199144602347261818811403344497043096389739519119288515237818651688033597856038046080161853465927699621934722575469336698765418403362569598158310586033099570284064828948833796458657423569854964617560319978232193915375808771993345613214346207692081833795234566224144731873490146315448574566112738589162936164807190840062505163213690476358583387879045793538652744628451319264034308812920338713106762937287910190921013783380485974386597447151716879490035080608717466718465496201799850786763511709696591130268911638404929346909394214146982607417327727252354397080634368073679294794249888711978526105854892099734323289995101714623932800085201989951856678195997391409397750687930661237896460867406884057261242866250567740454730096505238167751590230183343384582438009985303554868962791106979256101060991951441853515072723280299549132683465793561472738349854790161414593812532011214975324122802097166320856193795556231631876868279707278666560790101998125336534608959799822189985792812332529404392551826541401206419005456772400474828117869577237061878717433766160145754006883017689268784436408313292754997911515388068914700774052696095682504493916908386816764134673487013191409151539469289276816295974252198241961928073283414205468735988347525046463350020523601148731338772076178508863148819420565946984148239327484662923197122299093591145223957252684754668252046954828860167253120665562656440244090753171188385513985332294672458225587792951315177043930557264144134012554165642891304636788032794923967191248764801286466494164184456464535264573182475098107160528257834377775601612082144011925508294585243053388463349145364714853941147461153666946627221636774463737525760379607209374233879198689694345429573394139251753149102305953405620853393253604226620518204665712575998846803116660725388619971650163068644884071512290692270563387841314377701186810671165006968189818214543994444992210327711664778237238761288040914584338265750271754167718241961481175384074020003100732141181665710698022549095110994667175372792625982331140630888319506522485825839809857376658484490080262371545303288585200725026499389383587717704735459129676663136997508705233216018624499036719996620734809996243088307920227686528761337617519630229339719511507615212342294526594922236953396474078163882192331448048418763137755747511938725154648782045631690072561220315275881618441203295380595207762671930934848171079637556574542240038758789698216703092791515858695747907881550162355138280730652423697246322184599561063952657342767367335960491703827022839549477561239768806511200555064898809408127671239850790924703451625486159425370760919493199401360202529435486314695601759423912750787039731322606870704629443263060407910274122130333789158366778807999389218084260668091863762157499225724772623726943202300544642176325677337698197972862765213289196199603629372887165038005012504666273110228987369673304328184405494953546057585920496024457732484880624733236585574162208840645024134851018888698056617308972278358716815430611202772935276154914608665014957318850173153831527443353426819126866587767600710165126979961162742552846773055526995651120210945381574998908401895941281401357965811812363488372529803099432181096576193225130680418560723839247054539275689068971999504534013618263574791173503588313564349067631443747496174285262029839835077780041016703555938177694641508989164634356942963801307990090813431798132082702387168657448631349268564487274396162580815216763369476764484588609769774278361491881329837166589088616042180958619092707220496820417353325021256121100217520297389772697494667975281298578342468981480063421500578982692217696814179552129408735756694144127171606043463285717435188872298261964347484634786231328587607070349355950253714134685298058350209960049195137961344971208347865558284314709599176774659362741275081360972824207188579153907146625984668079124277021281772425132778657372528103733392230619537630259922583620672031699769063131307097822723899320193853477757738860798659894965899336208082336856294327771628256025513294227523072437108390474477830714798204387689978213731085629066424666824986207546592084464298724826294519142641566949067340758346828636027325307208495718224072394174917173640361704373029637483015892656786749295098182864794689481231197220312834088938586107517084296269759203880885746525961313794445694960916663131244305851460004182851165598853020835869907360734660365080137099560472537181727040539194955506539315975832440387403610203473362603616819665673263940832457806086748148914739329415867479633504326047232509435196020021809612200366562399756424698166695833942607672955710167596047436171185874592285924591022775932744341973111018071503375779747554247456407314221066672526705969865380052603785356326067786737295944426257449908473733179258103992514921291382065173328708712106103332664761605877773211791508436263188229873500342805165165166306560216816606114605354885601448272588021120751471060178468995830520036180428128678824445907228388679251114205091283790477733459491331664172856423572170522859788537287853466153126545273896378656751563586010072432085903465309270181627341120250008235604677342141733716132245835261808695212948386322215306649125606927666823291955084186817128346759629827318554914742054456444234516439036474031331307820371776746680017384489081163045113907756335455306161398719473090382293557282624667685155867773526578475318284791468940946521217132864116504998507396044065371825864389092265351126843598392101186421269428065015494161379102848356157182321083077290942763405121991292591279407327483046422568592473923415043737909386068586330838502384817853077621505834708788967283311455863428046435416254426316953383073995706704171699585155895527258186176187313669401969922808642798801808483330054012598377390130434008227679947225659804811338427964010186859453456865451935376623416488631274120752204332057446642029558170119338625232550994331452751452954682870388176922086506332672578348802670615729501634511009563566569502139627637006070468939430157052549711538249831589106309204619402975742291808222040408555462357811928175991807002819627714264672028918222667302802609111313941514508220570845537735037560931516867246845077151131034215622147353103460557424267055797753106854101267418854761898657546423768921383287762969372230047479462057307805214472847425373543234866932553790408368465645389009851750178022293032870711789777393235483522840545576698687602694598832658901705194738882189183782150238636327843118644682737074366160288839628310617366150238346498099710029571135367168890686133084905286410067312607653376204503223097513715949437534024258827108397362203413181455211132210889889837690510835489655019985134619417880038511894306236541290962041246215607818391514803278600418079913468011511593209180729932379270618542993981532329481132925971675978031173446272825015542419480570936158270096425959365022204620216205825880696490032508298161045906411995109155410582251690871568600329912311244298765876848566830501822774526088733086733171546685469696393706139962444801769812829177155626881446088211835898963227717450333086024297673704016980739018076049705883636591917013141301583496063099676478539963267533467189312130775261317778039029588507530432212389392916863013848242173475518409486407367639687697012232790624062433557132073350075776864647028860314493589068447578301681893617964414797637070995660393708002162065182705150601210263389286564555595096948323175629813927208688450908629214538061036890243937874477203627803453971621629363053905312263082901644944914424620937322437795336523730232581204566760646482981719791110509160315161813908938029145150423821413156969124349094341736792129895138367137633384649791733179831146673573497448155886418574219344731378729837607268837035860713784072728306222770079736508670558156501228265381982629977854259195306335626514293072105027890593784240160727833705367088923037539846337948970157745712222839537254729803946806003856811017592918921049241504307175558218911281930441167016273903424091968951276992338889290063179949626784763577395563035662881124108411562221338220696904273713285245298958106695791587809106119207355015311323675349844983652718464881740310281451441151266984206885154453415375546408604051665122194147505852641534409903894512845749920840880806027528394640209067614162429213924572273239077889658438438518316684064498159914993215972064150325771461960688238050391054758991462489535906769763585806498642064922639493349049081873281196064288782408078154792123793991523350639428154027333155108058813481233418547328825491001827581779828206050063912391475852884107961427233007086362924824148839749587280351031739454381962863217087044552291219017825793954530216366970303757742140842167683357965595200520962639919618737615284169250631496458332431662312934152274475387124210772476347440755752407114936300587109395825939821530970548177471737199251985738752346390304161824344837370399341944561073164993398503513527019145643964707793619824150752930607906770994155770920598594547005177594383299395617468391650115993892640463034023118425287656444173058646615825880337449076467687263501747005697940020747131422052646700707360923520896274967867189900826700450239035939646629549809354802746567609409209734988846711481235961802613820153957587013030914371877315258337848269338264522035010436022010760262518822402146479873769655556005232183885257970645677334513185646280393342217976789294639113799693769414079625926416057972964485177928622047725471484297466028945446765254459481566052200328629689993195270346378683616203694659567304933993146838869311718588364090423985052805277124365357063237873863049970295754257430453507682831717594457906807285048901024926574803347222246473081621952704277238091291546371949805009587224111789035454717068379358952983058057473389483616958234124987749727578066353374451537172293079987382340034876188191490634632117912678917564163289305239960920412455013036960185420346396716633460281728307224937278518575375632038413009629241546065547929417848671229602355807934636886114445167071731597548602064350941635153854733134831267843374656377415667620355935690972363139427738138515417464295379163972642928890464629140697556461774083221700390610541113351578051203062251075950887767104922921528638242309905285804996282361070846286862442314792683433152404790481858100829148469345874939423776852615441405464091708058815231079284309685323031302210116355471310318603699505334024660336580373419474410247275121478482504051832532456028350590891482516972118122394236172713638613348276138310331165144869746822075775413555356695268962359411472883546888289815496087543837624916271997344745765522221818929699345835670362429328692638314081040810906224915172783942036935176806341680506535917131467388057301587666583609450123915458816338057197984489355634981480802681834638542541242270980053387394368748347597548716007963512831014639264723108416974789712212785521164539084902894047541201825675122230431571795727200265045347236974265197625835694906642412864369261716114416104060027175046805330256969218951853417658329398334141661938826990843565794945471439594720376977360899013853053118027510784087252381621531296752534400160773766512159545600742266403542521748859733910239420424284761408406808224378565103448762266178620903810605931786924053671469119039469248568493134687782139623978537823611134382232851456280928916341898096985418712195161333598860506393112838824454432888122934289509019284322786113258769438934276233815559775364323269849048532829824441624761098725039572395905185955480003511682051946474857607587866263023181305161158401936377915464992691562864396499485069323633216347136470840571700992880942694975510161615398128982006549335834649376346499870257501417420788838351746510945245016699944493179292698716730774387213453660882791014344421297406922474830466466729002655675781069481077953535933901823115548858691111703464441009681130355631398982281125007839535735994699438536159028594210803847353175251016559323780371299296140636128344869215843677277918838548079883945993562986331282215544537146332011968295319769593323142295424154650927220527662893339299613716534046603017404584002531153829704626108047247894155188839749264234529763354300199389078228112166436611989280874187474273613959598711800884469066604992606819934201372616700105858859948891135405884580839127967141480989795646445877456108462413267626449144260707092707773295640589179330580406675619972236371695974010208407662322914776204852480229979990924036274267864953208962743276072470971467411118137266685373213905912562185447449814599321463175204980176057372918208198666295503449476623258203972559002270831385126173064377890885588336627515470528112945508408456983759626378747062591780521900078330374470550827338073207536061006088554327609537730504205291589855207121118976985291840037703378031323558073103204542425451025305279799440004901527739275588125152699023880481137493414743674714137148516398534137739671973233139716368433830755009050290699901665908771637828293606211408789434930905970034997541522673052212284035978405942129467669757412670352668106494554470398193701686583147538602163052511338596496814045520435928063545978160947352164489319347668583758937247951372480717340312631033092706406400848554937069442648942106816872606079491061195938753931771876239210327482662874514220098348102615025949290226328957946804851410902306948118651286861239928825813647949991333788942419573849468533595834234323348181333520957193548124309890523365590218433945472071611114710819160078842097433820653174919225306512527785765876640075707216991486417516255567798232327094706630288028923852065136458869903578961071598300594570369054865712483425738264760358994111973330812452630244704720095071617932040636873820486711468294633553047244979667581648899321908466022648086839384762805396874982594976899077294799389625347711469839048899535542921397341622683081132689066162522386200283925561179286588972836678043172464952120944611067686603728892815444487372762065644322431811326234945318367108759208796175851868181440585668368643037715444635820224463297866495146169741068718245290879745135691780730716675102378628789697515616687604414146110164110934886428092246659962829580135510863565407493091569172354179775415177086294592650693473401524588052894596310830793609691959600929161006575103504918379465953767656807435900405653075970002146955541767869067676089425383503388868431257666028637460866317835073477002942500495335282828874361572818576455768086332112882353913432216388474152517847128337778534998514766942512619181796014798305582666636178373403454526717409355778976571794199216212748774706006609018800048088157350149653349228563982986855313385822839429518222316869870413165976438737217431439267796634626547756638403698835220290431282742727909036464607183672443359793483241595859514277526368506418616124756157948310829019262487447958372599221251150103110033998070812375641232155218335320270658826342401270217733117515926047220765762974182313673782580989757919546174681250243371226619159955362349565977576625423364099524507034468703974460138099375532830295670620589969788308587100737684804003935653656453330214481334815073660212456253457438326559243745898861180462632805578931828440411960279459716370841079399546347851775699145520057414815809264743911987277676165839549376376789247384955111265605730504896798914352685981189740509590599950726615577019515219905571543471907708093441393867488916827281998076421358556343936021487018372861306541945187038978736913862557010094990021143179903532714766337043303141444834114379546509403741545849898010229539374816186650282751590844781106183649468112756669665932840462997995801601782013558094824601982156818177970699350191950469730220497146098164912445035767463432352042286716921360422869963560259275659423569512540270195584048362538582307614546024187874055982043225030215524874001666438884586327371690642712433248759298194728691537671799797336643581387343161023319447412920175936165139604389293967591497464333398242584215810556361064531345207298231009767048231401885299911763140680779454346894399868856944975361398331205733333588039609250534361619050495342994167104815508127482426585404159997134349443495601698335000904727330385048791372117050749338253912183114475654068445470612899980171259065265729977573022046809329728385127188402213008024813642986513829106320188122973387486037788499921861892178071375431537209475331301265141633969847853793333290347103122103229633515233338513675699826472470932090208537423075133525834819355034914797044957299728296646040205356482218855067627299013080484810523279393640678444925622254883354980035264029454710620612411360180257542285712809255887712797569339223162355578170122942072321992769835208759181923073734705787529449606372361790355878096529217477598695380742143542776140820058148225828202492197771294763277914203966580143255722028292658332838262293425225727885003468080222421218977238467050725212334892732265571540299246653311220677754493555341764885386099969019254195302140866249506078628780417397537928237705686140831277405187964188199048390002695948922872233064929280793805055376023880118617837606215431962014848290490218714052679994870108041230969902785022693047833510312665751759587846971649427803263982512159765538354462999061279950699492425175428578281194668947261598605218997390239544587543942320031777866185753248079303127983089047848357069044841985068457971337179990266464120789223217273975390687518843172868854158645665946950032356265768185378455047511119014253747163293864634464636506423964282099442365452092048969466689987948962047686292948389536396984919142113918526364814762784823473018173730692353424490413159430499475483357308821277243141757953123386774533827120667421502925366054503549531722386963628917396742032318186535828515634388615819812403151154551808907414054049875243268323344072746763123826376285957272970942606321261972189972774458258429121539717035583138985690056928817359176185014936487279536225224682793453498358003500413301048629314168499870057549850298474696269121978805213100046870717282390235465310177715087256783079048194383297387882594965381985111583665399635276746003804164643605838846343395514467982573521118498561064748327128896761356277125951214212873011450482547748517776230042235474587155688057024955746049956484777851508656522848312802056207823944336796107823690352509432723716799076085657399093929706788705754061771573331597369542087281861124437339110110663322183774953041270297912557159936152806896697820709759687055038560748075314647411076330875067596424429624761121575701884491801570668991464737510660088403934485156070159142662684961211692317197090700566831804550983828469584794861543119200303202675998302933116474099520695071077515153673375135316380891245837389277457831702677762488436376416044373657801951910802343971316697766588378625753460633093344276279582602482981376399508104905714670554448913985560878585863655944586785849351591868440782224881604159481584436441392297968213366783606866419443598512839950312429108014684551811172624212976809578101219271295333317435397369449544454976214322252044499975433732322194055382115799415317557271046809898248803836303370965090959743541590510133158192343036488190844347454459710963629098062859293629830559768492110892925438400596057250726961694135109709511954458484698142338392504027725445929463772685190235506231437860276953228365151600189520740591766281887577187152658432079580765503064404733529815845957500394954501616749143406437696902800975858475909619450763184076263956128573968904003449540353510485854512169985038871763300803674302513814462690399055484070352233790765605841855839938937018478124159736975418210539986915206087813029170177822990082469634758462933144150833555914977558281345064079749621374601312569594197952441905378842749352554297385344248475713231912490315837315568189253316359672664328192906367456794816919218874272301955733341067043788908673216314913227289882534894800578102244775140706415904829293725429700182412860453088529192347469446003503420186203220516939636477170672500542684381463845063234355041939049736033688978491490186251293133501063970644968830949221966938742008772564076706435169281206769751509346380805563945549448608877328559055169902223059592540671299048789791447916556435108701209974228939803281956521482907710800705466124602515150860992671994600760745762706802630876520590358334979032369515890339148675147512040143995956578372092337183125391118659226598299274661161702795756612707383172565692937408848810098082212596026959786432598195882090878903456313363569652083138173515646437374307062131598069094752507923282909122527933969481962927882486567650514716362779757060816573786147641136580238151444827248106196985598163702928595978647507931476328929250318016896741705865341049818684089370424097930205299284595201600380724897770597632960137053575825501063749236167673128454841893792250699664175278422539516539275728780129994612823670061168690047007609893685136862380238037322407840618406462461816333170036912079915790575692476879813899211069561373065353766832035503780313732450466441501609418415830554051889557870651044404951715855237531324484479254255924303767337289771364952263783272104175636050035283019051906035464561036737477635200256544368191028889249911065619034990563997366288994416717964235881608121728504601449624387493972762116304004489442002676198755299241163923954235062025789879424534939201532799202252120182155181166254829532094925706862302231444512508941537193893399707024206001902350427013204571764199158563242706746922947564699662630684871784970172576556158649876140531240153318031668997776887694029243712604077696872056261044220593749350834165100598604183439960407468367802271550180550536649462360018559374085353360097467608990056993702770897031684286176354786663059267983394627022250772239846896274793596003286320528966333093260858688020867781821117543398072841210726127053582015922205245385393230821535945226974837069531388341085800141632637407798425745935576624384500348786273716522169562770700064479660886857743165209180286034133597556088650865950999170122220919080871816400819085846378524551291976069571207193200654441857204507778262754667281895021623169220807867063711777328899677693120857407923729994492290098866132782907808540870604562506844076845579534808336142318615062988217896182144609741253336851374851026940379766810934615416522917771347268238231074424816710982464955677354514128027036847454417626179217032631062738694588437341217432070304141148969842034509816475556735323629650977826119489006352300763687590534509665759385127928004408557202826015716147639513957801576712890495254282766470209214521524354793442303680877667306436404839921708732041578681841115597077722942736737821790038402224313525004138144103411462634299892532089457929437875960272090997295436768594146129973870386567684224918302837127303947949783847077623371898521393713381273737452896885947172650260164199786727006644633102007927769845922085036711361776558759289970688478938390918925235287011150662495742327085506103850951783626106518355447488150001433808810585982168238992988832107079273110320073833187657548008144770938317847438660815970700657942530978200266746080861529069177074365845108959050995463878930277985973473488985613879793042910798080698335685048501638373829108006707885652933594801974400756972839362873636771423828476714417104572593996280272221827956643775566618063349779921958813514028229415170332827403432782973703194222591113990286953475830583720029608984275932151893313653565724802027350098374944752519806917418489026334706860155955665248895269389258752457186332884373012411631635832827446355936090001082303535286912238363083396380648065634890435700122537932786758911881812334386910036380420463711214511407170096574856651082338754570506133464874352945168429102900552971528968995070864482204930391590659628729739087916990776732938918576202928182397434200692407821040019698602398237142210361805176571048469730169565934089073389933280890310387009771273292488134773290747692884973324859604720532119194246471661273892923986586630037328492956067514525521530564226679531246734077957174548011205981206180400137223846100924620779548055123203518688859017233702290088263046696865570174989533708856432947039986473237744952219212461102132607097225247733575452017817737126763493906830560355659807446501606695174640171711250817356796207141448905515233367837298148752161990647185590469031946437321736084935542693542043689286588144682251790317887965114871169105327437313769294441866653886655294463608807868110254927068409576342133984625494558849959109700487526288111553289203529929806783978913442528382224060987013637653955764402024031331084399890093758855477251217887479356667323917494524421030876283877999520392785195960252952276079107044726832188672523589889274594853840224456382847409628066051719923010034382746522672947935557110961735214206533901939649460167738941545473897530065845482609100910775887435061075472908492803408826671449263435290646872446511862684731204497715194082253399840942426470963182047274441740808606305631280630642859586464994110254306748221923250767267134680870542312911308591008730429199594430044696925617619067787461737289328124433776828055173779488350341152619484515659538460307654621732353473901051139467823806821887482923645757474449038424775333137997310087168888879537897105439443930239340674585500613729421900407854204426316219897953108926324377078538172995226643945368245010696942709581962775629326237314981075471651902987550455613518205394249160501270994383977752091223965910133806524522652964439263559444700605183613482064655826406157989146720823569772333204919168844069320961613858960801189237997527837663167023079311508263588844222296168511874200733580864124453317125535231306592614804478010907485409047822382250852807587152607920588538780738055468102470358087575809065471169745929709580510084608703909856792635580599575841246155517070961928238433315654471354554446384258601097707744056696162087276865120152845772285607292112313427505106296887306050463770396476823620670392966595029180417777560674942072796005523648207220385118508015225375245375516173245824637525729290116139732421084058615088243546434622991006803770405166949671010632226044890776592695296809882767295812999388542542733368037433435724022475311527167821911971743355010503221530750673435282286795971585929959537304349855162510971689975551177383674675271071560523422942956950384129967251564330479946525243602097320364072299450413951231570149784149466728661978609363303062942622403089028281539329537082030794212337088948080497014051171878645272454539104503919293200767188316728236334363480104329975082922674419715103223057213240988364807290447432641579510014040538367771850928906729863951228684141894344513660459007162780461775178900610938378596421729241068536009630042731966614389121230726601792147264181853973697680128432831327901621525683886113900003149673035414545070865650054030532035670195492064035606764506460811202829606630427270998795079993116690331366041893669054895927794691117657532130874783810848310362273130994962488509448372599802493260904650272470329262129493732697848177308176409925902229797035633103327096603010340552266936878179234109908514075650503097149489212842316791420767422104214757107883421880415405242822173573281911413458107465704671563238015693947353843476504875541919535583183681006774460590852953339949066035955318527713969710223472853909996857806002203342176116091056244880723935665314230634687761225732855284947610030430947046936681163878930124997826121098989774349835138913436562515190866822702382581433748001407873033345446113412877928943710470018108510778590283180309184134653240168946857316804019643376577960977495310763605848862652921665252995436744090317771849922656162554115085513937108869519070007156615072948337432230934596760996669607368066859172944664627108149744398696058985353239355062287583758627092073930304904963367185706109557659239666299966652531961051635971743683591208804807375533253302554954221659521821472620342610303927193708582716062052747678889913667512688470393835349567502349947594783789492488746974564596876446441338463289038315696888118758014294489136861940661868279449610932720791559753212868455331860943806830190362533446470779409845772932206929654166824152199477386985957121073422609443924875770375768870525171763096007586940104785726173896546696233301184604156760477233129033802038563927588254493217019071411942087929778708881696416241929826149691336706994692084847112104289148966945859228471793532359495730917178573777079244165820115979750225982023974668255337621276630691781488511268167947145830795043715064571296263172362545714941360262023119084483673307282633334355903461538209538833554127504898173034822534802260769712544473703228027665415893547002456747994275119474121097044499445929876773372908307243243744756827718054820463125684930317489737886304919745143634078723253263133460892082557332711726583678633182125670724134682091627057364426181113982796270099607400453254236288264974368731382040926373562172729949380972337898729635891420120584165641115326222758916719156567538814518456003960532452122135569555996730963789658217390968781906867411556058619170159984028306440544840535555247488563546700583679014195971751729590729530626765011463056251834570708507048402206491680511292523896378151833650883844394820287922535685679018866467470888168923759971997476077112621877601392035548992268154933258523427044642496032545360524162826380045691904538457115423595329865981105062646893277092501293781871497893765480304342820353787009667345255654652572446719186339099824281648179273790010069564085037814970993781909325486151148129079830343576006160536797083726407054447715055695311223126791385650583259672518382006261861851960585580793337752839365864899145251366812555398209409516175463094650974110890546957410557216219902110754813117098363670716633032752822279950830148539385857463175037633980241800470247087159604571631879700808448216057711326884155163937405140344804623839699647484762485447902322555250317505252674150688455530347291197247215728948322024044218696473914660083133604629482710355757504807626857251801871024101379321554096115770930205294743734466724392261315090149693278974957132791924005221404638042131161588820519631845535690677479495254870480383476103797989233499565510743111380557030569020342524262540131638322210853586556123716480226883504816279222359953574185896033987775243172230752093087285481375320624810691863463724446747459181341997560726070668162647560260639361978043091686667347494307467924452991095197818643037624889944862327601306280621794842555619354590578367334302804403849123843138218337149403687922356460916769996050038077240070480651771514892795095472938021952080767661761593301751479212585286670918306930239718606791060131806006593634652347062336566643455184730396418950780933298657870269137069682067495648457218770472970521662702714267009013340105705435710390693482552530902006957151564901948168853558827302774230314468743674996842854409836004358282581521176962365102163888577053070860969733115268506924362087967250878122902794169279439019776902059755711779802334929084976188184506592835957258053797344760294844728709908013475189644337318583179919199140200496735873487816546401197675774469268296851422156510085348197472860319387530674559048686294103264184394462728114936408632570788220784258901410471753832611801466888243528149555649517357625868042870306183900290648841631447674066989268166206161273333236415064322466869625734788608180993758680237491568710465851842788260398905903248603445107256198840817879234799462793126702572935077345979770467511890725020189203627376695822659463861847293352511106081895428588207287225858618423586131555590230671223379613284043427209002566484116929731288769020391907505431604587412550251339518877541648553000429958750204329175543412381890943661220053471922307203958688619242113508531281034034542200317255791543985640757675085149937808309701971088348492694216681360905107835784019150427672208209953592796351943605925476974473991691854688437575591919920239705872975307013587635812206330055180780712248581530125273205989285114280838812080261615502539945835928901141250707154960180463327076808639076511105859822354304011556926072613980700782859446700754046036956877480909607761842444383286046829156246525777293241467720150335247486947938517840991460585355301760604204174079026492630323844349812777030159284358732746310747578695150794094536606518686015785305364513572569987458365115623033610420976350894234878863615807951761705394588436717153350273030464710724777971984564691199498993233607548870659691400238415219251812086971600891531183373439882527560937341927205507809130434110825610277512678493875338675201393888722569561279886652856404177379183768776575107001806289596163426127232667558588341013247048334329118269276664776196471638257995603146141465329977808621648620090075083099962588686884658931344867144914805634528280737300105346097848288021684480410124897368703893184630592526629157539505660248931599553408212879219978073812430469352984755613514133539488328452620333218874312709417072276137343017968629883477510502525194960269780475847254017317989226621661384592612600611060935674147928597803443391985600291387175890383740411890245122985415797714568871337242423576922252505334089620285902751152596122086551761194683330756746495829323111562631096582404290149613509249652493408921504292342962769177268133686928297770607548373796269007295036361127731683712977250070246553511114669811027265197926239862525261144620706234845603315250632442461552437741317191350368189916540703222646174361018935745994850201569847812999243853005045452706994110780249214124173802874110453737959793326437750902796158564113317708036709956696807089776584606179004399501107489963015455054596825651021881191226801021020920813985008795994071502624186640180933467956478343871352991902238057884431050714429498159338025954967030142826347986898627139444128592668747377956876819943945345838298829313266099289230202769234438887868853363298166205839441051134654923702205762475693998752063822038297422064665088086276610017393539761628156632191875744810985265575000142642898618081498468486371756342010329013007691497084087638936444858197721004313697353661113616291481244869157317708977428401186729768168311221590751725457652883837529147024112232901491852216437811400589380662828551264272193829016196847238427416197258435380346303650510098377740898427677496007886531355612931861997970618128739583359119681269638851158707914390389973646693809259191027769487601026527759582507871637655791499108804168315725776419061538580966659669982619528125485270736766480337356983274629307136307493754443611417689987090205587232068441760126256327666298499466480605227002919326406983723148949153325106566016995731758095589343591386850307711204611197052730545807065848083714961056707165425902437418103468206540540572800772597796576915891865188115270336945383876001133350966634388967755148223383123859765196952051718944423230505901780661941977559041192254138639425131745518991283639358161638323448118281539717864202774862537658809021334001008039596269573835449883868816772691711079175186827091808537655332149272684271214449611760145577968754374261466932735730383196176448309322054571213798952352557339731870351744072625672047252017550461855065257650431662751282327071212078988298447622286283186862260197197170586958286630879045928195231097489964521507802989246625205585665594371008306334764123296263058689784244745491542387107032367300749079542022140831271909109286177489338899348339323080473408051967827153486608395190019754339355466321551220861952384126006316830416464832091174476689034154954730803870114488253426631067931916188785963343467268395983656716473593932344819411141025578281409653204066480034523314804607854704487030195859849717263796328509269113143044183060108783950305252897678435505401543758250558603259410524423575237037549057830210988531710145499729092546092827451503964539838332498022888771925180881506993423568225474701100186564785044585486886317160257536258511142046848320616139107240077025521809108916476134288869410555613287810621554453048530509830130231664154630042178333660763558205888583740404607035907914070045129011661782731635071389675929166051359129130532422070434811084899743014179756389515037855505817154238244713556190914067696105025176913797731249799460960055077255808181839498016440001635901073940521392733742918481509813508381815301986463400781974808874343959702039129063009092102199001886782874651112443023791863108777407874462421248339239845359441704590613132163289586633819598977552474622922713397056579776188398333128867591645905646121884269935225385690113509140949635347281438840597453851436948616213086444743724475764500678067727438795821301764160587863684760035241589084208749067724375980682742990254500619573192866498656583558035232825033150725696377767223995171850808338749325146347452315882287412281140813883159400132071444764187041114953426991236765364270188957299307200389431929702839000418928381550169759023283744218664590688124055469668134118845610715745225314758619823731007705134119821792159731436816945040635645687291549658068223044363377126609774626185036725436357731793405756774110676122426883446203615928209828241201084333089932305693000582218652145278992333686656715619423039859231701253057748508002610449184447798075966385113473386112042403468390623075400518858081657466895812018307240128488648787596606131831229347701957815674174059337467012482323970224499061036992773576228549150805222025672858201151650318441499279426071261381961652339805921385372401783226542153951766097904500018727653041817521205795030263532816361108352355324689366136359851294487514923839870046735384198836041751265287313332515213756404333751329033767784395148087812285055795871190373695663654683766395777137226957733287479748374241611618797569447591492264502218610525158572075782267099737433356557779529036593682281353571009058403146016599328020681880936452778612370589486612327062710003427807857514247494304629306250147858637787006150708066028931741928134174211854275108042418275520906247035510284625529938687400802116451127737844197278719130486196068099636790770919625062809154761501420011489826958167502598122140930236579539269475158459081877414974119189546913502342237927991981151234028054781699229039245241275797490368159728135466626815914446161983208646521314699987944589009892870512599933074285855946304757358924109226951690927710848820069747930376707813215536409636090554452263946190835712728883651107750691502411648202216151571633502572788837712645950029222222401234130960202283498963431915735550686445491902319291291328291188625470881011466823413340422572478328003557602239033838692206551640372639718905786363504780413991819811267919929157978667455056190053410704872699909939346213015148914853313587002341330477874682466719558400272668578594444985588950527831265274625338171535409036406875649561502428801504972699099861440585149238580674657370364848026571369395776512841273987043161409045268308916160959294976712311844982865168971889540572857814918906997448794047799725581456868441625269539958190145141785441218564494822421587179856947849447668722875248468063542032302417842068794323209850211457965597615808958450131411121985186752866006123794637225654878346696619748841783385887590735316881268626427830708555946637356246052220916929454754123306446196398242285983997690508007150009982164497924833253717688734367492484932527272706557001514754807555956991913749905442767988782508532608521407011120805855123826713061972458777897453548295125068590664021130808624701900884528468111545686902584727112298092171313567001734782235240927232906344934641388129020734833039790337296273629765937366268786968537772145718778258042241099798155120195082526446248944230390447695374005251703044148693233916507891419009639828981845457939102945831424467496973444592877168033761470180323335280080731775860675408868743940369845229166989249209200993151960440560507077896576130647655019719023425365731278171942070926402085245620307477400544729177105369158782307521371211648353337345928747449131712659292153829614184830577439246598167500694604366960303748816489860518340297617762727472632652380241725018872121465193347264508224055165077826603398000501115972853726958179212129368202335716732945812401928384129897155397295034832852683764109241841652175029362259046178899200233814037910817846638980511448038554991101981875226959335016039240349794862559487653332709999413595677216190631136792617109697597796669559053652566828823347101684305483330035290965715588697018515370567253202594879097839706874691244287212575117591235342014232868852033219411144383203509405064342168080712835292360268954842312354002308602463774289816369837193132332164858786160433027278291021123352426034532298612903673697160390777562560493785625168079267867985382359189749790981983078226591829377051706603128763190855152535863248685175131296589414299579783900049893533516801104252262963237553237847458882878493226522278731490065500426189210092891154482114213270612279686910990935384801993261514916018946647290103935153283845045644742483278471085356750095488512270121749298198395081558735689414436774050917147734045450080591094463218452634515212660015283832034603903600245686810381068299938071122862406663004298378890559419399468518456020676640318168666388104383685633986741976060098003514991794438417954137968263541156293607253298275994128264905030507745730851350329547445175340915209549412310647960630868157095585255710868565563883137311304948708502657549997570825509704134965443759017929298334596376503145767517988647742784535707581562849066070862665856013085725138621977316184824027588871328677618534258057393548855048007069617791419706037970190854988138701206002787460659487580488614028782033015841976331969714450608534571785101897736071735986086752359026160487306134820247699283026525058256593147187902721881423675527217484445919105528096037498832032370405161925949988389145674439157210058073853842529630725815857946712699847534652017405672811901244572867492958115561910774062800413442011839322576385153695593448400991346100502532606099238899153297707392940762408071054418705067445755517866548696079314886252960218665988271260259648486029764241702330400068007377094667757791710742155288767293244944549880059137430404304490881191778558322428126536673564473856146998368630002151405217692242926271185284784201935846972926179964154412014603089555329909502689066249925371642106444503825795412642486314500959651627987751120913666991194492133551371708045635324508125044818342387191869038080339245077795506612604124856968172826280859958671384137055029977787787305487956988171800130309884254038581323018013707437253289002039458150320850230474119595538253890045332887146507483433858983455686485815697843774833268410040273880118565844915132179130229607932661960556827297217465646956057865485190321699092537384245895359635819359541904337827059928776861804414267963885130280016849975375413286597427621663872027418634471021901057577904809549013592218298174648604069895461641464635633078480003136050949775995326892344185779531927282758775144121510818210805341702245629813262295882158411480720344639547653254943343606181841204815890828707718543924328144670196448609967577707076370036630330647924212243826926670554706750833644782966345744122202438631567899673013358010512057217735114685590441006989287524296147608078520320624378341916956263705415126957839795281263116704459164394633482731183301096366156238297543816181357380210108748586660416085159246668054675555332970643352694672761857872272819065484478570154546655163477662678354735376416930764134301083406361867092652655716837666168206269756187650641895825199337182745980841586923435436531531637315133002084147515104793266928929172550676812479065250318309899687724702081869115722218344536225245369280556473185417744754652928474131898461744677291833879119174506758190538155743968295816770503599145319562086785090182825223231878596146281559588851782630010365135783996458021749531446824216876485943885894259292237585911562460548387387575884969707468426585606177667842110878503170124929311191807825634417567506565099124812127331796887322233440156946374116995051822552836819136431954113873557425788348815138037033355122213873504722410979185620264208410499528585342733009667961356466881349911475339281267781468920714815305533968397926194141307728367998141032892368207992166763324348808788891885478010322479279222440101018393277874338811713947053699092086641186400558389320066103238148424789679336382258931661591585434093675248815847388815681707844159903743105873799868194524551820441414705159919678894555219568900142120279087515813933956629988975734831330806424986113965340422057996706047817731327934888289227031280131215295833104179169581687219696225871794570984352880140334927111489624194047240080561313526626273210508039870544706931347950629354735169548538719086870608495083892756334289185747145514847600298648400563114348242588819910259762012723011686550823999781160004446828446252087683830797806277631455927462828233598529631554214195090000147520624258125822362590606150545634335652826331921550516039395342663481764059767470881182206965574743634100087243233545173563469355456354256982108256273736346392051680457904487176109430035300383307688597110583490620056668589014622119193582497311297733009973095404907385426341461557519122739498997486955579165942594397654686451282294498709312056044993061568741700812218132154244348939003589872252369269754001089319963546046182454694827418244516704090263002140265038732036619641440574655210653759394227137095063286781570332194614396676831936797860887290005414289337037090139145304503791904042670593615774237021266099058685167006669456604493376888267376853540744467601434340235086070188582039533153664698497079244504870849624683960873925317752426785739030683417075058710133085246558787317048995348501102117388077401008346237446039544835151894826803309375151558879480008549475740940091782005405177529982383609386528700716501606658077078713863481529265063656968909997001371446988343971533591801313905942961409576225260033480650206084647201368908998340634114242914918887908899893713344482141281511501326599544771466774840662291659457133542923350673801396941978064709675175747434073075906781743825449950267510865814602546750353037656406777545193974351709937527631424382951098961733294288453050448510869682943688888502705777097009253246087427860639364370336332275945073087844065516930225645433893004356061003249352671869590823235349951374517563576871004366001936865912144301100075742044451481940577509913044965068201165124635861067353776431841086109545597955656292933137829241973232170468823520629011527611736045335085803317174581185830075079144284549350959900919674157869662477392097256312084662246933735666570474644102871737359797422427303087790110468123288873394807380232295231571024173107789447805335690415094322429673865111074772408063917584813672928755859479187733343137615700167629088097968618385192553708645731596128284701142361426291789214393279883397017164757914657838508483287599292317816850116844737349549242070670286576055724542822666076450697171782946531524241754830615766769711466892345397965048463503162647647550622598269370284925297857356874040403145864569922400311256826266524539664272206831271928124859810874155207128046098298327787580446207236630468845620797744712018355615031667859281822751083389464399651779602449869091664391392478897174988882986483304200091359245979152298857671444981869514317785399042626036089911639106267791707921677682699643683642776007752691596152182052628469303163377144565440292308543766581542467670334536675910881229558061201691697458496344889055828874316737841560335890371978090345133623715320018182446093493677778893078474729860141183211551850979523858702750128375234376169329302080059140248129574922640802896212427051438998977710017190550031326286620304611358104949261422219901408746340279152317140008292418349497841522786734251202572749638680339074027227694117852912961303511793424588743778045190789992040550010871857054934444450745591456407897200932780562732349409997690153937401180709366134888525770797491440879168801298144523059202627604540292700907373173618722540743408994746308661914795204808174898307105021484482158488640067909530853544001988125755212135874648318109259130229796253580166820011430573378734932151225612083242125119523170501013662196898917816688831827368334050323912436346746797898248077740599185643674628644815645463317847572530168619307144256000531976363853544244708413369104506147029860655581861813987243146493156919321316811872568624125761399274344153189180777989900958772253262467163760871180578791765450741009901543009655871945763326360685305694499313174230320747226331719580441498117895408226243202083036302542789767418568791714569936672813836753973588350333542882138751101136156227492490041599854206751215269735370896759668249598097403358087048912436835891203087313398999492616935072757427194615784676677916245934217235801124870805327092869275250293292227053451631272393237690004651739062534246415022717460220574173352764325653693244350949215506550071812788767206788037255519865010180584881319334107095460001806130803532170096575704887402413573862184701525097020164041664845884166283041683936401049182684256109334812869076936610990699311908485386209143222338903003479873388912375918789623368036650242426156677577759603322743253933285062030180444247824805835976615721756955028747858259130527368332067633012243563075844146424335710653688472743691285522273281849337501733317286003047884678750796601161522831682510577741999533709482980508462875947790321038453328136508401404684999348898748629102271863867238095148082516695995628588937592590659603577697321920831812755445073103649501408461503162457467406056995406606328154065923876079795302511408646216934800667031187851656286015523149755633082737096191462645910771262622971454293084511836177853889582809370906904706621678419295117099006303634755830703893915937849686056970615370897928890368807244650386877578788334981575386612209827571086391568015040856084301498306650445769169881438476139691601128335005673844888452410166918649628166071019853316211450976871848164563814772024799401946323766094852396415897072275922150019426392440823802852241690620689871805564599176768761964599409717482453624810213008612664542744380558657683024653470714467457985069083200537252276653715340920525232548198090429216911258703593260510394778942319947481371849561907058594478705351786536882388957733684683270243885934109376314246856099169673898002863031504065733554049990405081108994438268096966421221260735202855638285373536999132443676116890129038000848274457869258741890984599036995006625601965727481034892428966923300765606842856098827716599475394236850712051441546084983895217678474269216239770846568598611450215978780768864570439554137926146429145693111149333898596235505589265283021021401740585530784786230989078512858504146978606818608275779307240145915984560701598095232940524719729578239678210748769487059424947586183957223396061458882256507921537209526506649015790433488715136655607890496037784913931148127362845550426972036408557326405934255113310371369167754894609994544534414636208937841508609488830355539901746503418192866725412873715954522239763451483693134323199736785959425124051165593393093910268419502887170978574045792630326744766875064989742546303479118547064619279883631466483939180256181804649673735557149766241574069371399400444109892088558340107970219779288629892201683912447798847450353302830719200872075816840340645311395760549302680737922482030932901180161103339296395683762504153268319297737545965687931386868258354556875771085450108605489906371899833841001268888233147187821216141864451071225440559934183709333652347549685231595722406793798575190221046050459467574119570865680035466877635048897123376138953640264818215397976457857469859234175836862534483770750075596401666937920008298355083038225301608660741458781171868883816686308060566724953698343986304709702669162692747367189838499312500791546810535190048545393216602587117274187948971338122331063989890660422916963996159323208063855517596750787536310562087737377434611758946637305671657240303833493224261906642575242376587045680619433530285107126984681382237784781226214526212633766516072851611548531015963836181308974751377289135286457147337421497331602959545183052871298350255862743874137052688339446484293798987892439762929623646160519188465723941966991239549596212542439366966507533800479618710347137634755497238921215336668486827767835524168536824936039968491909699559446441441065654598265098530159642276770547280142529263371331149263685912450406407659941188290779738929011518736613964864630425215651722553287597371769861335125222042916835396312289320948855711877984580323852310122166054163242575697523058794829327862465950056180704387076434661806467561812532156079025279102016189265824851246460759693760506617978264490888572917735304828349170985369419162009857015123672062892965594482633693538792284574053027461276209035984561023832211046875981878562365207077123074961446681009638933656384434900372560416658806170342777414650000060918152223053440446311676890518732721655988944187939853080493041072120198617590711362450117390318290480628253832547524273012151278314394705518788274180411146975478660864322793889826317315604468794256670745433068786519427302610766498974923020016420989720376252228875831540373731370333546042057156492432646021694677313091098799936597892197499706566951372590404555905020209807348819083554795274816107859800198863777945443938473613469962406626698579727792372993457213733266390899226462550072037515280594351173901148315754164167179934757003468293444542175653560947192186796904089805220609216225908570871318298709878570080856116778362554639577446746279804766905438080582489714524181989339678123936414490440035312083967039695683518155992506711630143590959564411106588452836380823473561766163502793764312568075060615275864542211961592710265620190704095423878493131679020306908194005500978522777080284566282135081114522026481697561439541201797463104686730291276704520646243071575794378154767554614941729375019396288912276176032298996370326540595196553524839738626858085866016782437726582130617509051273883382043287108710818592863852171739898248622560961383399108077904720421228698555762909650376100988108725258109107517048591546837053484621386582775517807200326461610969849865749526052450476507781111673294572428606820088869917382527968336275653234195838290060831833574452227699093810478490567288248097790159255123904049843398000648368810013312930018133175693181200934505891945609389961574400462033114674576990222828218753739876039151561467867945118064421361234879938554105693197569981489419761984214338312659385070834520749885903170424559774810723517665480676217127561942732575458895691472032870599205878147332501692031276983422283693526933541230438764823670657908357139335122695951080220200046892899275327552231063177535216853509318859612945088474644343820173442166404017758084509451388817163662562112742869558160324515062538781710052656118526067968382057222017593592312890580924828422142259563348583903874643546245916548741688250351901260860130104204601590357001156576783043815424403236869776294006965702376670558231577211016181068950342054726753828609493940012486479483822900087439540482161758584024910126558657176816463233996775418138744290900314140758927740930625567714679054603100843139837695647109250893505431485166885558475965113767677175315654397086778186932541662616293449461922328613307077890785036941641207200774102929496201742873548151739609989240798792090258329191057987320864687951560146529341193245054010112957948090325274205434521656248942422656569393756517733029651222326217457171971035140767076534462842040076197208217518419395820336302618994378011290721115929720422997429737098870101842349696061464410688936783913962756773933516567633126716529424009165309072272871650965456711597752630086195005053161617922432532008618301500163696637080142402072873140853758567298794245235686419381493702449003804479513308798669585842285219039390750315567283880181257796284180376731794303896764466361570832979460099388939131401954265062616547217222933664991958292389970232881892549123141634080693876345503050169368578769721286776686831725280044738753341886122323384091211199053114506747293803397666274636277402640977547347890114970376353095232085653674365911791865850686446947773680703554865604472150056360262246793169057582950014674727329188794945138146097227367941528715593597784325110232669438717141098351034807318702150596631785197229768208343597161639362324737892078267937851602924321309624242059574420831074183340381104313119132540298868005559041171891425507902482162367601154470242635252079275024755026717377566767989064585226327901217744006924584579367891256026500136329982738459571907892133743921496687525615432893019149980962846615792424030279992074338602149169114221872356234868918068357059932849822999836977457815523979247133836581966342547118147413939359308501598857913319474528476366500726238573657240842702761392347978843669135535003310149515566352427404935666654363564868405535632429150046681031430970292183363264512706264025434909186318435367969614777370363461486925364920622559666020689586835592957055460701206337408138541696990392103936441562587291571914603961677304550562876934598849429599431626756754464569575369274830682030619236396779916761729798405648531009910124018683927467255386519136596355933636048016293525939829239579495531861322109541407025170429838774626255948941676604041462090758059193329771980660162314753153419456927328023619209222773293532711777731516350603778223599704948287415506510959566562392354643882758306834759176631018315378108139966446507125562712714027231823391449349584951407589956468081374874508487518246274042760446612004833512668050453751374894916074534863203229895939498989928950612481899711822437853222402353056442245815225257731348575053573795169565219210900206416428584645087136547333841544950566699111947249055666419732210955771349447541052707646412592789193376811327286833941560581834741299672939676680756961218382490947973050882279348446107488613411514994599858395478207312229642724150538627654917744087515648010397778485100510891139346126425617178166875032331040044742708039484026918178208766432180445654329167018128586168927469530021584417948339192152360790838919838119133287566763101521584958151713263565279953060151064917059401091796507048100117043579661229890270154326136947865737756653094797567076175385964718340302321177731372680027449759527150382641132445299616445437056393682643533245967492703594186078662036447631665731206067542780083286936778796313189216884127523680999954159648169292690019241570667322676120930214503891482585261134937572808996664110088191018533881603741349163088144215142463344185039920183839025400845908309418051611196006389595842797590852597035380717914851957057325818154660900304314190417685270767152793166207801112180040628547216526603582803218607167309253217171063614199571637345762337068197563414512188078879123859672543407722091906803108136529408512816100957987831266638857578868596646245613412473676992431027493049727181439957177983779585266044421379492999446289941823099044262959195691889391646231005319185808452571702691877321820579710463258429797130802586369161395904118506189589397079227295365544233847433159805646409811514563115111886110223449678329234704700187328633382057504855248644333362611180946025713665078901247328453620033148716218191174562155308252279871114010839934376693519637082543041002787348349578904765534993640541369053162908767517849452292161294721847245509516465745772467762443069439557179005305213138382923408772533632001168242536230008233223845498816722319024514502446549683581712169023775859057099106972747216247177743362069040698177147920786508414216330194875635869474736359033661275503883890662275175137689423817817406209649895570444655009800163528519984844331574353059088670592760557676831866921322825645591441646470504009691977936290195373345790206241180452320958212229771076453725636193060636386194395905206097353961521949113816717232358531851892527550194739825943693638373017869684893025017306057417868602979485901447276793788721038843235316933782889024330990195039566657192793659515539549195069728261394041415518562740014568240042138614644031621138583127580264024387263517077209741272464692745364502688906624554792630781327131398432439526470288296227076922336895181747250756891997613542376495584976174044527328164874339949441263827987039032755962438691256474718853833882688878050043925226267607549291256670264547493827514389308541691147677490238941067326238491190881924325448464831835568692907747420216255209344004298997691901747224922364240688849071848407862460014718705779094237691490283896689272047252871571588824443244606026922887570163746974107170985176438902753592997584453546080810927300103639685909679089654994056384192491624314779479248187163818049540966856599256246155475045384232295036695099151789967283752807861706833534291407904237769929498003350966520765859938800561412353137782060012891117638612245165784711295066096375301586516454004319304632968715696660186020933119687289348682908924922742081831051917664878142313046314608863582945526805852507667225868977612334539755040243881029652124720363473147655261063287179330957755639436817896394584814636187145472431210480197573469142257132075178640508630536744267927280611527206506232378761957465154589908156051104600383751550716629571503332607234295108733923278881258683301783819676726375875147304966352717369089371349134995219185568689680034264905765125582676113111656001540035068889772268514665950562572728732178610654172617439079933974721441524110216481341728818676980897326438075244191589210389600774098686112123356590235526179384119048638048429595028568665996702665797962573428456671235508071744928900816142960597372850771432680683997652373608615916620801902209672235710218892305000760429750082126414748862272061266765873140798992469918034752742821734813271852820252250575147556153712065882149410460913730329199707844616292330216440476964616880360968289255567308968344595787869582668131715662920108285803047245024078967205873453780752383921246267732395021013328473893113200832693974122499483845876241460216658240981907926658269547656288790466474007227688091085678283178702687028876137716438497254533318158650603173205584201873510871545073937036728425816684854069409470323172925774525655085696502301929799001848247175080324461142838609290534554543357586273281418482211891152349088567679484383361645197988367236187316897381904986712571424362157347063240540306476279523296725331040463201039271270066524215207906317549143509935143621322634984139244954634003540299587423526040302997689777694965417160440592509783957759369941632806373171106425801690140792776014180004002821447870890451866616904827753509873058437124211129485376350048991955900833296395813494967762733712447645451637719663681806018709878577501669983581173081190970348671804627698136267851253270428995243613345694370849567607489054117796204222831067997167288618840487392520953885909712665084756922784321086455011370140041908979300046639588797108054883257871423660553452797639912634690746085382181575723885545574591638844158655905781394133644579561361725097527947344839495828950679288159444029225446635807462298590672284718695280854742294155062521653691024400429723557272711097975769741955311380128775181038259877536609767595632382466922171733214508718434558430102329437898404327863361141619338496793418692792176158437867932905887277124951493262968889638478495649461677921886708474330478300126147045906065170216130628413826233703956836658724962935443288132787899243386155164831066075349222126867855050063818887219054629506316606863171112305341955422291282859153152269103448981593241084846694781135632624840901964263404239032441150837426902329911862468049954790514739586742610632897053192222863236815783401326321967940331795766141271785705560263261471720399778427717814505598054301008200632187473223561700839429872217388084309313292201747005362831568079511215666677582197161210256979821851078046349745358566243288197497598612857256336656402037428796903946787394826712585492965691705740405673843683901094964003542624916896183475233871782552471700055104377981867407351547171186502656289395889314246345160674564636663326942884095895564640298106989550304822891941860936049368220467689565239227149323893849919413072556363075792127714812585128067658390340957239291754580413567298738485081931101344101076067547394598364566627630504499902226404520326926798763936472906143269948348955423759674993983090044139438839085717251474041296938855288654695987109740410229718338095297724522982627152131808475295569430932459333849293408518377091322275312839391908684440789401073400963233712095640731516551256210539806370403975385745877291350929535817867231244307851144838484301459547541454129127958719740002191002227329858403951462766426080738526028361435775037457386817123288993354417822178156415954256932629695299141328230707131290923290813893924953196010145863660175077628355727880888245183245159413708196884664537486634395606354450978808664947131749324475940001175176760315187613291860602910485331705503722671830207999610815545717256155214996577879363720181527847749323782127939072223824145631716290205848562933646839609373089145207194196262601424248485782606693757820387147031008530713901943820949991579260372188172645766044626432507017788925526174856036296000539992614819054620560175031993162343934654468642107884623222218717651095827162257194479672714704206447282897951733404182181646733647951461796327905350322812948264617938052778024441600201793276271084180458023684744684534581208471103837697273741199367846340761204155945825202611941630109665394323253076519324317681859023870212775621729809525641261742447097098169000977987489097966687530894826210589686096275733372558484159713055831341745133505406032251359539808716037368254220456172452678615135089138408500223011977005823843514803994266288679077961597906276590940271741123325266758816427351894813598064834968674392166691238042923576652801465116809595826304342769453617869806496722718411128353211041549296844424064598333624491880392687498173373532296696982530022138986169983118901381079597860443999813334930696746181318811132113773139257175684438399894218932482255041450456466229160496996201909344772026413232682493772534245961008061176962297326814312525180012341192232421649166477389272988618652747164681268403259674438170646976007527855096951605188968719506698635858651677843911510816959321123223815104858232327664581847861122157268506801821634450191086457488584581886328755530947590566870491875095869451426844674124472583472429990936456864792736701865972017255782534854206677221715657798775295343871878965912598471659070169922276122874898831938409683164536287718902743431189011408752829386088957247399553685255456157881718785097784203720796946988376549728276360788717727003439261667456568413665716689511438420450863989487547307578250555297445050384985526710623196989455176371298702144655660223973057750880715889881645918687891212231674052715363404740376701484928397730973666801837274220157709923828741681410185165713373581812231713797249758009346081440558137983689293036740788074097140339580774214580421474863029010669376703946396988305628840061215251338364355981128021660992381100703932759339698119498560359271817026337993920800267234978951252591555208893289241172692067035164378178674478485029008060268895041207706762272989626372313995682764573077522535903326543454110488160206843635756512667721318452650502420738026084019040690968941817658206523554172735174804391841906852374054494995010443988063450103769268167831229182738761385162060979549720028748883955651184811099304217204869894333398247546914269059205788556674356301668272570972102876537012228315552171372179029623948261927577407466322459296800595323869881439458032914932406839005868271616362118186579454266009142387327364743822838805585817639090523554186669819550192658546062601842614386256210131796849990779743332682808409815129598293375015222247707296560385647231371109171334018329573111830272583130025892249474102495959061346900224242527063751818380952227346730080995798038872696260406121461968744579054917824367799292076310151822634502686305173890488775601196997260958111507561067959710497322681103418967789736648119917385032125923550940176379215773501638464316232309260011217968300915102585981123264498259399575426567427623245101125123330154158757163737491727012095015245841271014522157084251402320632446814149553929749118214715043898106470967443903047589308440541001389237207857327002151024625874880708340849549614888490934057871651462309599547617773604530558740015061075292361038798801779965257924298393656814764714601743802453483442238513938973792705726219028760011645077376470199560500132813129789809458171621039954537340808327191978730719747088043691119168466007902726514213872724066202708961463868157872130630310141102336945411601260844644506602178973983107989035331356336683367352879268188635405053089305035674132878901855057058796323964983892310613991041407284306389737205919756517820570102205312171223964574046826242590577350318521779479376352605660103133559159244591129986012114751389928423136889341185390950269017415372184085442052355816418938623317584306935350773136235440359415068491426863368330109482089163045319921310305343320441095002004236524220050477995700800680193571488008439721538794631259088496069943920270267338090626996753755156440683954637414303749206917029754509979135631103677095819492140609597904518424602339176287169057105346893025372223479250878621715285801714478792985992307923257177046623587373414995816316593433475637538384462883068463942654689155671895502465095038189757991377656614379472508759775286276189780457392263876052894773982865581417949349484163503452217997077931847535959914159869556910599288908484175266186143988144282397352439090830563986962682925691969709362896323980424129276370935393184906020434896701572022028301084893655052227606577011731441669208845399464881716416836940697393009141114725233397910304811604608976304145216587057940692097707524560801993779189203719685899480259027378399260342566332221662531142636969537518871005321261380206819594988161541298672915797289703113905730564603244810717244071707101922515903851184599786898382692182787923638843169314129868426172801793822509333407184664345334487022655517506636011913978868652536353265061620228255509390270752272409391036665851543070497623583637069789017452842924764400074355617894093316073460487295511278488849643350730929402323609024166888233958405559551180221136773982337116784379775810575803397715249239299165150155529346304101099083613708718278937720617851229487933152899319350506758819833404205073242622482556563753867989908935459917600028250682443041214555383462783982212369848171023639369447305242910039064906124630343788348484461653241843438395590090915583416379197568137052144797898950455119720536489250225670124147045588131495821073118933939722279961214390284384451167723955445445853931896924188535280827498141985040996960238453349757220977925503391635802486238154217314919691189039954631901823655630473800090218807700307008664619169736324592265357590837375780046759711409089277536576106108649527783590562552617363647565308071249890348504171277845611330500309238664063135122750972497514364263745751987713301559738200856567581630854355296101693976454005204630977685520385888906596967289805307353247470274911231919718844991387087923599878262757150953635910263255862083248331106291777568051391636068864018017122800122695043203312374075211398819395586942069466848332896449066901042475950037727633178367874857147800355617748619859463566082626567352634698320461753250737481034249224057339923315249097452002527861261468352745838503060026168831885701212190119471457834148489157676085779895943349877185376630253670915380552636100163748847003537832745108871274764421982879721396943326708070524531395207884754565010414613740350578386551163397858506358770001212328158583550421090033465058206972437752201670750353088881946342016582790313205528283248013465774305848349056237451547164894030785116984601329493840497574899003798316007426642174396190150801412307943081737515146839066191183313398437951713292776367027786138349114093959222127210372926689044275374046703661150596472357314771833173968384398755837461767841122988042897048680890130464736681353987209892630971540226604914864518214592822520720467963145431336423021312117401568513845549529579285863754448754398564383996801849582771421324146319480066853618732450538339366731224965384792884572981509181019047183084563816518444824682865406665900661584809357160279610190181880200908010759107530269575199350821248422879117325765172936935840200478127321028460633017153235959044165196730683783560959314970033851585935836260501342781610664938536971240321741941624999861036430867767129088748896899766957956065129161955279737809440177422819090289232968350757485661294630919079702491712140976802291257138521865333831483725359130843846289605175637595936920357654809233817658825037605462475802782486936369154275675526980447040583491438928092157594695689649427534804993555400800827275266504459999009300125049688870328704636502017295744401878629902552463165345534120623534485385292709116023707964626586105422544123965512821270380387029135857985717284925908828298660479016530572138589291212361591247450242611699164854064944983530225398123733858415929657038484831867515041561977399597425392071331208430033860109788945760763516037858300003537454054226911578702897696506134415506105542531260197593663311343748412751749087128370499828484119030879137728845998951546620137030083397420185571542765782318671945976930616440101495724884933175213241963471057353327785678201792733336228907905396610895527943737023605411734462394298151231635547711407459042466205581105420570316113507929095466477699403552350169015074648154763680404451906142973909809700920038477368796764699571473485855519719043152014825462742507240156727023400097103607365159300369865512501690994981153774847071689424243741139500611106782642141357387824069536383588131168530836207495387869896636363230323784162749827591399703974506316933626569500320268382217524654880342272108090287635931284302712531723441602787774503917505553293077947834414827079675485231709171421003023484450207702167384155161236197529645402958970349813989786762808310000336130545129266741728505709025824592979017137833514348944427893239473025688368226717393074352327710199143341026962849224034288851918014465306086340911935566812029089400364747756683532404565764061134749373484064705709567599507510697806531903552343358245335906394801532602471191977485267646829214937945809818740290113985917833114874486478825921256613603519546300134217487119029666710146392199676960078468778630047899746552942811008148438312980692942676354361563701940250889657204184275167558581054572387903839204947967465738200271446155270809480422523905114742990025596353249336616690632325478653345922725488671975526633902834109273991499923653525734438531035726562052888334270036661928157622968085278086400763800785376290671987403815647113227237196792555670125882861551471772317912930772552171807382175242389081433759835961222173991048686934446225323285947043845097398490214744916314842921883117789907715059381916297832737206972919721639993848726135282604511639016786874065574455264539169735476333946795445621419615567673299062665779998733474832979395613691011504563444740010958943100140882280043821714774062933402111309533871901243978691710804398789241816938856764493843863155720254709013591884213137418326141014990480769744212918932132727468990908581521332845732611609895212800561265891920091292868694423834387616146121032102918175651572251617573376754816776440696309819540607172442777285297686213864576936622369802348865609836311371422212451869979974174105378386772841178880353828524630654303528822091589315629743413412931034936382396297886084433308467119355796598739143984934079633939469262692853416778023303020799818423128843653364687791515957250103188563467076230042132224420977041092106441659177898537633754620707770639848436532565178507797527394448855312435062695549346277044206800201069243186269769369867803098680880809195571187946184553336677986458077487633220772209982269876941113758620118083541272986451055772893573717679548530814780251881372024909219294251313819957324593250160546656492952333077422898495901929564556996020373086071831904339034954556936826148092930255358974831759527481636936480011247784418198203748785389474522921006577662769030782097201487986425426195981773601640880764388954027902359395021253847788932536179715978739956762542990320738602847619890568299140590295119817265583235383228764897337952015821023421125257141331609143267995286855225779349374766039171861472165130737750086711346626988662931231843122792736201128191006326361140507646827582011907804223439528283481448137547311187010552139596669192742006928960354132608776240331203981337766432961762205779781860090035704466282210307173900187932885419385896236478117865431474262997509884480756196210576572695329020833630828623911228715241873115651996280916970795024323801799942409240372832974003948296639955363866970972094154700058928038093360658843243250141389733926387568587448412505197066046264176422582899295214803160041851347365093995296057980087460177976379874239067652615326872228342115117464627730831128444678807141764305340240503157946626431538654401772890112267519750798592448996223419054419849841349266122033323219670834072080899275670886449306954462824154508216395617871988759557242698055721035895381798341183717564637297678802951322692149965957628466372453046330941800739699807426803073762150650299663398591156437470024600128653315020493070383693605177069156099763645652679122497290392445021215516303822635452794653393053780011397507564529579075771676291972175676937435737727759218681689428919463902914247577852000665504069680225281583314567927535430225307900665522060773841312303451605586840336573720743226286055555912006032632568862535479998110589848739478364231280143377565951029281105765588163819933275384031472118234446822106379696408614731881683860559308963393479849219237997772105456437406333888120676353236829851880861167892983709401792026433040418629642915777775871733870510407932684349118203593501211828823962193918914873290150924765017170570171868630036592101531595508439097563464905921690048438401552682410587037834541160545153613081528346701365945297727629637098291594358714124791566358740418514815368588954188250302693718268195946229702122777758496491058686259614302043892657197953790008657456716247531432149631307818642539244715394160468200583051032430336519854508053980566565948097681892238933887411320429981830989958558507937984013237746513704896971408482160024892835222089565513332899897845123945705418872525718852217994735349583986570413195156443663064187462701370341249558942839383722686588485808820334445027685698143380707135363676844985777937427210885383755507388624746494615593673358999648294666441802934754847193271869182241073475814788720615047056170488467