From charlesreid1




Five million digits of \sqrt{2} (via Gutenberg): https://www.gutenberg.org/files/129/129.txt

\sqrt{2} to 100,000 digits (via Mathematica):

1.41421356237309504880168872420969807856967187537694807317667973799073247846210703885038753432764157273501384623091229702492483605585073721264412149709993583141322266592750559275579995050115278206057147010955997160597027453459686201472851741864088919860955232923048430871432145083976260362799525140798968725339654633180882964062061525835239505474575028775996172983557522033753185701135437460340849884716038689997069900481503054402779031645424782306849293691862158057846311159666871301301561856898723723528850926486124949771542183342042856860601468247207714358548741556570696776537202264854470158588016207584749226572260020855844665214583988939443709265918003113882464681570826301005948587040031864803421948972782906410450726368813137398552561173220402450912277002269411275736272804957381089675040183698683684507257993647290607629969413804756548237289971803268024744206292691248590521810044598421505911202494413417285314781058036033710773091828693147101711116839165817268894197587165821521282295184884720896946338628915628827659526351405422676532396946175112916024087155101351504553812875600526314680171274026539694702403005174953188629256313851881634780015693691768818523786840522878376293892143006558695686859645951555016447245098368960368873231143894155766510408839142923381132060524336294853170499157717562285497414389991880217624309652065642118273167262575395947172559346372386322614827426222086711558395999265211762526989175409881593486400834570851814722318142040704265090565323333984364578657967965192672923998753666172159825788602633636178274959942194037777536814262177387991945513972312740668983299898953867288228563786977496625199665835257761989393228453447356947949629521688914854925389047558288345260965240965428893945386466257449275563819644103169798330618520193793849400571563337205480685405758679996701213722394758214263065851322174088323829472876173936474678374319600015921888073478576172522118674904249773669292073110963697216089337086611567345853348332952546758516447107578486024636008344491148185876555542864551233142199263113325179706084365597043528564100879185007603610091594656706768836055717400767569050961367194013249356052401859991050621081635977264313806054670102935699710424251057817495310572559349844511269227803449135066375687477602831628296055324224269575345290288387684464291732827708883180870253398523381227499908123718925407264753678503048215918018861671089728692292011975998807038185433325364602110822992792930728717807998880991767417741089830608003263118164279882311715436386966170299993416161487868601804550555398691311518601038637532500455818604480407502411951843056745336836136745973744239885532851793089603738989151731958741344288178421250219169518755934443873961893145499999061075870490902608835176362247497578588583680374579311573398020999866221869499225959132764236194105921003280261498745665996888740679561673918595728886424734635858868644968223860069833526427990562831656139139425576490620651860216472630333629750756978706066068564981600927187092921531323682813569889370974165044745909605374727965244770940992412387106144705439867436473384774548191008728862221495895295911878921491798339810837882781530655623158103606486758730360145022732088293513413872276841766784369052942869849083845574457940959862607424995491680285307739893829603621335398753205091998936075139064444957684569934712763645071632791547015977335486389394232572775400382602747856741725809514163071595978498180094435603793909855901682721540345815815210049366629534488271072923966023216382382666126268305025727811694510353793715688233659322978231929860646797898640920856095581426143636310046155943325504744939759339991254195323009321753044765339647066276116617535187546462096763455873861648801988484974792640450654448969100407942118169257968575637848814989864168549949163576144840470210339892153423770372333531156459443897036531667219490493518829058063074013468626416724701106534634939164071462855679801779338144240452691370666097776387848662380033923243704741153318725319060191659964553811578884138084332321053376746181217801429609283241136275254088737290512940733947943306194395693670207942951587822834932193166641113015495946983789776743444353933770995713498840789085081589236607008865810547094979046572298888089246128281601313370102908029099974564784958154561464871551639050241985790613109345878330620026220737247167668545549990499408571080992575992889323661543827195500578162513303815314657790792686850080698442847915242427544102680575632156532206188575122511306393702536292716196825125919202521605870118959673224423926742373449076464672737534796459881914980793171800242385545388603836831080077918246646275411744425001872777951816438345146346129902076334301796855438563166772351838933666704222211093914493028796381283988931173130843004212555018549850652945563776603146125590910461138476828235959247722862904264273616326458544339287726386034314980489639736332975488592568114929683612672589857383321643666348702347730261010613050729861153412994880877447311122954265275165366591173014236062652586907719821703709810464436047722673928298741525930695620638471082740821849067372330587430297092428994817392440786937528440104439904852087885191419354151290068173517030693869705900474251576552480784473621441050162008454441222559562029847259403528019067980680983003964539856859304586252606377974535599277472990648887454512424960763780108639001910580928747647207511092386059501954322816020887962151623385216128752285180252928761832570371728574067639449098254644221846543088066105802015847284067126302545937989065081685713716566859413005331970365964033766741461049563765103083661348931094780268129355733189055197052018451503996909866315251241161119259405528085649893195898345623319836834948808061715624391128663127978483719789533690152776005498055166350197855571101405552976338412750446860464766318326611651820675012047669910987219104447440326894364159594279219944235537187042995592403140917128481585438660053857135836398163094524075570093251682434416824083619792733728252154622469615332170268299509790890345948588783494396162043584224973971871139589273050921970549171769616004455808994278788803691694328945951472267229261248506961731638094108218600452861026965475763043102560271523139694821355198214097165490973199928349256740974903922971263486934145749331980417180761119639022786640759224341677624662362389131102703433045763681411283213263085822394562195980866129399962012341561763181743124200890149838485604808798646083935964923665142968125773143229145687168276219961182782695315749838026246517590541039761812876042163861345022132627277566124411336107751955577495086563606737866506231856406991228018757417854946612532759976979605977605907564891066610158384172028185304321190446577525542775437987260548817361982675816862832952607899322266836028385135122810593185910286415081570563197173151831362502435904146321223921766339826893682531505300598915470290953719326620734112349474336788469020139049784285216341442921458955828784766939464642678122190497856363552633682780518600986992489377860023987691698076566219438985443708059464333623338105874581623547560013659243524265714308346554576800237081467573252547025507476374716350678515991736937932510326827606286459146182047214863703707719269268236233347203792459646918105261391530862802914409654825638730927304265446629290458960637519187114693453619733247895727070315309309019211991999936157650035039840540674253879275279227247335667706078379113844889362613676570602636003151329520953952028548973844862561349244147086070866026763499787934208758361219471169942238484825959143045281070626015089691353030177200627170544020906695149152745977197059476954740952102878725578568800221937177435581107939308833845586482772910086295545661413067212308487402271210586863233882374138844289381554446471057556514684357029466350628938735698686883764803265195284146535173953027361201374203009867398385143219004360289826982935293994141292305803845650227072168151619410114498263013649008770483984883860906533685990545838952031856480414932721423908651649994316592079659535694307231129116292867975171566889054393220356912933245702080671944404973049439814082278296027994245410831666759214248351827238172050410392742888015562233807961475124335147310212845459448994449960007524375195701166834174474907958820995178367680232365176749723014874577427259947609621984327148352986111902728735849052179759083741974860267060537462315300393752123678677528486921958571375542696848278363178611099336801439159059748428580545161302301439790570161088986277796107506733326760486549292513997813905358822768937322049414839401355603565604421401761206051318068919899626061848318534018362378217266375804552471962661749254228528045714420485783421132280085287042054889923412785548123676153770710425446986852199112283542663499971274836607624624182073646661712839474847328047443040334410720042872712756702795675824292627194545805300266648996507956977817862194217200523716536946770419511191270462483605113028904643775114869488784961511884147191000125588383666067720841123515355881126778957155859041257626160106751315358021242733187100063582495450409957940725479890031682651237311905566829151943053708489307869197428290490386037231160992834243171222509945471501928666487871079519951800546338838443154817246354802445180308452734310006213710346257330600123497374435581809656784646415339051465691932456235314057791936989884236471835253758052577133112007971040683154926654020260468068183914378272147690632424695171286367384431398333711761594186999346626234537345235679401241680922911636095637216745283917099091466485073920515160560473787106154702169960746569309794426121469256159342564940191229895147325447151812632583688972822628332952403597007278633646045947071241747294687757059581573499628480995678392554742404489918870710696752425077452012293608105741426532347240641621410333533405511045212617503590284037454591864504727624342071770929793540102140964645028368341804075860810014072161924771798098596811154044644372856895928683197779778693464159846974513391774153790487788083002205833504674655532302858732583515708599649068672875967295038725475708791695547366917087012413339221484668517437066615488195293322727374360410825425966030398693265422350523691085951263008318467555034597583955058403567015588797773644380481821387070034402361804120021148372794227407873789331627081013626498289629272562445805397134142214511099995445821429237838810264839482339514187674689678318628681788272555825731939518155316951645014943572631060456949296709862520433938520782207622191003446926966334259085305816044978025776325448937080062677873179548529856683948694673356963001402931314190257807758169458152725293434225905197918316621644487517816967752767709130431573425640549229381873951108441668309249111597857733273638841418507379363002639218068001949823966647123131719025237031990587719774100071324075192041812214132425327294918600042008415485115474115730598721962129885416637208775224837694859747672933018683905225001486903826108482481981675931077727026488262090723847752905876504032667275848252185162310745449887588274656780949712308766144264148241579035703933122565189333562818361854057467063806183984894662842457365645642139072163052955293592848775552427545595133827715001784016553054854422850119883655756801593464505589944248496274127118698831580476918141567961853216571696452225945947124693199571164198618847977891211426811643837723848363186731860756477853699930387054663229698075675846821230280772610069691740782024794988210954733430112654544217019585237588078534800373724711876111000877190355388157319225133384249477450311881194745595365336609206419293440035078564223432923249297270847248235576717405895001268763600812452112448756434280946593133618564324148557807919311512650972958916052993030771056352454514834572092245519848905889042198065439733537575998248580375463927365376419674806269683827129200143495667485224724145486360362115847232317369980617199364211363145807119883968129570561158812462058857966505622150748208974776417708378705292420288029004400248068681254220757905942434704644895754402387369360474013086036075991743876156352967760580183349308796466270711608050737610718002215525191993796200709161383227280177313320190059780482079607580324994622385385803573478018713802840398120046812370790924572728576545104897170310237054867879336437815780740076774742152803118498155769816561516261157202045402644129931611707733125384612893676379183853705009420630609103254025847682220367682492794734000617751295263072656378530973686420007766665889932845661224650730022095628772726222780803954834038109628057649289746518436319498402612997618900467819092737096478278724357752206684654000246833074608783587655890530569425749909890392204630047145720590537120913142758865376931480400008717913845690993629987847885421778154073505170625320509514478220667252608620410799622270348081801380066100719226814029197683548842439916280980361859771935889226548587281632769054286174663230813628776499007377599324417521476776046936962233215175926450556452563840546700404521580075454379681038435585147943092296352197852283295745457271564793185041889607012805949229592183594937074580390321410436601637650955489445419026339119607411006694977802469540936562812753849632360106258465366705076517702969513039685870236791287541358806440263423823568060764074517611908833371209141576280565223790127356419353456526762962440266022824542619603422835240020503295053190853201496804513564334103431329223589697283108739569438131809431666913390526489148332879882762852563045120637614900045218642717111508976282752867146636117389828587425317216596247643323840034900496298789487001051884494118660439739107493757349528934770739638665933255438589993537994143840662422102268328511662511368344732896613210526750893794834463493035278532130127821152685942984375651745109303992495866460942386847002153550180378000187011113151937875401091495889080764733455002640980568321438116007514618278844904681248146893097430000109019843208666309225138112111599481279636783908122243781910187779940340765274060382341505327174162786748880857541012142866746631036108800181884354018236865322168775041197807652581153841736562183567501303445659593659097469007765630951563662834863997975493756384052967232835634030315916549588611222995999686827014284072391462300161735440831436438045892205541101795351355885271347984937876133791075655995414528917770157581348757680186242922229776662115422497113341739603196763909350512320947616642753474388333888699979916463836750324186324862841878469960963808275129963381739374220953475861632216305202703517037490298568525595814192954995176552582123473108197663301341750815123677523151607320881829564072634764505887576136189361870128904026792264704949678723740258130083476397564463263354967528574953701512710069446442062461753644289498604920521823213384326275335198829492086490709605921654573769095951389378997662628770868323505964098050188569819974056600544153213840734978154080943540759681561338964320840415315102432432476506355824097853468115105632389804013803814849735287444290693934437338180109010178859205640690769726390933911161368466669931806838234674038922367229255166024468597460763582903728529497158369063729095033685951182387240386566803844098591359996588300622799752913684945617051993291599492324340413727253807636840295187369817973536657095994220475105964407590707800203936232471823804137799283739673588096389547393847128950623044844732470443823390251314913859447521279271461067225268355552093101409825032410413568118889344170634801818879038524372843450413995267508390749293155948992799740206016686101060573836203436961399237050205913691224788144821970045564629606180152957267746654025224032152010626805924692941841465169269429703164474892255335681947010558607539503125748779271822019806805065513471892626509987040387239361526280911715016398391838208037107664447231125594297930841574857549712849567707689130531391519283160749372260464837412112410527404580769077499032167615319965660974300890284787922098945551403495667763293684189129282288893791392565790306170421951746426671762860073765482548949082367049041789827946948133710054375735229262593956809537167977177738428166119599319878150374402232529401665135964883989187712666676445928280724774198051183403577263019415056222709266888151008740810216304551119368970339875899163436766552459690022966390618234599224437161568188716785019552192690477008887628817012435907238421885909432302524008728363411346002474635054076317430285610328831446395259955777141624975159928860344101047533467745304372786885761196226858948138978843512251669067618791323446207724263898911175193575536755089771736080779854992933748575879407969489011853826051113623591734039139860900187224540287265129235072513463360399477972112534407969641965843292485838961537078625446240527341837296165871280996215675141677888852182017826857947508860561917614334505307242257944215044011899380328211769427535155005035938402619271248407353448057641513492090664332608718869318783911372491354290631432773141475652344276989264107291929647783152267653096337719078870212101736288928013320665538468875227098214169947453467839730618843380636885678875093483712812994594714167402106479446230475095969112132841857374507688021742000919037861149289993213698282550504394125234293878915292944880672904533715586858939119405867992679680197519294635313212046058273013652463549197477178431255147195610894481716873695950097551490905804237705507658316604552631788191592885801514109903351599927649260209167537965856540717214902727720720795330464094926792969801456474075861684175182703554191523285901319918975644427209195806647378539654749435033660984556942205412322091494769852266066869313494128460524360062619192009545595992992035766358447252088884387701098485096145536625056482223310827748771249645923940344103848804565572091537208369237042203903081669215344336555529659147737595207945959705914921302438333795709374716303640945224011982545503754397260803763665873652598952691167996010278358881115715841157447947403528689000948241339184513780599922518984735941165421900943669850291800726152708954832476910790547502395766594197888184410520182887164116705282644694744647098868806589441700901457017395923798880631201342950834144109670046006970663011398838065441035959036385428890533959794761355553930923535001022746402573996549260318712100543951693151027362514695808436694837491133853153237804262479496177692956225061325782666165875281706154846881784460491851585002235785076884446778740147504422625751017364861832633732533541921309631053221325624194614093027893358253117355483121861881858082744966425868045457888041604096100038498733107556338903472441880147049601445215464463527687453004634293704657874612304114285841393154706964455988627023413553369614688941305795243448285788138429131334004443882694562774572044648927503718896002502148102432266232474466759222209575796803987583301188094123485941055397931150166149824109477340455944773621407298190673422712213298282018935518148071161293604753935451916448851919768198943246882665846999081034874330571542521148982924940641352048699331708524365460290800650242152985981192512096283326807672528014292426381066209220067162423905353942877575007913587003768065040693290462367019980646423816627807455845427972813636496128156006336128191171807774985721284909654045638060252797929001411671808882167276232695731445299537909359996357201956910538231833232287960366154934356195563577788720380514071470286274866657727284963806068209087433747557789312207166183290997968077406958305455058169463910538025471298095019164059177292147061205379737583188169040345737308922870487642988327634310615656041423531021112607717793087331713171338340553990771487460398786341001815489430602127641451753685567812410487627891844598648875072569190707056126189065115415374343317047710735120897496645858712323260612277676488017419041705326219011292994134240685947797064845451230432700362044446030700191145041542081272865853265986259658341291931874337468142540991989190800932571522595025697576362583785420687607875336423890245352422314781169503074229968826623618943797546343148694047370546602205236585352243349189341495373185461775639085063014980593074413127214430609686812154916799933602091124634206816046423563452669922471069433807139751076567042296090608300021464567607566954478223374203012231363853654881189686762211965696106838095568110741616828887291489708929172720203166447529815564916509932964247593555309434272347352556742335888541040816256180838589675924812967581788580374314376448051022575484145519560030954484153783175981222278083626100382962191366874699060135591098790178939450950708008470197103009496348567312617653799069636653423847839475100609198023662240258379166773365981862096901237048554417883308174322415270961858397320548777471419620210209191220035419399375584896579659677748796664983373844644628849232209159662520817710945518557849193422490391126440162540353415291859606278442584979907537650351143662301268745038748418198080021735115212731055425489544564305352174412647603739881432392237995520803725631538278957675603269534153713162286842231199071736627159252166809502575991355368041140314363749285705000161825898070568736394803223614046040114806234062268309640850645651849478620873085379933150826863834559299180029565026007129052213461451425916832384997363792953241667672636608451393291270052813463426544459202882461427621775375422965611776774352683633779277270530866888712035447876784560744034518187391335816384135671836398155007571160102470230622091361802130413326178162417512244621269051375876033152978322966881927980317206140924273036239009838514870083607798140381143984920151006882296367005549739432853347069867699527940082808004088715101937674677308829209607741428949243190765995232695414808738635323778805420822372563677537066731473034968639707048980312454460881066562049301165836992428591431719573266391179404608733541704103874776765684341754165196198749248925074208937601411944240296394254176301656047295676613344991906936807335516585031503969133874834352963680541252188830321664605945537394451237521783974653503327672856949181939882599528609756988006119162568732923062305856741898538380455708093583779146285862468723110259940158767576908316771742839253030116008388460480714783616096417155945463992218291049279692292511127937956640133819911635069635393263609859564620576104087056838003026945197112486381118533789109814022405245839221604563452112217417010405679733075395846470584747549604432233426300669210577767005747717924479033884173998953956252183147543418288542292773885210317650331816851164239848424590906685640848647122275347291760027720870911199162535365232073041274034572811430767907488354350043217248710670333120392560589087638369474784286014511344822568815225052957047644114576981380385911927133563495517808414736321077680615675679427987637155964034837628444053251043346237257981152490578554545544521284596123041549621488397472003614229920556630452498964736582801894514304786079084792783197694969107312631098304856335067955213674594527406378300013912512064260192473433075238519776003450830755426710384398977950807029186984094318884522838953410474580083102559343223332683766729150922336413159676531206115874584959884815054424243284316840728675124303432065817733985334086697460446675714566752220043300633966532727116392162828433593639159705356053514613914845684624004846269352090635453668514854973445950221749129562168205343471694589030666501122399537392507691495999807311648756832231073560129088890744800411391149293646606795428267735789996017144747478225971973691022061766297479633594138205086538353669131708910097586293229823455852188097716091314156122837942301407428575172196097083924688072410643346638203788801942999689233405774399455871877216719494121739784248455511242394951082313341900954980974944116854469271268104643676297949516289492148642491961317149112991647235802300005064784461108119144491158122997646334244709961741485294451758299141571313728817449786634669798346830633772269462112024544203490573677610824932873879127068388893280129876791700811101390149982272447545942481421950364530177841993397102927809710031728004805124074551549732750486803723990135843376691273055995713282062188159921411308769558066389515796657753942444132413153710713696613817347005744827454600281851221948810940990932030836962866394565967627501248115050908950145078579531647113835352367831505194424626030330242338666077776239635323677925205430710728141790899634584769419878510492882850463300762223590013919630157719504826367359336404549112258621982298835505646112004300905203310069698444714235105314071504276373299915834406869863675333510796589211792326198842135412149528788336694865244861474835133380676661407399397211711742580770147761734131603558025260050613460509945144948081151767592226583224350669016507085869693016644078294761341009535585550255597339510110971298294141681331629091299716639397867702538955891914794032668269999184934935211456416738259128224462604746869983410026893570871698215899513144726246744351426712243483604648772445779053029254948858189768374090536327006900359358153818832807408281330220365090606491102788481971916313409029674768726794857081984998214627359025242435180332517940296132134163618601606706467265798338016929632689885200601362601273081227215748353450689438349412293543902425375752769352427853988629083949264597885249690631090163680953204113385204669630373541593393522756119762747306713230849142762130005309519323128841489554106806167406487993116288197243409967376009383603198095622927512337341953004227167526574854247482946033738650386675256558099645475522692658975888525638532921938019756925427734969256114768880864117267022134931528551422115705200589696666380520381045146922300179526074073867465956284014582927936380990043240835742657216061005892769349094678292546431043823588171215341639579428291721793624081977688198990199787331403612185796806586358368146535589557381878378792100253242080165674198325264395042110821539220173785039143516741995771521562146363590589085528556609747555285423403032646886231716632723063141132530658836132917768075432140462636888275944716143389283269025997050182301490370977991149321829700343455538624039420805778612757584941515682564220804532300793090191166153543478221179436904485012588846202869808968146546173497378315547892104262894483905068544120327206523749314053251706935758000907994179285593172810569943764394126946649345709024807222360625171335948844289048618791256901451367064592350923125630083621154956986427428229832980495185004227961552207721881695017720401523526821325623847681964679465083107575317039226085561469331910768283636565852850668677087733147996467085762627546602962716763075931898435733867096570173793228282348192161781877007047349672896631877034483312072457459021348795825604948271846147658084172114999468548036816547370557391190005978900210343774692794687907618598689709904669070286332736463214785659245622271862746178962426173081915657109537808879062101376345625534554278724985764511105147926421816023366714189801397007129729868732828221618638416311291390879371441004437877317244968298235202142975864408249177811473076083727735151530453692259569089163032902249988302729310416400649201402822532888759027931308577656237655465764994184642671036986917070591913859893308593754374657787440243404217672261245635784002966874547245072378937726048417295375311492496118629759082198546452996215917898722033017086558998137112475096330473097228065060258129363262920237217698981185421816214970366523105064921958576136340722729734644675274738523667780397422562652742887381633962791523444894750071035704323055086330738705595047097042231123762121931957539060499356674630107427684593949954659554972154920943143136002285265513308826825684467836720708693027273333265431409369597997747572516486560938890159749662047721353072312577639566282762290115366781044356426835520595903273204110194159106231322498012107514161932144210416853872091634978481756217861776222889010586714799410601577635093648454101547200356110542300187639371946237905295153912645541941109930080128246314280836603586549859438241574127661501955659647747123114552198867813448424436407385452835140964712634742696037061756106538827586793863588408536774888042172876831543791038240272416410351076958069186054906133629466874129317991655777477566485241736146967099568973162555131507152637731913171751698949783240168687148831366978115818232638582297269787802428782212129569881623368003387984335218332268076748717643140875132474623405234987918484766826829561643892879403896770647876728358810966064816253158242438591594357823452933579761860944279313330342296367732882114801251606632436229289296557052414572925819073335515902308711195702690238701955445597233943658128690311432945812501425188456939677683514955443047602636398192423011309913660738691099481891670165891853522461016552439912303415469150965061333757453644319875920733482383904361814523000416285624017898966187299324335923789127925660894941587673470555149072070761167173096507351364692653888386301993003054113015422029787348322968371736228916532953182717997734184242307350056049870631613788370054717412635796079440530174213882746668411822234323169412609401489524987526739486390489076421272116971172200137601359045581917516877971761866029349725071038827436115701410664457810510013506735069128481710324913329551472102968266572935837760077658527140673571823418609157619097907485262706196097432783974406219528137186890117867086901579001550506192236057144573970604185874399631882257735458709134627972756076891285674861037059098061132187604504874217279698531216056889493422432407822830523827134406295836917197669718427580519721871957758934908246303617621710122858719136163784785719676118392479825448889144668052905785209864478198936892907873248050171439760654883350688911619480972955239596084126262856034274377580105813234572464882966085721659274156356281496410080495425681756796476801054888943326780104864046572429169752402459857994323102027694198619454567050814044861591244610954953398503618189226747004472411992228086641553833899651784039232791963803293409065200641474047665091771159099070808820410434613483661887430912351487895600380959418679196731669321912104783420894731843488571328563614408034403738673747949939076522596300233780725620108167284377409474820443016372213195392808907236543066640092827698510338321679833094040609957523059904947123193987195990516312657257226178964656747704253871325106435309745832309708410733118981201447646457791423573248876431971125827102979875263342843355795356992256505794909230866937700279066636452203731451574965614816261858852856681064020472014243322221389808233524340002625721810492374034293352085408853318145418028777812546300193655794914844279995302944114717516708188644421670702339168878342802189667328821651580306511598816915613709131804501248126183339805745102028357925553635460118811575415954711492287084733588506894270851782401173859755863039336633293014366889974210231734579665851571155959196953387040752079737333062880852684312491743172793036169831960497609056301778595973198417714763217593149254047139818123440834186906073310730687022813300545166813707999087989089631954620234399318724799564371232576741891663164152030527819406957404808943774720854519969574625353508824045618525595710802174359712670506940254642115327391404348174935823444602884919035297170343618627149658223377178104219893533510636631651174450165638165192404961562515079086112358169929161323949347190593173477704013684662805098068337537018772151705178891035482213674474450714798543258926539717915418220067465152085396986985573578849793779704460076586525511696342451570428293455201469995564861889644031352409588159147472030021413846836441966207681772331031791788705288459819325187110599135035253017984877228557932864874751011939540515033761527901049108075980422869140039331902826334954729532342060192780949379984756527098415910738523388418078142377053699013487160743211314885094546739362748797656294224381737690756304188919928601138564573088018861331632924097497100070846351948207918454076634335102757004011619401162271610390657266740567225600955942894373186473824705013043165666613045146460593711233555171795797372241171206870206353521915202652784902740751102626534304331575443688107061283781284473250105215351801077244527745838573078364822401880032261620323290720832980976938366868580006997351874739720295919466902345064367557810238499296972745534141830609344989931215777224190602680062357067426924977222612074378905847611106025766615874558687562258255003573408992374904208809926818262714850464031029904386704976130477828131729837543475846856228551531689577746946387006403775492624370371012909543270543316033372828978225547544444422700755977937437129782536556359922897695815966168057019631466828041969376265749532036758395016725071557075650006269070761679042296560595271036056674191203935848115427988879406552755895874455272409249812677472747145230893884341800738900872433775964700981936495522545073441552275209843293401914171541498330928881006369427454728128078922940248672333610136975637284081992266376185468223651936176349764784513747375661696762885578917066708225117101094323288219401635175287938873634954626113660562653921987701504418064664471678417048410301250057784409400629877144811218753423255881987577865212892547037533552332639692560488515819977124435296855250125768005754651336547160530299192825913021561030900505994487359078573038349557135093066315318051793115896186776254708775471159088137303634557206185771512410515027356438955637272766099001214637493783656998436972420341718754180098664821318361296867251676149629666456466934877854923677598627201576284169225106245655339437491741311858092268571381558216589445002027063758243121156845629670955552715290985653123336725624033644197964506373652252082364270848450282230747408499307537629218713608335159519392021918619267119370135812521248482279195221615143971908737050583001259435479142505038564289185424361531671305347584897993951034668713876226236237253854867755690017467543782794662973938677387494564004319620658169599708320707766503212085563537415757588255831292978377182151231978599104420863396292730764608859399303287343066103077898923453453319629724468731550285874754010770411955161031708757116292144663557254973801299238863770568941557612546709782437991333337796487373601216121390294150762944197031122000414408965636085316615568522952307329161301841522081127121122773414497997042267511455668951028081280058263499734188941797236366054390777750164790754951428012581764696236411703360986556047596124792553862499571428229295567969274626088473246103632207502366947125556655286937197522969410778216277621457198546752878191451920308116454291883689273887261902377579558772849117835506418177541350530599791690979396979245654008791081455139845839676614557724568939555315073946669653502650996685027144305126293109799807952035329964300244463428024027473684307679695331949180423445681015631199289483439846046868987274224217781494938860501475488437997093973498185291352533830145315182879608645995232698828334710023640183829172527834127373864066624580214872775642897229954406059751357700198699162847255497001607118202457896796815856465731426222487754366947651946369383650656678934306239232666827511127577243033494133565136919910555924137821447568818578178007718654878018422214932239061824135601779942199917538765116157857661515510102780246280574131623372664281261390015621266261922300371215233379407660728181199739784124878078628047298417290961791195049005452747884289147468343793953740978007239550551429239052453494913696022031391753109211739838492747334363203095091182255556159914692876112466304765633640505213604284701453642283852720675587896907904053861152812755773375471983220323309897611927640075987280463182211498731429200813670349108672656939691574253434507021357900007003169688636802730059576357523916011495500211787104258719712880922230590574345788586101248247664730385856111031779845143565941623968250661222073470443365969057149516393929072418890459715650434051148082481021570543725143364204822304461750821365566946821884539727306263903612183189036275397656013691397005284156973485491903502349045160258536437938547881763965591796380348622893871353309615508741857410746109688180666753507056018264471518974798468660391100276268038073081778547838509663624504727138789702540536429996421131423361983219979540913657600039337507986151800017564358047832903328347184356126670871095486636304322586634379345478005178001175616601449217652808401010144036977545972244376827894429254920816796776464719721725754514779707521186309842451008786013265143164898779994785494387355325437902478672802584836151040269444245515632360113936842246250985153209947647044856051262599391370918970585238623563756269285523108189632688067528949366859979318460413423768444033690184922746885608391195616969587640129043051162812782170520697245277954950409576161933359885985722771021028871493734908062495977383913766633922833018406787537916202101264711177403097708793022210894688393729548189390985443770850141835818299180830577451506477626045054199477478215846428131834997179215831920559112841404861614526936595586185546484449356468890778147816995812301121896525935168313311214234045364638821135032889698752484057160449107708677780217818261313638339939016357745675651332980295479827611198643211635874401406546299356184071002157756816429957140640129590690176843332764306323208521708535573588656929687788758964548217388433554090316620605130443493937571122796552754857412076479861502407657146581984436621911838256264852056433657469013504258098576677812405201929011471309971049219531148375087445721543653384057927742629193204580131371720204071244866318999472138962337654589983736276158735781585360331422708445979280504240069345984304263008366296853261786404572187319244669963869645458668000813450733659480301242326231213378637516204311113411623821111978306955195891402718787659264960161685788847622207476153207719395296022514020624082173284337839351423383801767839425228348388543420922407710561095891845737683852857561526673235888592094747493643178565070553129866799119317599865899209289192178161757520211365278611476782575183980292140820390001276072897685860081175231980221153512294087657429774636867093030153335404250587641971050868632652580233343623304939155120167767132665927488807247964618950634571426756900310765779240374018379365078413511362558954908126229441688728661458398376208640804105091536531227982043479819035101168812901495298127829340613355972078387183283408819601592999929912109603307337371216902464163644630487488196846456475709464168968846087140959911951997325496572640648384392257225841251191876993962293145320164109508896385206491579931148540228058155024117926155988732558487851317260514430242572606947588243648125959559154046530236298407899635380770765094855851613535414679257010574996313998691237197890426547915624261401000799482383248941778277227188274065283629139201823328157885814503351852231853887442150888866910120481584370540492046911102740017027840870270648579984497815875976930580543945874780544831924420197744449210170088418402429361131953733261888523414241740621368235718037398815518569594249736273441280874592245748768241843922281666922754159485500804945138226872679036285024165606598280510774146064050005484878487819418242321484667812231169056323028172226285757594630759353247726594206054296052398869285737478930791689883700786644673905057665380532970997787311691372019002765922618853416748691520336394858764677628849269409949528871590878062780698780290613943374760004836145349603282418989028209452071652477860092494858711088606578303490682361151831745870286620470359070007181822298961761610452055212208305042948280278664554733304141829491817964740787222740944712865590910770235793870419343965711763981889595944792196292473840238417170401560069957035654575045013293386787871351643031624364401978928150319374801217192232827989490260443521220210131876146673680470333262966195861544927633524872579684301440136622280872421887991036563096802886695557226651604825961913861407434105417679505704709553156527674047832445921514135868197441735611598345832084084344907750814255803855761152992014799823106094806549578398107791069968526534395370798191311323826931111787097508631804617471544666235349759561234403806863010798862767381382910777335923984781054809303698335134666601107313832505289766868774592093583817647165641264151772731965298912217369956970562103224503858375434527718783154676505504468577493195564724037411806028519235620471092580936470766384550283280675503302045862495677594044142652536941494997208289999458426837707179121519311960934012422901648588197496347411904774008885351124170915759259122719122000235950386050904234324610509462259337272621341393843675364692759959541052984000108841326444717476452012328273621758989214119399994694844136951436961976384273325628523252921951898917284524312385225429771089250876033978037048533448779558315593667321034718897329984538801194738813365572524297519344287007200144885967129553680412748230593461189971788069173854467145770011536961231618059509781783415339900139848145535409937740499242699519686183269926994632553715586922876186050606050706184073400056367527533488603674202347515637368970388674310820986699404969050266947923147364078711585810550603846251556323526324028254556483459933185587661229766981456741954445106906866411528361916374914229625845674025167829332444571393554384836295200022162297372847238078395312547695329697841224676476689775050377870795458509946573476610595928264847916212726514733371497478606872487465646845799651682381804748620863939970211438400362403127695315013453253186574408194072813625452573568877226023176024442054537836650472173564005771250830095413949038635157495643380517325786996478932729971949602626450335988784177035733030002343206549165036608321381933528878014044331877146112961299949597438947395635344895104947848976831296173449650652596840608924934764770899420728202701461487196980741329150056819716009787213033230936449111778193474409021527194401737023325007739702470695918513876765144754537590796466789330168775972148919030441622356457819719488221526540748384121785491795152429488278402012107708165585019139828725276567598069894515500242293174903206502627021836811658044844764508973174141367145920832617354040123670082851414247398928550675383343107753066552631684379041994424741780930260210003173294539408512627908876322943319380034226576464484102189646773557017813703606193754833525859904988387033038419637679544848367914001803816374728481680076766475494039497239686539022479402421540453890027027616967288871242785794795238403751777314660833733946302387672935517544514977212438559274663767369439396485706619298086379956710744012585026965630458930787880532438866673038140754973411719656042220287963377918210228805320967368150975189952089110659986698885263530837619302157468901153766860899679470409418062656550135286874081599388612032203011159406118244639930048265609456117035910776279625330417374812787905180836185460529855589629232000900730542585838683256857533951325910780492421176804152483135188747160476658866969164308104819396613933602389061947597559949774851087586679615407585727814193721620311188724910605586404616099981771172067288199480751576927162892964300786293460144671441856000893148084450095967231038530416150498680448061658397971688694173936467841076744044868779690120070321004282737447479621183532623243204735807888063272823158549704708272497187721474521550400859426040451091208837343252915292653247959604257313856358868322807014003026408061288006000889864191633905998244868218719096493984899233830149471017508049692688882437917867061575934464944261647257186623828761399086968715607308285652128059571847987956018311977383027055992317882344038451460235407226300704578724852698490894152609475958303377522393476787527410442043706561260937141372654988047067382493931237911865259512468358280447735099458072922393113097279398739236181263194309648189853685994482001115326184222906627472654059177362570543376108538124744220049124963273318695876009656893115453235922138887682882454580651675358447270195928193480550637295523133903311340767347423415390357795782907452389109401299267987179841169862341954818305702062658224846785242252436902013579757659662370519519983105981125330441943701707085409517797207100319032102545398400995707094250349515074685682598048814717901319543749329439976109802536823869691192118601529967651317863481295373198972409330675656095592474114352196067069055692053610448424476938424110734011427831670030200301572022925104869323506168878798896930167506027464600408037505675653580333806610745899002023337374029907018990202860576375123264721864241253740243491089281496609816780885356525393785005476196782551345193024293793365811910188694636384944501229439635938439837088121756365299676177607543192595497571819635243307304775453352849617479851545256806080597616522326735164531925032618563761795543193166051366716905602713798305486873783861495823064740570790005509561409414884664689251675490208805662484850454827892437607106961006817803370171853377940545696772608247704608133093527481037012702947732748927496762216326718588477236807441662012664791739697716694377985970068268736453861700449023575928637530357017954037549167316496013325868687445756703189657567581284781627318184495620274275347114936454257332768143243893948470417012161474391643429570351745500649233927318975318544221641712996942522802329300444258957770672299794382824230156527589990508890127097249172579517960343002790875953693637494231578813909924321045963365728618941003976895396250457930972176480083918064334168423455959606360514076408954620455389401453282022784315860485565234921811498187553842459272813096805735290744342386422067369905249986915463269359258921088697643636653953043316936964017728699374713199142194666990188196697929507352626178660980578845864764830822714119822044574875520082959672083953696519347304814528654449410282033536558242069220791146521265123795673253044064423795433482177259640104504055215295905237111283974618034888490339032619622956340584321726625909187243804374555393727954201181616429640699123613891146705084004596976964037411496707338013580469408536577792630930879792136465498503838683784114541584376991061278147564029201158469530681398698453228961016879326347833887688969395352657942739877954747078273545120948702106158575735116023680012803437055725562562813631901217968122292926911891802114172092775299692656041008233119344721976661184137369952078245959116906899019307709206994881440343614050745829682812587527827263994551386413629208087168813070686333833085454786960558360343274047129941708286451790425644335094484764574311231704817803645207702408774733749263104317507860133169367130127357010859769247216665734301044433905797742656920558478040981810840773333614002051633398112431958481781986133952380397499327698359022196970465993036455110969823613684571496814093071526318493782599811671946077491715933317369551869104016238127447878144467909959845099010539732203301223543974528528064080670988838684083517181849021119789759483672509684293928004764945465379469759838591113982339012219386689149201081535776552249856570309405851939568199717169135357984084426708654075069898883384816655954897669250067147585440335396184516443574874081153258806923240947155544422310337951137695670462327939225000770602511958001942988644211642162032931407705293954539250691810147502526231287593839906983594569908481673840939550592494060584844701837224673206591092909453663940741410533430405145027504994626443299516275319397492772369918571802432507992440455553369782334135443264134256020635343001038998160429029217553205432250465002919434168614049887858668811920703952895319344333487176824170099896285935254240241070118462176594175226813683081883176520048738575802966101797108954912757094704648975912963900725466718834214760513016782640340914712012560259883751324333584413169717176741562985947845807788511446425505916027270056819211136626966281255355834033168785554690277465857335908166154219525136617431200632937942060130654301758259823946895649464811654505539062446272540652547947952021970141878004291135785004149969035350462881418030551447044991750315019566005881121278333449674732012444803234480241539376810967448245824131204859079268141459740666734468503061027747831604165568762278524687505888251713618525648472242796042859547021047381329885796453540535760369731588936841916536903202305736836086700426790936242379678453175632120514922513764781561741694561041654124383759487399093159274475983235059737495676813110547184727935416651539557948203628967877348579762975450254418015593589085438984422260304864012431803963837888527677337019206290284545159702558120250436100600111253194442687901677263732278584160071993391318559940907431079541859326219946389317600122799053789341926503601368160546856432955036019573379990168633899752889372723421575450157046976972020515213529373629524296888274814125204811665070851369292080379563251425669087802563432342958743340388213616749678640415576749446760260528204128928796284828575875234107180559357036653043234913120907959410635700843503421942262764947836564078696980855454208174012078588288482105661402173027355227706688850078104112154804616141784997416535250493613579477662278471598612476476004722896013094150990916624672218491889743446712159743722332549929604977072630213917306544172980279598034908408396868915861769399585803474070986055285342540375073509629284560370586068684049519423181697170761556710458451724136192220264305375402844311919382804833653192149332092207254728250658040425210169673596265049665107341958674568879671748841821393261711657936293133703877565215890879245276235873420242542314015244933460316227830824270117378514539904213333472250867701672435729912265280393872571240323092222953796829646421621278521537960113662730309407884495890577035665277929380636468213611776929495190220013467391980977902730034828611981348454637791277238928661419785203027165836389215389038536649487612377064570323025580286192958672350328262768889772610126574774949448082657117472397475662805255185898256722982592832223138735884591571060658569485505883587443216904645488860334133481310661184882500007016064051337552318895374650460947992073000822639356409310442795749066378011964539607942660062697334292524617643860044072176695086496926839100108842089652109746735063468596226558328391252354564527298776620076222037148773253707040015552882597010227528015969434089962506795372354775399969591011236975856917720296567361061297580805077388748033783816190446450067483056138038527821360347455960118101278852795558487420995709975323379984269969548920901741966169418249869304840001017447672765465133396574306421983653365996280865162968603500158976475645108776207268296373886702070285153964190924016142823655162402965065357258766519246471153581087129553933985406994103300233063457985531065523689661132559231345964832911856767230398765889768774970184798997605121881323463261653302638123863659777967403321819665054096123706329371639379709827309858071023257201277746635008975997510488060238352765077379230929441780533332272779657743119858401225668241880219208962831996393003603841114671336969769288393448491260264348906565622586605775430508729099591421132342474157452172109972648980736889017013247188835121208829639637061214779266123005505171029845566879298638206301609897310400633767083908051254503690149380437910824850828159443601358474584092962558715184121763441019732004455371912921548882716030331710070588809686007774174004553344800079076113347208196923527364071323852745870981967264759751223692543944247759889029209622400036895928342730168082948108228310198597028237639080020869120335958897180264020847192430169354733036541461896240031708113739223085601673505626292414646289338620503305522009795389593835363180979559977086883635701268703145319801812062545164100651181216908335215067949416451730403959572046800267295058902551514186546611384065682137273800928442672589277614758214321590838381083256882000277715553489437476713022514195060103892138963956690293131488923991426858415999174282668273054039774514283189526462293667144844957386402914676122977500181046172795906506575651332763810166190478175866445665769521486501876856102642541973112641005453293006839767470731333635918442913142298941080344353606564566358294048504873317098232401727114474897277035956819063202911821042326165059556578213332354665448288435906176660579058861424881334635776505904146689288577644032917704246171539194379785625158079514847796694748214023307467846413978466283542503862354863099264348041029444567352969876046090638178096530698269038673444088353801671993936892077940468575183815123654472868401670402707588454737256195324341344852609903557102065058679085191379715862144953984984023500411236353680783813027506918154617357382476247576083210096236368558697629778700953455658713973986324463091329420427369624253502348789753435519328147856583612648324980921965225169482266598311159835022916913191685007672722037136422740796179978810371204828596003143326843141684469612583652137034996170294706733835294921938432556320778596501459321759304992315735811171620299018101160802912597365326997489935781178909264539376951069608356369646669086321332613694188029544427259570367584278033496344015741367670648152091474233781810133042094774796030312819142454924889317060734351233415754158239918619150094876812706936640769325684870352565896261948492715566716890393657982260170006518618441565938121779857173558044091560759868291572597522272053934409821018177891228430685922829490695896533697966369335096750935664168100530102180589918442830845441775161474680414289615445439523290901058000930943652599108011971400235183945133961213496413819468889800197612007144232849745519159713521367172590797431007992567778626931058277050079273280572191302642586276254382264472563983175796721606087377227070002113836344704268362757808649138359144027514804345928981220345479733853017451803647294834841808934089097544923062241839621256870781528488715595199294916557704282521929636283500562332956753409843377598204305517274714394656336167875274074287627504317454544570204024012529761644366497718933118235744385865831153148995058080295020676443535944851168127914081399665787322988493182139992382890184533729456524103484414345564078271314625594759480248493583979242423416481817016210856295108568608628544882980646611834193658864576321099041687120290693249666348204159916898664379808484400314134232217218165884726013243567125585245105816930728465691773142913053124771894403969498963699744778976486092330722664517045625371818612730358405954516366489561043733007377127227920015656799537803124720597429713141298125941677030852718100574543041239558754640659603269119460979515134488280808473137345444511229873930906588532044589614893290579304521581752239908895287938775531881069965879932043397053489989869820876737494326583649972154485526774996576967793532827469565131577354206650829818068858193511512723382709369159630926262198460681179899510377722653834018907111119888673763980544691467492418530193786289127643581995472340524531221150155871420114113749721719260596332754772191184368559339953219936921220682190527168220951321941045539210059067431485714231445963031717100059242640048200753982866897541177347310859313933150183799849226415854695146669415370054335937964611436820553121266511627276921023873086368726205550567292941753137120347796255678450490209402576756305842971246799943044623059101739941920495019434265782013858540638883195784341636918812224338923835114374328834628835959074605770937816266119973425385155169768459850284603559248477839181798691290254464169906854289883693196118206443350573687070242811070216681726093205224353302670753305692033321446517706388872539737350027158323290205436417615578790858061118085839758480348581087965949020284403326988507888504106046722309171254776339771368572306124349389856991502567226050841297236999700483925060656204091896952637869678798039201415048287379058876256578055000524290627346396237562305467911862000163560419899497956262430927209123299235754665357769893817030791702532415098915658750272382249408621560007695606110697411268949685547104256516734171860595238442317248773770846238777219355127920059889236997228415004826104324807747865599206997539757463650379444969836317508737545051324726448748275362306060796615228674697259356751538157514952256575994213538783307152133883812878385960373729952001091605335838752764497476198635816212531228150181290598395301482452541455745452621273818857332313392846397935640814202697292349012839202580905149126183909067506188453197533702064061229430444427580506477915974933657340153392639762767396333624833229357444011880831116944148793169006977488853935373119717330895839664455152303482450812428416279314945432232058931917886830586995950312203552521456144611884421692457051548329391612612199982750525033051713666089422962932556199458794439031897663094484551657534562561057959219575553599984412242328843143977255559589075525842268145194486945122853586639349646490981969865208721134450091482814575588969036632680491316675661118532103201778056643420253234631147694278791231386635417387358695733618678606453048275794051814778720733980792620300872687015118536151881684187956767316174341165061888152624745762334738306523446007337262281716288921853899512837042310997268324824046897607126107729276738667485360521210835442644240834674890726121983208131366251285792093793494479842145529809923102009456786285159433526413736429886205184199044485242214306547560418929083688281759775337108794523791704896873899637547930105858351721624112267767128161847447975446757824263256620885099397467006731076414668035938809978296861139821433754520542243944555152245524110567428850699388449116180513413380829894631195694471159191789778684086958853613361465272068433467128015954324840059567464316021332618049022546576027528512588847320213286122465807284837099118177198117734030314264853565700758587719192824024330180244489425784827799446959295597221246860677731041188849203345938704231535180233122289858358255700942183281115589824012099271116982843987069449186075852532682272024464928896027290691817243468326399823713580426212460864610597183339900487004750418704965110204935355114692070232820485890422268996329515587867337167445672507594538552336889139645839881143569650792751072572818297642587857494666118795789747773346335938851878355343315795342629547986724358087817013695430411996215985303921882563768746332996737178849532406289469138896654004863122103814123660078667045282945615307397123840905847630129373126442596737451684545232820087731908616066162711043757003637536732873874570408637117902815999998734460444002096374929803079521334396510925922859753787538041990901269225083749125520786126288299644937751486613087880304945593671218119520279145982374429902140669676787582617848571163705258764110179601900694234641052336006717256153989870650677787546967150366013341871869750086743567771420588422870728904770135877513445537269747102568935937738871242435412468286561822015895005736314874708459461459186151620377292877504435242048054491230106682980469261300948122957667519727736061909026177966586990069097664213898757624388014291394847634479680888156013466821247743405414877825630926484735038005759232331400448742948707199797051932422556560455110918234549357000770355653184597844681479651382181153077263054887528850842519973083805499312622728773567734156283998814698112125939462594667985690495514133950634842921140820295885516672168210805642982453242077806998565288311132833131054230475978269120112138511206725008727890533472041916428468239490569260613372535105901909711685370117423495562118271127425557000227021133751568494873868540476160411382706297854801526911163481686852825623146909822636593841346334442454441717049755976078397733888525524571612170078079563106667376305853440719144197598222959028368675098518812583376293636836655109984615657604577896635137338226745822968001717959376274018061677849022861160170640648470704388864366022215581801762987841212345392701093200577554067051757414825546875651384978088464299015144139551366006281134856542542106876639363925879501362353044397168953837831408393910775099279093048615336401839844768346402538576878152019397521032536275948118557889965272734367457645558484584777350058425997630925475611432098247534360914816117740060592238255275192566333488286767471207846228376710101623690294364660467922507585368106003284467111883707600140059758493736308636543337419773677552469925865305027735026660671419155666686468788657982220901895278833316701242616974909430077372995238044414949490902783531086644489237721374900681920503141762786587215559483649838673360450399153225589719031928239454758479713187048376283510413259110594272757807676190847400611388030072851608958919240960677911223623065396205129793475212295899617643516935349453004715318486366841324389400952539863265200447711789242832010377986534721990457284541585181598408728616930132214940592192868799709794190021375310032583166640684670226160286590038643562550535479607193713661727322879645701402509930502791464251786168348605012985370482891856016773577760549779185864321265765328542216745862478208580295025127454898876217015784179860648091252586898800241127852221921620683471693167562641674142894052871294580848481573564896355076578924270246229329958298823911845888962033242792694776648254982040525937751962165299012687287344390905393667875900811148464727658778969761003192102699101321620623010127100453710831506380656353405686812621741158493393984779679949485218749682274227239065884550977838775546995706180124856657299318060793931618043590093478733364562828112868431270642211114888123242770474974375279794138881050751247757005439727943388288013038658151401723613786875015635593536158781049333846158063872571216933219833031314127335465475598239025935878775229050268730777012090784852665946138165134233512529326817892297237621570339450742172115956587377598245705259779162149185578769115081473273125754227471616555924841848420056255402139719929699410539021364818350148529131218914249367183037724208657137936253976255195976361587983228443739973573703562192975938676083752885392672809218639717509636043781103907716631388799532918319589493859224432038606852379456720328880037686695118933578471516570897037410309450867749712349351834767413781301217604278993653385363303717477990232559373103747974578848867053519148554969774032743686238295304901992775396295890931820239494056536348876372030419654438599875267871384149546842652894716203170834000366088263240091689446555317195378765347411196696641450393376632730226704975470351009824092301934238829382321479722970582613050815575181906263850672243414220022362443166871671440395034321438238835570880573367248057095643299705456777993275987115586533232889215653248147202617993700769764863592918534350020676363231394569472251393307693774983007534169398159666446205009136454464888334441413145520212660807471798034147251492319897373062036723754170225365934640418880462093374655818942874710761076151790146542705811403737635835983088787739196381890297514645415475075180954162321430838110672634905696335981044045851089043600875269584182080725925276214534445697292591875802260308499451187678465513583908134697858279395508613642030286836185343574289713064948164565172166093616608278090287613832655842271333030999107504595267900380516588251929459617499297570649930255021222265503893886669361110270543291196010816992823833290512335945387560623412597616317192416462171077969234783041918945870562324205466170021540805798683023194603798445522469175247501450211268293172444531654022262617759215426703329094034931489666540076557302384459529408511148272790038534119560578548771653549753877311492830955307063249702325868732070741391429499147269761096604687887233414323099571691004779411920057438778576530291037936891403076197120044781817869734924078791037232243924549288110785439754983718641023650491176144640773748923034503488374940235093840121730149096714189978560550637003295160546014722073839440134972328429506841929609113964918061687379271136644810406104052575862053270600362839228819166747085256266730394938484687670157154611564824907170138900414941939625562464622270782007340433246722360462437144611423567166899105694217076371890942929224560218755286575146883635834943055032876344462544820995432504009880460250686697003326946331455831715279619762462080018954263344305644144817215367901389705164349144312873376281963969490168934628169901673586293718444628718644448016998546709803854204782163857439475481910234694842548601663301980871183687298005610592455420728867723239573168610859164839323585484076158339492109223702422096305113023687435328476421531272187108130306653854744245113020572818123976076542195488372241651067846705128294472875003380370679829152933739582848802387882493067546392737209965780111945749194589520687322346524498799179731923660526332764562864539912860979202961469062796025830668024963157038240039299911030135106200702892276831672386801441671418313209186307181668453627950852401493436021553404459442658967046488689286222945774327145054805884572831113942680925308010584527596399103557273909644283928699638558794506272092025661359169871083928390805234869392922829940297096774838475911016134129206570666019715298210900112472239105930658462208881497047753214131243750590709941583119333114884492590366987639683839543069003161395741345642731139284069807349998417828736855500856451042755884309114864777778129541864771393329595770659848290459522843872510439603306030296023259230250862828573278000382698461810529301074673541174081421058973321988086991066613887250523102103469163219505070240368784825494052941609789653924378662138673748823845614226272131446355612057036658065154059016400805262689316841685937596161407821120289226571600088097642650962273108864843561881618958576844927466677663304556409432323411493376754985622372834752492852101495881544345914951767302148424953871743818459007985645999681224688396682599950586936338670057195669791996440910989329245588532384010149875289930290896558116153336317490716708743175007762182142856698592982867299382607157132213023031393435181683423498251963152346933988604901899056876106362743151290094379876788877763662313396511112830743544471189814360445927826692138208779671225441131857649227713158414094066199111635564834674101915306453716085722756609230813020558304891871281104738912671065431602195275005165571403239325891352064152754113561710730609855539213317853847677274962449367076557501335763297193449183425287146580727577711184205847493028276946059196030663197910339312556627179492361157020036046584710825972408641397989373787212613924737285278636782989069197908722632764638968261105244783129623381372761373801947768916431110971016234837224594925465524110651840086464146523224679362573818078014364910538821011181293567041831993607120627681634425815760773938960038669792188273596320363007419087287741649056528795112064259959288019150643243650306092424448519238788192034698215962628574135099360203892874021268160507615129862490756632817463565382749327318703128680177693913872541133876246595500143814501709989326714889622056923802385566573248071088648027490989871355211454734365647445240806514547955882167833316422089340825507159932130002446344428174778589304273835005553142052375938792565515910156597043460507859617798974694400874113772179369339924215266488796031603179666265062061426381856913940396060643883759358583784639904410627042097337016027313084493827711025307449742434523816265879979193324779713614682553450951218915819350899365358648651573798856163653042014008713153763117598187858424946771001378466077061512797010900481726366460241232390426502788339065790080498634772664074050672475475733443681170960518153899109072623370885475653548938128354314641562124383243959413391867754374453542689956099154189390658748713345204401072062693197818793222931980890750190080138157698191665086411043893852554847006721515815250922319285436710626407304955058243262712567036343647621066699358546160674173725296712756607975095296159260961203549707693570848163012150358329880137922244557765977344217426976218854202092656617827665298724282629165349343785442723224755313119662394397243919574846544046086988204730548672740195703852676893527481420021156768302385509994266785907823856060104915268741375257782937850314245105345114310323745601450560590867972282006482224039814402604761646913634004418053733089195172315099828103695155979267325055294621192787281839109362038099339992838579803098883465588001567271164109171546104307581347725106680380589347989641820266272188852952728817368799485365813976333445374312777743578295535175478225623126399908692059297752703761039453826248583330232930659178361161190248755241863353284540451308489683876936368273896725602211964083212216938014748987035973716528885870864953487487668800068096098747822385440095098834091615406367622504941561263295192631345732036636227178289175970400304244187728349654162871593721326319756208083186472072265217549474367566358038947166359813269069316468018362330034840942101582682951530019664073388492137058938596092008423899969249176692011500679180465337625593891784220156597553123685278712710709628211365603676346483323311284137242453161001818245441588500243906731123707868996752129706750411627862004168653113225485883984409676540563009150337227553795665749741637947349224861442113561372616204054596505948084493812841132048486337111922013240647837081392611945948692731064683792177295760753112891502387065916582770456340356287873255712159398797250096036455128702347937416457145046980480899917345778895990267717467063211849440368706841075647344530151080675084199420322391037567512095887374359237219131088397915705509943603142817155628971714200144233514007614416518758111219510577697496603329282071212574156495315708670896981054365258449186473273041226031866934734814071283432770732046395050310384412501306765835059437289364475901177155187060365503427216614486387566295115462354018787146266341898463758206264774911756211273568446780744240432755671191682734464694114047782580551380311305360655675275541033330419621271106210354175892206447879392522211597145749749155674140897417329888990583364368058256203162721485268350671883786040008638925890338502837430788713710816641910509400515241320718269887559248054951351019678966964633972560475129350802139353979201297718894735442911890414800863634402250963694423639348961898004640898357662122915489358770927335108511386126614299924642435905978931442103220982885697058336356012340992145347957832301337596810414652660152100939274355932279524425530137036204156100424195986084061392703354107354340062520456332998928054306148388235365342523580710038932316058546916307619851095152870523875318612683850723929987415538093068515345515525332841849661027619146750407146313517053052880354194255603030670119130044713586754644964754154975085038155443840308561601170815053468782184004805518054441798086965733973517356463908789760872997338687038703850691762899289613324157385461633205535370035030528999586181514426771151642864283578696574288955685998899928836114119294210007906218652404923394371451083764242338542658244008669814700865707599974123364038703460022377574821205093058746363187680119681443146638806160240566324737771685727402115608956364208411685227656749642928939774146623941047545114675557367906954118646441151149490258889147501452499547294183839401096188096371595696507045547802240143786866369395481101214424674936207859356919977100753252390214026632213663775177726171725682141338368998460279503842395639843484311092238487467413563890099723249979680783636529654427213640582829469181870633083292816626322160192354032176272535060329405977043936177425426900453823344362989725056677365133460083370711499740940796135419630688183906709167600340979416249498031187082185864014437526638084531783095118043287294683818825542083754547701682994552982434150314271285864029279458417825822031608829580253633723869235699894726757812074662941304655440261159875056458669140101832052662549462088362869465147038783741970519515471253394510250342413144630314282629413500534696081470977153900935707315912916261538779126390611696895425817227965922998967667636882135772028734562019109965099034466449256617886613685428293533945477367173716989531241966392266683632264904230705791612153634748356765316125211642010951437073305207425939960220250676762188972688953830490896383981062432141192575816608231725559572078784969375053604523387984891130046934122858965358174624338568629529992602591950048610048349575065235433051615199073281410724644583726178124786757987781721943186315647930287219816518253594931144543828837736006364494009875135421618438785966874805471702469371223203655556349566706605704696979081464939434889029447252233282759375267568169888353671259246119810050595030892530107114126635115816010081525448452792275827144178200059000707289216634207469399727656849335914911760825841387885402141242639055944426313322528382093855202503302044677815005862869768523383995527965448237904142095576304521776906329641700597926069349508009804229444901770541555550289500800051134989379370285541258364427973066691294478372126673696523534142074156735808889865126577390501014452438055498709485814452992539881852974831664243309135363028044512113611809871684431496547666817093860090186358645588906188145736604195435772757127397031103782432532495037455896860303546905980458009052480521947515206522192635809678198765665289518630944001320885718427694251530926673103542946610724226420124173281249827340244715088938310979937991041918233627604212329571209664898004419581443666261356678838445116356412105026349912123730975104650367194847958018157568018645696117528607487487068530458469843660644626513756594067941706303537951903956089293187993344515397921067518598097495673393328142422209081042745477115877607658783086090220298196793674221397562353439354808525791998460244514502101395068191007536918185023466186644110197304412419085810285927064571008762536383186388273148178784850461378426273539968447331043279775550773610116548589618738567718190731349935386296159630299055312954461343622639217165979561773906044407875078137549452119732084783027632247985954565905559723792980567982884624777450319821253260027237627388582022598711951504734474089081002146122086816527853250321099739070891445429687910406347890637323559932821921379099357163031074253776445247748810067064588133120535527388057150808580396146916851167042409555883734939095883611823873481115894135138352930780540672165575326400369391350842867360532916480909778937076789991312888234964331427854358118019584928287537725450431831377539410164617982683825319381153619166131727928051813950726797268712428901872250769884640525961991630592474734635781644625844607399168302217929263190314526648237904409430893916385793283640822141162618719629239548432674993224847875432749619035546848866957455872392270254924156031455385238352635080875238973012907096512881957859451655781605333727822503840754016393486298652703140159073858897235351170428531384240785034973523146548631006785260052159528145350834093300839041327565775886721344906364028817321201920913574973332517046922194150011447132690635523697965060956195141566589213908966249704323528289912980502451265506467621311643626388790597060997887041316518848370604888730050747860188897866723091188393113970658333023496213397282049621868861622009402970901676858386205046493478134522494847836130551407543953060433246588418394885561718615418933503769784714818787078618520093960486626311599630198767654593257820535652864010829724513695290984109087154890963085110179855498819183008394645001053044485254821041097069083191001258119649049314306573580744922989790064607132499978409730648381576045872570673542932134059778889862370585521723720520561435004731573135015982343507268934153406027083784765326757934648019104883086854677706111714586495090766208495047016854255227108893733567847302097984729860285502163655462895803850766838867667700222938162214946346979357354889633420680795401034771132873957020906575324614455125007103730491253462622267777572425960728072984813809965738930777096455180595524406069763807072827738007399296657239169979017904845383987726841353407727599115401020659395341152014292079906578055505243910624564726695081601669405214705135282716351194463112414142266043700349650593263936040895723863783024677380041137984014732636100126343112639014092437547731781355313499620159730684894377456626978056430050255118427068288169956409967730713717940762982956544103576151968330865853908710989085721585148939793340113937163773929478767813670776597687154954704755433974508445935257703601870914490843430025566575907462274918178614846224436535051129160878187380172669403665183912771616142778560129703060419448026360571440628488209030491008746098907645502751733888193188798574803116829309655940501977914083664313638391363606574304129767187542886877363700186178489379957368925375950103232455467103307774186177651221507578548501560060046040380882176791613395888815348539053683583565733902411236542339765808854567374830505040204255847478889792907399541882672256645155999349789928008884849581494011811521155275089416840549768317158499115173426097722501201533938465987190582582286805813375461830454344059783445154148354681225064519785775976180368868589132320883312247988807326025224659879768710203978123447518247936676843669299658146540908878230841061184092889681600717125495179083650488547199918799764444790885553173715644639656332150367715335300638802695113006206412488059123553132943971871249767898146801230490442482948245367965774438392023907564533220677635438538794657115912889670227016436807098172416982801456570721475986698580651700221915946665494071410173391154901213524713527863123881487661427201320642225245484211871801057852375047923613800614587299993509931436429059061651593870487551561029050175257902362364805391546319586867238478920375669231291556513553790915757445397798406788278737045043731178285710587086932600597148218570298445744344636233956185234276769125253429202690654978773833228713427758269875374303686132476713333772534988430621253086148874537015879173216448091038872596682273059183584517566148730253443643182908382086601630427063692807111954994007619840415354159329323495267937603993500148119859977768046035140988128816827432112031275553263591195968193176043700022339577722782278967677675429374717566557032371664653252184136763539786379811525441691936041666642174401413493496409428397248626170690482107746574639468083376821647820555890935508529461002918517930449077055872562553775721205248978792914793360061469367846236499907555124735148531963732858715662291598818733149763257851772109482540871299537679352765869374321212378341167567433064923036804587174903789099967265137492703829544815303181832242417230891447367169024471699112453377223231390721226846962343899613542568462372702051691504155236503949540139070679196294024187034305484220489360393887701401336664820293581003902076131179762631998694075966280985179981923571681729727958172971584165194808477975542334618812337538254765197938659676560469448068835867509275617655240973271443355776899978990945475120729586246378371808736602065613994493389368017736227725372746427391512131987410589681487528774226140833676530174604073226518377660042609033365971676933602922020997701976817564801379653795218307356287379169115387396154863258571271817509516336487103991327042741654705351548584965459444435286801256652174952697969138994545310374330792467514298044566297050497881530751641474639821174057799629955145530874147995518171866747643092007954795853272636590218712994086792997624654570868423473300153262495302547647369074565097612103227183516760398710201897827736791872411592539270191289508243483511487229077611798226743343576697940736060382891246942313048359927651266304216545352176332127866323325971205838366627546783876592140669969380815199095671813145926230812216400398532988154658272075631186130167863018733685479390772588565368433198565280618771656406408460056268194377375899595961988069792882244457107797537205123513996701034145426655717142639790427467499775035171884902842000847336895604479149875903019794254226599624219445017982906650072997366987955870213620208256798950294870920632420126721173191214479949265005695575985546097239901804363275443242190255872452673653414722019854289754295454651592088626026992714022968047712268448228609893391420797042355114650295604164917403488057914421027307843486010126857033488727387049697887242824715115881386185942519668645021536353148789088102010236700604128972559997469308259248387038064141637716166773093657702048731952554762825375376054103821030367996185905295370821790710104198511105716823024218038539937148310945959667179790119786966554264228194456924589004569022233348927096848870327670007717610705245503710960153006546029849051007010311034810799185863672584321401808227480683850841310420547983774613879683657934736083098632914454751117702517380091562661598838245664873072395105611755990591617177616345798573623034615259796351843475942934676052870169914045274329264375840416846467190792000311849547862922401257375085090444764300449532528621073103603959173745054240980045278775558081860827798038587381800725315572075864398951257429541746250269781494996363296101295145658559421709530698229725189004831694843635825672315744829540008470195824491638174567728783217349446297575661062810403234901944580436630163685456640239853958802135751999320956731987508587690841600724047423761801158328205265046238163901132972070377176818967652772464891967667461209253903680520340691042353023935597024286057225046817522528545877189934148088961137386409058871123607794045319242359410280987599918406236069466151668836780465882227491841931580149190318191698802888487348030440623089653295476058508321508001240353292000493516446182456589754132224325567321802640561436185417618083962951442171788377206795604118159420803325179436982251100851490209597157061510626230132971967028905086250126292347225232695179286347927969494134100008423364695349692487126641571924374609542804752626734365891817077029172145713768812554103317351482946881989007918702265736018707384681649143699987106984600191689096593720241885047972435728376389138752753136002982458931858887692561219882516729402714166274110109057051670404402408071406498828829856959197346104377331011447691475262910698853825137038535780974653904779067255016467803360181679329887431471630986480579478362549657833764176886790879835274602335676250018178656294031767036627373023092372650150318692641076974688586843741406926217164346625532916146295533259182009186877965261372564356330656930328000571565435358092330765657957720130631938875793257086924428051465871768974300069205330722032513886201409797823700948963305597855858784931142383138600390173786175522090623568100329374408534126400387815396520551675568639044844723503541766917548061538046414744450765548385189949264172483381716509416349088134945512114655369978995145141230301364830886559843341576778303064076509992913759659377328528489009510586178016536326383603460339580911178329293138602013565601390250579862845514783907063407148491454161331524588764228310105560062277714107826625389670360564548197317753107336837589035160500915367236132513812801871611930792012258359764383730370592117054257953423358198015318515126042948982620100785924031693828033960472680258501293249560560424638640064333216748278397221360514840268680599942827359841128760884110893507804050858006132343738800839809840590054293030177183800775190281710525966503917790960190831974926023203560291684927003465470315057004893775563711126409434156167157552241495001627356967672537219929973631027739754928302666627426325254605840336874603732532129366191747964004550638388639389829482369837875092453397782431787519711798474319363681641430147270513140586205721334944250485365282608644461644228438502985573643191206335654939356052822275137658330074985953051872917953824709460422985071101416790178555587764898382610804393073106004521591657873080959078276329880560642292321202320778555615310504502707317760244831385493404743797039904264721942450818106955864865739276241786138634024011060413520264026627271350221161248387585409524008720142144620039293705834361975764810192677363400221543166008141606116064099527089622921828859309917875609031710835574973518173088363151729187373866980620905470242896355892334545925711836955134396033536134644860351964938902552793968536505340279812868030449962932546547117543058761079699954723436116134935412340889294578340568585665972536731765572564976948571330541422737975829848787053362431013263958798600086555691014600563436978189159237904845041722722113861768272082601631493451053178962300343085629979735752012942291203911357465973939370818627845483270398494871095098736074492163796542706001436129890641716005788577607330423076749635496485992931396971351284839382339109491675881276093185034367300198112590697964874909012505497469768284720005538373482414119319461440356240037409110070218002622089546554654127451270670621697141587281108668922831797403566989246104048763262006219067713336275204016367709738445715348304958919165088092755901140171005185752481214835047670850201129205646241095097012456761601738432857332720827731881723062474533683868936157383397529685780250250333171972377739917403998578259835211795439130027404096670910532842650713398052303400141034168316987686385495547039513393789654391538500250365670100306722181126171157156524319661792492860657487862287697247742007791288364989670949830388641728130423589811192782824748257469110176326301171135288128010383143248028134936845239867413310477957423683550887554957527348852696513576158314937567100700349013527760495664579014166453199595749744699043359879719969505320655350259547251195257244808040092477603296691757064631634475308646854748017404591023985301455443577912973596109039397094497978038706329531898986642473592236687891437455595946949680692811872994691277843237049337729827197726017131970953633151726590403971328789040565119640618022914271362204420070535396972871873840306546897497712935662389826638627800826819004714124220031541582501701989079904303902918499277677402311493835159961323599158960288975270303945815485546860589257166877843655997730206854273338362517957364354887107643308668497616433935958320183542453608084820857329181910563641117454638794945188349430823162847739785652073689693343250502504369009098518528887492798729472822410156953038796402166840957154133265393613784513955273529420702030870054599227457545236788736869465308907649642839040576580952293277066203525203321875827019372023291463211043956361634509569025576556816053566235164378089306963732877853810232848646268466872663256981983602455347463453973034838177027751740231464855906871363626663477927559314759004478848620525299264285995872410864703926593870167402930720752236247630137172477982013455146181595780891789012727001891663730951184273061527446699426579188888910048207624325510448131471615534251248894711714146042749912836511577492200770794725986098649618591134332963175539433511093045128950757363062664246214278087916901666723479767881056032558860010360230668658841369302266973994304914560421746854517128429419049835865498248815492892302135513293251567306991003125846376701238444995187755989942189280844517007821503734702413704101909018500720820582272623998721238074101973880239393205854196157438639548864764804664068368216621629550906246729927754986847925514492845070621652298071180613730683578355244215158704226012897954915522313551283114526669227357345680748526938868300727960914320200661411390423938652493703631611122162012927657841053773124170697441625667038944756172823629567284314477315294336670042787790177694273831111055900679808321071609189941988850708211620278852381370134306585094427192751855373256728119190147762363835935582817811773041664180545304563097845136336138091634703879096755541301073708098665019736648403052508169431912843956462437153928852666965934993598341808997484084637774249351131282116157423068531785489493607056281934694375954996717298258501610015024676578412642212682217658109101129003956282556114331899516450270248330700747553654072247602624990236105045323309714671132815979963943347185279912159480515906073044606236374634188967670329214956153440578256662816028005644923227622338673112775727098708365441661018481422933532988826492111649091008743694921683602082034669625292658620591848141252715838918693039129081270240872915926628039756356334399454314219461623542738131287526814095614872224550458935817508911406285606102817357811107439867231122332105994120119721236180675912354679401140026354569843481267098280260432627593664621233132362108938871247808114613074828381816583444719047220533122464448637432189896213644148703137443511202510404442174578407407509281152308743238466562847887667417614595971252975297151814451322497526738471337253596115516352313862031971590017228429250069329123052315873290295184553726154798914016999584676698510909400813266910612508193558097366628199654193584465774076889163096882304996791530800535342427729281401576187467757182319073659093587436895644484615176244700466869612359223621114738492436649713583349472057884273861654627852054769551662598241910661104413503879822793805573735903301590819929297939948013333587477675592267662597393221138211519965835177471444457261687315890325250870687321937336775096122737572868054927973397290545545645436089950911173138558705917551422948852285105001083734608565790029548118662961829997876067297908752009459370548949359906569759535231618991122931174581660344711105537997531595907177223728983534140421459789165569631123815470116701172230674820579061378091908916399420996824900675609649803572007589835261776009107167637097191388912818357972124874354205685169235565886245951047824661072835461854056340735525188315758635762151648873932239030655171426138997179683242928858270700952690547330614737849111650248513094545091260330530549739644349170480990616788446256767862007730077123260967538290593047293608966125133534456361327907603159765861590101588440546086259330647952646337791879422529002171845655502488072168429354673749029287220190690865545039609552925976379534378894424994204806013393924287140347282014898387621020883010654991802648170984845379785905252868611431601625257534584365338274924205194392102290623004607365865497462922377007004745059948466626752219072970743287585984699070928174667993446865230538642992139713708083927437673121830831829451238641919475057263400735063892469182711840584776390345505087969998833300440987918607218465357801468285608419628135423348911437473969436353478564236917262978995421270155332632843257236875018729457549643820264424317411526789396007076848388601546355279893667582152343945023868109317982749075824869622360611767111890871804342058292895506492775928982028552540268818878592213177126118964115876216388284590901389318309486408786619308170867966760211575690064200651397502604646116302603605974333875754933295380822388618318246874265456305537601525846354442172303782549105853467271136477905797268903722403321025838075919122795243804093365072597877593090926338595008321182333415073444095853656184391234223032060489868776007711121714602939663688393967191538659473154528726896334164855636942811638115334847228313243448131392994345515193015589835957055585929000746679942636116792144915459521961737201295830225133417017195138870849901020760396924117949339475546946711764529142140255642970376440434725992865973666261734627865400149386039234793277288177113728517027414891921705077971065654302954736853151878335749534928042388057889935402774490884786971241913848313069057333595085718185409609513062323571982658487488317968856359452585390453938831344333902946146826987360918034386975281657157343121270703328979102068414347064025793501119824304090729618607741587079648616707058483502848816747538735995682685653356473135735222948543463872969979859898917759092149932996926279857125220186093172430346006147611882151071454251847365089427903413742392789887447528552031585023189784807914643023280776404177362539367371119615953820270596314401144787602012738484850207683442771410433362219945962625616410790660115159931866817691837192988791620764800586214289542722420801882593672614541340453093557226784257113677194348310324212801609265182166888310526939418429236590238107933968663925968184677838187428006181551188275820630027240883446535424860946681615209301308156428707434491680750108008099024866037841831696875896040446122273178213289798254272202737113535277676761054398717135793659150217437353989023827850923853901210077110971738382659723363233072888640418317527664261082949709927614437738876510950534260709903113070742844527939981914267624443966587980561304742787813203745903538033823515965481278357825917285601432354713591077761820681879055279450249933173864947742938735779139550135675815958161334685823851230761413327449566884666338269617289044063716757153326885311634709304302336321378872310800694558453452697225551377394326460503521353167770130919168050239441491874360421967720810156819159215888327075669172815732545003909939149712426033988712021129562351858900109434465073068677569114113517624136826156982119556810822225992186505173294802636533024714809317558423805017780164199760727346146190989850008919026317174287145199278169786452851098860787551467141880456306678758539361400281559779627486705762352063106765276784720394692101309128183967105436449644525644054730763947617555309858674890530160848727446301468568371878950866128804994449630653404889447796956126730524483414556624735979739657020120326604032930421463142708615363208528249952031472967565236138095936020548395502758699906278542359153498752523192251171693449655108836137419740740416746349609531798858007246350902204660760787668130513696472407274108738748196422477581930774014072700338382111024865078134259661704470725408694538416994622971545604844486809109549542473143228748481272693736791124864089422013710015105439304826048675764974583829582455476714186077974659662195515624995353289911199406629797810714166049131693230231787135050175880451933757389563666132359938654033563251318352332592850014862679700447289455441822091819750126140960240726165280097203739563804098426446254586286049995521975570503086218106386018640390531158249533258703759107218623585994755589067087922004691177788542267053148400443314777587515019912393482514532092303348289919998834594377620575652080936477362276769704398854637140949001201245859910707026430706240601287455888888053361585884329971232814199951252501388299458149615986209670644068321705482266577498955007943188485049223829955284973895999006102586441500150037619067647562720370920593072148528926181296820401646208397900930402873942724051280764726137829652223557100445697022356106983028902189916880853752141414683470106942029283706565238947987043238385208038811989226430420817501046096475673095260914936148300444974141717094356784508731683287183326694945298743680754421824097947053404782493898173347424896657770249887705832147565395813252117338243552536234815475257017247728914262793338972645293343453740161237251861675209171562049584961946231131031566652196055291478205442686377485484085521664178969965574614274207208859343201704983826729503169885056865604465210277069387716734112990176081083508437077511813386940462361390310224709435849893664205386512403456465690855784142464428110459331539410568797352720406032720617225207503628646551294371552276323797440411817185549769677052922220601360759429064233041403587623965812697049372744237528612825674709867173025556981427290214868900875289833708319136109211917707255689425045571978109258535280858012461135455896843480218661013000901468975578569658383603645065029182802582251135005484391094431855757472821881312816335546895568632801257920823490692875842103638590181716773761028320915652616758212001742422653991938100869162421467633815458052756090025771834464652246989445082662181377355024891987620570701592876996029981294715414776201516147515909220876890423370791487623510148097300897517103553487538622423926213366203401868947686123547244011703003189363168431640028188641489599187929545358166937826836935003180235457164367589451809062645651348417483820310680554583060867122808239880812810834805352390077292515609138280501243974516586651654704172711119643125641331131671139304909830074956519804552401696669300337420411033579680543853761715349052905168059068694837070131481421784663481264412510127986373104710017215888066637427484884084081226311802965810193000307535114361087086550728749208027443034987800727251736292590550362681184670976430000336463694243860140702294492340822529751199183923545079638790486210482396016735453178711060406063049914742455529735142064186656026248945540152936697969772353240979549724475765709885588179184885855387373318106470353947701265880134979700548617889723872401933153822569636536378652026211388897384542739785294836101688928109830764464125641473586561325694850537963797870100693790618669655222087521049427554661353483123817443143588956662290155417669327335088287665320833903436391927645172754110771965013156703721684896170111351572207166661034345833658547597995856447448858051644910536962256667057863401564603103435068287990600769337235705622645749426633094635985748500044251048780216489108945503000793393672017613556029153299789591178362046181200708688315865350046527379985394341048898760228970515631091731618918201443634174527982980723173759392751300646573573892090398841936808907534604901897588778017794234284914356979393931884162263707630888951300934727294788010475593766641770504047462525442623329668957154820869357833339603670529059292085210491500484355144966808101926554838740620009146078013901171718787267573028383534118645716459966929734794442249862237486444417805912929851578201237503690478166824372770969637137761908699486118349862650751387743264556041167257579088133538362091223835294467700882121692826457492264324400704669135220561302271084666961497977457611664415554434902436489776227382123941709716497782078790484036254454537041062832227316965954678032555003874273731812320407075748183036561550804978897266334767981258290356950975511575972395448219033572300397992227431412859809984077196938291361091574592435214928796609376864340459787578207602256034490918602368988014718645316706705500206410662845023528453725915123961171923694303688786793094823907998503769519520251992774399830917234178427492937877754870450366207258173925554044566149405523441802417781271077074778684512827355148583540792119803291370448203862419823875885296517784651900643991307683395191718558250667354216804904355786507016395167190092616514246599158245152812840035820112898777016001176401669478528632075650887163996727188520401224254721884728396966464097232171067618760126418199457222881524358329194824803186886998513302166341452922765172309158889206448650242705691800808854941394946535516840966587486264464762752203751081739064930534359643051286881901684961490638342850861262943016376629078633672644770302172076924682976795818596972272266046856963810452098543609955040795759374790950062277290678205638717913259452200122461625631634457461348831131158730740180534387445796408664100710065823876747501979016493312735279033816823407186847872349707287388248396689986077818723632054829407210426097037072730409507156582691372461731112328773085175426049499321511099157152949889869665432445653787951494135086381990965341123863898793827217513791840117654396560112427132730617476904777042340554409638185759825344402460724625120566999307384159852380116316933115907425015639657598894204398577883904973791688567141283801012324445840232641541475071012493007726437055470543765184424442502259677999976854998287234476463437667292188424478525507268584730061423578905957965397945781568786061697218333364573254555137989015890256365832075804869258067357201699192719164319940911842664367304957391234699875215621065297715003039972932625642217600462151080955781999272413706030604038339409257302308916603798731380686758095119180506484916277049054050697390374803514587737700678874973630923500917026977916230019537415929756412805359741981684071569996260228789466287504086582688623282152150726215850866296065283863866173370704869705905009444945886732639569701291512039173872157747562386819225280822776286848177362180675431680857050849050939389387490149869799858646918682880729607940090999477223738856045501277267889940633872445004650870395802824054132159151317630432652536037836278808677557933499921368552730287406602402253600331111023929884902214545691550953305037739898063970317756750375055776352186366006902514338981728462202108903690739636690245872717557902161516674954551479501782393955388189180430267759370562197223891094306305610217453751014692064494895314484197988942828695162413427067015437729224605650108650695715503188860721377427184040121977006035761015249703184706249370688646016695355591598401837700818056101475234303909623742187669038109462045744619895512332602031287811490643869125016647871218417186041710437420815325730662168030774273520954488226912873608117455928696254069902342828218272505939520253328686114566917045468432924466557743052934520979248681014241497589966024958805736869692186776600778518460217246126678537096093626373365118586985439017417719328005996175915673636672674811409080098070347470923827207159752928418955654535250812523129673325574895005753885512478007569353643775703557104848276930158744922038946946819734241950050083056892536352898245467614709513486099474354009212741201199970660091084997338392931247131147299383529547496449812231448129048542979364605167336212181790898223570789591495267714327188921398052354989921940897380765537815906608012971503717354038888857184696462703881413039786000010039310838649034582535324733100678899014273977292204976489072165071978169742943970127674205169528462796564724653315421012967821273205548040004228525175629544038669833688552137556417752442861592552070802426312588509210390546677034080009623299685263133747178542286048838841859525655169809177534796388933117090795225497900103137547686882191706960416015815218085390106704823225795698127844447842674973313934621051789876976287025334706478712933888460930518376582710892265312473308608535378855805787351781766970727095536587897736295975692820445254338861821372330136306801174603555888336565585065887040595620283539046579066606566721306208488919071080488809048369341671301168128782677437311176519886057267739562570803090545607511976266834669158720029711902802088673295043868986933396781626091574554767195562073712132423097182443490723600244548583223028635895098966040858251948223833774227475636156332320344730861298872239193492106870626566194817567434586522857172333588249398050079903625784068070271923131877624474359813679462374967972443055833210204420333640392909486200854240012942334722279882592574079906614840216092793808294170600670681103422499690335427263217523410004227434818310668495020588527779397418424868271918469095416860622696650743985015854854699649610586313066951093461541272500773878882571646651240997362833949657874381662399726641737919671778106194447113054663816575337298358283817368752774938528165719345295288596472041668200366679108547711595567320229313370125791426143746219968963889838641117662188875475697398440662676122660044260319855854410914009802592585903383601355010492501207073649093274441450616762720865628235961637733941099387221131115759670399661130590656941764374135716572527363223110660433462887224854532442573818244544005967546290906411609239085979829911834677592585505391058401687094028584878138817615599900247852207732339781958037537813677105538986220790754668542351639616721845548945473079537544069839874009834314204394992709429249927560423284707905549213218874646256787807015914181755686194659020580246934553411240320605675429917014313727400728304305878018317723543079113669411266883267771782428021973929123473840086001485605856436107558438843499707982651165267489988211027970785738465812690922308475552461371343024650903881823005296769636134533274552201858633509872127265883595787581254042101236549359731511074022113036440770728889185893829542935897503918635115378153102297056990859199522220087187065557797682729294527133629379148310933302834872965788595038950110478304519597957577382393436958724743357320404497625567417769750507694787916664366280202290911848490207478566288032867555130995885189272298811174882382848178202590451528084055150496246517380124249482470457285694943049215267986089890698048116578473968654499410912566999448685295252981485121451494023355811305690563332052355205963278462624762021264323998106056409714363952715894673129632726812707043857166149848221268375071109360839748397551817567592129596582845734701143536112022987242353524782948657586860031921375247021222779332033566971180774078294841458528229946683163560922882478699049935255617778482161472320546339204056500006993299888638354937303026256652248397339924692286413269415971989885375370726966513095289401739896902550403523001745611147076653001669696874120402969046135314190602692607269746396298721301077419341769928325036470760185893617660006793213869159186368884178610491113607120060903228563237633702367831828321925742041946481527439055399334751100921050367621545906143188271357086557079717301724596183830929007191382999059461368054298572390228244510639239969244339523133326706484797544207764193725557995677519110552571410396731928782740562582981884985107213093441278552491781431993329597138643171214730216900361673276912656035863882284366828791477426747893963833721233643877478284881862538536237081752900320708622344391214918621011681071488822488273946492483885752895187655363816610947688655529717962007975115038195065471411871174753516724648003244020476555619456241785885922420319806011945711865180366507165039449059234799759227389271437422600121337739326804361297959667349405853137240387343896702232187862059857409419731909054296375036984754974463934669538883094368692603304837758550705160702449250735475148117117921211310266566391155507890793934014245938604687643028234352469092256510732663809565796045219558644445037185217339388195817201868146580174300521649237241077578877374772458700992055360635200493253969090143354458581604961850166292839345964793034834991526730922312770507644428089809606200401017335938249027880769832901342355154534422006200591617782230712653531314974198536071450714871777560084380404740997400976688961802903965683848880895208663117496376222684361419548420840031764657119999254229181239905084105245483765970325194161374269318845621820757807354971865002776125443930665245222570815315053239040037944918366634699496628801195119031092850282326599618003624583301942307649009600060452507443058199868944536129056554854011756066301934984720407954895014512091650441310594787472385449094226085874374499693554647606132970035494930030006336980143060104979893499078952788185826715984807579505612867543027679692770732779587204678455852348264022798325329642643866207887155081147408141757874189336763518762236192240204582254133244098141442384560765270080245062981039087109465244549468041922729691721947169029851201960694238991434831198682987989275793146618177806615813962005118867796736993826261371544639038352377109285552529871300021912699633815109505427266919968186007916517857054117068487916708535337331380454872380725005050693312742202394681131053447844274444375015580051285281596148260455078383719802761785030923062108537041548375358265173546591175496366225958969078489826262037407349977257133192309673159380857425959953780992414115203249279305269670370086733477824539301440844815986941383745397170519914949702557966970846172266517050911494302018165341604241684299970483032089366212136396379709470551496804950936575320472960746068515545399746701588377711541435008757809888875038499481572131899854698800023879266745765865443080449752730034669648295261974944095042195080219267585054157487887222873835562578349287022314295093237448530509054235650657921380998724517755389287893413737506428005163654597648447929323370484371962578533502810234349290472878582810162095162873982002720118449811180045124448271793877342001082629588279585046981323491480908361307176066199433451820566470947560160278646308423988482619418493736342700174831874408224577940643672632797268833895520693808380009982504390259790248888098183137319550350541149389044314812788127001348806994739590300952291409988026613089217180990859344669951490941594208150697073625928963270954062811901175393947697449985476398987550054629753704320804785087309734446572388680148108035968512283160842244674226494434167195835944522974641516099516996268188058295924574999364820556137264591800358533274959371918757895117434471727903206417020713949494029308174984069248827126511314532885316460153561184966264212649801881518995501898861641633098595856304573796202680918400697601726141760698960366872383607693494250438279745778495884914972375416123568086978787897809840196264073776691849427669421344370977584174772740096975465937809500379800053186791024976770973017390531995886671949029359000541013243398315004566766905880760425513068611754941443679590909721241063392454359537875891716264706498827652812065556662309557566225473798400553710450399207366842500403647427024018036883906418764685842861909762112848291653350661176160788160281948202337198669073378191687317581416602302400749292430956975495574438521923874656132536008120277675587802386938236784411948539441674783880933328886366632020622714713630871443966987733360961919336184637037782862491869448788236199981235837588339495418151597647465514255998941828302267942970293510653244825885510143423173866145685717910190926936704224961854161229064777325403662367123126001580940528193668718595470726706388949938363028291516671594154034358381952807089474809761974444046422067931448110644716317848896778274704662883085132382131584658917383912525213450909753239242523182435954544561906119817359340376919518561349845465482341062280116602933870592464781751433623807604771251728852036958391064588175708428116320067951993932337854960437043040672853605405677135707196418004328316831638300946682887603994837775965271815028949475254617093826381539130709646718344195362544633789782299866665652833812427270423096729031923525658098733277583071812942787516833908867057245514799526324041953012048843647149086070096756313211049888322420532033263808144836137209181885544198720742028850783018064302128431736408718908876990175457612548285144256599574846683395715482452029552045282553074868830658310075557952103182091636642717972505687611668603270149033570403273450458149409520998205531610507289261428536131424231031424636376716171955642183370345659152217574540808312778159564708177437782292474620359008474007394402636961578192364240014026368115994148534665743326197653626997589880510808104857562497592719939000000996163264666683848149320937666783980061020747355417459694645114150267967213147613509287788580193772462446468215997526583651948282985230366493140589341525152401291708652418837168426052148436994261180495830303185872472854533198920721285594747562217539159584527180667836268628051268175882172325638965196946872952343682692685559419212147340583065079911942310449766130569852897138191077714570815339381833715537545299295279176111262751931450134084254851890314142119222658138049293417674212747019201282245954695156088225036349234483206206947635890849249125954491909219898413292439604938183885972476628998697209158369134840621332210726946966417986855138519698652209056610576060214618511323684977862315363795402442605265637240508769241592843360512804576357130146624655139460548579004789201872562370424415623842140430981277088495307069113314467221935421610744001661435534897167938694035464899636209355647988610619078376842252145823612667288680834994869210589537143220334807991765344381892572529059148324241248667407021841713007050988462260582436802368933162632788041746962259853946526937990841019518782311402301046320549772574540665384992311488888713436795231632578934833278035097252254703318780803627572702003774132454244358298690171476421479280910341055649619925644514787609374717135326051296625897702682839348769681490164475177722239714918951098290307932843108775964097354701892412390539226915752651998988619106789955888957711207456511420485571754284045108382187382045689055834350110927167983479216262886381054572909411937552275519929002734578454679702006160113429637666630054244516317508708100051536442961217878215926446333088948691867737604540970334283356623440390786790141170773672686567349958954640523696619449597102668610271925277912120529517959466238500521940948210923102391523361249654710793265773037481227186083500831233172336810779130227396183349216700294299347335994361071157537998584741658700528599129438130116932743289130260300417029267625886050065353575315318730759301828339395704367722207557461547456284928894514039379654463258255806272541783180527060008855156382839546924007213099723857583826935338801955363613204761969869325128429575241146319661558253690709544905920374653770974589953079508600695544438921585991293645284650445514569102522647777210176602400435485326611487645789339971563983960469643324901870929375059462847401491761052052503923732522470990050650931725452730524750526096851985253485581706948045633582245566183156424833732913099239064610541690442645240972554536226685468330431279675055582233110066908070379729482004756484047081936341689904569838704712941032782266844631938944239326634419264462754175083825972650171812275277911558116877225564835113590323769925848613853501583275417555150873922836796948987151575881939223647218161431266457382710119228826055773260323098256078942088138982919911529290375555569625991483334516419524740757656789215139490598879609724229646922567968091657518579374192551627112551198342990530629649417386255300220517321464565188574932522942753216566558351618564049023282004555594135528909418078559995555054990501266901121006376011248174583140978496681703606041601496595447123073747468966947241396965052165862104988336828655507813531551427778528796298274826979085645318330