From charlesreid1




Euler-Mascheroni constant \gamma representing the difference between the natural log and the harmonic series as n \rightarrow \infty, to 100,000 digits (via Mathematica):

0.57721566490153286060651209008240243104215933593992359880576723488486772677766467093694706329174674951463144724980708248096050401448654283622417399764492353625350033374293733773767394279259525824709491600873520394816567085323315177661152862119950150798479374508570574002992135478614669402960432542151905877553526733139925401296742051375413954911168510280798423487758720503843109399736137255306088933126760017247953783675927135157722610273492913940798430103417771778088154957066107501016191663340152278935867965497252036212879226555953669628176388792726801324310104765059637039473949576389065729679296010090151251959509222435014093498712282479497471956469763185066761290638110518241974448678363808617494551698927923018773910729457815543160050021828440960537724342032854783670151773943987003023703395183286900015581939880427074115422278197165230110735658339673487176504919418123000406546931429992977795693031005030863034185698032310836916400258929708909854868257773642882539549258736295961332985747393023734388470703702844129201664178502487333790805627549984345907616431671031467107223700218107450444186647591348036690255324586254422253451813879124345735013612977822782881489459098638460062931694718871495875254923664935204732436410972682761608775950880951262084045444779922991572482925162512784276596570832146102982146179519579590959227042089896279712553632179488737642106606070659825619901028807561251991375116782176436190570584407835735015800560774579342131449885007864151716151945657061704324507500816870523078909370461430668481791649684254915049672431218378387535648949508684541023406016225085155838672349441878804409407701068837951113078720234263952269209716088569083825113787128368204911789259447848619911852939102930990592552669172744689204438697111471745715745732039352091223160850868275588901094516811810168749754709693666712102063048271658950493273148608749402070067425909182487596213738423114426531350292303175172257221628324883811245895743862398703757662855130331439299954018531341415862127886480761100301521196578006811777376350168183897338966398689579329914563886443103706080781744899579583245794189620260498410439225078604603625277260229196829958609883390137871714226917883819529844560791605197279736047591025109957791335157917722515025492932463250287476779484215840507599290401855764599018626926776437266057117681336559088155481074700006233637252889495546369714330120079130855526395954978230231440391497404947468259473208461852460587766948828795301040634917229218580087067706904279267432844469685149718256780958416544918514575331964063311993738215734508749883255608888735280190191550896885546825924544452772817305730108060617701136377318246292466008127716210186774468495951428179014511194893422883448253075311870186097612246231767497755641246198385640148412358717724955422482016151765799408062968342428905725947392696386338387438054713196764292683724907608750737852837023046865034905120342272174366897928486297290889267897770326246239122618887653005778627436060944436039280977081338369342355085839411267092187344145121878032761505094780554663005868455631524546053151132528188910792314913110323443024509334500030765586487422297177003317845391505669401599884929160911400294869020884853816970095515663470554452217640358629398286581312387013253588006256866269269977677377306832269009160851045150022610718025546592849389492775958975407615599337826482419795064186814378817185088540803679963142395400919643887500789000006279979428098863729925919777650404099220379404276168178371566865306693983091652432270595530417667366401167929590129305374497183080042758486350838080424667350935598323241169692148606498927636244329588548737897014897133435384480028904666509028453768962239830488140627305408795911896705749385443247869148085337702640677580812754587311176364787874307392066420112513527274996175450530855823566830683229176766770410352315350325101246563861567064498471326959693301678661383333334416579006058674971036468951745695971815537640783776501842783459918420159954314490477255523061476701659934163906609120540053221589020913408027822515338528995116654522458691859936712201321501448014242309862546044886725693431488704915930446401891645020224054953862918475862930778893506437715966069096046812437023054657031606799925871666752472194097779801863626256335825262794223932548601326935307013889374369238428789385127647408565486502815630677404422030644037568263091029175145722344410503693177114521708889074464160486887010838623114261284414259609563704006192005793350341552426240262064656935430612585265834521921214977718780695866085163349221048367379945925943403795600021927854183794177602033655946730788798380848163146782414923546491488766833684074928938652818630485898203548186243838481759976358490751807914806349439162847054822007549453489861338272357309221900307400968003376668449325055676549375303181125164105524923840776451498423957620127815523229449288545578538202489189424418570959195582081000715783840396274799858178808888657168306994360607359904210685114279131696995967923008289881560975383380591093603412529986567903895687956734550833629078238626385634907473192752787401665575311901115434700181862569712611201268529231299371614039069651122248166150823536439823966205326333222485051915936826907150043155898718027833538454483091072494980578809617179963371670365541800414646675387195869484833315435833306419359294874209514788323477484814181497768716944136400566451569361165241615557341419354247213730674683338490544266260383727882175527099309581410261369795007864658767716086308044607498028015769626759138977947722143375154708293458791238984330550672234749699849424867067215025692735295850658695889974865355621869580439971251689766541698626538628919775421877219396058170011042364141587808103861721015575519237111600498806822916180977324219583289748692271839791904677165426681388933792960368154579396113396219222454301515806317437084056085364160313849829695185669526128221237169393681303212965619397187102070980079488339101975351043074418234488333317969782773320911433245143050865734575006873914754707775775599184671183085836601594371937184490390617702325365679775967444757475115841957467009973450024544284065850245085856463927912461198790936930720198040293036037388384307421628212016353864662260971989584367994305720301496380508322323658255577245342371877374398183333064546629069933111259737219502746468990654571554403039178354197564343157390348838667505427421618310500605504642235457084273935493590517627174792994723989086329701019056101077426909264752357403046301592434424649008341886308593206855225077909101958588953143287998175709819168293159404530056325433144885173573026982569372534699640134408715801081452878657904086636379450711085051042417976919112926151320103163634980866069486244078006684006716962214637181147772683418466463642427340530031380773496119981468617685854631208163164798937964263738356618938313710983289564905211488134029742388868631543132978765799125454243338563472002681290489949550426980882130267263581532480675387903230574210403301497887867523778607054688614721009926329425108878019702841179224025910914665848092578571927862821476670740878635197142562924278670284077032414375699318832433315590024333047691110092479791180062862022137078006217257329047359943988831392799279693970635676281166940541288590819820238382770354834968797340488882930167367709415846544009548624651461013539134968559120402363618721509929806519058616828153028750427545258605331963432595777478813437239394991243806143754498590686075185631427255255642593967014980414259818237852576829436395965624388520656548071038845463944537701917845718741011862232278025251943626574382422560935676925823877491160737759451401447031902241535591125061381782974212649826416187246063133408919267023597958023658416317556792335662101231335845494590590069984200672260251167743847364824385715407146265945642391127170780306371416926386440100571310958960632649637552956769364689410517952000616452021884353404730182439305148819845930762964044456877624165287162072767318606325408014288745711986573074717018866036879703647708548528716700036229285288374682466058814117540474460616763543037399237565965936967087923167744685693108382107830483159196430021441259702289063203174101149366480952903011716334531917922939242428772837872349569929232136092234947226458243755094515335520117612897517339513717829332871586094386627011791841554587264898251392555943795197317867448769925326179423381299941279398602644245196006054368186646709865944365930154376291486979597694996533527210020020967910439482547244113342244870054637656840866762153373627461591205470086290571698257353705239761231238412564349411789498615828597020971097039196352168122582247562719519382728285209147182375343655254020746203066730476952470094413814561782826663196139673593672572646033884946424894724489784815967153061538467122369871282319784769311057166236373262075959711804015143896231706019585709823813924666135279136956376559048616762051297409983149655978602534101294543998672883006244084401861815117506870887646716097992920177696249633015758292596188494858720022922480606288121778733831458825512939536510881918651200449231549839477314735786889731420473109453814648226321023310794395974628523541295751910635587923001956181312946120301575763401597856817517498423778824473753982474575996867707408545574329424026781938482203540962106060721924990825104854003184963199863221569089097614053107165113129326853498524402864482934705916085869959819889039599559181107641344665881452542565881535450288847399753243278090215225695218441452986508355129839802262382649748818115815250345997499159664009832014520070480355568589973099815031041922385089745373276129471712681653088670054728865779224670178265948272609722903471574140316697310705050782961082607287042912608231197415101473578478101072797112427976028481411516338868969078671757725938152479612378999903666175603588218132546756344830914872962669372198850270018829817301702494421406317265197139506221082764507181663910436683295663807307194543211255053620896783230310851714811492858899362870648875584389130047186846798581655521590139256032061376427156280118971096114002391303934060617784821102217165992659596829588905449896485740412204749735425646718402365046790582748590695047355535311838358089652886158894174416219886804230349243895814973672227495181127145343869749924324213868414848375770331087617671331994426349880672166702983717230571304972563819884436539981947970223275432911444433463252114793188464973594694484809517347709407261091493510518550431888516380180024268176317264589577881465894731621991354217970696392959125603838048585831567272541846146996603519007670111782305279998313186980724782168173389846912490557910867065430256293808109482360911182960668949738197631510515384935175523971928535671639294213365269580491039503518402421871935461814477959700303498159579720430677759494490172314237985974762677078008980118918522229292623297292806314764810011917099935317697308942263740201007093350666227855337722176495694295133422170561068181275696140447495829039286085745738829193650805224286122212754636351051367221258224557507710935548241864408182186806578080799719517709474197677732124823714623843954879372675599911702819706075635766641012813500990087053356200523369296054295092545419735238087726164472653722307568265054845096797718992008548913474073964160494124035553268157246269023839385187188025506849257662387484058760208515682269637595950519247241511335163399791572224009610878392752258822130913709039825360268102671419245765661757745977814068774803927288115838175631194773765607660057264678952979984580986236663728860420221081574622480753444710682668245313146783013979556546944656992479884773872509646762389036794155692945890076145200788685363678588126399189591576200432171996367902698829112413538003826280315040300397490143536007249714922144796437588216498521429139153842734092660565411078590098047548501563396294110068732270885803892093866602669800064737282478204124119241732961887633805564827656343628060224348264275294448668047095582148258986443016881299385386463056032360997731239608702975422709483861874825906612323660796110832087609717857851801550148582132699958031669191755214285072089915579731076009248293783016418202941286326331963178831901074260096616164743394154710304528365460640719348240268087480514138683169741250300202583706513196961790813691464576360418232854233017738839045345749635312431878972696224389040540339039306952884935805777761256433715951089502408998893185702031780013280199777945931122995523088493387501718615418603641767395676490563615988622436725295694806198607690683597245894241067606469844393970764061755035650027839921735628683961804084163691192115011557769486857908922471487845531547682574957260623787980149706747223546404982107766859413968507245085143390188881730555369316016706539093911474320993348089767200168844178342988840477126704835769352300680827541283754352985735533050797305006712052401289557762367138428116947635192076990371894303804216371438020260110666534817950223654793917178839657146564474374206686887358331997949163774307809104278498968486960693414504621364852377070901452219029468183110105954590034563792948098863014998268544231855008787797230249495548680901708697654831156157276220114733764439915014185679907400300376725602437413886018262811473102546951894785578531365834695552014098212875256396892639185898082516236724064773919490085019462817223809657396295790935602068666584989340800634065501515697178146399656930331832975183416364087580730868694337701305347553507073800203767879714989374913285599899593202855162022483535234306250045419424974568657783359764165719518955089613766159654417611259243955778743990290627677159785074420988819643335932236673483397602142436566822965633862964366430983657905027742858329376251513041986499893239908267210852514521966643376919291245683079020464700109775893865853619885415872309552250293841539831450456825820961978063564201816960201594185402501085199174412320443594332553867486648936930678852959964464112849960565265236082673989819871175487740969391875316179460836788980226081242434510959956838680008617993107107029638814049391221574003954818755785922316123472118696303350553114708599233588578700921184132698002552550909144059309084817943620421149493800461925628807231636720535914404915394349163230560902343058426146232310502728056817747323023816418355694426887872912145908162819530945019864098633705151883699368722723212821579442611693259258097237351456169824731330384495041253660905156532450827216030197994493380764712349579213422816219071874389822734208602845477210672071476988552694014388073809393804470767794813681565899798368242345926071515270126980134428374698067667074908821906847066563556387993593946645549435033749338572366854345789966551386202315070272677577248748144286567262184147173278247584208168634332721189860384854071552942803791216373474719362537849890522347130871897664792562578430288532366722966551709021660523016296046318414083781215544500280342434817679267493928037374229801809302972274205586056365396307679886665317308596578367928006533733884357332821362579481072141013572476633003767021606441958814972809253810971730483605516802977670338571161163573792727185069574830898541786532522030558432875053657073237687839536670656584371212368194068868802319792659924226363888911289469040202113090926529044403516719558890258545356590756636211706424930059811694396536530001446071377786345070245262913323906664804267449716578267379986174202587859007609577702823029512062379058496854579125498749392266310424310638612717247756718882064738362117572913862923429920755333604151482790527586454384632305485082116454896143703211058166706907167539669969347051956972801618758656318296716389833503519992235875506433659919335054579899786089015056913078649912955515601505914855700720851212223732360148292288081092849174671046808227967805854622742571191906235190181155883933458092085005984334547184148384674544988212364043365707728165633455569931284301684398064101121424101723351739141677186945387525989557375580760150624134716218794861885140372198002572846652740129660903570217142186907445861335552628527210049280086765506377477202690840283449490101226950837017567392110167936194822273067202743064217803382385618264074241669287382792673321824251225279349197657547115315510316340080530580467465370601531163044579689942202337473039974719227940034852944397988360621967560113769553449002900240247662899731389264940182097756599837564808681717719384959562678748426499270858980560238395766763552822596037306172781488189718885258794608021622123029003330660818096092614736156095938124957920999443324157157484351043096194435531042541649161502891632849623562169281435062845211784988244473867228415903797619159453162209987956823718034456740302051954475177073411070162096024318802734425011109312026862604917826197641426991235811215471656463287512484603283482318311833881655749521399855831725095951571142709720147189253578421724978680840304785325008894778258643717554092728279077862914610222556929191187410934457116406047642447833729791916090996713486503698919071648771416939489797150713479897642267424724880016014578437241225881687256628672075560560808458091244755753995392024460383580480330166358858640762361002346924936754652296348525377821753694315344402764479892999657809288071235362059072642329459976592341072160700730763052854183769912203867465618360157046717192105450424417738624265972777792503500122377906567022754878855145864575006557966277100516369422240734116898751062309928247757913358285976514483512619817750977045754915954709118905870015930336656228785939981893972532983078574557433238765786882781484344714256703171408019643591520627978458182166389049433997887319623334050880191537474028997377863762779739819468186547075208337751546071227662096120124828683877839339364404427820685062619143565414985000107349528911145297568589807575329595078526420619789831531865702535430999928742261895955086753640405990112880971442086573328374857970780717283985663070758964225984086859143163168303988917672202131510815411456843582244185640494893524573517070779574347146773912471584457650306675214848348670881942483762918493134193492705957140694044384866560042900108704964224752239663703782079103238135809167383940302255490270136036679253741009303510302942153500784231221936921131007355005177821255901800901897589489568292605007109143528461170164133481825315057680414789141568784816074110416381729521724865165623274335933646452812690483850804167441488165968929298750011765250620391992532024424998563701315210432057638597515969977758789019319265395507596203438999825027992376697729021055212545393402864748384179132380660591410934599348763258485199292284971939956935071779670729602038487229237471501407657861767711744089934001369272441918296856282452517486579020257707165830298539350660955405716632411265517242499900482051789386835479369663206694229581610506040303590405856620695776059450952191291910302650435572128780909273778254477749363438333368695005675237951758381163652578968936924203483148198993181576759463559872683701529729345397633879533967248436496990899554002952991556399919801121201225495918645098689908645351564757386791252090823315638571132592058133462969470837810780342136284989767802089711122826782698792101948989871566980081066441035272581234080564723094433969036250432977464201263135613415965023449915047747657053661252719421245638888612223556817737554202813937164012450934171348648924134240253083052283703421089578658744234952124217825951447492998414866322598036318301992232284606576033502687040514538893318514918215910495383800903446443664618905500309885635191959083409910336308408589179720584515122806152343481791864316041271999591427454237563277748428861885664006173801438730607430032076129083746379452755660502816668458309424637825814923208841051222659106094507826377087419622623011545966741277585380842023766738905165359702842959578332106370092595101595012349543897960412023250930362749086301486539073895824179527352847453576231209115849537501134738874854288337668738798092203923588909176003343605173415579501469176343249183008783374106882893483936873927674730104674256616952576526004525156166394120918749889442343405276820822019410313786983184773697423254037085328291030818666297537219906065547549524697215602114486676036062020126341336839823331788446486083372671027279146821748942072057564500978684074292196829432061668572871874499970949114143041677151056639398930895329602963539323938342568801163956868021097161665789817082226855895624245599363890759373501348899526436133413332545548336691090774205702940193644269718286501055212815136397370991603614189701238061030884476268357078937039905094269558104180740472844001692067020855185592464279179870870357294334035576045913320227645870674493969066707386737284315524218278778675618127104640796374682423853027962249369156643499867127907150943732920460701403303550243486930040663308685727385322729736771648151665548357549970802964767719917940641677378402114888827020197783141484317896051144183508380984163136907555065307446644969772998531086523855313648299053899414551607865148138194359309590118588334007301612744632638904557453639751899561087281740303859446971220231234189878837271727576693071859656818391386339734045080841619626295408116108956674414909751625707390070758631898696327024118778617493011412484664605307675627718386369735579658088673568088180361208786819110745655320807411959842342828352319579104804398899278484469364282728405927311746404568356504265977211336913878429853078352349373691378726711361860157045857252697620888480533339961603409204448746029580566884594222320049703765369625556583116201483872656087534850991392198485505390434997421609756284634274271201681430895570143598625608034084905254477665397924303681492657698550635403610527332589343649715245508514303837183142630652479034685749538385666958887011957695229406720650114250245757614206228820995985013312744293341338860323110384095076538019098521619160568770322772200951079090603957916760821487575004299252236715057487231122162212098544538496426937735493250706473641053210895963116575184041351665481860599008270275723273466615289710570619845523826654561782715429401586469101305515348994782435043873824630656142099744745353185108155893640821856952712326671470846928465317553098238883371224283843214800435065069820451403442833017823315035005389840694998351793560805111544636892362043734161909453465753688878874557508041955950869786945282814751337178935777829744036621859127931868272026982591051643872673291381120126967285433014498655272963636948603974007476632753506491023612058602678290247373438425127709868618084927178993991289710453442548858962359458455935905691574018186433405204222355109787359716178374863022638146299904707099185482042676561666820524282467951024334484367600556665579457254401599907505937487091376607829564078733155298252993749493405351105546527693968777894508284341298692883677456499960853795169142465922398091125408984465458670163089507736001661808264481538153795051822658128337502045980033574796178224935514173839836714431445010007413433550217039294477952570243990090581226941817881365905682631397144292380243204290682159062439558310483585655760587441605461465196703478588806662401201735239233899517187758356369093925346447433258747124545728576808870917951310884382953028696696664384089333844553662885531961370010148702940505608733936521800689181089116297040201605304804213034009048598759204058478651803853231440985127625533170496356915553006955011005129737034087784054414418131671493865189127442806258634585180356559491969414353788999545708391278049387573326621819533038439482397043327062874783137883118520013787562952637147370981280505496904553788329650160508764049788443986739208308063850830063405739028760390238467895045556495258638996226969784643101414515447964349012792365485109220459742866654279470234153985014826586828841118045487239505791394436159662847285896739389749136509059158509448351542517982664447362935138781979882413338351489446982071453828958394265604059194389789272104961510631975710340121184599943160464789548435468824072509736135538552506801505495447526930134305692152690902036024552515116923082109585503041310410532556881064041200012010991361660551813053751074326636448199883756343888138134224948141506543736205328917880098955489390126221182962914767054103068078334982471556921422692021991023064118035779445607911371002326029627640134231052326717392326922236601853814763877143111771686911441930940706527837247402154732401679848423742571711871790095185711071618453580073298482251062276447217208141854508273111320816124149060740368066751379417131165786805715640220456620481412554696964489619528417302081848994140861173741332440850764821301635650511092317213223203345313182123219847646419905255266394708730797475745175746754661622367315418319921092345040744650388792515362099516965769524118039516035181201307897531635030763544808523484291060613026002400720878326643006191205255573187932915491508856427879685603111011318435408072971088111544624041175372705481403987079642804193674465862083594850955754443062371886058946738247086739744217720465596336640176912256577744448515039496598926193993179738803751049289871857409343914409129368267543273141981313918115670464911813124753457921454569407933726029010189198615086808318989292005504550636546208239042899471538910732315716250077866742126400931703335830973140272120124666450698467447668748695446627697930166395372063317716987944430973982790673748847135831517533392533034702229419478574620966715818590225628513175144311714620475936230771768982002113336654926360965956961674592681636969941561368137659826874671210394501582001539757923827660642611251754646875886161047536382518803489655630522335876074960932490312897385737731126785533531070483968605320377813622554569961555028172037036329877539047846938566660973276841262201356797642704272245005525393684746286155094992282130934617433662782114868401939995884709446171589663850434502841808546754891994586316475342379919135126532381503754527795362853545587123673299231785175448860910977672784015140453720822786996436824839583634321720085535761694102392297694916834629258942529191010832747258702396914780750276833407348559010534576897392663415565216517357810804891989118289979182123210154515076889005435934649870234903682371604743127661069843844154398567626537888321832576117740178984936439145032447073582683259421993269281562036527716481843611663897395104010623708330882920095034797471931863568134330101407271791638317908098534747202510157511930464794495391082563568306775808398464373054930997861860554748732011424357500873816334329201235990581775878343354997506605055988610880273547867254756955926549950232729263228947552939325701575284677578263694811671968802435103856416192062885874809080998754846743510338783666422272129369296515666362394755495617226287608771338606320938800220980217704973717120758703364279381184469624737195926802301639169595620404736868278501401799098724371179780873521954753532673387672154950092222268018256974701918573660053168605062509065337651345525450401873038367956247670437431872446113363313498783132159320323253859996484536640091555810417378674922368558905637553457672204521429838441721576775967266896051520248560153235958210461202779161506215453577374969275111121587666723506927122506328913341252954622472437597782982556997054399596505910102980057223473968632901727353812676496015144577427445622544340982398372803994623220761150028079416100868799041637537094953617561875528172957085725125296048997337609860683874733409910494602951753518142957753987606835994318265795108643309921209616216701671342859981113500742301205582432186143855736419644251233512417172775462463918114214894771428388089105875416072693305060021952446377683488807774948889718894822273000609772112797752257308857429151399949666052358151198885112449652414993411321778080242449495333133077820103046388005837788526189642909587277047736545498272938934395963799995839412081324630672040451843435146052438603140415864261413036682524523994559862122240980044706277395411592929367019010084565063642148611272569691974048076701587037565374678876474762145146500456559248695719404772307711488634120172646328501832682581501224687496426996713145364280083366659002190475446889599773398205393299714882089447232504026424198399985995434431312932705916791064486242324196127365545259567173077639971090815295894738013891912840037140830644118848248905168277564544846530660630796021734391846750951299937095429288981179261781658217547066074915032927105382980339351373620742586907575706620485420929925297891489946672939981263075948990992400957642219101884611378603426401246746071519388547324009165660487267851464923443672816065326692167461893691398144987942754665394057694709834980242081955374031415880200114675722088323692614694203453686822619601138910191091465486666782158756851106955386067105822439231542171416793797488119939529381696576886889456519099966057062554167228804369083549164781364851769553399923071595978181556576088265631462154336588271806049616218218501975148933688930529219598208152336141755317966186577802177901765723853084898655523806749757743392446392077019937852006170397878579545875464310845267964255584692120549040323236066024646928678133185772700866757479052643548349814772608087589947205732549932555220346767086851072995082043923163450204496209736573051652226993135716907681245265191491472492738226332886207660600085318807396721794403483236499202454577325908424535264456446633853123117247695098788395868425099610113106977281999509043742251192130008000709013459571016623642365510955247597494398204489872544337967176092206804584554258973507432663601773722658400688751962599350084610024851185909655603299085507289759808641324769414523357375637656806887432182388909378394387253679266615502515168714809756903775807277900616991938009845595324731979528921182058240140038545339284777825557370459022623314342759252945310791708159747427273591885282936200909965734898834102119459452811260702449475196552681049973300210071646582995943646904886126353790900964347909410144869023250540083511628319953647914770777522014667364316849500648177547083025856122321482785499122567472774207188372313469828657226868182348709472953493504533296936051981599139996146047709598621350326179274070588529062594851773943992066691154194609907524318336384139338746592718283996033264078052542801651172130009400328339594426475244022606187059219043179086736710580576190306491639549365512562334170558296410267149193980496870607589466073782596609723968026014625012813149307721459944671340167367984323646151690021759414577136416735545915343352086244154348395915657196906831557418458515168619253356638644142894876555317126200949309364024182650655282412995029528641706417984084215507703766302007820211969972943339322020117246578971235945827694701352352409442853120379823496420204069963113933161781587067928544627049510066727217511786170011032049898786875461522335902211576263096908185540719665854449825734903037433303338293496041276065361038093793775987896698151087370796200023607251251457828251254139444445744219305921373742942409122864051007397230942450096778437752569655719614933511721275663163540183400889169285567790803436835466820379820566353740765060025101286749535127687192467201308139456622346507423912210322052429595436915170289198102990230026742725973343682205744139438232863867868741694642428957892377135516495986727901898281225525131906996179285268808836201916778425555051058178058085742273711929796596420470926995204875702866289465915309679311195164823953698144816383823091550135133884398854303873182759820408232440148431576212877401847320835315248918622498259721196991962882705729785242652259131548113365632785600467039634054196311672101684305468049154017662993287009628165977387873173139582074585417392599166959114883973019997986665869819095385997151000848785393480524693431565515167501357002468893376816121283976987406208125276344090140410083860105798528789688258296717115354770841533916111178348500931511063684443301000405094872898174721249021780376721284501377800312588333674027422661452864129036320141380359229615255778515178655292326845943590959954678627672284174076794152932524383584961973754230282643652626451218539665696787598645487996339757223086724575281029514079841740152474932598414115762827818179146087557457486730128767715190549379389603845307857053950626805459814294538064505053797782718727626065199939621776913929103615792956997494374006100144394729980450117546440412039450507241824418681726779060254058534594249432301544971015563345696638969011382350263253441411974002490728474023851338398135177892394144782818839190160864528559172175165035470731877552235135506545281180638365038381526695447881891270849744867815997359335233797526840375826318938417632291554456959076605814899510409240984825633059518189984612577591259366654037663386120220617094340902729962458815772604156774233858169359004057403183898825057415827960754927418999413517762339111201136697272834210689908177574280095474013667304785459997935750096854985890665185629841237846225912385882141657594338517508079334002246273465943283882321040537969258045656641000732499481642595881335971083359233970342800478491523811452244962452957527804095720031843482251374917473186679024919109205858246247015623616604920684661551775793613783158194070020208705594467649703090529462305943425038044310156718789508929180604785244755392168104662050591749421695915738611061775762866215050756698791418178461223774620440799105544778161516457212770569360463023836918875717623417198440283003883375961391358478545017959665350427755964921979471226765595218090919916324146056657717516915500930334667588351378978728729739310347453228785166264678138642746127965684709038158335149883190437561321546648961770254388200061997502440580883306618618286787447208257723765139002884139066460490503933504813299069151186179460382519809622642257333843143905587958041162359635191549063025173105873219608506140381690610496240567790278477054694491388357018112722257430917818157068781055512482417794313429709527193062290593751863735761791088702984751963204615840254299431019562039070094133043026128125701109927248078533671997810127720801433066673598124565784704240135740809483934426279012728829071757891185413966902617612446705411752000217243916768063020817120973299028418614883072301329360203696025854875818344996017474323614459349581891650040482582467245505197707149814731455372911976136906457027726251422903703521685599341507165727261467513098992504316951983931407964295790972967940705893761915297016188584143100450226692331741100951096862133516224522233157767096114972196240913476489190658692318030258298729143465511537389527726517777395747544472521909308800322997812911232419051902683839480864456453387656225798054210474812527521061531933254375592286236977921681696458202502175766546517009927678548125269616273286687833856913530120109079455945654473716473106700093392674344340089193203995608580968998794332635502215291418428878874503457780161265531631038178623444668600618614378151461305708947428638338629171208132445462898383741118605659546314614507678281743123159934185309500831113444964442276963627968965427083479393581442353213334172307195746798559527315026065301296485609558433652045904051136817010073147377051212630273366386096096045125615805610524124909550258940932336473365800746364448233065165064847183005080259147139992321349940347811203801096067848603496210839275616739381158598416640484339252190993163204119155712532573252678636807096938661871091413830754981427288195907717361090913963827150474443056924533008763720739598854149780863574257090208827043633537626919633088830250758440640674103305152423189976309097206332646620511757333116030793362827115915981629346051333160865989306320934600865939542403957488987221398499945753291454159103424881336005447437181617018926954650625081465952557048666994370343137231462176023685698597610995711049343710836113865762761841744162508468275328466770857526617486351538909318942882938942713053912330258861987873271818978211818980169282165876717644195833704044260552123107946770736877051516920064772330472201908233078773652564661736622060731826969936428651457308971213891825376483505713500462956599664245623285441917864844090474704746606332426132039041987731737102508458344405857297105352419493507776435009133429835509938685430017534540129806712899895452870497351015295638859838156474731846064530919034260623069065511636325236635567928015023666440568342853648499087270384368785581212832775863836887109416269138578963910232935730034236697412543188643302433128469570485227592410862046063479162368424662946390094515989389437748396322662891715997639508753591176056681425455560508157480497344956033604314066922997323633356899269205334608960293655115910743477304428049188290300326750764205757906469464074343102191352646826186161566707657698798096174576454493398061495890503769443300638846830873512241847216921936161954184808230250300810579285945065099811037067537053085207480856316257584886006482670999259434795944710896371385079827483398463723173393461396920525425533820252965321595219375321058290460808026232315121447066606193710564602865100799125248341630638072798872777091955811602040891408704801606931418322406467629449874662291190834521765518841769652891394092630558461121812172216466144417836542476628543403065623989524936173880691859746023049496404122132746871444131353848853929467771162004106131023317586512433118867465743671846262775921662571334697211064531930929098356365630735573263989286411248962526903837485751543637760592379449665063771669367607359532359925945838401429259613189766307973935965021245196944337559051433135774355535899361901770993170725248858435421646417751617694078300875810891416733318696200499104737467306373102513159822866585384513534266740602204157362148903454563946161292876375937214938256470733259755848641820103622941281360008848507909575229864077720577555705185306333784905600320025587792545613038092186848752809501655702825777755154670017992713959824070900894310742361495760485618764454265721538734279355143355365737530869434624762680030506592960532188200266517823314668407648236257519515157807060018384702371825671237458708747322895623233567988312173984439108641440928239610579769527264888998305085489660306717709711396552673498688310252359769970728355853407313442989235504081384044998400878934924378136122098215134443493299206965489406414873160763524927678095012246243592673988981083850259372425737287419390849858758445840853482162633697604962119823460743722042916571848230469427246865094230815048870297521788508655437881950649873832762473209491674080290427403260596179988417288685022216250971997121628302879048282756577703383037306405687742421031527143957425105319399353757636665024578906575383558285858773669676677471260214396138442399404473698008840997929894091142230270328733449239961147675676061109074212698414472295981987711299849607920653030987536441703602429594448210731995034968050115797893016706425506706714628367370143765239829218668735212525182302155215609421482651216914424165663233039771245170403359758339468541341136954549823103797422359673089959508579762956943694066145521639146825553586381354733757632455350200510028414643093313197542808539185864111991307684718199129431217371116476567069626721918990084092239015839348192372683591415741303194657498611308546647781118664380806670653473773671059637805313173748833190249204460151015896307162666502210305652696328454680217877190152241004282191516636312915934061401456909849079657086667475936546344588618307700736153017495306589886257806086645749580588016019426402338072375120254574057622471886454217589285438515819898608282183165990745629606505999006147370375868244537200647499706744002044154959604487261983819765319045845225073361644367726490281554954949636678657092998740789744140407090965600239392431137888499106597382142736961970273701638608318772282501618550856469355010379497926880975213295717204438196080109740685522882135146728664450067489316226965435425686377577273263688729729144197692612915431616293652669407981322127269086683279445162114519177279857795669317948593916822794021680405337442491336693961362875729754307750258627925096640718588931866142777803693127651928433110445946708665617847357762137495013606442928189007035258985373439013713289371004222766950909349747661890866030123724953751047641999783210220351237678705817011331158007968827902258534883659768215488968667804000668088083126344838572679035723327648089627265532627811819188589052439913685605894814729397894697744737583279997477436687417959309230135741991500338315608142235008705185095637133342499101287949746855526843304595392069770645788452150533611471179816361970683954296928093723842508188612412878665172973010284406866812023099296343047261677944414628422174988758767206431089317215113782077053303511842420193383555239705124214252340920377858394376800362464849539674731424462448932387056309398283876346236532090798053917538879029634451969159763716737124212798002518256561974281315980860221199590183422468001689120653543619648268867653659085422121167412955552394833365718179031280291421280407045048139957765145674054021788452198713593631151980355444489130530756706079406407516034262584599800551429265556266262323059815658467126144177463132414982605972264479064988658232815787312051101870701522813229201941922061730574866586322111103666650869739433616921630199521370559736631656255680302215420352768858223204622800704094709610796270789027527301853956153906022968739919685584118191279375689763364657556935467179290125902492332966363119798913741570620191272850919772207588723964361294841621368881108269779500322808319603856754306426476820982571438207131654228231187892293685102966254656665322455980457335908915198380552225369268857066554568120757078514515135182736595648005261193234277385734081826382444556304853119213424415713592089996109366448057356325732639770376739456167101357741922104418582286543978425904873663411749558853957093815022141476723364099046314693743684500279559700544251993350203331506170157567898685518410080088640819386050501570993761499412479395127562666446434846231413117079246394338921702582622983010106798993841669299274298389039836128503324608359480597878042632580773112078064668328299349070012041577006684114028987017046518583924141848772829181530172602014018155311218132841170611508462947942894507906527753886592677602120497054072589095275114865345171571964077826360237163494478063607340831499373967858346825673270531094934907347469375460184502871810079369918842571384752929794619975420196597419110578888864204425743380051221406135824614849829783504406854468917120847998248059365389443331226811899791673451698133750191011260777585996327424033303734272593959070334997691210985905560306285458915211584598391736750446679816441523911971575144167647058954565016076412793909259005282091563121122089128277197571936236137561607110872035592697014301492357214304026061661138966525275659146584936647460823460512188171375305827177134321761277066298162410136431536582537991467401030197180466479755961098552248489759509950984721788355780912213689735845268627685082525288091803821649164104919380881869536320019162422371065035201021988545085883001718456566277040839824734706908666518701687178762018267300940674106984889161678200086575946707303017563309396485011207464507447380776098559298799903512700771166199900909650031015783785724328865498308866813600469337663850668054765940861950286678084365766663895520768588445753437057362791362570683813825763319594347191960166927569123738600290206349721732020889597268103641706455326293860046271052019003401496676898885128254718491982478972487864967081775862650009441228155421384602436737755226820441312940984831585041566146836771599148270811896536018521285558653497391162410284494454552468231075278453111886808732139413906552613858200667290949125762191377606399000591615774657423251250124535046668796221980150274323102422315388983852087829267665755714317806456233135528685355039014402290693098891206635540127896445806291466493837557337710310614469309238962751148873163626813317886500812091092549232402536649240323277933365325807907080495572174515446573431806744300284973723676097488691662854519435686056983666755117516562713700183541278820430031485607597302474262936722362273681243875703111314767912045984190668387512866518080535198963400113635935273472997532492441798996448906888050984797959304184596811858305698139074829097957959280148653713664120138124516704419044128312819479980063073478493909058791659858501722121461408300937468512190410173152156161605655997586394678554539137473701304617380878155349918628840306158308968128821584036779472469108776911399277012547762837025228648273829044252002881054066721405357310724838648474975825000024984417402170352052487486096971536079701081209317115872043798167714148918344635962394518681124426303190633389688918246760385156430514050019367827359447647502644264325384159456384841732156524436697234957204828061378522460453954939738479361873749700662191631303970836617852157762549033724147056503220351022981944882920995291141697419491424023465234016913855681066176734462709246508874364355290752774320290425831456938103190482445753895505442602347571622801231118098723876941000996912418700695657895321291798712706637092977166104839318780059669128639914004898823528328843999048181754977695132318043723705561607566937421379791308388494531360505175810983804135072378386844929096301147642960509459766335177683619560559469324355638059422603279163121779656816643725514932907118430526758559363993746429632777286335497123815334048584385860617752925106621292605173760510805731056993159013081164181301813377776648713352218713249394256196454200343502571191549871595553697167452182013122358361086381442930140702202210070592046915454226014944358980352471288965409185269306441635759921245911137049768169856216681781133059508709780524219846450306925482830365366112903027198658561488946472217813034924642859669235829485022451167065055171869730409404921101446191710056807413972853120484922884389883694593488961554117874034316397653871186094671892257200817737795371646539173373588582533070134834935389851255650930037629934468415682241705515154047087513104505651934350979487346059388162698948037278360776291996061632886471447478970137688331362059438621380755293497772097171638668999811734006769044277755127223483053682021974512559456930437584543193839798793196874486506836669259985024417839075610148521759524277699722901198855587555565363780391807491070084759950421970859175655703295868636304472131831579019265448833651912634262439274824019810145276705549291955117684434787180776197963310194957582077815203464778727507883925103713431452185319515205162544787631923702901215149022723945740626418983030430849817560051343383210163955857384447045271461263773940334501246338719931899196007345716385031352843258195657276780964740453203196187066732642920872305236131646266770127327436978750620342632189103112484401883155676876469005864049653604907479725768837581309633590927678949389395709955270217364119083492868628989354237887841487014700574925115471658787707667732132595179931902762540138087873682591186602565726928877280460004565891888250448296690657886891740640064878468937225703200136195543773405897915059483369453957298906051042455388748115443922712065145772858859125852808453487025987228256206347041631694399279738801676491080256167205249154901142696856639035701700591723617599505629253723503242783630720460013275664383612338169146558518964959474507383555653164113523656958304423954305958839040433900003429124365834212063453679986085933600115026726987276425339136045244189914566720565330742700800163539676645384158524453902121798181106856664592281545615717428711781431717059587840271644553846804725700216557934850656575047622409139646554678518324698896546478778338836605792199165097411077055047055407167247958456599095305570996922291572016552226550885956016639930351521767214444080171197524683387988650751633093581994702356736747854291405104792495845044929129440642602808322257114315824408815064225730086291528677548951207229726692413484453457683703278939108417303975535629424859857544639082116207806065338944366998379118560027012164080208091118581260470001279755113840151990648298995974198934759135118494916292670011223638356507812440313327047278106714799091424117937558484850300574402692374770277220301008778571704642030051789572742860597411616961707358483852020357625964209441154013626956305891309177622027094310301362004265989138673858867048739811357385218019477576156931884636992930747906447122783146298021001452146077360094140617240847301054431786320695365194701154405842093749211165683094966079418755906132805465801982888808171611431663501161100627970826058449077219676953005795806247628681003111271754631861934096825869254943449782745793244641972838267361398983552763702542384580370816231168233303557341539351198801699598934262061815596771611628616642901894770780759989193089694385875109495644552710566866842576215684456564576756647323179535376562910530973956601863715029025219078103772898375508751582894843263059916696372582406793856460114852241519275534216434671462847161135005933096489305441241470970117312519179296697526029778157980627679798822272835089571770661318468680225732418215269777021837676566541485937617979801259984755977015169341038755382881185636778685166539675998088318440367426232291443901231401385597307891974552049072580458331552357901147260261418828359582707875084765815201730161337764219035080579611830188658446689411611679986613253506679585701672972686601790409521566048166807230401054133969304648508774193850532459057443793166656309941542639562170227651412558215146970514823811884901320245267478230192715290526325463006814540888531261134351925982447293368254079821488228140396422097729468374375271951520274484320685179280768461892364996294554482775383910911288526245167523388776042481030639302867905457031709938799717581768446564117355818311784512835488783990745726600074741762302726881490419273487755471614822161241364673180853123178202128078301882622452307257381837212432222252456345510593822647949569807974937814571177603313955809908401922546127592976418812377418097424337478360845596886122726012649666545347248000124771729154632692340812997423033008194309103800539680512649313568677809360656575833963459309764814166620381480811740254717504970964386038394413001025783382100911110021321773464050921519016831964255508908869281504285086746168886309765355118369946253797296948695996325436923310567338677512853118542969380944636263428678236925005529250601686247262161121832283031268471668790554904144266510691975946134540740046964731085841954887610913541127720733326062483515508581077768341205867175472552982454090957145952744134962504139764794802324071936759892552251335292237218767187208481618110646510688724142420196031781943868509125052287575780007996613181906697271932520808995384460021136942628213526869305417374177335738473176307124222562489718110775245452426294305182465296120862453146300815949902032628980221110178429668425592534125217259337417278157403332061885427526940872463969746780482562206642238305331572706156030338331389866335544588620830459660933502558845884858412511253667619046216456535511868980146746765296910498410102796744271495514786127752510610498583814394117094254420053942549051594167275219295554527880155577630815252688321609707685284916305301870253251991842293363707436047775253233873583965707065132138802928961947984220532394780125239076746754265075504263980198019670987478494910541212424514806719939751534726588444093450427477084516492910508603943669884437927864437328115847328392057345014179207399144494623249334575986872200864356250243289595697823702672291484417754304259999990464824842639990974679215425063395730107152301095894327244479714788339822503195053078514529665240114482426503737789650658640346492654534030618596439863064387394422067360191343735728710341871761852478675860844212220449757048525822185828233617346036129140734388077459079514791908882507628475408301548938701807770701243351631470900786431498286649733928755635469833604731376894185842821503496571480708949096039838277336420212437094857611840334014984700908212515740239952770532862695874813305548532132030994384203495965330827192922041027514897119028266778872833042695234214972773275541869033305529768460270395786334625691503252224155846230205690837291289844067173854284406200548465718753176572793677964201645265238305058197816658539775027388725330424522686412685507475600393854978361022166957531780489660422704945231388480628284203542555796478685742321044307607346833996487910930904045131745887716870490350537552028644993939823341071532864268886702615610053026929810087672038902763524821635036701804982066776954772098227347101158039449143956237718211700474862767195472980690696638723970369584217064542647143266436321149686191801962893598677614849862315911260586590790407623124736817998820080630399639739936038729029404762731453235293358691064814322677981760722241122593973461453037267854591133370001378217198110279747475128202979948143698930658265964391108158231171774824364026978726235154494840952622043987932002056304482727770629451619859733954953836689311196023744455535075792926000263058139397062521419272098397449121678088412541046390147544908979609100201504740485607645664967533135838028749721043561404984065989599564865183530457331828561863917614534116067256638029940411559963580361044676008752101016357304717003739227475284076105953836301210206456512097201847284351697477026035260844255886057008048182852786812627073522081589376048855301278267299082565680828589370675839565527412676988254275369224386637433086862897749864600096621155230825731989778970556314624487039578314299145489178120121273677587384553456859946971882186018712598631684383684771448361842635420579531463217227170312249195707344409421664751926755335068696577671959600268430043067157083829551979745957577365008218314669910273477688550356784151554768905249401852982739439794057519306865222377975866616976917231597627810805604491675354017509832968013666737185446295792712557763510564363787620682209970414362392436141031109755885984895683136864751366705331712249503822245016659287840313684220217153754532668242999765140731215047986434623353140452849913225895487633020900149493303185153175182808120971558276477130407376866011222466599596556927595503953063025671495986830266797190898842750706781265979194646864502196892412179087577492690050064157001854217244226970931155894770692074509198496185331995623409122627014901763722592678170867493227566776041120490256513132505791206819995271575442686559877532803594078206399058861566645753339411839670920100097312218201685709422920513565987001014161628816950243257021728228688440359168400514025137698196966609790292362454900969900221447408721418748906044210035311613404081756392673609179046037530230773874349704780088246658703495176680242882523182440294467682585134875402213985324104618687990621095084034217925800824932265403245054358514585411415879052237699876649369332491759401064364518307541698770190326684886693975744846055531976456970995663898891394267077309907755043487148731674792069456070481017423172634977888243121775712495299106249437755612321279860354493365246652517643204987571720083700992326058186950107363170072396628384133036534271587318507074966879055308093536326521802815143335832103248224084148888927641331176936722502169298343072889578402487394362045348811724362631742785818099238597289288122039074421179295219340584058543440916741134302296006111645899204863915507869990790274706735713543007210345829859759492334518573770259441310097860884326006200362751824836580294212850332656072049107721159444150041723648717077238577377347766697179939575303635331212576122603787972843669174807569767534880275479874433273545707808526270929763698419768729075381000098134804435603587064193143346191949311662180227187868998155719081281972774479263338573322119487611718922899927555963807297619933091804997849345637743263951264856979480572723841401183434754311297563259044525179235560943819791079589518346118940106391448243649145818427462616460707293779306641466583019801155543548670676048405917695130715447641480033019062788313165814540152488388482114389337339801818474956136505346809808822209328834670006455442826783243555495452875474083441889674402242156248678832515972563455617521723537380461370904833969335446909880253998186165670040033356035332523188755124025751083758421687611742921841075646974162751310602050465657312865107449157308419542345062054585008110448248920417886616451182953984691207051506886589691048956738563249627983721602423079128083635489641662527011170965402579093379908245558648440896059429515613060828267230067540766446564094558905974021608315011730610096410062436598160712574639867128504583161933596670406044108829702871292875851818616341807172342792564182878363091762103548725375382040317332055219481968303353252001808799190158842023199035876326011522713288661957839840281597581608851053725558251806914926670253051961197646490101327805295133786484551420883062187465636529377408268979488934018814811284048462117966279093465732020524421066647091576292622331880838109784251489970557447769342451167266613087492253676336607864056267886337462260318341298840137579449218094192690056869739214688176142457023755466559886273566451035210026409968572746651615847756093623965584363406030592742337005288607772706451982521157618321505652433699886780862843163953927987170354268722692392904519050992279657311551851443347694041833462558286489812635865887074497346356284775318720492858174305592076284667895723412316104137490895202373977758186754486311861050976787667199963833835189306317074009470020607666477632398232031586668437554551914639703351314625854511819707077296762785505424821770126106822209605177306412313780607891656383173047174489259444877209158865545261230473196929900680064029507406767254257946041002150688196798225530190424816120291174692198793966931738224370876348967947860125330003823186200253758202139462536541597203487826504649587184623765093577315461465582315373551815174330989332182419572685737392310347899779841834986159043360071097223785573700581223549235865666525286384104050733821806846494660200028644520661657063879616231760425982792877980152135920018211294292142125495450338068963632568606637080501543482746911569572009960650254322326520897221371143884040843530559690714839859657344324015057023679160308889476076795910170347062642537112532804416064835381725551226415648088736394022485715674843675931528820965587228960398518038247870524321404490195486218613067007614687071274530291344181849628261870868361720683854875352662188612856181324240166484880342472700184194198485958106576371794826950873266319448508413590639233021549575791014484150516097639672670735601678442925616235026543533455707097077464849425859917377505890727686853237257390857321570419990803731889229739825670291596603926008426703923755600857895071109782229556284588405058786052907396375840592033741033263910129761764717090700147571745553033268019135799657897212803967269469080839705072792382256391812836278033005729856795301281213547987167557620477627231588766514445339321870270865379778874668811096359091687480723921900851312027831672656071684683160225593101226918091983761866338525753559911821590187082170060710215219578605976842926272559801635557916902431377990127419221189091785152376968526622515843692893318286989017299976587465274156608250077148008500091553566796848472349978348346682440154101908831556151233797875574164611788078607755545234512557014479755864211641184757659054212466036629027837653509597721981575876533073724339157173027458672561522048185678446883255434171950673009490578326835260824766991360717510838185212552953701710664876471058731452792378621863997851395294539597664963141731132859211494925940843791210328769118050946305712352816291992408188632983089344969407823678245324688435032319474161986863566329497050650076021466418977109820534020047624625037616785599251901252120498427846158264124514344107629312622922239384555892593968938578892709161987665065961114911697482534362185148024740332094141968621390898164785483992150609113978995985397233854837673633171013336126310545171382504703980982647054545456455984134267990937346169279822275954698755757664346953419616889359101824622522346904196802317094911091894968247500592130178191260694295093369147251409028221140885448782090660377904557459534344261352949080787180500580933476752267110733689076581790861472159774362185837446701272018562612196328139064161363838530029286670732242878281302295142448896314185438380243362353407455946953191644299952500335024456393972062706047070146897302860843527935641208494397150668370822700203573063552143170043013170906033338452636442035089864255304357708424705475648533156649869821898815072767524704443424652122693827991185805742793784678928550773577425983377451623491547358609366359466810965505300733141042825237228574487658848628376266310450405576685449565166837098813687699856370618799970367089709598931177484023210076796863602079602587463768886972683079065693927258346171728230927018328880489372623053550120757107562434017908747503346413659846082518772276583056772642536949523267583080091728221680781755962513404476168152040572462819423493843294965135292088523195930253283585653951327304916369463192019168151374164066533245754152439088522334872518490294948729797090311671682938277698989702160955116528492333043916721205106018965395597959160756213441923035945259355477553224871405166305893760483407235375232017712853403956800416675394589549775558777122022699465945319410268510565148840241954043949771950788218236236586719594377462158189745881449736697893772010132159169498807978395871646082380866788240509529141604610217349250363043296862092639888593476135926925141616026436907103052122354642895640705717777022746487969868350691923552169166044052721852053606588579604273136343147192375823275650036543816704037656784214899794385216228556642384401259907043158404820998923375424320606349573635976658486933496415592176206443351282675779329784673385168841771483187881782946808665014975042393525037969003612021250921990991931612505446413189933359545189114581339118947420507181765923098121663970399815296077416652248344945346850415986731332590278662934805744528714129249632334487469326843394852137553005358703213346253438104493339002667852193229419294841910611193831445512118286289497393675820770490968197176107280914799012009537946175340319526269798581621700706731944593370678751446191904959411577810909886806662878114967401595714406367067942811967879632198441728104922479449672989549788944083081093887070942686470108208058032717045173922250829564733705898230018374009698010368627554377109083791463869901723941852692262285720885001996842437007841129811128607809228723032745174870418105544644797710899712708506285640091954660747644175409118446737310418268230503331496127387593251347223295724760193043901955418130565242581857790900233836428379216150662272530297048750638439206683453983549024996871433156664499028363517520291786192851870950801010245989373546305039911539248304326682763343027094815901585957259991977454345406007900544717599666662917301075762692497651718912676367443656339057568540971280045300008417093440675253248182450237244011100085454558417962128367444896597579670165730216650886676526604671173960543441574086163255337640998119573055680483422087419067094821518950819104890780877117557683670122358699549646751374899300298533362626060961528524076588224511078533200467545807550327221767453804996154702732283316817918232772807882048499948127884341740247480326536254457646991132208695560875319040178232578798937222773262319164013918234233743487412536132004523596184078517738338882499538049265180637440694315280295693018214358861376367157891757937012397338854326506426741935006699978518568879344318214570910681161210763448181036342585568807542282057177198552966659453919353518424840336367460640985680443995780125291065506935556696657682824980745294866938007738048528775218360462905557768768553870246051933784096147639194402806435984602510594078483822891194186567787703273328160774037241763260472044277270072691009759242712779050103031507789906646261315323437040452382078230720410005195175606478521051985617821083554644722606567534207715343413793487192862990250224304292634310467473551571018359451876798454241416845753356452486170242242485904146931834615256600014951205773749118630767943300347016741609647425289957685927006343817704166020330995034449759803158658686184304198651006636897199126099636889792698933919556098947275508383090246625874430846170835999974146290249439715749676996437275120518723746035868859485880085357295728798475267432366371377221845262312822739039605459946767644705232704406869764139403399654281242757807252105045438403276287052945067554457883271529440583786593115994199205103316808541093127250658225574429164292236528171634407983328619348494569633522251633283267367743807076580701971958117351649745984744404782016121380248163827617573463202421370752821404081220382774390282451826896602786272061521357038262355912961180679457978472700338549869033242984776108301777009221805395771830183363112236678093591879101756480372328610783322154331802722996607334374731510090367739590666128615959224422377548593705867973827574640857735132528604972121775777393911805888319999941774412363336053133339563837536463937571607684926327296860362488187170573145561628798283205031151586289828298934957668389968526517555644454841339330983195870815887363749914640496851883828085282459126666733608023724197495803805164230678250316013310342999616715328649725421852646066341562157064947901657335831480987133246149164680928803395115158405931548404015240699827208496384715821758371322318542914512060423383759950364891789815308495400490738897918061288759897451001341427980145379129233519838741316516354658295542183066850419842454923179897679199414296345884357188600138792523762722451799688895226590337204749229535488687869051427235819222088538990959043026202269439423957313687963523885869645016687238984429392180378779586576566110503285812329160942304315565254581039286791699412108846184822630516768733435217493464805946267588916410947818434424295141316068899678853438851625385879417703913017181470089529321793204225014909458074405555154051137824623573889719252690963050018397936467264906778386006006246690790834458587747242214748930371722818463766387903660055379081979418168953608669163141598454240290631497771095635039497954180820645505786993105028378104010276359322195877063884880784430330861157124616951868032018374004982379666254366481883021597424151502554036947907609501873555078151031841506485007093288231783871027186458665362794019982994079891047218595521990040341948106179030442927040377722673178446451756582699723041359299307089498867581769872657793719651842059682764861497007327709703854897523996036412376705301585892200053692967759644908799935280450518025805630466113764970259861167252582888500506379244578191892161687482303709474915910129523118849347535402402504396474649724490582012948966035782034655671963916599796541574716840357211443139119710016751710572489934694272640604903289038457858874721232998578487780017365332841416637959570296145300103809233305112139276751704547765576694265980990282237117395049564542508840536837016328636645295061383696889515880908907228762590421821666954501362525225625568043890777189398100815442061921216875569358342856561216197294366451605706884848334895953063590113485548336895416961061143357193048272966859520535029218999455393544175951877549567543750103467035558239254603391566597168993049742509976081643510115205228063795152814102177500811516596706301116103850720501430670170421178899683367844758154029428980986122143096591439688707720921522995584505287278401035656687948449920001491187530202354190866074360285611149227137130029981289931508804791191608843266072579929489161128386100804173574370142323915677996948329768674773693400508985418346855034499022605592086204335767065725983480366903440405627779007336050917935090824721385044887268581905469253044587478698771416305353161970910744660830448762070320584786934424471261444684123930676228537256829466114490451118631001950524600170932961168042606192058674393788416603508362698323029709201443410692376949875652918536307555854498808885882105135134305363040051752141525893868987416293577755419957469410230485354869608764587676328751138840606427095722173886383560128749136056919356105967934063860205879856754164984731795839667371309367059477685337218208560175531091969586879737526749575265684535266924107439723307029397243874862752153542625247309609850959967394678348072186168590391516660450831809594342022033802810638769593294980252123508625867963989393423955493623241559227330876402092886237244384659369589249611819449130622001829236267508903590735714719899399194360443952798827311616595528781062936166240626746076078635274278907494000552375665884300629547426990994089682052586481680548096933295093842350901666261698017701809643767799220368317122835232298937897288435188902920284417803500994956185506702203694591773845220230511801224860604931488417454711780134933870224528026368241364505968506901667985918453196776050247891973356224276831768562388449620092710330684362528626878066086904829090638896299997865285196991748846982300616061109661857734325734203966487752741512973106248994146319152298640501585529416252677060456400434699600931092897804279037680526060389988324143700554893640543509212915364083365760525872135898300775278292785840109812267200897832053296171667704167347817629593153402012878722555477899144746906153053220659352279977670759331864800146792191771713842723224223157564685093448137739180382110122473252460535747105568805340114440083008189845018797225688736335207915906128156459953168063024069860430942781141017920563977025728563481655047299242065502191356627141520960993005030369201080712813823065465053155511012390309250245655754819146084251541276824134175143756296516699165453849799661387708307088560582826173951058014933535770713599646875902784324551611031383762810753937613107534195841231800871543819102320024368932096722387675210250642428086194278354934026417561128867646145949256951866220052143955069780445121829640229852594304367335707299567776009638303975695004835928559440168719692933089677655816738219489102598187319399448725408975267006681729108925273885779953975670759188961393448605010653812812969663581472404145225354112402275387142861324775044103219380700239080767092764210475778205851728074807544697184498953266457578276594165698731004271282141223029925687592785309146101746776354320903345292290161821037380490386468379844409926119785607027304131672828744137777916262310327888071598503827024899735984973565111916520111289745077420944433395291943109524098511426445372869565257385388492908266351815496017986393539964712602139143866444019821932374525488794947941157409535277967898141041996252784645227236575804869936326594303019459248808468843980520334202534591069625107831877407745517789165021178034361285909815402333892446616914904342228741660735026042885412215863173324634018318021541162443380699098185339443227471213408662748468768574435264940367614510751401732387846066695451996717759084940227285293860137380950739019416453222803408352201121426725076817366154896719282301327433575321080743909010746734564028910773797655750305502031959532475687538101335626625114435190017817031015843248669127540216929411571526502062879101901220713979428714222350355525120798980836485825801573333454253857035653503345000887426042293478801906618760879887177935887345804246066555012141874965227354443152123807051146667596913031723721611593665046309854595033671248478810680901217668945419576992566835935546324467581670131385119921864021984170823747118360863084859571947720766306911839387589580515091331800894588093151031387846498668013338295107355393184063449317073044687075923525611358839600150176931943754180918978278075342576184840085843499708822419414098917018727197478360411902726685729043122545655741654140759273268683833732201920576839271783197557045046807885474733436101778690164803856687596624456892200884542460475406377262162136314425942155651503880873498196569346866719325622758862246954941463255178499484671183361306053859012671828095395835961613921134734335223556397596101969087028392835555174058755078345444071336724886448312764071852238023103811830263011324469458519553158332438979167186589444479036478791118697968736928980235790081492775618641046965537882764620650155553616569783864097593457070201270286163761314934199612655455863943563536047079649854034066218998588800639795431274732780553378287118297567401128709110329469961964312068671081605868366995438380033760971552294173924842658140623496680548814584493261245820824862217227920163101562296450839689478894211205848716002392157549239181748387152233731286499544334418399190661569069961951045088084747132510496000392345393277906993258772153649655368421409797937434896877478638255428349429888253493569425134320525027500961099290637865541897973065075103422864718377804676415667021457623784482711069499103685947013430698028311812177861623309538268576866548503801211206771910558181313033808542600419452815121306467322692765812424645602163736667969454808584999095613078550811558211558314705022101766794018690131750866188814273884769615951097195062411702274956247257843644704800985172498262335589785718708979152034045951029914093794764205540727664512338713577069840764430791626006886950862980442034254772492269909052330196212551853784096418535248778459179157472998108345038765362435276502116000381116060580834663751245904810617816060821688219048701604898193503552815904063961093729849643037029421538740941133583227026656127304620681099889400635181802384247579704587605483646844774019354898226932910627128300853052113593126564256384284930874860832074796024293313444734363920825151541351575680056861786386394657686015111394253188397358467243461222548642296311034846391903944939509881389788039496081066298983594911032919504580122332832013721620231310267756860873843057721628728169570918311747428114101456338031350573824842582328585450767147856045794239781443123247754642029918062513348814557428597423985356130534651078301549304843826329170015294978602828805409364260769433535993128908363746561876677581394384799376710591269336694360935169689187565298601085178112331181850136950843465129397483577867087949072404628634240531188190711012296735014648562790171904951481497922135892472308266050653540433901137817699802919166522900261193899222241719709504926931058635685660684696524121627680282265967679568251345254146036492595214247334749663894481589686388709023582502108545067380189482432634803706086325046574482547105308616293644269443930652217595593685623325633028067184910698537992983440345455877340772894551732051367301901746101226096603116313361939811791190996131424084355463533526643910858565012543858827851764838676317231475182066394735198212924190736041899721729898736796569117376247304108016830189866028711122765355825455244895115414723504996985714628463435188797526378582563406870792429799244884254802462447377182525689786120165406808441122825277069051940379378905935660162780454029197679580867246358542733576126438593253792058002644185345592174503615610480530203412004063564770042880866299467853818303333438127486046227673876432121195027210854793015609215044493311830742857363333615597749811192886226580642649467261264732841352967126311625116251552865198708822788835718532803143623732656330042838911329120606897792720802868236353912080670884800602780489457156812967022691576274428249140516349208220074623612889807586761165153069555699521464233461866568840228329754450703098767315366023588778286694191201993730728917476492804480882549189352832545714356421448878531163083998788430154080855136295895633885262158060124712102290688938752905314432445790390092658248281413280445691492309254626476436330791339055765663127106671354414621483817713867640745597393519487602653002024924674277354255053238951356652595986005173673474026148411177334562607527120614235985003759925231051871632006403504815477879617856449281571703734362022923164049175246674090623209037018330333518885915584389750473150727258098752962665884547110648956625976934974131905073990981702163277969654173433894417053494221791051020980563088972300467645815216822522677662361214490331682195667554328893389648650731357573526433791624674441592456460636079869086378150894850293494364534877630455296448436364709657699599044933039015057142268350267381807437284657517400720340848356473880151653190426236162306360802987639834931355674613526962140499877813927202907062079945088134773073211885373552859373914190224520706604350374914620872524838637068187835019111465320646286760237841266143818341826698145576583429728270060474055611107742247655266315751201650743714274056493251338008752358383570622250508902861298611065859062661773985948370857283624356826766633377086456405030945777837641014684133396038104987122026588248397894490996411061556074934165543099695210290753261133264598045812220544778086262790200988035282770134238163661938409681509260570937645625835531832295866801408255235414990408601715399897980914536823044089383338084739090905733836385269261748536726447513456918065216991035878243678345176081726007984871130455920920871400829988146703238061075094190571136475872030216950238619008354698980024902091604978344346718185075795510641337662236056369121530254140496208634479047185260982739456819618543241687590884756099027231160929589469101942624507209133674453163275242948846095928539971212233877518284751430603691332625515917626035495158378964028958966032181045807459575493051279282658864015450719329124106756087229534684649933636908775207541725643417779224986971614558939715755550697885851355859217659224324653577988179774154800843482529138810081121090003621206242884697010099030582332742822164161219000578414367480420747937638213952740598983340150555288870250797903868186448784426741819058120607536538298650489064932008027150799528531041272711636572914336099609133932523683052070139671631442699285777559823823915161069818709318895787730803190857685956872735569547497920085585254739312644765081782008322112809182244915637977121285384486123732583948376130695001865415015942997561816586323544355515707477048234322746473266072092651686881827086525712114474849062382516062870517457255033897852893804484039101078044731234394309160826110516869703098727097687259504348590113327073862585934988247253843028073252150808575844611479100651907872749585865032181336712017515635672013514581660120291699952866522676063658945268424327693599663730652272494809152460585589546153668756152823569747403345865082588895917898980046478372450211898577501909481143584602857340685147700616961338258836977360954386088465382199772923945163376751970530878983313191450036334365093237629287472224209993342991805041130997498959185937570249375716108305324373300229553943492344295909298375658605428211613023419850749604283111735790624080321780091752135747164737054761847639669733052597444099062395116087532075505747628520365336152156358193756969112662055428434290021755122538995621707033527397140221891082688534740582417084492740964647382828333415577538633522494404171326857881833238697532931996968058953903585800222708320111597433972262443698405044888163252504085153166450300959060047423139436673022039668525300548330321571122823219009747486522958047461941441496537985810563530964783896378142972077636162171151472123736316933013269140239585510333727693749015301891588664135169324315647035924667921779766747422216308326892910359368877536570182230183792098948095797886541120800772653800197337364869505404093638809171125866925219555256579703610473246255073350823976772439901150853713361581875659625430211933644451612801863152419962766674790046046848872366868808792034313597169172868413462715842908245254357838245521576326945005056330935924732855357573831319410521452505310732502519358068278750042395337727116967491332206666003706059530454024012681037942789258598213041136614566004726719437056959835219275525284807352054972196499885900566071638378000082873791608053249964306355922790744201659275216901761749314598949142579489070919311905786781924362258060580576505969424784692103014764722822907868630696223066651018043236728151297119874975217299846586370296336823740379864088908307893662836611239199071976764757387055472540282529168191677591226102174810418665761063516456556401514708014533081695753211629290228305869702600098285795732877542243067193597122377605656977837921416168204904696798788205501537797664073059131142470804936931546137896285646504957165064977186848151259065382863698397499586995792289773081069822172912993808929962005848079008653435081306014159472022120678535043985638425914458847520423308247305736866571101439471705588562763128616799272763004402483578836465702571080978912427202110243099465651678870526922662609519501938048567381150623445622027237450018213187938719629957145386475932621601949235487992333589714105378733125521942254467807414516106009101556084811639487235161362390442486844858484019137903177801731547319606435174400031916777713967155521355315638209906215686590998557996958399656697117776329309797072879876807561609304848130024555199807920027897410688907301811056063429693375953026448936459330425652937539187147414108888939870645621474413417894840319463788591556263806190221984124080151568655304973839046875012632290953699295088148612114369775425776049096836239321960423875531124250409388405749420262456430197007767825673438519714327528175923341274761429803847434037905655011909519327801712552734003903100862344652768716680749633004262172375386229881119499340750155337269602760388577263520601139129380715992708687636732304538775576185708563498221437356677639366422722487392082209802006640670135145004990149763780155947218264855426765782741452871456501028023152879060052556603450366551155039343864997446325149881953836328051653299137618497132657626261759500161968684268212393493007422672430604970938332186949245158406357500085468879952954342188219863665479385653294442672472741633097751217438155357006195841696369288850873905238961406985302225646264309091448561351538603144735946848611716641019527978609204301637822303053127167387312304587671092602742145203859281818717169153970568506717666579516792182872061557676712742622155188816258120404594030258167385287888992364295293307744700439252988725295925651365394854427508425490503591066580687048539370312918946989206015991561594536082166046608716570433173586863961323668248744086101838178228667418091223281792762634911753003315291810372702170482272640721007442493779127079198998326954390949564887238431402016928907812818958964574380267329498028051170744945979712322380484218171285370463795473755840882454078535899672577055784584888023496587041275519327709825488873907939811101310996550450704112611114635365208021814530785914952070483965355627201808729042580653208216215951883965271653358326315837146466611955443091306569939677433048183358197622678612061237096553415483174309001268038399719187584768349656638717116543627624133516607015369361220871927007833954683399272186569394878998098984366933292592544682940041184838114341260833629643972647706347733492889122862183173608327712337863858169204414115450612931715376035900156388363939550624094292300264937424509054140145593059638501050092821960625299171513149408993108970184346781178345901156991848068558197933195315935200928631397003675054557267958793031525708633077693058794803088873588740848130457061990234216859010025373517708952497219305844671273202327023558867516898900536903866811612300601978973334050533145627549485344656669493560623543774985337193611455876390405659324103423408833824509239185470144501249198270129036476350160720231998655225188290820046988352855329140845993011733103871506870460311769009284368803956618712037483784625553775107248321694899503979183339005983146612980066836901682175908903974188389620877478930567863871935038885883259254657434278761281747883488357146535951494781363623134658887194012305415960763185119791200001118805906253478071652564422195195417668786805028806243668588427056835043829729856770146634696863222672941978678413959986277543560595346737836667815060656010012310166691803569269858571598203604166953017648233237774906279368928218388394473678250713652031338297801611750531169389486448433835466148462143099962371201517362883436916289476027462085698832019511268996660454501389160636362299373195106631454678451785363143817584715489397209527046292699055444575088520413080758146245101218711168237603760685789096101022203427611107116662321232919147616847431784459308222471592233251411865222627481919287620274357532540741576572455964033973035454106472942566793972843262898399375720344600818893597434433350189270133727271469737406539280553690988643012003860549631239457793277374964517305171258682137528281012212219564327696493397810900958324641874821633405598688455661084208833178541031468366814582711793221563685114813562799640531587715999539631604796365210289423378127267406603708908740634664368054235065386422640837216388798352463545327636289241415612302387253328388217127132118620166632264326519762066210067269287332780523376862386550370603150406855833286976426047816412662890574654678549961049119716564547137276908932905146098730351524471350507190918446776237969653014744554166110872533085765262672494196732051554414024469762733196639485130384092206310473121123963290057693716057252674427661252853256284291901798907999567590105119867409036740360365469130390812427158785471703989415399343726870220325404685987796946439106617875512305893775993303150531938516119651234867124961456697650935819992460381315909094514606255988375205718237507868570212891875240913308045407419984553725074589104336687709818176281427001358627279402974000960405338856451659033587492004304894640195035420089876340721409562345263380334503816701415065300455283699279204610342673781776965796820697284695834933058336810060035264499053390029141493074980388267348895659586171757512647253264119646148885326867822678682659371147792029928759834023618080771191217388739788636515973322577926223731567357884947144653238623333863049589012196050297708316093134252384783103854633477851079785322279920595839634093238763349425445150269511362409862003459223910306945583861576478157190321747394984288999961392863367962789465013002466182365351698745560581304813384983206176932552091781291419707896707197964845755259859160151547460375437611785396531311538764006554929867701308339485833629639558013251596435944612753631146383795309868970981874023281336252287632124616245692323056788028703885725143002517226760522320492426528095244102188411803005610783954798029093933671181861950992025755543076287896139423181626886074513365726817599629530651863534561594630873929146751627126872832734007196983648686639429143528368360819383521172076280377596471989275421075265984927402505784322964942779871620360271345915707557827114981021397553253372624588541415216088047506180539084837412263416582024726022886901577063695437539975561035080850703292889959795774009700330791368114034484241200003519505515175955777492741940183629228642427084298649487426290343632607540609175523330320135346215692352827991509580069328665999731811049966692346556947542526056083121872764899763930888327369961971241672827917605555545041282481504352300763244959792784676792173883725508368798418458789661311925236254191743096847041507833934585433851855990441367354703810430542051539428602669906038943892729298387078814201436920387345302992152467121678082925345769660907839178753280933730511910483224121565451128981702282321197699760048921432686115925413012119605610449473010304081647122434571676653907718286630998973439637674780751736780236989789409104917308924555410293624078952983607309412395579476504442297038020001474635641131777331843452455628223516803040555994971254076596195723672163613883546273572835024526372475020820018822555852512399385952635416009805498057768942805101455995588881587545292230617706934964006584787912920669433281523462366733840337069862505722909100514190786808967679389425620343976644947510343882679190605715771916369294497781086418687524820952953021831981832300708573135423160472992715614355288705335341547778931114092694763628349686513014565735291882302160960679789825422042491068677212495618958458493559052323059782134797197369193419534978652769998483194467186897499021158615440550177912806853703634060831594680066316562651212768967684435132867439552618312198312270876817975765710226390180942093687548836331689325194042271138131710245341495481344697011514225127593513597783056026481687505303474541506971686931228906841593026771497157665395745451198334839612693522570899796263940402433513116567624595380654220126827034433947707107530448016159364802130908253094436329954769418861748549061797758182077979052455779401327294019956723853135437451947865672393042919616069500965958233866296049051525297993930599507930990468567356620260930547750466290362377795100017993733874735364372175439664480010943376218751254198190349898665234415229472159479396401703457870921797767837370273047692354169974568470394912428484736819152432071960592594449583103583095155415116953724555878196552329058449336450192068811376619382698881207506271752246632099186088199621348698307905517937774240291327387271831897227902987815533077167452743854690338254212571237594241923980036643036999032323326585699173312183473801976296000094469048545656678495132780278685833042716297413017020459847838570550757903032572671714468322160005436545473741881279643267032722946584184217642144434039943052724526500170002488788066703753725548208128499820983664449009152400941638294377290081861529377732414719935692812959879115419944197038656328480402876707973394197916855009882431636982805506566385212557580689580540698172485687608966093899970145428312999113126297098664647617560738787759373481590015907534282883494839531488136939816952090777815592514419079725686415612893747951581275850607719254418120006263091793950219428162968204721346963641451587664371664599088351106059851422138505617082075273684108304180725719872760634927675660121738620642721341892584056418556735941873750348198267536740959336387926028046236519588505189790624107620739595479570633943300646863757710694902788349440130802071017166844758099030637012652954225360208786817216289423221243146864746319656012955432612526494230748780123840072768656191058287008381534662005490313596088675383316032420996589373823172344376928228333067718965856793538022279702815331991521897910303866600257423630565732858357496863116442019793844348229019120092403591636079348704198862771532110934308102143901917727864254407360588374072850575709136855155626531845978739411313703424594355573907710157167887891982043015670625664608052069133771609123862904150789852994486230001973818686172338487835041208488413559454548126808007859512145986010777457898598371188397351959178930893199957205203739986155089090447775563611069035564375160833528330863854733256896453792273357534444515448159361657408423245739356374924050649240379152335442162727920804219590308546551283920128399107121499043788793803306606992600468294221380300022475700231942118792639973319856751615278873594953999136524006280296257173915060472465292469383538250694685750452804631592143112945963540552874344730443746872758791422300538546169702836396720069900116433552372391675894368909229495870202098363668450015816703524480016286943818100100391594879476294907277590403046291353028282371692033465148520987326447793903829218521456903954230524028764818205611749211129684611506588204231952453809435937207063287888955181286127545372612635721387421679567681249008057537637326984118114412625524463658896981224545915273072632310023044712841217591595274814001644315960564157243642755732676694857319964623928702894310807625285613799204695846277896995170493904300380355734871638791496837630110192062942315834561857820543590559546442579798360298661251359136926077928783142820833792516852223768627363982339146560972138613782800654076240789929640868970480358817800482585687478622155021236673408876766514897588418465775151272417512543666121343164429601456512853111410904683175073056643499596348795554221969204504910063019822445367574672786997851622283198351080100514913477539852527086974032446334844618797860900725767916190698957395011295770007657749138259354669867498442910501886317791468690176198686588111365509498431475155594564849893084802842984689178201156581267571749011155441181509512100196094062257283513957099935058051142157790716290039499554597825215498381232229294243992586232924135385613344799567800862249078944436185807148729945378582468885347930148273323688701744378487534695761332661112045050186389098979914896566545289143594009742524430102996619115919672071125919321680382365711691681087705822939836327335745207008015525931928228438515462864236838760296735440116332196114007886930289607612849358269097565793727811313600051627435586350884644000642192609237604057493813057868265374885907286501900159262080612342476961455448790779513964863428977721748597204668438038574719283144168307084350963499762128830148791794485625466996778659381854346837041343339994850967227070930332306011195300170307648071825626417264129470622922343589777311209940745055483432186047194252550311462971059963777609241221055714176165504801368513025169812491387290470071682985781816575640062806459657010564829044240144796827115483304326922789015429423186032811118650342246088005840318120913651628218052406274103946304352442942108128529113786335633383974079035399867526146188907514916569706192831754743574719123583273291602652059544907927878740327101205028767727618086020017656212856679042796464663546402647065274348009365668722214626699433689046005132699317256018201308902370869548464588833207487499453709561856741090163655053151826799868249216563540561852204138830798038180802407417356719977530827457089049201108945557074604173492216824217753942478917260166906373683262630559282066729443874697396601321223981769504927629983335481915638637672644691782977480131688000247578739616517207201950033887588217155886879957474410592785178041579982670221138998972381656689275078698525392833982097133672328697172963981159363915297964269402007553975501968437607736772621048559082567458450700110451069655912312685253153526271687953610653273911664375677196138984622548079597161557738317166085130908060168032156931706632213547801284311798525311880934666940904773844972232620187148311822699941418520601252214657436371675788631019072784185900059707347995476828377701376049316077165767519781662029402480946875929298466768040462775020539088521748466378391292860707365625112491823423953710710602788450025115981288534759070541587991859240842009692676067741783332077189319134514097651413732054384870993907539074457277221462282162803062567696039798370374953626152592908708078529412368188918849992226799494176884216967520813291298767608897028344827268699005076670544623499592173600897862300413976732261650773850842289802335454615567183758255267370907012598184483386047039964936883895957465852661081131352096276623721602521749275192416708068975079664343721950118053955630497570784977213502519681030607277398848243452254038713084305450482739888341798738396411296088915839335578985643348677079685588779309655776718638908807506382995020813358985537489686075662668174200737675987981563918428786470180047808709565370195606229032514061833976870692203798251477211996117767682640433780076592586825738385307991488851616440742845529671079372685875057769326985556565552608991617289075758648607780994079010008184585506335385541830798182456789310230746924633105737196594940941672759061570620292530802074037166538292964499575728107326790577027542947367675427993798385484939531304763705141451558016795469881702812789030959051995403540445020560143831775726367132559635238386687439806043901836533397656202638740579069835345981991055979058402480274729254796583471291952853313563548083323240860692944875268982053889408509100405845185748819368771647453907738906950238268255523122708114765899176915398757022042648961463782742754782824044410328916749868020385979829834030947218196605140317736133651926329629093616875680127533613852474012124486974221727907550569214343647471639534765523425115167669040949625195985589460195239979913003793882011180147068850954803838436951256540896205311631608345624824455959720226464239968248206655173195995319280273184049112351349890382448871721999466100798643147452843851945515744315585202721917355313061755748545417275065131438611937893464153054056910927432492209090183444227815540289964437461094912793947883927349496854700472212502064208597210057634756793064530697455170336157436055920404174273537346606731281518902115954916504990993838177181751626550931961558279515678902080114150635818155101824572641314930825254171071990379312910182163983649921983908232059393026334435065844746504150100048856790442638806785919673230582528181598211887197083814225482867269663592300715330490013357618669988136974908450102111811735229630425049601148245680183225484019656166512134754196515766145388369877921109217776800926058074569546885722699229115800538336606080452340501362736534296449461293608859849146966092313252631751521609404831033126526336340496122648001352047818800429232412776352281556118141111164101506266650809113874265230365590167082794240332818869656288425958776819201666617127195670092064250420133534107432280670722501487455708508371162225551193514176649676852793825008767275887523414439032991353479328849702024591657691714665383472268288830200354303344328757447636652935982671020106798476579086723959601883892851222181539460853262936425771744465207184492393218475639496069693313187446982594145248967501676058032696432573405660980900313827199455915663438867836977388833667900196357543133578424737208512353300118573287563111742453639257599835007961322062593857370151988166839823290564242393132426214769156455219932821323766351792711230816823035763310895079490400041935502054692848296802033660360130694278816623395447338623240253065795442292089194706875642886706374281481135014134978278063985762597331051947831541601909726300606091248277522265468383032590854774688106656559116824221656190539145686525404340560464827794098021138557046133252226873651664106714054152494462635622703548294804293483633998112382271099454258061458343693765049305052330884307988583983647572397679277517495825399796428444913171518199369577041175926400164527300767282418025500670498469910775793759025665140560488196485214837861110946049361662066235696148416661826534380540311128175913870839439311177669015711238158050187999066736266662873390316408927076561627365213996384305257399694302563347194104792992382190328852819304105614095711185163835158645962745632404365581809793257016911590658569191214758873870780415024388804281440055331653773998098522535604553340542265165122643790837098564535998438089739361059027574131152187023611981778878235568208917003963578371196684498367292376011562453269021807350721846987362990715815729760224623613146210281429786630195444880114040339131035884820057992207839257718060341084305056244357348437362041232621398175028575915630963628406807376256490624258662570941819721525041295315863335018767168725301498417507566996451533644728480652602779346268053991694706132531213406377995547205368567299876832848192195165132787512187607418887336340100947807684732672127583444522347638940736347903091999711599852411699482641994448868949178767869792987276588251416939164421066535996506769209081237266893104549133781800034672065403124415874601500382672989527295252653212516204604500081264626685163982850408878804013142088538179640125516925049160704219846826641278485223975522729640098357748830787626463662522649027626831777347284628976923537350064416506751460941485426059617571582438739535971553075115304361741716331254594325692297576038002923363917463567326503206009331655923555226489650233754566829418282717472587024691165724973227049582608081100775536652788921480452217843312481966800168712682553653452803163200144662326894871935602806589307098538139877976366366628078621968732646760035320432285629537091043445822159112973398863271099854918701574120243944175400663783628713912714998686257533195578624489388536732401065124152569119974238003644735961070637047494734553857389473467659692252513315061232614431969032996414797678281237919156597960053129864461508614287589666835949195644283443148793998965638062914867275921246120642792388931722621316536765804993819133693476344315605154846873475677990318793329697639385310574304771594392339556940314476293159070721203257244930269255163907770927629483980422985358680747883518102806995585004323623668815828210632965238367477510357404611688480393132103025789124765841601288125800258387629704117104726803745974067537163886808563403163318110938973700360268994315160902580693