From charlesreid1




to 100,000 digits:

2.236067977499789696409173668731276235440618359611525724270897245410520925637804899414414408378782274969508176150773783504253267724447073863586360121533452708866778173191879165811276645322639856580535761350417533785003423392414064442086432539097252592627228876299517402440681611775908909498492371390729728898482088641542689894099131693577019748678884425089754132956183176921499977424801530434115035957668332512498815178139408000562420855243542235556106306342820234093331982933959746352271201341749614202635904737885504389687061135660045757139956595566956917564578221952500060539231234005009286764875529722056766253666074485853505262330678494633422242317637277026632407680104443315825733505893098136226343198686471946989970180818952426445962034522141192232912598196325811104170495807048120403455994943506855551855572512388641655010262436312571024449618789424682903404474716115455723201737676590460918529575603577984398054155380779064393639723028756062999482213852177348592453515121046345555040707227872421534778752911212121184331789335191038008011118179004590618846249647104244248308880129406811314695953279447898998931691577460792461807500679877124204847380502773608291559913962448914943560683462529064408327944642680888989746046308353537875042061374757606883401879088192559117973574464190248537871146194090191913688035110397638436041281058110378698951852014697045642021763892890884446377826385893792440046028875405398460156061705223615090385775410042193684987254271850375215557693316723004778269866662446210678464272486385274578213410067985645305271124180595972849455195451310172309750871496529436282902540012047780324155464489988706177998190033606562243886409639287753517266295971438227956307956149523015444235016538917278640913041979397111356282139367457681174922067562108887818873671671627622623379877111539509682982890683018259081401003895509723261508452834587893607346396117236678366571982607921440289119008995584241522495712918323216741189975720139403788197728015288723418668345418382867300274315320229607628612524761028642346963020111802691220236015810127628430541861717618575140690101561629091763981267225965596282349067854624161857945584442659612858937564854974803490110813557514166474621951830235525956886569495816353036195574536832235265007722422582873668753404700742232661451739766517420672644476219618024220397983536829835024662680305467687674469001869572099585891983164402516209196461851057442482740872298204109437109922361752853153022121091762951208863569597169079462572603250897522297040434128808223321533901195515665140790221756461654212957878042231382078553676907726666431316593195462068720646450914872744082488128177653475168679073591862464426874641991499778939913129472014591999678257620639485262503594282864024622559103789556345382831782355983912962511600369101312659057197182001817243605955127578519983299892856386044587104693349518653903308428042182726036389445415780244174574723414697299996312510945622746959743313905497801628876810654967562756493383488845926982941631401470509141417954535093868764523909372306624190671584760292185470204202383804367213501946179150579154936284590867887709863106792607614583383516922029219901101296073586082944731440797201471015218046346250032264096871672963540969636219832048850465433443803786691927572175750574034787186060267180224742047834253180940526988056615337534872773026542125606463481386346689646871290637011627062170994667015199335574248981167273508265781724812649127907144250485223405560573120864698856746034511488116745565359920634787280265752554024873596622892873895341062544984820943340027649566257313012986868360780082035610679011754491733115104587831647941683545966745646230513852185991884480001121253357348715847944908169635303946872530537889777105440549557494671967073455522815183424102653868967505983299961872049235688535145553580038383814076104409224649647826522086543833690246120472557870908649235399515073780835273005095702764926293166727667520471557985345977264323716791807279963676916552898249196187408611111922759468652269660989899373621790713926965635625772507292168406789307638883891428533364743678983664741817149700533136079794881324210720612800521634225331990839873746321891445776218415576455440727336896306512345682353819585333310447693766227437059838432638104031372624456414311997529368471041185707435156153121007354626195038244794777444936516114319489148096859756147044319685335325156154124038860801085100316625006035068188234382038597807689450066597604900287359368833895919090609182062762324374091359957327323492119140006891940227050362692013131070406957762348299882549652830427113552788078142077417636467613606700076093600349616441182193688405289280437541068020063605763328830618278789631280638564557096482902100637765037994014972457588431179148564043331412437618115617610064935398259457442077414739481287133491784051731314795712171913306821407199566408926726929709789953277707020910545964845813996977073936560929194915253028687181018766424874866677410333142980118142113404977597160874363025220088076297608145048812328580449564543054482241701315776774249872702136127303334864446555355115947985407524638294094647910241214110079841768852074175816866685236768271941563296591074286439223790075954292600151119507591407104542898638264345112880256618361009001798437410242372138671463077918701580601473454046628330640846803107482885374308110232959222866460497088081881382291227974605207903656336068965050865347715180112086404907454385824972916266688339705987827149573979159728789960460942339343147245678240362546258331799055198384406367447136545587712746625309599718249265500601211851349099588701762385901137098651871063745828360227282437494150525621373966027152104943889118643910719220905660629767823538602393171668628849789797131168501668218859005543951667044885825147298761508342274784875202870136597569865425995024573763920996715503175435608213942639335069543895845273038032679542569478158672222382817996611206722121974343566110870807121790585816369282874278588756271209640778958251490154151150206004841453258003618084586849885181213322826645744539613802919890239909560327983028252250514565613286625233149387763902128843347743600022008436966051618330867674984728236777712937028630012746380859029629388486292179050941440748111338261384419816096389059502213009285621083551051819037426377671829531992082635920418830617171066477545076046545526595474428625593643343246884236640360576282549488633769443691878556287094819999814446640611852595322247665596663397650786252401300740576895657333880894615894209522511731675059724725019996464671943101446767666488163051556386728525260866053179163416009025577462318711754944345129894001032733451543078419681900654902243073746018243992590455318263274187937214542685385246309506608759866331622147392862843439588681127831024216216272525377713949613612023383788350054459748317398358290699892488838802439571720274732165738144473029542782537484193302757512411837086577766834858418031262665663871512441794275312619570031263099649128917308495858714456575012169629067027043634591758659823420064952444104389290210724901025976861742688879014488534702925723598366467291967392752654451513831944790876610417329494847630221585469896739047929585379873966498359990055790001209193226269267260498999029616106580358059503650317500980148703759670236720654455452034348090711433177111565945821239163870342110965158614182011527173980385944359903374623511262889712962004400285090811085854691767423204198958914416475608737437889611273783651604889992637566840549820306715821454672506578138669482476044440232525542386170897005908382640080199973113330355132819073123957956367609020607130202631789178057437221738117878942736029691400367329912944065886687485978928548251028718116869681839097403047228063478278072328803969101020982423395840024039992101398993280607017273858078820140389010640324697455264654648988792609617811085027594466295037041418205012737196335906096362014788490634004776095196686469008285168628127225442192045648467564561805595319215542169878303497746337554270447801823423470183720130924019804995170555850855633194076699011602125231066738218756931954210595004463461482435566883788236919317220596037557485489127733932255449007691721052830206081796515555089482306641528151763355029951076094232593355420117532923190993553854109924787971418510140548139956281686249930726143733067436121174844851963306141051476690831541085843259962298350172226235315463441912313129573909489785426412161270915589248290621339674842275963379276470666089557663386794574578362073281665397139765088770333517245798613928693697950296817580792952084072204120434347889405269752673087863904581547672334779623562484967311562100683389031272520860073314862169533097555602571558472908370448944723427484585116831862712257327433406561443431067852926514613461278217082177361714856771765612046066828171007819470774522690239258528319904255786227088629203054618051076542086519324534878074911272245722781566388671411800762974017973226307963917148846608839417133934445862854614827697655779511777215994774089404063336697138839819309605964986396353158536597112594460213655544703254815676148637556546364238393905601032175831442576526759364625451257400030003658595154599871581898392815268857231514270888557967660809094054203891600851640424046891612606900673162944370984073599799458707078393624266390330759490798222988488903660677176825808036356376427520133185698827355086349032108187742207374304232808116438689424089655519210833897290797566525390960278300380779918626134063732334132743928051385734277742932623783853713653839905529159954365575189219232344377362189093031577382448212196283945372385109575798526307189458456501610850338136280215635920437706615246111276326328038449090065153134785199530350616028543214286174377257196720749301142684093401668655084605540955866223673338064657706137477598142718014806098149197790272953752173568864764964378612351406391276064616394387271345483928774525174123086614592740762550303408120101151897654477126903127810531542085291895208111390191968177780752415991327760357237118318882234501846265595422760658875309501803303389930198321476678754316664604914038966948001408752373439969668032636520169252393125692982364513777150426927509805083616676427670444905174535787590107518312071589093970182045124509100060351420989396669670906476705215741844386091635646120247415065613567370826131692735777328669724987360203975655992613405190865302756120147727858171296617483152374837946916969002837795305868220274443172871198310542272466440070533557183197804628923266420530393318152641230487674952380990631659376725300841896802113091782612596554344996192839189446809302208396426953787080360765139099125720784885283197349719645601207077256783324025056532149866123931699303999588387864520344714214672850741660660228672499715072719408488929519979999017100827099551171718691531818530666145055508335168629338735356123407002400768974976764675206881550318955624437661418001747732547241833215981004539785406437995207590197811821718207859346912292214006091638425477851985392212423352872848767002820408172642998356305959363044759664485475073140171069399593108277181006536723204455769510941253968782177042060415372094136091136931209833729977212324459046478141961852586046759129643599632652916557777553490416927439421269578462133509387100952303955633980517636808158550218036489655741050119539675070286124489018044047648796462510116832464143766386013872129293641931900130985802194323730527344322148342723675533466559512537096024913153655806352078931107890462867751354606995831571771820233274969113516959054278372175650802084666597148854942379392209702528039500871981841532431179973214736752463767176901625859002293307096563428969281137304930818156309432392515689391505251389103312030383280584359770978187465606293038444951800619314309810107220875537375452383190568984092957379469474171968276902632423859440252684815473890919637300593184670690251369099490822596394717533414572032321124084612721322605629935468915954755011151293309505126452963542339957141742456630862091382465250069953623049043489947922734976440929610393775086839390238662409004321028587696895090476425402876619157116272393566046213701616917539041181065893667698094241983251127300680068793416578673967348460031502347703025382461323445528288432150258346837494286301864838498283219399973456316477185147196477896985498392923045445466774926242768725242327589341240652604501109791611461675009225984622725983461389788146851766389679985483279019688792681152705694351255243855730450792174402621609728130687923377509050685261979390352380395419263845174186843319119489435003150767534830445611413005613662867130498343994667168061283071015182319485287329656932562736043490118194117892054885852644444309189015160931424121372798086164738793864164749815351223803431226108496266234304851369569267275400304088358330023364651504723209914994127816448868890207024380976396605520035336197019304908780143981960699860537213510477593705843894647867047401733004428149291080744446869633514987462892818567580130783935480207117238723631336732337297847911099229056529457899883212316060917357829239434563109022001133210849993839482055974811865528699074290503353892413971957618939003494604568285514377438818424182759881188607410087296772008692904559866058478037318453797499842265131211156802846708521179021124073814405787863184088095367185527295992011928097215239783185963899017575720553269198108085275400918016065588694412596508905127129590859849763972922723426289715469399069511543109827684785788035080682799476923389625869584844692194860392550460276572144489927619076768030531356395290151770957103109846904695632920661258776840199016065202818366051487715413420504544873338119778170900311415084606333318494470578494051772495897750925055314545703022257565413469086204890304669130845686220793590565925003873978799669479235279761914708305202907459293629476436872010421989442388331829894334104075845104192672916969360828955606043294572479985280967270175474956490032764017904806450687598515802585312803110755081835034088392545700782533919133297544859353207346069073374680981582837738904294316558163144679382480799717387817103461596039110922570268178241221680244272341411408601211384937118329376695466417137828253588568960827693656265138582963202195725453937337347478342378629245382697891608555797992162894190495258100385206232984137354866373230939337932036453271575775012177124871253578655947092678083642175492760784324895440513453991927836493755769109943580770316784094966398062552448741324701850375508682802142246717318154962441275269180397684509454553105810087990050488807822731653416266011611764189206204165226827382551458739857860599234617856873406304771795079747778736148830527475884810128975283435372271046865397314579409261383603485559443477797188865697041145151766751276403010934413033485053637897033466560926152956265862652057864587320904204263796259753230524889749733877808123569398333308349701691959402923564316900298391442196501784690349490245086547736394517298891761675427973701319681709154633083383481341042238983325726754645275069513327400442406550487799954720121480854059444072695560965976697103790501589492110398806802215423394512885220101841196867250716941391943715252335532604234957566839512890036760820584064808176532346886781805270447010136571657088656792369618507522616402312537398159982341695111739643006201471264808439771391684013648798539075688064044447492562953184612110949538736611530993553809423192510049490156192496748998160512275018312447181620210689878835485885541828903333374008304570892761532307022831129757098720227749462076575466267767834192923496581263135761303655235315970700433319972149280253497682422601970998766742120639250134055950486202387546710970740233893497177767261606665754791433125506807345443614112451246527482976669985799405179545984480738835014868546283883148649335891571720797881501947127273776313443193527087613311878778687641519681224321286353288438053555475982911598900629374174325324530482671811398569880127454898176432704858960451326609171072726745035240981492481258779247812440608497453768647552634671484115079951487470168193155843617601788411813251455646153855773128911275160253345619050547596560601532739538563296893025549476447941234771350142933854964407497622451279881504552529299893169273480391199474056767862397696446710799299566663300169349825090459130248187819275681908338024693507505602781616617260453067047741385461439693092989099582022685743092733910868749243087837730521707339487330611771243288232961378256747155886830612189569145419740759538426924119390776876535216553183635472553398374556075084399083448566715821290412274737694170903316443863172907540366268036376545021998458352294237210583531028457622471324344833853612412976906352303285459071715967508247517522008309516111914602449185534237905546676467120867484026427856086341067589272928567039860291534129836954155379197708432959467435392518878772961497872664021977872870566489882651386348766470185165728425524189468657599687743965832500717727377148817921832395351060472722956803725436554177827207978661545861205934355205168360602669509488121864364453241541196849521652758827771972038704179196438837714476474285438606987090364802253420921461948253625581454528773713630894582896535227798901841281975852953851493976246692859905346164748114408122874974017340972251991803568499536916894736496558956495063526763496295991420624067926904534868302474446449092530926567071284932555729216797443582556861792832728444743056443997217012003164903389566378521203316549822855498670057310074553821362151156529266807984384452044171819356837200277193077545316524893151953881384810836088894769432158028994860361117786752475225938364584695369075191129368422453974632750124999423645829713792089450555201878686871166783903302659712472917862982037216993669606761818654725221241095919408425973397671471208086942567996024996044189337021869808157569002042353685526901582753752194938013315193660870385333531279218452976913404257014896423696722058153783929868046012835063469678295178333440461384906942152554395850499946571537807773602835606275989673021790544418931826090133133165170783493809737452998050935319331983290947302685195111547946970130568799547689810278116588602600167339229113394970755868157625544315829744214385177381785557574659659644291484665465319759655139017976906124804460729726954459341130482540717756605638801499611508780325715734910626543953052142152863062247830521544387242886921921795174538684473486632274371491552162355030361393242095911702802601394036900140525809589851416742403505587571099152547824911742966640203407236810432736360346828501796123212693526617010083691716332586681869583982073718261075789643173034023624202266600133915504655733710361565135056722989898414916746736916273828159551918505345479328469574932287996392961620734101320104765383301102892694222337348563546390051212859032759193189512899757829228938518732586187296096323481196164285086810504227426648162278271599432457162028382068209211385815649979124291200820913844428336617864733250352373925434389077099971029685503467384824053603198561664029166015089694846625287756169561701122086098199987286918103903749896873935455149467193417666992183148948715007972040327953322285530739053408823104003878296858692020302590623489177529661407433547923085311827981660751553260426198174254397741380658609402482117230127997059962835156086069616071764064040220952140095114203388468240682178312878956506063291874608751163893735050699064602605535647071202332826223559921995873240868991393670958615086226551172863794630303421288643784995865556025299295289509341563316148122625187505436948176322309596366156335020956185828279091292623211625381035079071138315511608213439624632768105551121045444475294237664664461991701379420374350095638130669897168465195245131516837970582894356670346452059715725858869301127338643252553476324919148358653977846544413332721639849819776629370598819827734688920993416848859564872604658778207119312034798844039773805144909428032660192242923744167302173763706681212440341990316541408846740843603533926982673919921286440106577469897862719320608487616091318894866713566334540745927273518843399875904334191384792115369282486950857724324902983155860809535066961060663066150430830527714210508441818754574643398439875101561774588220519520787441589892615476326432553555164630910234242672129928862689972260293966373722238597379931550075690389037094483244139522617726140014208992777977166820671110057191604402273170854111155311253378625695242990725766151858330141354701338507052893906721126022013771712186110662846129298231548624068365328175692979796668729071388289027191305998927063897464716673082998241837206813993157302787442812556727701695517743987001149581951511516423508107028710477332786632370474104099359825023653523601614352991113237728800863303718039231347105412137028728843842746322004099707766239637299386303809874384325462055976626755185375520053519860448881107262840383285548238027403508303408049059887590305847243333912384627658739984740387970634539787477198284425807796972216985349427651842136053011013537255562466914679199796893816367101601957976761006151453258173500566185151722912775673125899621071471858349929232462754156059930970051005286219558694746750487589665053993024370019941110617168006197224934608658595352163947069842737900169905732932816774565720334173670995302460423386161128737447728232872908979103203794219690449837567597819331403901566887181038245574255115154668283039314797996685019707898999762824877356689297476547523410846125409530946365292621845827867192373823595456635837355785328561089961838811871259968296713316897734833635946763285314802178817189826001440431774361565045091327972436279609806104328325294811666707500800148038896450855998742129698310810356119613552243095483995597274319104056550088325190427404639928311808168458907416901063646781391484563605348418691858863443533294110561351083053858703554502527479944208929104116831515009296989076547015298024767364900844812553845869198882349937869510652656468540299364339613091063451047960035441086142540371913687391397936432185487629550497225361436526066174409077173111753796224443509072600809794975379999166114529668551802777169530079638611600595798088286414759553683160639185417579724073737011348565061852322798103629181799127726227511594301452305882606348909848042959294920139340625572860380376406534325964242285047346418061115207390278695498454439250550483819585308716541172382876524723391931091412408724290738296451862113427375242240408364399340091726109729428706397530603926615553805713590864840634973908479577942049337265174702035209637178519477328836291246555989146019087348276826349536110688759802729106537164953498614444058003524840914579812665770798157021987261967075553873653982494105602475564648228853931827860327831115970534117882558525989988729273889402499044700434936643517769515106974926263703284635982542013422739802884408481281405267493321261581924489782002590459072080733725791089327084751096836570493512206494136249660498574505077248915971594391868210812174112574120885985838667499686058595351377372255499480908919335298153784677323803506466349409996831679551119109029330229450175840017532007097604007086832200406103670721100574763008460497764484038945786814341716111337958863911431514617422395027492791421724224297481445515520652729653301973841496645561870742703280417813973524428129402736479650902161506354237264573654552675670564243483104088668048714016412831087434326992912863904017852919520568286103965939764713902392420963113245945911788426250870304267317730658444485809124177014832215539055292377145732599347824820558406934918088231004854445631017956978516174462461497126825632513194460315571119600562273621327137854794193644233821503198392687746572652584030174342668813375878159482949286159586661617460713974386357987625157716612315239679512834872512952435266197483411761199993056029383445747430361882357604122765499308857931852099929436439165924293424241618792886960081408942483249775356463164002117571300647561985808351074361149782806004857687835406920979796589421655411557856349402424903525063818368186143259292456244736059466473322488717386623503393326953605892584170440691269935857793408786156135830756975017001321799481065756808441772218670879626642516246461672224888164230256330254649983506128159179577440378344414693587900659382625376483884316049211384857403564369793780761881949232065019699591220213476661981600620612212465465614382078677157976073064526625771751769867195293993118095706918359530381602794530916249619010057485592425285784121934318578571933255038236910327425239610338556612895070007347817962774239254230148852713652448686021992646163704225641897210810654138866273100575646500248533921838198266539887474146826421550041028925294047628124460251709904285986095369500451768581889304849424120345455458650117668873022090594769478718841452537047758621736580616193111911802691247910847857047586237680518700105069630684459066956071091195572201739706362661251478207278470747808567131722627025677690454673499683936451004873702298757105449043553119137552481981060525122688162073673908713617047910461052576301901050143435468311006277552782386334413238059984888702635228320296863452568856754766388937997261234996685648043238605428515411535370824743174326690553869039808547133870900807505092781015749556500508165703823236392122380133195859181615322144214650591774648361140788609171858198407290283895045671554862048696741529856282854341983802561883763702891507192017574961052424245799324325554596972404034375497673820926058113348233540776993663573264230702391209068797210804058644669432394057819708920341056619649563548685927919789422774206112348704765346413002475845247075873934505048772522564537160971135380930276829840435067183123064813473593651985627526361697428809542372173956394060553438160208541160678368515743008353647762949815463505759071101164775499683580801807931249767087866210336545283205433492062788804316103720959450201484656208969302642532801482976139684007103325336938665394813844052807470136634425979887247518529993104553604587796240074514683192685127083174824399519755471595028472935033199285472872522168203437105337359560348506800828263753308325696892431006638846526042562349617056682543208351268525957923727184294657477473453884072681051934682776236654067254278260282155545740325128153387885532456614234236924859654574460429405352670777823340343862100878565166210756610499078080635174858798707881211162950220285738652910015959540461795681928291238225143761372916105123192687606497562327983485640754673769587104697634157767401962646756853467708312923289003427807686719047640790557981391323166035537063876435522592678991598460659589646661511423429154670908588096361353050324463425049148766667354897756777390515342871551821114243882723323108162300422578610003099287951299191674339060800115964718518969626267884462148352869809851808792839779946799185008481055888369062701448405322908005126735804690367237734553945810597708800246188704196905571886667655444160513304556907652283988498010149947869410981387972481066147234416649605033447400113498918517264697048572633474178993120551091408871468142525744744922031314333389732573164677935149868948781137154225651246596881862525726782451294510446672401516616291512229516478949978088892068759650374994064999841628576023147574675443966585514879356038206582329514158078183803596899459278100365723589287442184540606757312135019022135739348417639268839889552977846106487398040932575092335943787498417065843148500012256896015485631748764486348025128953361283437511570356478782771022746897839344736592085473236966420411213187310621270815729162121974867954946281504156813121486498083843260778106256033554091777859802006108849688731340394104905289890477896921232059663142294320901592740994744714976778065753019959933061583830305215322021092693641900530361683696645925330551323862570589209971447488075063349149588284249165860796500128861031515453898349263682180202219250053998073289908810850842858773611194212729351731950290902998701716763405971012131308931256038642794112151368732779356247536154518348463839629401183408985850063413787199752208299439467327054579130038049723159117548793861379812842713034247056460687866259258603236188988498928924672687615281552205604947186511112532023011669810647816389142035635320616206436221682465601960338508722582472571379150707454170300981846277721013669701363747166489589419976776157971804497208042919222736777400322277587007558056545920601092976979364376326555591421357598821995043742307496704233808540267949474058709842178685457232182225497531295572636116513891869970136936097237853828621080381714800292427252683015302452656541193124700266864349145915265020591989321174772382787298416581650426766398252614892705632787202148258138805644600829122154139382505250449047342376013309084535974501375600252441525523293608961051563333193165635758925981768849576464997867709796550285898208396142557273206771048630432070066865614493764084339757825198985744711142905038262578255829766747529316672224694093828389445330775664518756034717886376240186414328883219327175288382713007824200638983800946063919099940191690987868558678909442585460818397948851843178650942788788105900830077907433802613984079383728390442920631550851753808667797123836828408018196724753493588710385723601152558594268838777758065748563773834044922258241926641949956898555359195854087344946906498822772652964624275907910214518505326706386224500635970094712862464726419632056885699716205375371774515628726882816435294204173201394412482725183853481566042977813182073803267287766745712398109684474171928786926829241564454745769064836549666237195400178709891458839005150783126060600573926897883408250540493922557630024115621594376143655167148515893191485686484395807338794528692480848730726214586154297607785760698006079367177592041597823397162990715001586729402510675685255912494329063760760985655185330623610414453377303311766018858733441766510295020952959369590171557666465193629320927994048733987222012262607449959366212439603445550685349710750022819485278440412236044757671895524783766630322199213710312525012234126158442700358025578966981221936640301293840319584117170886814211554536784356909332396021173232927771889321320215281365528741110164133617526594084716988399642889868549087031588406460953401103095886133119876921503550967425545225270500270524958735134904285132914312261472823563898463198468786347778266412948916602993336684494711410132932886073136581538812052019614630062990212384588173485813725106219314542681951375727626678192718990821378064326892430590608006664409829391119227724807370114218171348391828022073288846130629474281156691074798902297348580316098651226035636159486699856229536637863974390989220682119276792211805581781403524857375335696803845381025342032142657410971187105216490431657938437724799714486344829413689611111731081751002270225292002966741380625065625255657091125975639136727692991387315698527995987159032042388713623729018143650096756098422553715034745207679839703749993239747792344933001369439383177669927989775521833131596464027065699867575323809043355336313148431409835515421757229174241603490913009837302002564052877441800317848763768940562807678804128752089005888168407494062173132453932524510796356036491085163739607827946245823474607608897636207293110737427349381951436062757788865608315143342218409354212528631362167987377539332743360191678433937301739472514457059600791309016455296659407633057021971379479521854382016896534277855084710493974850408341512442735029766103069908643283836204964608438771240740121285339682624099913543128677505486311046987293123118065748699534110478940835859229739693846504514224515327940352973240756565217272998349206003596742009083399610229143027524719204795783618140903022719472753001178939723412423057727805807170884166693443569306907042516399799252934895780715890576211585967713467831545324676498752674039810826072752298053767515944676653304271365289694503462217944532350696240178743480218086461292389973223040006717059065284845444251122910872968077991505409122186946847906665685737078671262893524886813133588599673972994231138505607913935147708125765381011623755771700680090748716960135891678161067125308340970043068659739713536686411549792067342754006354741528320381991358307947033271272886297327958033554319074342753992212169150465624744595058577272330649597451805017503176520850207964445049472600310063459495112582630040551578338784474026049998013682469782605868456765690417612765166051419865922845154293811662763597791653057212647043269681526110116876285319097227019648621147473397080008478621246328734843898833832283065310267320858993638579149666517565732601816952848092229746823830885830575503654239405014435393031054535993433324038202182525809537390801924600628104873586441475476433869826313434815959433476206533577390431051812195127571764503137262742332335421903302746519732561518383291817260450489757077633829115456749868154679966647412533960441388019059172233886503483237412203415438302558760622764974412507380346062426491144101315778853220860755058062496371224538033372648751165497948391737304161647887759337634940216636698977075022835842381184379732098909891033674574935014055735717050546698394225994376386179537416725891248255953897851128915680889184756193331264361255329369204241844861923578163270445242603513041917924098652016509466288814921783642072880897186477944806905139281880753666510375579317220484256502772800900376743782174225270811643236153918156596863883319975794154396154620502500494410495295108757608463441139588996352857945602191699209793910353007760581895964988178123987270181873740049553045514773698530050917598996141390168200378626721389824281639121837047925643050738447266734814949410181873316317184026762082439456972183630862312929819960899015916053928096317418392426747034570868389294906671772305772986181345584388584874947852393056699149119822432100476568024804160799780179164363419701533826982655449294834749111607861973838896262542663302847385201784392751744149829224669590269059086541132483294998286667676614327639826506776703771967626962476306202940512532140685382253411487988221144248074725922714033931845999386891397650193778866773577966218205974435067161418313113259079286948074681417430464431569502263577554667942001331230125052954918662722728092174466525960576108863693826488976015550315125128426619471407116612342279522157101499651213515645842922694250073801030428241989340570788891341971869325190135407878254847207655068297602827438218676000039895788137863484958009314817200149672467582112323769658625324457130805959331752960864124010149256836120832766792252747739042724117739531677679876905538947899084006076979372539740362414471845924916330030074299030887395882048745406655134679342109899822233418535727740890659537825228600175642044443302606932812353356416298704683460670112764998571576984477243954161914623366802543332453525899672455997093599882450391705797836691311379981673733857978079071519118633674773007688953326761932191161474046057590964467172528902497140044443966157194440180782735816644022611450621949198756246613004614783973551210811591498910090423527112437458819140969225254686890384979723650918179302780947755751726969004554845680729392383183239078892394413237659624313410046756074523371051681474210878116379925681333790989867244331609461433655476969925133843802115525416633726766035636382849391236859039664979829577942592102969343618596511704334061591113978052286739948139079485105629190142359186800755047088572858848580909749962437664435068464315886542942572977146991837839214197333452394621656489806453660079252443428940214207506943938062677481297538133368128370538588810789414306065357350089202097518047700095473042007009027839884924659963324635630182422030449049288727535893370703846393083646721378623127249159366297481742635566168058961175049355506495901872008261514785225713883624829576593664671392428359975291653420722624573171572309307709659437057295552142738336923818231052120531957101296277932524103940112621020857710435950895910106402964076286076090950584918693430038136420434498089139740324204199614128112459105940037987857724094215788788509382927049379978459802861967214688288647946696568935630930195110627942201354304761923697302611760319173164259158171549709047299875912338465462241812800482613691383417897659016158549869940559909580353415612012034810311174595825255509431366934626116580944562111345502716956694854722781920289968090350248640332867796366560345151232531438652794015767879993521219812196065350538576064409655501685607815829007739026437149223421233559088181420637178717035317232640186501008996304721033271743847182318350572456782786534824889379118011715845707937022547209524973130196391370871074445166731915280601651753521606553821753496249906255699622975110941560931804952203461570448337834348646760677153311052099020932973359485036879731427130295147376899489783978744823180663767402399171024738847781362583977684300740696679033931403348345418856403339963277687819104605520071364033918175527976608551202647075391184013156279093452346380060664301066813693451508338646382428615908434815940975133577697531823906421566253306616349194090927436067722633213782810224542941842460900879340235375861336823860133659415706000036105530353177493565516939682292620332791199298939316421709209996893750202917191562652994470753339834246488580322973156395987054399293483377516849805190793482622784193764319358659348657056533129435821314799337115434235798023737666590351240456714644988536073151634124824514979128488426373322076925308436400513244579718157207443811406464300377985729193442460831730729621430710780003692912168129874482830778908639726115313752867487824369818071073242117270295239501124076337628704489639802496584119899468520655167607818250807983198618948612069733280970560352696026278353370962013885955270692139617382639443158217574068220887356428390464341975026121710928749700482268019859743957157997248320484185761722668232649100089192393921047461806329200260796018809348552118166781417272046627897986699334171379610937154347448919908138049013896648977289621722475630009704786728732894472707552661359675075243758138299370267588067457536849288401817147100546227341606409190895292419332975971761771398185264781364242233053993945674516956301297596479687931381503860228679444616230609385551341402044203359426798703892913142378617484077087124756561044311899279932806290464551611563771320389000400480457671516473962871692585800505061583030991566712239385587759705450905215642979767174601344016690321556220054039797158810642452018182626246518504946733207902178447996730166189680091277850799235812260361225459250374479683566544081003176064697738717563272297191104328316710973702658344544721021262975417594028203881936221027300233821917367441669361640450637639287412481555170957995129278584446047774864800576562547671552386884703577780840687702274199427786702243547633406063373026609418123283666339796400637061145437002101812005922854588170916465639475284910100705493546548137767482166253536986928278463319884211392389700200132590593925450503228911046967009877867635486351066249238799656417390465229606677506562810528463285398483228228160324125664802576925698710685247152613335259440973175236512924447792271170789921658287783543656168864974504602604733379306877560372007203003432990932321759610163110414102592302925414123202482587368342196125568274135446039759360986136004457918146784510529633327992718752822722031036525916341291745547601076457900928152300126699158671008074371060892423239188722562145269229470216795349866965847701371996140756760506160024841733635003998011591247217600169516756584518070218852011869240056502683630487831136106863542919457665018514952303566585955868206852551006565365330260894803535088617446974457315354979613901223194934997591711516376775111168666336420791201314047040703819260053275295590355461422412543903333692637515826000783695922087528299891991944253217200256371695205574122259903992378538090135624385673545487212044994270283990429314751791234070031056441993755098421958859157219023317717182922619885545887857722374283401261878371018432413381276327267424531696385941322582038240182359276568871558753264633916470817285220136251814194046573369987272155088629228672902932784002008987974418276105845659629604865830541989706998735996893747390516651891921239997956924307401161957368883629651434663746077850365625701776598942013985551614670046003006448698853838717844833609721808615688963655888421252077961221096146882797051748201220380874637988011538086485944209871828157541438704254988931554898021052676380854968819434662326834532510498630342172389637295282630854667644600421008242692296577968428078739023107660926871832716641589947206493430637435803767223669490274809003281284060792178169214801988688626153942213002928400480201268624908084157775807833860346800059334208072178149448050768362301459886299166404471298187281689466567132702446710165366024715575601182982021903280287663243377802815279235633352287845910915893744071479379393679226205374495125903517493965321573048300897460860799232329274360588174165109728909989668112992644182063418320178950223771061264709554394387176929977108853921257870104937600263572525599901067555766226086443678876394072338589246931949304449581468031745450954257785116214965988535774138685148095571731499034449487383555952417885834504873660893532010859849099910210497291819101465404856261977783477248846027160834291423373620413860168642757282417643305017127689364056708521592447562097586123219242418010922785553256825469552462656709643443682838114896903638795021089757363979688149930978381971189439392037035164459377750832666950448167575794715460958171548949112256656432043108116548068263230754061251736699961104780821068180674776221957853169865050056328079250275214512675402921383341330655856084552808155861264882220655513927485889689813736362545149775050318590154465116104579034881449668825019942480884900059444831207798911126448339704935529587091763422927449891392900893287794632196918410644110560700854174277407317090656797200194039336301511773004060204450700807230942886144240738796356747918640111867689561995104138281053465318906209292860690782343410561240027646951702744734788227032664702672788294622434437940357887118077267564916404761703957081876748277989650139431201411637394343609777543746111301643980653159833419827519894310977744980994209761824667231936301733090660817948418379452607759584498343918622293634469953941218467798195605300199833127936271831224823352621003621334121486600524319875902722761744552603802760169349959480906536161742339788996568032831008358867576124303342444927688366785487202024524797772286312632808975571395420455116270864843257933312215330750551622450599357176096756860449834458766151186403246808579318418051950035099846520119602999666385606953119509060375845966721640154326145650105513070911575295861203054303194281166623761744074173361125025846116422183447251169772476917828531361526028699081483430341890317857510033909982236817163564592765160218919790811871401888221681276722109179689600867228941244082421073355595620637424199103756829795469380614029881655632867728959756270838572393731205475667021260229904377449547997628851613954402307007213409089941746639835025534957245150253460196684257139502889288003293414394719154475657600568867532989256556138404118574355815088352866991713362460450473670479132199648415349920864557498636217374097617253384984171478466772752291451373901167719484761658700155547003930143463572488861660687588533902630505997235424607932715727870809424790965134242121289700869015251098649778778180657714470809828335184768119154535844044448526684675351115796726329967387935086729583282749799650574591723907188045785336851485511265994575127794144376135554371199188142180566631947579040175756080073121817797347156057225102720721866208491910082894275469299977370886135485250948279811528083685134614706054115905614997112027121793358748511876554735403417671444780172999460835793252327156644504211565152985474780279700261229363376986786253950282013805240674996357342921171963550948565399366182848079174625003366637259235794476440391110073382653431528098562650205662853191677691634129327416876675805686639543714330629800921129415455299731771131115365730458012587724662404940896599531905638002682064396611699997791037220486095237196579594290466442808485993410988076486304113255597481752883127579716458256745561796178684622839529837892065134218296216044522409513156685560740017462862839269733429054450540795384105245484068531620877689908290032678320918416562150244935469468438639792766728267467807550546299989594042449712717099178405880683883567279721371998254296541994381212295024126590521131686159750397172145217997365952174779120154438777680141155504028158867908802002660780552054138320364808510694877308447176987107837629855845332706891080747764101406223996404255657939019286492354900786027693591647583335533200054237534516239792205957739477140948459361972900180870136717670402580764830974856126540743906204626339028740636604159473064245402641245922606659123298924085507201722860699134868601098456451305368146532737774054066955543598880666571525095699435567079585347422899963266794523480294463566502017798640013743015217155150731313122567752840330498268707080563856050282553860067497163575318756032196873256557100058703408031920811351621006091678395472230278619457479404025530495029003020639106348188892381453852665232733301499920803567508773830499462951523672536781667501022030069246896561363967805548827783206089609160356423675578786418452065427038178238564892267481957242857064232001111766839517777780624976381358194186656198307979214562305405915070725196200106511825527656111461310869348931333671295494389445663246358133454723679864462041530675483754307452940397152154108825988380787708553662682649759936307340965506373925752291916844912408717854056250814271667310617187942054080457229476117506419814030335097207450056454059367590968606300579408292071186965162571881011364166027859486432149769350313720179107718803933184104055714897454591795915051741861118719663210994243883333858313202182644522925767288768049078012075605109555974580963245512860335956937406803053526950500909077931405716985403817634058037878338376655925693037929886812831712563133736467196210407704191172313412720106636845123037275963060751272511605776327288541448253906974816632368870088885017770660361851289232199921822279036288605369781793178281768551391115535196323912619466924746015020911640148865630937517177408756738683333554273853267730379141895462254187534277364362498109927502344017634413393516016995078250353316807114951196028020253061622974492143142827041242521529556324611573319358185759462367507674312984674462672301045971380577472232182965823030446082435683215020189935382667976540685238344080854163110131002010224509523983901927873715314748996345061589913964664258730776673075009066139484899999703417736380366082825452888639237210423611605598528184469190165560002724969729665657638825600843123601995159119737076288939533239301248363811797031197816382268320710535001181602812986889325742088835630318853034983724485353258277136215469713601966327378678795327110705013254474989311606286757219616249460056972712848868772241099166172615141601205650869411870773415167041378119893829790096386194581349380802472142563802434421023848518510885026873285894772719543885300582542837969303744676824387962924261708529198331668297936991207211552089446927646218742998620442369513469404885051413395151182688941460162336098577772026914311186884728050888195953492698152233681222130470466657697272879409482647697730831630039400837427831413293567139893627706983451369717882468061599293923301339756380269900213504168516883610968578527363829556475635935530455183505539249102152602093514971085010203877307799896769964842280766240955962306042694277674515722152028553523400141079700922167394812347533262850621164928710510299785610631085469003601282635511403840210820511694192011720803522390058507486159128853231702330139461778289314688501850625757303621918578654073017812982474812351238208011717950482468173955935745253572008802596043809009532498072979044370254878149514116305166194191739669643054576085433546277563161048282787924592492193045625959130378124196895103434662824154208664047203345781515336486743816316855228496669840288191897868274864008004630542936831614276127554729793175135018259670807999131508593673959826901113418033759999041940150608784045067063785178517377574471197398439434031199973558156345476666375390546214427367220755104176833428035648108236514218427564287700291887434390350309715540454342986524509657692903347100310232942969709460587758269608695678182328007967088098082264413721084213436506797321189877116113639949977231637336908889361122627642260436757883395947801502151374992797277651305300147233900240567317189587305170678312133309931753061638981427688407987117373774537835224272395221841878199007308322304507752168332648909546466589076724800743531128868627800431006474858579519580458994820401658216337357133889442579329211453699775350645293020863140713345485658560915740914504114496532349828449212394250289907525892772618482727755915579544270773801066862529503017483727675685650295814580035212929368022951066152908472469355025708978776667065047329104661635507917820427479972166586916213718304054891510449789947198716098381766398523935354820893016479163829900479038343400713282158976366620175241618171337314759014759823486914566460984221926560914782098720645429990157161322578055742229955107500042207718152645002526459136530002966013987295644655138710467274730517360868512050218844793254764154219037276803045227370794429196884789453987020972730366313583192800095359257996812055956075392931303910212658256496922771170828989834017563533486737784428966317074270762344048592602316549570833157743866427653301979651903657528638311222946777913442028074423164221826496093654047751337468667780156520598633610722113194773512065430255084890232619868377055900700738440473934114517879481612966351870715720766644216804029790932884079245822865651814465839871275706585582308800872268403211482842020676485155471205198741675091202272882648770075155510779735114259705875903427178261720327116232187452218499623570343055122630321519722085599361780679903424484073518772249724046019082266931272163877286194743382227395899388792669119452552010874770711257373143471691927024754849234103130713236437724449530068266143651876669614769970367885344861475218884262789532362946785454761393871228560845398747149721994960597644062175218848178025083160943833959816652506733456280131290275907034298387632671230910781569129540655615249007427826703062883093837564487724520424806832203985415333513216632055878265361050795463536137103803245181310622959190154015512028956765559866965830625622824777285118838019654940501163266266644421873797238699541175314315324185292598134772061711149938544475487996852734809156222812833127187630994667111450397176409576230906927403542780231723681428139774875585030025004671373893641315832217916824438037170990515519939816870951318742133082035115754108201538172243434474688745818378343071983206363518766144878173532597323986408658131402552433249242534647688634703118530305014751025947829616801339064955745316517656489668420202458402677065120357574180865563220843773053523951633725734979793928291812153464751367590388753726692397698568469753275663348313469640329736596068475057386217035379242108664466681374992349852097427226049055094074263726881863104401416547811403495368698383806591229639037655914556984511589348415301582179374667383565500922592265718167454181537726440766215672950466481929766764027167416793555408815658995533711099469216440201462251545233645092987116361924072318874028676483664629864779897431877481014241068768151381752175480451578956391322002553810231488497081492471746849663060194064942618617375295599808880877967444986010933475686081274927706960416406039858584119361835869787638256160250241987025531688189104309508109169915909956148111668503254197735042922875573918169020884078754568167184652469463138056698918764414183490953075950591249060251454008458812754089982597775412555720799419683920782873599149213349378451905437341778499476722056215763755088134201187881449388220198344177653976462126537432691924573411218553872273195175422623771636109111688816537641220019574061148797265307154076175636910468393317195991759600651644215274320008648396961828022426873931805550078517642830347496063856774898043110364498953494067394907600025413648048101886952881455959492500726060736254372931125403658729855022931584799150470318790976269006910720158975119194128914270907173003601208685186557395841831447544240698925454988849706576535962142166379939992841888733200615169609635799534175344356230367925808278167898366446679569837581004766015862192688064762696227659999786273876932623062281372126972287899229330494474943249835734565857294840547822120829141207442516921496015784826862672119045329628942717704839406894841055778978939332702264759195700900647680902388044989630182304678671254895904723984189996152954198421648179755057958859005071469022319342580687443234859202331211623479198290368272933109265020640160696588809912525027629304115528788077325465393477880819643930057989600425027478595545311321059640230128042006749928264186648261607987474908930006876722248894985534937243686565700230040953353280121352374551522452399195206362304869247546198162806296857348826144255814584303294801776115271514334253343074898055649049399929550684062577034530295442813109899228098515073758911571894570392187055923529013044886192293810485976057389471431379168231657633126475290224836155964486526225743116145591240899804208196211549710896449514286317379306075306577465559418939397292853673254133108075565822360327212718150210221421408695595565293545145819701591137462995742536110623433232494560805071131960403417326147378365618920085446445363701014499611993201365937073308855899281393190396575273303061618337743319353789625202535439709223747853949875048302135196569813217597571206626253059605210372738256790503033165304242251508141874679932982708309754194326104184687335048253278419541788193707019481495543969986716810573793655043553902055209494002678350866018398919585928536795129684230424644076825449870277173366630541439326906801703079245633084610319693880440775435375027102318684875902529379597541812939133733520507810781518279570720392116184675649557059326647170966075773527485679449590377726510808497110535465812235635190041342180546352796828485767167786530204567430341084116262122814881563242351344149338898058810149203792924766082666198648616270080152085228991504143350553746044173342512681249733412341180098307366377831232653883523175233144544900538191208844205858652941083081596197077459243235631092769970177312500342899655103264427266466010021361691396388008016593761310316363178355011889270539197035822290168654329426381471636757004660063436155912145971785477041799177501550241854947326357373412379035639424734589819173178530942889086571238917043819797649923419218692680072241271946546685021956735183234706991168289651141697092660496097268729369981387967267352913631586349112514780456096183160454521122745259663367054323295791114614002760474755894982874106314221628752355710392625881183411887506752658784693437142909170875892108627885191350477634271331556769060138021418907944160451640189820351471829150834153325615619946747891883584620601544938695069871721301100660663300514355865128309007004852164941211442619963252099624762789113410523235091306346662497152158326490375223055454577750416036792952722265976909865369014172737338383917803712473821219784048507581302458813347118952273934191902705793534961653952201009725877913164661386727585739802244540822007063422184797350749886642917295946407982012696513999129011835981112946567463626859427100976586435989766197440785822101711311845185508692441467675121891747988653416972197692546301025911308398668915310417720541173464724368056957717745858908895656759442207350712723335544842295237736354438214894878221627090919032979160433600252861029130852157080863651721299312766464029350033819566015898934637594915800758885839555890461796663486179608236355004108480696536420705159833106265834381088182105916787513605376774351173449883795207327671632113605872943004620549888388719202315803003993051008987530002768076111493461672834900099396541029693869304825017625479273602654248316587929068576355163596601869012449584869540257347171145917415581901474583630970092344490779668262236439611802719905629729930543427774368987387951112283941811700832934276478067883596111739058383209731286037297546712833470046024128878343309228639259740747366485660920468049558709312522674625207834754609826665242720896175307624674244146454431702577692399126322971445841262348552671603094144974137826882626866335237939850989639013039596574135604002578668653514559153608787154244721651349964355050833911735621480493632472968028664072967034533804272181356113476969732103631268600383492161363060819001932832210346182278520045290780386452855705892058760972486161544528842923493646237081884907496915271260397931353378259314305523390441151456068459053589994850245964677909606784780832444483057590828416854076010761011641314452006222090654013700773293329482324480585236272355298259840374444965880108515544793046720471164182713361242233188126023082731691957605862544328854771611850509137026821348679977628991716617043588618535255099649708489838298526316682503304207737410032683061148753653360040102531607748236646875566151722281375657085023400495024511130697446349299793748087289136200219230787055675659774299750816307748196084865657044001098885598765042059049097291374502414400232299946882027013510953860127646821550583958069327122732354596020698659119178822114812437648028004406512324395488953514079929695561081392666663222322452525250133048582597312538031703544258001264042110482925626820772377289651625311659055638521347144015914592758797440936205759339852342435375507803610972274481632283116038709226532813165542304819951264488754883949827193811477105560431501132418194196379147267281749554340787896172618756991328700355810370902588646680353863470857967715973708019645486377782110490137335034610489713439475975225865125932125602638744744862141536669911790033431571496216799784899227475230731411167186108292772769482538663174931985813945819666220261896348561953513444157627739129017195808862109329495175925144441825590638440879635396381168923012661554948460766578393500330774829740938252034495560847614656795866996167229558778295479187435176077647993029393359330819286848660959193492009176375257281408264375837941841684189706434154493087797561622532668057773445101563152348801871086276435502621804386208919789473127801461702734431353961782368545062361820244061393068662059730109685508906051244408171283471560066196225412735846991618958313125764196438860236487691573891602836868220104025482801569099190806383943007922730834537446050565309365965165248145472615822092051397945728921774481001100530889586608162889575556569076121696878042028344070921713178978601181275092671658546220685182303101821900795658106189636370372439168437894090441368808024920492827011589724983036228864120601423766878951609459320624732169520996382177815936008912456757675798099406812528718741252103647986910550011602156005310008113584954252179804349006822567506097520808980297775998970939793320292795286033148254004505311922960188356602373443189042391248054989458097919996830421745241243614921806904800822167951920863619447749439827507929350296877288015870062658425516783106337971291357355652744703730382405235521032177896072301115897910698652758411221362931924097410278619215224293233012852025618991661031807546832769821612587707237650499726208912556117954989304260277218140611083327194086136917351228350801617587477564125079120614635708096622559948619792995676353362738073398133745659818934031098141737809395701497268675350484160008627265615010018729079714637205172710080181702316845040826170062512122206252623080151424280080865040862644662925706218789378083728470285508021070786782401555815437473856235340639152209646120154963351058152699586348312283324972583766040973249742055001819172287366462993588302825941037792607014374216321523870654106263735055737057650183084142004691365864324235509998722168981513546720548004595852520547217871223991244215606377509931389761943204643664744733123333601160370596375540047671557828112248024428025576387029848846910290857376145283081873851394395786880202171283200083322187955639158281466627531119461003103912575168978358472787484496990223525369023333525453612576228410594397708834340800293365162826310097446071405208913621167865091150966572173094410790093985813341635190139039754154545740223554057933665603178519264742924215990030894230154598539738062927489381862144071811273694720486412688748098466442461371471647393774647308871489175014984271591778658358243493330637260097583064039122700408512914426968851677470748258379825503084863060888548711852315848915658027115445973944576839710939360237080962968336885816771455166836776695730972511026916969304941429924860061738266309143216037163337462676743454617678396955583740961060216696394685402448523989649317692971702513122298649365342542382305999351189513992101902703409994548213751771389559570155593982130415070229527388866812015024809427046769384101801601134840987275737002742628633286007667456069472187102095975436624784423613955288492030395374057884790375665695079407635390805687408870052886895225523384667846944869292461586225736904179528986987394026870193631713913253837298963888668098728134671353576469197962301641607482643239429794848726461837402112030716672350123849614368469519660135190946435345098878685314833386049627882244279685445005720888199155491955059573085731891108230744266722685424946310036431639490863905561109796790969563923997177759857917774339580058478640385847627800820123815875779180536427072687049502164645074060453809648626613363818679477049455453803624382312726186953199257142748836499656227157106029837507218623427711799626217738907365762046374426041246113814617622878334362835500495909639666190735701412045044389717766428510416303388088740462080536254620794633713664298146396583296312408820928256799977972787048599495785616459766527738850948731321080914153228990875591436605082948533408664596862752444587188810215450400788007064410178965309086419616915827749471692785083455486289810342709501822163993955033732581594894592027347111932638422434279737777632613788152319286151733460165611081809007470739710928790911709091480014022703917493658085883817386989895011366158234519377960986165017612330317741853087182562032000647056658966734961235873910517855217666937668323948475204275047244143792033217996839801525457599379428078973015711944523804812772536839026434379446000640768677247269497053421924161654633912458192640370844477157517358347806275886447888595023112765477122571896982227397913851559532918805733550317540043359466153813949758141926095138673913692668720224564377404015490099498674791978597650525329428245048339400147981221232526425344652721299147305152139212249943036223794619096073761416352440089999725950379426030919621520606868622556922009039550605776804953337257784050353391538612484722638357842926952329352524414665373316777461682172833605160768275362605763919429017952167406692231188110545498619161310446602839824420287528621410289287603640153988136549192879014411798129483385986563918044320383412931802978845432969480762594670054950417443175829531298314578840225661173628871647332966450797165541837956358228003633207634266742249649782474932987517784268086583176971745894204508995618900658710748506422295969388812841287388161516123851263876368175824073038850332764769969475460747044361258545721779656088153972436716636669616824313809063732957992750325121053306664195757701822090778079596502388923035778397508861370502222379359843096013345424784911574669092213670917366898904451729317759976203619815388174139818429966243320786041952653944793271110146318217373380853695985577265287767541281332184987349391910058527001143085552768145251285996001323409428711779955864321819962509220878679175274949765710298946845922842116960439144101754488801748965801175595132964054044120584730881631371782322628967434128196918943786061585174942054838335377549017990680703477022490952548232529425957838590656759183302483565201140960443133196515044136556499184083074449291299039922231622090268349607351888768428559210983890092657476496166611626348631078733156291115970720877447590245097073080341998616270547490746725706668984701981283814759567640433888196651643933113970810864946298873999498792119695307321149711700262670024957653502613581362288395175409731524741452865348316171151405177559519144135252521695166440665929116118074851347823535887209174020761443425472576622211051438328921118811665993776379381612263758772941489224312011889514351609077754749798872091730891466427806580641664795085005756350308630319710362411584098011576832546701032290302945679032820647372808243211433811365652169978212716438279825199854381495572442790899364927254175959367543354708535835407875245004672338868676725011861971943944394985150157902877803185789677340426132752696778544385224411170508957459564560463607122060887001242036759464500602760345377303577862597211192490763669649157191520053251210762455893436729336951181672431895308922030526679057519687746923044901433205797105691907260933113437166527988475689317499605696843358711622402223733029229529846412454747736279145200170348086605554818882244079930032680029907083990866461396762399664409937785546228735705580922690466050368333698736028223095967397013638473796911406786267245690145971307749355943103555975579415445495211496283956498380690137179668313080551271182803831600523237159301292499157600709128794663732034272044451802733758839429369920372026957519947133960694622059646362742353010687931107743436757679633814310267993597449451185199363098364364376250149113318667699374103640344213244540314619520499596230828269566416649604443934204387492776611337297657254573943992394840747718880485874605062348353394803349293292964322604701663537285266938568597648896105276624652634504790483782792285160338328039953772543928916978580878922349326441947221900169618419915358243051591278279103226372111554527983424778408927873827817737219327240087397372246460594010619306976619043248436073741237818079505630817340350478136704364019262087414892291096938275170191112498314300443711615665041854697888590612118508686106181987868332634797082095900314814635569253793990536175938746034746443443387016048751889167761220374484664080460125576748652471837486041375478648370487463540796230812255009309979301387213385516291117584864253321971842244314978477164974111766820860961319978699524915604430194094068468164890337470426346779272544527724519960213962442038208776339374951674950841419337335650053720780824164851583241092485938184279687555758814337892613163757204884913777521829295660024313087756776572616381790684286007940673967485500759758705731312958828115835475397652046388907949828291826253038365647263340690583204483518612080044062823268018830667611928639767875915354463623076939960493439679622969743179294895108447539764957386337710080695279623185839073118998810213180666356508305467912167500406178146443267683714398543112324457611067773478717825218311291199004138728434836023551215830722316733705496381582827809017038012183734769265618493812953094328068067574448499313393336359041030864805050931896090115347036258237624545464281738352080830639760595957026656069444698333220640348369043515064803379442224913879027518348532115973687262305092075132622966840955765422203995325501110092236718585339301171873506139976891691117956093088162443838831248403181022525340936211284544941098346484723083840352252267734677924372176794275290865318047622595642355533688890508383581878890296580161311811240639409951667597638009289019504483627662229106306722700087503202837014325587834887925842558319469131464269060087391395707952787855776662428813529467314938448405097171073592334415664943097991647380253046049862011555974807774930091078318853449659757825598930025310325994998432052663097108005078653378646347478636652689423351008798736473301897278563493004044229348136057162969839117286488384035921225026361061618325430981216485833103822558991563664205605268862411435075069489327674376901629309501915448727467260897268973960584563942627172497337396891818440642268767340931349460834725753907744837064172785122611563030371377642446660791631545317740984109012333655127000534821384491154420888906095733084521703838897090613567447169564247077110481484114629580082356347405063916421651739277795763744448971720988645466564757788226968985817406931221181565145788072551251967911714830912202983437750656271623654614970131246584564371890568459226493483316201294784565274747514992188688475757732171887046208169520073232314318448447922412941384874792067817882957785773921099665573802796155652986724499050314113797303033774516601413174267579504571460278353826115800218968651681218884824238565803184388495738921941502626840454763826553700859244815447847770649120977918796504482487442120961074476895595365695364914957559668129236704474273111704540985708880648789527280994794189323293774656775279636775618452632079470841266397825725721037312898201608096654524685885788120245601282209939382319774321511045078972314748835160119355498316354911589519428442522528802445638201090998138979399970514883613387077348340456421283857569919720469337386828554789996037155332264152371657883451751038819989015467506998998579479221206286488198820260235132659813834174532599770232339248680334012731507419136761330074533834898457145650777831878861545707830390391390398118106704806801195525778718578852053080920824525322474839227542859053009108766086605647398363823663214300325011369295524111741427431574651904477765729450653621445375944672472645441001733555546053167687024231058130963405311377142016265100874324727965119421326522797510238827686438078206358356284826932560344354073567122963936961732701168065000997362155682446194605904855999343441470040737546880565877326023139146365569470706027270140644615165192634163671086768216756094286698739429427445979649274983012870653187289991144186857481957314624723649401890966815673592425284260891174634809382007392846520778751926983083558675699783166344682482161842680671000903968125510056490019191109835999570929989226125321298445457541141163005510694609158396802414288980171826755739493177892666230299446264287616023845815315921597542824559463859191980938249555647429840632917402853777622394058019453423431374257477246728474397883981473192132045711532537887767369496663528067892150474988597771625294378434752533600797921594399706245066588658747448404822017875894621035223720656295637795399183223449784060371732203607815686318571811153029817219203204003065156922237334338450337884241420840169995289039990989730695426717218149957672998511831226666055182863060223255022251016162570210054453372473026119465631708274604363991939555119686786048446731761107002608288993283157496828098717667810820812162222652777113019151674866481725023466608049343998947118458664181172926987151745709841410584093846762060165610887343558386970268463883680133595183007403581149682809558541811579651506650801962700843945734556923295168783841706542304911478732526628131880063646114856474543714482272390868512453869257352014050939956139277124736910495839864688495933928229517789777742273785915789225431797613181953778739614779211141962907413542680970945217849106614331060549018107851009869526498815583373384665230579793035011087887114071114023954192479064469319030094488352370740221706719960607690524039348948127021597981284604070955821887574432378873700903522035103992407868310512792210959784234143957275304737135712478576919081724445177753520802470973146361201037169278232237665080302004507204074265278557071553891328361021324207374812651814556573864951544766808647722184083676555666280401574171040229850726779213986828188972886399951152384288287378901676319660770092436230773343055568998092444972683471045079454669953460877725222991263630693553660374538745890935058348878401214490030116615505379401646342357062495006372391511231058364502336182074897684858577902139349465242501326196027208588197045965286805257585356304087119633816513811647316834056679337408057960207687790091989519212582219479767247313911379213934752882352957086654450099328573508158011884372529997870270412096936888209382837839506200329384230359394675460389515539328346324797731097970592287323727726508986967660144069354353699625873013399140046995027034437792735482532864184977834260004818485525662077183154530434214114080924679890738940124744311507740305778949328551757574592387118792910660537289315903265507339879370164405040959664441533816045496614497852008476876060150622942250315957817748459713010993996913715857410684148106964272015172701893608910731274920120365593693432317802821967616645648464078274478026180374307799566802911710026462078782404757385731310278708550995385785920591659953903148911303085844842693292418090056580496204033208893959549851215970360589476583422133280076821380382785377725469887771111125704673717854312688673593912718786458980515294308180105082243930425017135664992205561936567799001592586853089036585187740533029692710528685522210413451880476429342932539370275794421763980982743658341642492359768590499070984716683293104894821802809534843529485714769406502949494870545244611719231829339193511058773879817273771764621436725445417069019349157912510578227062276074474867507391228096449413478775984191490971500116371886199708845319964528393325376710199058290581450458800282847777892230444735378887601101558675427542825050074931670452061589335111075270244504836794057488108644713134292157084884648367408627132679560973031388629851897900602095849035645485992573627725929296117908721404883989307448537601305453350074276041757860377926848816899163408388001371252526028248372102663203127396177603885507707784728414099971436876904414227126786888234066762288467015208845305699702468537744813138876635701748897843806073095433106180160138112323467953297375079062297729616898621155157018438334465239028899738665125038658586121336296760465384684675766646128117679959054952674729706115128083071008810937390935414026279727232260343955100984840874657760550795481549720236608201682163877399805332463158370736463931457344550838138256743110648857597160331840730218964377059487893623839332691692192579171889327275941125573202781393416647463239751330040902164753426424174636550945555215770883757091995706199586247496440119459055866196969164339739159314498079343557478847598375260574151132503941994053192723695769778679581628699387415622519630218395663414071837481550497935261395095499148688107533916662940132779510987199224928742324664337351614696108530840661928078454012825343089057605763167172089942754188837484548596650578908352877700652846452447972295965860177515678083855002578199048831757426539007510012450451683478063930909760532010256823864113044356290375221022000357988652874388997242216331897142933630043375882409524617846807097424367031020087513924556257639053659475727270758438387925709759708366134480537783056924070009539115027504019539246986064474713854721704346976003868230156490839958524173461056720947454780900293340623508110672280421252651849366442109837431372113044781336242783048987253632558166897567586340799361303416277694845373063358005284193317956582345365108685291516385312046035140233968404029256715088081757699098409696123988555863345122997543259628962231579491720041423630964505792927240664553814024235617870520937056972112027492795097788034359381228332904573734809727619573468865417554505424985667162859133274046557809299199374490180422969139239601046145780468891609313583219334077225760282487587540388573273780087285290404971461395000109286906214046109604209909030353413482175907942882409280290204413102849424399714811979594816055701291319962913490115992948588968595533398064419738919043172249724693854190994126861205808406882952063019563498627123497585366830096367151077186536231549849644399935307476992159532990213905488510547227122171059121472654345615450026855956882784512615566120169290996108909748373004805346472488034979927347152382198780973349852423789554452243692259890563217913144593823025287826603025350535359733882708221971086920390328131754833823933454854321229490349499316795294357385888186179914340408678524954113912777523065844806027786118054044647658078964988788117089256473420798404622068973794937230764544953381455118146839512311326486114278295840472176411361001104803547320374944689033071934136637620636454737820550576698697324757403087200665160917716864323139087552600398369837292625214777510880316707045020395404481948068797615424059308570044843045279737138266858567792219501004791844444149422834646553108614051961121588562769899327165194790754290903078820662794583189064207142178474202435508016303116819678108324460712834480500938542689236027153081316705534146151631287652821810039048416101299614658786382853722898682480489249779129308665254186331936408984323381670220894749888630395101166707353596357377114628017528495586634310287714905083173880547470125928292345913454096535481180040917922466678961714473776134090704021606768199724966335152566657551119009171349692769758771372574817338659922001265737797400423503998439602984101326307305242860580174598025074477417271675660408779784555963691276234440265768276512333287734460469126092231486553124576579860351945046911513946352748842459837187131730865733447645888244397182317642219665436499533947544435735899923936465774082740152499620417385473837667329913775910065743194820622423681747055329246945926748150421764313717827103105890674582857708956080252296818556889533634306877411832367650364262228472066065945822441186306514187520583226317945923034200101704705136007370961717761996821535130758063654047536690628090511098667453812211435882230692826783419545790033818281294544647658499589190655075601877489570096444125045595566418724687687999619966415920775454098496058879996025788533377466237069077182744358769593059268667329675899902573185735919830265752836789514109813569021885324693653923614750329515692272012110495120081921370200181847195732516957764665156664556755169523923134767957939005174807386533107057694196883326806036268223362657187727127038452228987518330751192583276809768171787798494703623842105445802450804879758910238002470317950265818751544321407817347369667679049976281898380939766929148701365450384871028124642670874485734998859062599596601860308945311377644442740143732441115916418585521077282564704915545848092223739133735238903230296530448386635113886386104704810816878029671676571151915426964667959389168407015663531992167507775741791320188911876141527360056200979657085054326124253872794093877363006647788758356336763863482195191677253633099324720076039496498640320774887995906153772369830343225188287597402108614312193760298950062348617673590448129765487289737701853951377853738795272903159111551374101033544295740180188598835146427903972402064271519911146382869416621434344893131446217352622722112971288578274073065411937437087224160266057832710813011864025983833294266205131809796476457036230043917197873563459018026301456451333860113570491794837131788448983477598056248159076085112968250945442144352553213929500318536788695045215164438101554281271567339848581460498121416156658355909004994650448673928949028907021532400908042859394906485266565638695899766376349542029885416130400723857316963798332755092876025580617665295240017682094497233792054140704776465792138340498016706308858950585012871406971568334977265040233104261598859645612993339503332827280927704106103877221278926697145828659740253714444637519992699911109635484372126005018723702178154495478275434521775937135656428211023206687625669501747306418453672907243373876029787010849746817600508421267017129816210745875304410813426743505868891506014240038642276185308417902450650152870484099818017445376891461951216754886600016893291229738045139467213366082204998245588140616869938357529082251667156005484138353329142200423122894253032941689324120915150731097572617468365484883729296857352729817179697887493236556131502414133904050486655056855968720358916103091882307736915691612339898956685908046512370733564047602624242182573727414799155712544192930488982746068554756508854015107903029770388881573036008463698738741209803179829621663609147314044934568627533894234628558868475725702402841297165368205376323795073560928829759124685055573976293004427309484780634472712222931807474361376196435612937477541142928943158503133026412501608088881228330836251234489519913891691410458506169868002458834547749663784025168909520528754154443627203588033681570482519282138270829399148226869506126710265627864221305363694277427604076709643146051184989744684225541304548113873796485915621131945632369963784445428113184194053353734656517517350678787477294034341066443459852612629803719174078762289503273080999068648110721429493920563734375267611611445411076101471203701413802948878389442326660257313902211157698316378353494599254448303441954073990598479145129621675684550707702090374432048370765901307058757569931891359417524382220261991641983859855387795223067539685468979430973454121394896211980769085980333097742572679135183610873881636602483759506337972028292241053463004019759123543116668230165351114273215274561289044855054557745378398615415523274131627977951921627098558421643566227371339428596184288648018941590895931374013889994552958265318689988684793346406788009241097896727459288267275431585031896230791896923559622920566331058790616433093301765842570509531237559980964228158555829208764917304193634473727745012659605193481406709380700815893449211951008147885407652549794482631093272882198901403872957640201045182070577881720996060815199608082905579515875995439681114762705835356274117590514491962343261997515378851905181844487353267049190276742553858434063481325125377707983625730699778462987667334563963533569161740567335690287419080540800765857360181050549709039737027242604640870455033677346431707993767573158840973304109429235926661835160426999679778216382138862430249230066765569993557769828833833721967870341646453336830935626346074523375082258572175675461999659360644535187559177384236353572043647593362146743814657035329896972632765726201647840379812556360844547151574789570465950353949826881994298902381591856794136759221705928411229467521201762863155478960453169179065562200730675905961447727898917323396532062858836010506809689263258306541648458390566845658408019063519699613763553863907090500316295012599529656454688661696387856542396528533901040130562174345915409714929340584484925907572620827894778739891005929604181836857353271883701984791605070626668968980563058037112899286393676955174467415853803337436225693275906052991114487370181821783965943087276549429609113224156933405678899663702343936158759766425394718024405992432881534166433517862379260199408304668170239612823329703066424794453937163361051811299694289566314228896861898257541349294637131370128301882471992187315057512147406654059302506887447510276267512632181072228959916304566391699225355768784074800770501551944810513253890307062323409705482783184027955293545483058811887588217833185645518138910240675853169050729241535983613937271860498047099262749271438358016189824831910204006165226972471559627886706275586321114008032829709559035255435365533739695619416168300222654556044708242028598489887600119827164034244744802358209756700394983934661958934348113602429808661878586029803457907720562702360817698549924063525316131106628259058315263377484890479003836600974372016802048315154392917646953257825828972942539252602523140952137320381108222463051095403604244389039568830365562161365642707790951539438804659323500760372760679531652140284078361178326803451981391575620469506765820099146841524365434081444718842139331438476887281376642058904259457723092373806171595879943259142696862129144341922985896562776172623077362512873296169912006354386879332493211882690210219545478089339956773585999731929279070497787853370115632969553706764483442285348575834770666868485607712197597341657707022132836562394600025018931741427608290541013818218819938298499696632521918863796041908833530328615397266653818287565126353517097160116170970730752712555965222737838586866836153436455944945441687581737333215634664981173853867411076361878843368743218604720292137602811889630616105017885852331887916434510901459073298173103250711987632637085181365378982125605713011146687207045805580350818554938271716234374353692553494229413184197602206581041196388248230196211600217593149077359974932394758169232871252352816914730330925227830634653647620685475622152487201752340633039702497012239051541971854791842729566274687220668615778216187871812761042937434278703606595113341400832986195719132423037159554622039879601871240317232872823460335313102805316898771101146233087627089794744739082456348084993773223230865717910364092254179856610182025424881265377391700586267376790375581398678752746476003923491874532617813512853127779178562529500072296635127704371275178546779321022541884105325235789835345751326864751355337188240355562348255076441843971016436529593265057645261442468678875449395386369283612416250707421777596340180865392567914742930875509254203289277360484003055682599123246668051342462054417675347849941420177668123477678357771066097327830937747627330921950634380929285968474848309128908655434979180337775877440823643716506331887330796250300736774717163504119726976003274687426130987141693216828546167761062871291859674194743983922008592121883150911068147218005131905989690662762618161235496149127168947494418071706889720509208278487593467593406517423433957752590803673824677283424090722481452675681473502275983418093134421202005993470155544156971724873644263026006559675690472845543189635235045503864505093992476749132660844572946856855078230683871969536047155283591964573626599036743330423314774149971020168045436704916887181965035824667879771276354313016453030633731172494943185167897658664339189336019449946264153806274463801606631240138988257138042858416925096940316638054597081666367389563388022218454180284003207147422473844499759061876641268651794950870428550490635482119372423484638421952664061365576650668473631067212545041043411120649036516854775518408238711233132598828731459981188280000068598814837905218484835354274230247910846958788605126618037095304188287103103019007715525250933785542750940420867764239376484595753434968350697295428184213630000888081070348293533616775729376895147767046321608575883948534474073479176934473088418308242879323756754742121028244163034727765421137030342494839891708651610005882563881262618787995127181802356210510488720335326771637138632388897838792297500949901132183908151418449907689054255899733329467875251236346051338023618687966750733912328571699594151960015789021507895074894279067925910946633119505091146243490469178991653305009893964852190320873943568405175242526393509388864536459264362961603857711257473542498869730638463045853399112616400874200829846217882322535907930460187076800124191953327678939641518580535300264502260321760646968951368025017704763721284611818869828613773914051664808715906524526345228954063871482057382296709637821217864365893856845969650566903303621107866452793541732311415681056792446619972420235800430768672282370121680013887647070658347790994943107196374226786592033917861643235272335201923786407515547669027274981589013829761278135291228788165491277075240921880966239238604971652498009236762442602984996637490860334976356750075196064675855643805875457845573741694436136063514898296521430743142262642467342121661630684952433570700860909248943942961410366275121263141869622440422501418911419269964156252305986225826087542849944660375385197440249580094912893688903289701543184750168360143620499272919069329921797390155367821101754669439291433318098892692367827151272584302946353943095742758030053951110765299060829456443815971575180253457359462804728656540181774141526023881318688562441849785217383033907206446859328356224683100361731033552826102436299999178938767052884619337000601130928621248950366304682269359543107399169681196369570678021661689481823543850608879215431477672123199404334870234466298105785295988484943104878303769547134535097665678860875009497483276117937673463540378985868891493124336782987048166312025480759862815898392974247375470383403473193162156586138329200813043822788917336981518304619835865316965370857974801053872732102649437825208230110402090074505065753435538691039938884627730130963751822775577444030245326487856641899479590234080858127100480197553275390507903296762305367890143968019786193523700018721295701495338105225913762935921477273135814098018234203821401395629997124698580739732746702680703211920210661729041574407881400350944646253663181617858603814353980596751044116605517384583707908154455473159331586745755496511401394511316267694689573034578939247915333136547644964249678992647090586538589905517784441140088911753577651752353861561589565180952455524831749522818115322804424299426022462868853148849281280856705143447697381951732553681786930178345304202427620831770025285521966571113873616250420516771580361502093558350339126576479962081875521346121135890644535157623991690522948468824283800832469319507442255380869955056316040165044209228974337555159302098388987474997477989620911417437319679126242563639209110375153004240434837907598579019144422055834815285614940614466655891809111826054103746604428616219348215884389437298498203716741487463373605698945459344913875285058659891236944463436196012768157684664053930917863694394667271307954159141968939655275444014011430914311995893518666123114048728347907959994399103675411546596142481748793520354168957471284009745006258945081402479785572625897698681654346930039624320409619784070633826977303712315784986174907046462291097369116065270368134718108308724642387983610415054048991706299528169795844662194368584608239699246340073604245679236557486803856067583010432587331582941810668989607750485469608237728851343420363271662457987333749423650709587488060275730266028142199834535371366425354046762416242209253723721701988539207274722322391160515004932825239815563395033703213491051633415960411049195900108949823063430502260510852669069667118234130652744812467827382541709951799961796261576379504388169485893143534291179338915650802316690405970846084369911947372288023838385936898103470019311710001411675758533114172721746496924502743672605556637101517724038234870337834311473964462756628023584745608145792575198718489647670993333812150335106419325166279581859924628552440052746992938582573194123726924836575061974877084681618604080505749598153688132873332576784420670642709111299807949029056377584384614321870614880578341942433304669568841735709432399544659891297277167460822845982262165485597545099463612770896003421088994255949586262700791575947795645521962296202381259095635215684826455753556865326133954078921552376545393897733324797644486174029358990338684417922873047189509703010071865314654396927528544901911524177725331111897284816718797139764313530453367616554367205170565491947374665340587963697069886582947668822473019609992459977181856330489952274027186143489296297958451716442582204174616926493437092877728826932302058556811292173630290479638826761642518078129942775742179742706736129607647645485797664711858742106383170499014502958063363826550500484700611236287832169208073472860309610242761914895583183308859000540986894039819656832596047768497592923470390658525310277631898933446322655232991082336796171664290128774907264716398237526686931310409511887857325104802010706436383547148414859267396847473832892348424296193838649266074507134193264871101226167236375922934756577703736079097851646103442635160864597756918013688868101481120200388617471336886292872914775861403560003812198631765657725396220194815320121978445986103934553864880579150009049241867913662682038189340710267417714987503227599018363497748283005130467155319257178478202181412831169563072217967594469930944886362498282239206656612966586244027782118663278071985138866302885358793845460256642797180878487182467935749683644478915258304286589146722216304175537779225351140490773010618765614014570864579596546843573242746082811797444186500390608032153656580401519487750190144528745829126889498198743807325672928487142436494916473329571243983727674822410211377521133043849531660296271944603967366991110740233374076505303478941263570774186881524246355139140731521294035430531296400621437769146071362114539659758929516606002288233391449080859631617854554464473435194346553525946914544765178465036657038067545332890546718778089603688857113820000241274955280554617508848221125654684565956793807219076387189308840313373341191736203340378461787013973870023741145046267280729423400650839962943286435908451450512385160616802221175827828924183782766785448691738073643557707873697049641925416890619077115853264019031303794275782189266259694352034359119426821481085234453563447688243281502963274516239934448386943900681133838561770536310058800179761302698517082026620660347834161015151216540135008588214947470552892859246248179724363645074528623205337625151554280144141798475966973545188694961137510575771184062908210218173559090345027549333505615950755837753687016225998337065089011206538371990360276058791548813396154960794540914750736112503004284295462073597941501648837951786929784364324513820478993685084877496876830059480796414060281166899916338083228406954052613516018642114536106453961291283332030284874816842743891764194275074783271445696291265307479825103608664398136861995612315136029272706236357074539016627552769879938422666212216599413764450188588852522807319068536865499331379065621184269089952800561742095136816011027603311163707999295647860243044643631468789423506370090963299981725546189064768299315618253428792275315589723766194736214125533234050408519920790693429444172185690257583699218248540469726666720717114197750163550456893688064402706188153975112997700541663310073063708276692667423757240853755138309159762446990496404036034244076250489599567891280257340773020538336566953635993777882226429765865283258808617340673657625845989382602098557887939259251536824036582130755373813243103107190143396325401984431789167478342310878785276713372885261812990892953851965436423138142640318555564571862766203906693431735607956564517895793759589505481971194527813465215087890681036729040739242785212003736859432057704073055180491369299427108124319850946250116854094681882911052304304911648583204803920185325450110213624543285573439303036029351720809904761808865111757276637844347586890139802136812446656625198619181338907655725024212194646169296616901965756489873498527838418830133967447258868131770608792692520574996920526249871598328133997976300461168643389903176964448510530254201878901137759766207864731794851512671322020779990547700746592393362584193887923474269834727086700473219597724467460234338808060970680759220437313687892751000367892077965750035982291635902378758806731958045439478448931660027814083196694583616639974648487163482486753360148938431998795834320585730008913239478239421149751524126643038259632360887367861204382013406021316694721502484081873269001761089112136849288560702336255933987503668324497082036572969318246614879444564508024981592835082144311273222275065270417753791551219069041093387707055844763249531713363751343276735953173777955208334719190180060474646123171295313226069462147983915383661152724956630382906640065068103249463710504885480918433213561171024381437354891259369801493892680115216045953682852710920084404045795871712278236420108090470252754031669659026871201718062081034267985501824402443990719552030837450497766595805281017439850818800176422696570152788930585080741313406652806943309032260480867537528165034849896155330942598276113718266521973441431175949149294269246806521480032649399582799788856442522147793359133399497103193204235587729504655281073303392833783784542347440102809466491668728750433670040384886572509690542753913178106600797759560787905228998170301693328247449707768858325607278907244440018681632305010309207502087495943547313583451829450190825115838137987401312110684407401647347514404334936458300435862605940349960430713427887915490307594627686625465995125712686589323269585605729957668198796775112274497503615793081203733418728726484278463911996524519413624616406168442740071489660048181886946768973572948838131102672684285346043002497494341163208958676783925574925539949876708631709626865969086941248915489534202339650075412047100721531054586337224882905370690994748371129811298786075856492891085252671191758429835569882784763481336227748452931025093137065350279223595138801871921211133436016199870512956491516253686449776659483482133056541141019188188888959418153335916084232322095549644382216561451436639203999408890508438156241405199701244576471638671154077597053939499285359178609550181799430380944209064707156793036130437849403536817491754707718922982826690325844668140612843340627015238013512140165562806634907225599136091709757561810485431085936236024651918861896571685025224005768321184381562799139328236184217371296258642412453582723781689997365469129635461278346685343000671381946793901500820492247633658932685467614484395607598689610748733957455195101050858365160919486232369070349093635708222340629574568948027189481176693647950844489917222074401416081493236694313065686995940805390899731932462495779909066430044137976717551517414088988134819938011131961218930857799717813145246466056737504851908926140807093575956729007406907970976486250022708632780946382182910483178609599511400755540066275457671586407993869076756955792909712260598815599026357870470951567998647923602473704608007997513063109432791803122358728572331743776177675724215872227732262098118646931570231483590351725388060784983718200468668005867086188826301887436460042576097009968356070121420960809468932383718383975313430041138247976775748810114950295773244694266709698836357554360008933243885281304278551050768118289063885235864830301292310027058205138110548742371636226543742225094919843748539231610166075111352323192203250866633755714678302343323992931248454493806842287506138230375303578732666141708092092111349597503433234662574264514544428694272964330348022738758300517057390001100985209597401195189174704762820763908455087227317961894532305279153411853291101582047691580152975310938191074906669459532182108100940161476256753770606459572651264541751537696052103140909041838114049929773481281438064932689672443382745545287568820067113607257878942254751870261828684015686137975791312402595919484844941065851670368821341480252100264136421153085421730273147807312650349436678758273580355715649275979722312064544144288246596648691602714506729016322523367347230755668265320365276931111836650841698682265128919380264460824665206293096803001224019084866401900567628866622539111940605093158523184628979483602992039848502925688222348093166851811093412171628223155317325785879462828488621605322847242400795854141224405667757754061133222487652868069452531691222988640852277434759197656802907445682044388854709845946911875720256716187488147336259788074862638164977869002715351774772353889375355522568630584213535684051184943733376910690946600125917346865329496613070157178768575297993251379312507939890506411089491019591639784674666592363505118647604905529693001165411839450469847114578302417297776867661996935652366047637714137489291073583620862534908001824503442945540282248844187320737683545441946105671748067179274871006891848682610419018523191015107056559798483682428535303643165905392413906641311610263581337567286609828970677877427034071060520914300466964031323124300953473942846676194755714605001980579187024475323539235806946647521009188958388498632127004779507874541236517650987032899989300454336733188738990235958691679966342998780908578578085684044859954005071006077745462555956055546153995543963316477287512244821913862246543008649043945518566100140663470408696376451134982072858456457524145252596890143251084684304847517947903450899097601633747537979669648234255243142179602464964883046042508113966127449866018295285681142069103710898512455861319988878953338573349689566842038076740689227942494545449602685383100331422634745314162950426445877279356034175261334018995995911874712411366270065528369402328282071604872962415960157320984802251642567331143490660610008718051519068242929770795736707646528239270005934476864684155286099311111009913912541526822327456773231624620722701128493853817500143782883733175334661632458740459165761761612233611836847140043344331822795440824800219302335249269405468983563545338818341649753957673479499118652213526703628100000