5.オイラーの定数 100万桁

0.5772156649015328606065120900824024310421593359399235988057672348848677267776646709369470632917467495146314472498070824809605040144865428362241739976449235362535003337429373377376739427925952582470949160087352039481656708532331517766115286211995015079847937450857057400299213547861466940296043254215190587755352673313992540129674205137541395491116851028079842348775872050384310939973613725530608893312676001724795378367592713515772261027349291394079843010341777177808815495706610750101619166334015227893586796549725203621287922655595366962817638879272680132431010476505963703947394957638906572967929601009015125195950922243501409349871228247949747195646976318506676129063811051824197444867836380861749455169892792301877391072945781554316005002182844096053772434203285478367015177394398700302370339518328690001558193988042707411542227819716523011073565833967348717650491941812300040654693142999297779569303100503086303418569803231083691640025892970890985486825777364288253954925873629596133298574739302373438847070370284412920166417850248733379080562754998434590761643167103146710722370021810745044418664759134803669025532458625442225345181387912434573501361297782278288148945909863846006293169471887149587525492366493520473243641097268276160877595088095126208404544477992299157248292516251278427659657083214610298214617951957959095922704208989627971255363217948873764210660607065982561990102880756125199137511678217643619057058440783573501580056077457934213144988500786415171615194565706170432450750081687052307890937046143066848179164968425491504967243121837838753564894950868454102340601622508515583867234944187880440940770106883795111307872023426395226920971608856908382511378712836820491178925944784861991185293910293099059255266917274468920443869711147174571574573203935209122316085086827558890109451681181016874975470969366671210206304827165895049327314860874940207006742590918248759621373842311442653135029230317517225722162832488381124589574386239870375766285513033143929995401853134141586212788648076110030152119657800681177737635016818389733896639868957932991456388644310370608078174489957958324579418962026049841043922507860460362527726022919682995860988339013787171422691788381952984456079160519727973604759102510995779133515791772251502549293246325028747677948421584050759929040185576459901862692677643726605711768133655908815548107470000623363725288949554636971433012007913085552639595497823023144039149740494746825947320846185246058776694882879530104063491722921858008706770690427926743284446968514971825678095841654491851457533196406331199373821573450874988325560888873528019019155089688554682592454445277281730573010806061770113637731824629246600812771621018677446849595142817901451119489342288344825307531187018609761224623176749775564124619838564014841235871772495542248201615176579940806296834242890572594739269638633838743805471319676429268372490760875073785283702304686503490512034227217436689792848629729088926789777032624623912261888765300577862743606094443603928097708133836934235508583941126709218734414512187803276150509478055466300586845563152454605315113252818891079231491311032344302450933450003076558648742229717700331784539150566940159988492916091140029486902088485381697009551566347055445221764035862939828658131238701325358800625686626926997767737730683226900916085104515002261071802554659284938949277595897540761559933782648241979506418681437881718508854080367996314239540091964388750078900000627997942809886372992591977765040409922037940427616817837156686530669398309165243227059553041766736640116792959012930537449718308004275848635083808042466735093559832324116969214860649892763624432958854873789701489713343538448002890466650902845376896223983048814062730540879591189670574938544324786914808533770264067758081275458731117636478787430739206642011251352727499617545053085582356683068322917676677041035231535032510124656386156706449847132695969330167866138333333441657900605867497103646895174569597181553764078377650184278345991842015995431449047725552306147670165993416390660912054005322158902091340802782251533852899511665452245869185993671220132150144801424230986254604488672569343148870491593044640189164502022405495386291847586293077889350643771596606909604681243702305465703160679992587166675247219409777980186362625633582526279422393254860132693530701388937436923842878938512764740856548650281563067740442203064403756826309102917514572234441050369317711452170888907446416048688701083862311426128441425960956370400619200579335034155242624026206465693543061258526583452192121497771878069586608516334922104836737994592594340379560002192785418379417760203365594673078879838084816314678241492354649148876683368407492893865281863048589820354818624383848175997635849075180791480634943916284705482200754945348986133827235730922190030740096800337666844932505567654937530318112516410552492384077645149842395762012781552322944928854557853820248918942441857095919558208100071578384039627479985817880888865716830699436060735990421068511427913169699596792300828988156097538338059109360341252998656790389568795673455083362907823862638563490747319275278740166557531190111543470018186256971261120126852923129937161403906965112224816615082353643982396620532633322248505191593682690715004315589871802783353845448309107249498057880961717996337167036554180041464667538719586948483331543583330641935929487420951478832347748481418149776871694413640056645156936116524161555734141935424721373067468333849054426626038372788217552709930958141026136979500786465876771608630804460749802801576962675913897794772214337515470829345879123898433055067223474969984942486706721502569273529585065869588997486535562186958043997125168976654169862653862891977542187721939605817001104236414158780810386172101557551923711160049880682291618097732421958328974869227183979190467716542668138893379296036815457939611339621922245430151580631743708405608536416031384982969518566952612822123716939368130321296561939718710207098007948833910197535104307441823448833331796978277332091143324514305086573457500687391475470777577559918467118308583660159437193718449039061770232536567977596744475747511584195746700997345002454428406585024508585646392791246119879093693072019804029303603738838430742162821201635386466226097198958436799430572030149638050832232365825557724534237187737439818333306454662906993311125973721950274646899065457155440303917835419756434315739034883866750542742161831050060550464223545708427393549359051762717479299472398908632970101905610107742690926475235740304630159243442464900834188630859320685522507790910195858895314328799817570981916829315940453005632543314488517357302698256937253469964013440871580108145287865790408663637945071108505104241797691911292615132010316363498086606948624407800668400671696221463718114777268341846646364242734053003138077349611998146861768585463120816316479893796426373835661893831371098328956490521148813402974238886863154313297876579912545424333856347200268129048994955042698088213026726358153248067538790323057421040330149788786752377860705468861472100992632942510887801970284117922402591091466584809257857192786282147667074087863519714256292427867028407703241437569931883243331559002433304769111009247979118006286202213707800621725732904735994398883139279927969397063567628116694054128859081982023838277035483496879734048888293016736770941584654400954862465146101353913496855912040236361872150992980651905861682815302875042754525860533196343259577747881343723939499124380614375449859068607518563142725525564259396701498041425981823785257682943639596562438852065654807103884546394453770191784571874101186223227802525194362657438242256093567692582387749116073775945140144703190224153559112506138178297421264982641618724606313340891926702359795802365841631755679233566210123133584549459059006998420067226025116774384736482438571540714626594564239112717078030637141692638644010057131095896063264963755295676936468941051795200061645202188435340473018243930514881984593076296404445687762416528716207276731860632540801428874571198657307471701886603687970364770854852871670003622928528837468246605881411754047446061676354303739923756596593696708792316774468569310838210783048315919643002144125970228906320317410114936648095290301171633453191792293924242877283787234956992923213609223494722645824375509451533552011761289751733951371782933287158609438662701179184155458726489825139255594379519731786744876992532617942338129994127939860264424519600605436818664670986594436593015437629148697959769499653352721002002096791043948254724411334224487005463765684086676215337362746159120547008629057169825735370523976123123841256434941178949861582859702097109703919635216812258224756271951938272828520914718237534365525402074620306673047695247009441381456178282666319613967359367257264603388494642489472448978481596715306153846712236987128231978476931105716623637326207595971180401514389623170601958570982381392466613527913695637655904861676205129740998314965597860253410129454399867288300624408440186181511750687088764671609799292017769624963301575829259618849485872002292248060628812177873383145882551293953651088191865120044923154983947731473578688973142047310945381464822632102331079439597462852354129575191063558792300195618131294612030157576340159785681751749842377882447375398247457599686770740854557432942402678193848220354096210606072192499082510485400318496319986322156908909761405310716511312932685349852440286448293470591608586995981988903959955918110764134466588145254256588153545028884739975324327809021522569521844145298650835512983980226238264974881811581525034599749915966400983201452007048035556858997309981503104192238508974537327612947171268165308867005472886577922467017826594827260972290347157414031669731070505078296108260728704291260823119741510147357847810107279711242797602848141151633886896907867175772593815247961237899990366617560358821813254675634483091487296266937219885027001882981730170249442140631726519713950622108276450718166391043668329566380730719454321125505362089678323031085171481149285889936287064887558438913004718684679858165552159013925603206137642715628011897109611400239130393406061778482110221716599265959682958890544989648574041220474973542564671840236504679058274859069504735553531183835808965288615889417441621988680423034924389581497367222749518112714534386974992432421386841484837577033108761767133199442634988067216670298371723057130497256381988443653998194797022327543291144443346325211479318846497359469448480951734770940726109149351051855043188851638018002426817631726458957788146589473162199135421797069639295912560383804858583156727254184614699660351900767011178230527999831318698072478216817338984691249055791086706543025629380810948236091118296066894973819763151051538493517552397192853567163929421336526958049103950351840242187193546181447795970030349815957972043067775949449017231423798597476267707800898011891852222929262329729280631476481001191709993531769730894226374020100709335066622785533772217649569429513342217056106818127569614044749582903928608574573882919365080522428612221275463635105136722125822455750771093554824186440818218680657808079971951770947419767773212482371462384395487937267559991170281970607563576664101281350099008705335620052336929605429509254541973523808772616447265372230756826505484509679771899200854891347407396416049412403555326815724626902383938518718802550684925766238748405876020851568226963759595051924724151133516339979157222400961087839275225882213091370903982536026810267141924576566175774597781406877480392728811583817563119477376560766005726467895297998458098623666372886042022108157462248075344471068266824531314678301397955654694465699247988477387250964676238903679415569294589007614520078868536367858812639918959157620043217199636790269882911241353800382628031504030039749014353600724971492214479643758821649852142913915384273409266056541107859009804754850156339629411006873227088580389209386660266980006473728247820412411924173296188763380556482765634362806022434826427529444866804709558214825898644301688129938538646305603236099773123960870297542270948386187482590661232366079611083208760971785785180155014858213269995803166919175521428507208991557973107600924829378301641820294128632633196317883190107426009661616474339415471030452836546064071934824026808748051413868316974125030020258370651319696179081369146457636041823285423301773883904534574963531243187897269622438904054033903930695288493580577776125643371595108950240899889318570203178001328019977794593112299552308849338750171861541860364176739567649056361598862243672529569480619860769068359724589424106760646984439397076406175503565002783992173562868396180408416369119211501155776948685790892247148784553154768257495726062378798014970674722354640498210776685941396850724508514339018888173055536931601670653909391147432099334808976720016884417834298884047712670483576935230068082754128375435298573553305079730500671205240128955776236713842811694763519207699037189430380421637143802026011066653481795022365479391717883965714656447437420668688735833199794916377430780910427849896848696069341450462136485237707090145221902946818311010595459003456379294809886301499826854423185500878779723024949554868090170869765483115615727622011473376443991501418567990740030037672560243741388601826281147310254695189478557853136583469555201409821287525639689263918589808251623672406477391949008501946281722380965739629579093560206866658498934080063406550151569717814639965693033183297518341636408758073086869433770130534755350707380020376787971498937491328559989959320285516202248353523430625004541942497456865778335976416571951895508961376615965441761125924395577874399029062767715978507442098881964333593223667348339760214243656682296563386296436643098365790502774285832937625151304198649989323990826721085251452196664337691929124568307902046470010977589386585361988541587230955225029384153983145045682582096197806356420181696020159418540250108519917441232044359433255386748664893693067885295996446411284996056526523608267398981987117548774096939187531617946083678898022608124243451095995683868000861799310710702963881404939122157400395481875578592231612347211869630335055311470859923358857870092118413269800255255090914405930908481794362042114949380046192562880723163672053591440491539434916323056090234305842614623231050272805681774732302381641835569442688787291214590816281953094501986409863370515188369936872272321282157944261169325925809723735145616982473133038449504125366090515653245082721603019799449338076471234957921342281621907187438982273420860284547721067207147698855269401438807380939380447076779481368156589979836824234592607151527012698013442837469806766707490882190684706656355638799359394664554943503374933857236685434578996655138620231507027267757724874814428656726218414717327824758420816863433272118986038485407155294280379121637347471936253784989052234713087189766479256257843028853236672296655170902166052301629604631841408378121554450028034243481767926749392803737422980180930297227420558605636539630767988666531730859657836792800653373388435733282136257948107214101357247663300376702160644195881497280925381097173048360551680297767033857116116357379272718506957483089854178653252203055843287505365707323768783953667065658437121236819406886880231979265992422636388891128946904020211309092652904440351671955889025854535659075663621170642493005981169439653653000144607137778634507024526291332390666480426744971657826737998617420258785900760957770282302951206237905849685457912549874939226631042431063861271724775671888206473836211757291386292342992075533360415148279052758645438463230548508211645489614370321105816670690716753966996934705195697280161875865631829671638983350351999223587550643365991933505457989978608901505691307864991295551560150591485570072085121222373236014829228808109284917467104680822796780585462274257119190623519018115588393345809208500598433454718414838467454498821236404336570772816563345556993128430168439806410112142410172335173914167718694538752598955737558076015062413471621879486188514037219800257284665274012966090357021714218690744586133555262852721004928008676550637747720269084028344949010122695083701756739211016793619482227306720274306421780338238561826407424166928738279267332182425122527934919765754711531551031634008053058046746537060153116304457968994220233747303997471922794003485294439798836062196756011376955344900290024024766289973138926494018209775659983756480868171771938495956267874842649927085898056023839576676355282259603730617278148818971888525879460802162212302900333066081809609261473615609593812495792099944332415715748435104309619443553104254164916150289163284962356216928143506284521178498824447386722841590379761915945316220998795682371803445674030205195447517707341107016209602431880273442501110931202686260491782619764142699123581121547165646328751248460328348231831183388165574952139985583172509595157114270972014718925357842172497868084030478532500889477825864371755409272827907786291461022255692919118741093445711640604764244783372979191609099671348650369891907164877141693948979715071347989764226742472488001601457843724122588168725662867207556056080845809124475575399539202446038358048033016635885864076236100234692493675465229634852537782175369431534440276447989299965780928807123536205907264232945997659234107216070073076305285418376991220386746561836015704671719210545042441773862426597277779250350012237790656702275487885514586457500655796627710051636942224073411689875106230992824775791335828597651448351261981775097704575491595470911890587001593033665622878593998189397253298307857455743323876578688278148434471425670317140801964359152062797845818216638904943399788731962333405088019153747402899737786376277973981946818654707520833775154607122766209612012482868387783933936440442782068506261914356541498500010734952891114529756858980757532959507852642061978983153186570253543099992874226189595508675364040599011288097144208657332837485797078071728398566307075896422598408685914316316830398891767220213151081541145684358224418564049489352457351707077957434714677391247158445765030667521484834867088194248376291849313419349270595714069404438486656004290010870496422475223966370378207910323813580916738394030225549027013603667925374100930351030294215350078423122193692113100735500517782125590180090189758948956829260500710914352846117016413348182531505768041478914156878481607411041638172952172486516562327433593364645281269048385080416744148816596892929875001176525062039199253202442499856370131521043205763859751596997775878901931926539550759620343899982502799237669772902105521254539340286474838417913238066059141093459934876325848519929228497193995693507177967072960203848722923747150140765786176771174408993400136927244191829685628245251748657902025770716583029853935066095540571663241126551724249990048205178938683547936966320669422958161050604030359040585662069577605945095219129191030265043557212878090927377825447774936343833336869500567523795175838116365257896893692420348314819899318157675946355987268370152972934539763387953396724843649699089955400295299155639991980112120122549591864509868990864535156475738679125209082331563857113259205813346296947083781078034213628498976780208971112282678269879210194898987156698008106644103527258123408056472309443396903625043297746420126313561341596502344991504774765705366125271942124563888861222355681773755420281393716401245093417134864892413424025308305228370342108957865874423495212421782595144749299841486632259803631830199223228460657603350268704051453889331851491821591049538380090344644366461890550030988563519195908340991033630840858917972058451512280615234348179186431604127199959142745423756327774842886188566400617380143873060743003207612908374637945275566050281666845830942463782581492320884105122265910609450782637708741962262301154596674127758538084202376673890516535970284295957833210637009259510159501234954389796041202325093036274908630148653907389582417952735284745357623120911584953750113473887485428833766873879809220392358890917600334360517341557950146917634324918300878337410688289348393687392767473010467425661695257652600452515616639412091874988944234340527682082201941031378698318477369742325403708532829103081866629753721990606554754952469721560211448667603606202012634133683982333178844648608337267102727914682174894207205756450097868407429219682943206166857287187449997094911414304167715105663939893089532960296353932393834256880116395686802109716166578981708222685589562424559936389075937350134889952643613341333254554833669109077420570294019364426971828650105521281513639737099160361418970123806103088447626835707893703990509426955810418074047284400169206702085518559246427917987087035729433403557604591332022764587067449396906670738673728431552421827877867561812710464079637468242385302796224936915664349986712790715094373292046070140330355024348693004066330868572738532272973677164815166554835754997080296476771991794064167737840211488882702019778314148431789605114418350838098416313690755506530744664496977299853108652385531364829905389941455160786514813819435930959011858833400730161274463263890455745363975189956108728174030385944697122023123418987883727172757669307185965681839138633973404508084161962629540811610895667441490975162570739007075863189869632702411877861749301141248466460530767562771838636973557965808867356808818036120878681911074565532080741195984234282835231957910480439889927848446936428272840592731174640456835650426597721133691387842985307835234937369137872671136186015704585725269762088848053333996160340920444874602958056688459422232004970376536962555658311620148387265608753485099139219848550539043499742160975628463427427120168143089557014359862560803408490525447766539792430368149265769855063540361052733258934364971524550851430383718314263065247903468574953838566695888701195769522940672065011425024575761420622882099598501331274429334133886032311038409507653801909852161916056877032277220095107909060395791676082148757500429925223671505748723112216221209854453849642693773549325070647364105321089596311657518404135166548186059900827027572327346661528971057061984552382665456178271542940158646910130551534899478243504387382463065614209974474535318510815589364082185695271232667147084692846531755309823888337122428384321480043506506982045140344283301782331503500538984069499835179356080511154463689236204373416190945346575368887887455750804195595086978694528281475133717893577782974403662185912793186827202698259105164387267329138112012696728543301449865527296363694860397400747663275350649102361205860267829024737343842512770986861808492717899399128971045344254885896235945845593590569157401818643340520422235510978735971617837486302263814629990470709918548204267656166682052428246795102433448436760055666557945725440159990750593748709137660782956407873315529825299374949340535110554652769396877789450828434129869288367745649996085379516914246592239809112540898446545867016308950773600166180826448153815379505182265812833750204598003357479617822493551417383983671443144501000741343355021703929447795257024399009058122694181788136590568263139714429238024320429068215906243955831048358565576058744160546146519670347858880666240120173523923389951718775835636909392534644743325874712454572857680887091795131088438295302869669666438408933384455366288553196137001014870294050560873393652180068918108911629704020160530480421303400904859875920405847865180385323144098512762553317049635691555300695501100512973703408778405441441813167149386518912744280625863458518035655949196941435378899954570839127804938757332662181953303843948239704332706287478313788311852001378756295263714737098128050549690455378832965016050876404978844398673920830806385083006340573902876039023846789504555649525863899622696978464310141451544796434901279236548510922045974286665427947023415398501482658682884111804548723950579139443615966284728589673938974913650905915850944835154251798266444736293513878197988241333835148944698207145382895839426560405919438978927210496151063197571034012118459994316046478954843546882407250973613553855250680150549544752693013430569215269090203602455251511692308210958550304131041053255688106404120001201099136166055181305375107432663644819988375634388813813422494814150654373620532891788009895548939012622118296291476705410306807833498247155692142269202199102306411803577944560791137100232602962764013423105232671739232692223660185381476387714311177168691144193094070652783724740215473240167984842374257171187179009518571107161845358007329848225106227644721720814185450827311132081612414906074036806675137941713116578680571564022045662048141255469696448961952841730208184899414086117374133244085076482130163565051109231721322320334531318212321984764641990525526639470873079747574517574675466162236731541831992109234504074465038879251536209951696576952411803951603518120130789753163503076354480852348429106061302600240072087832664300619120525557318793291549150885642787968560311101131843540807297108811154462404117537270548140398707964280419367446586208359485095575444306237188605894673824708673974421772046559633664017691225657774444851503949659892619399317973880375104928987185740934391440912936826754327314198131391811567046491181312475345792145456940793372602901018919861508680831898929200550455063654620823904289947153891073231571625007786674212640093170333583097314027212012466645069846744766874869544662769793016639537206331771698794443097398279067374884713583151753339253303470222941947857462096671581859022562851317514431171462047593623077176898200211333665492636096595696167459268163696994156136813765982687467121039450158200153975792382766064261125175464687588616104753638251880348965563052233587607496093249031289738573773112678553353107048396860532037781362255456996155502817203703632987753904784693856666097327684126220135679764270427224500552539368474628615509499228213093461743366278211486840193999588470944617158966385043450284180854675489199458631647534237991913512653238150375452779536285354558712367329923178517544886091097767278401514045372082278699643682483958363432172008553576169410239229769491683462925894252919101083274725870239691478075027683340734855901053457689739266341556521651735781080489198911828997918212321015451507688900543593464987023490368237160474312766106984384415439856762653788832183257611774017898493643914503244707358268325942199326928156203652771648184361166389739510401062370833088292009503479747193186356813433010140727179163831790809853474720251015751193046479449539108256356830677580839846437305493099786186055474873201142435750087381633432920123599058177587834335499750660505598861088027354786725475695592654995023272926322894755293932570157528467757826369481167196880243510385641619206288587480908099875484674351033878366642227212936929651566636239475549561722628760877133860632093880022098021770497371712075870336427938118446962473719592680230163916959562040473686827850140179909872437117978087352195475353267338767215495009222226801825697470191857366005316860506250906533765134552545040187303836795624767043743187244611336331349878313215932032325385999648453664009155581041737867492236855890563755345767220452142983844172157677596726689605152024856015323595821046120277916150621545357737496927511112158766672350692712250632891334125295462247243759778298255699705439959650591010298005722347396863290172735381267649601514457742744562254434098239837280399462322076115002807941610086879904163753709495361756187552817295708572512529604899733760986068387473340991049460295175351814295775398760683599431826579510864330992120961621670167134285998111350074230120558243218614385573641964425123351241717277546246391811421489477142838808910587541607269330506002195244637768348880777494888971889482227300060977211279775225730885742915139994966605235815119888511244965241499341132177808024244949533313307782010304638800583778852618964290958727704773654549827293893439596379999583941208132463067204045184343514605243860314041586426141303668252452399455986212224098004470627739541159292936701901008456506364214861127256969197404807670158703756537467887647476214514650045655924869571940477230771148863412017264632850183268258150122468749642699671314536428008336665900219047544688959977339820539329971488208944723250402642419839998599543443131293270591679106448624232419612736554525956717307763997109081529589473801389191284003714083064411884824890516827756454484653066063079602173439184675095129993709542928898117926178165821754706607491503292710538298033935137362074258690757570662048542092992529789148994667293998126307594899099240095764221910188461137860342640124674607151938854732400916566048726785146492344367281606532669216746189369139814498794275466539405769470983498024208195537403141588020011467572208832369261469420345368682261960113891019109146548666678215875685110695538606710582243923154217141679379748811993952938169657688688945651909996605706255416722880436908354916478136485176955339992307159597818155657608826563146215433658827180604961621821850197514893368893052921959820815233614175531796618657780217790176572385308489865552380674975774339244639207701993785200617039787857954587546431084526796425558469212054904032323606602464692867813318577270086675747905264354834981477260808758994720573254993255522034676708685107299508204392316345020449620973657305165222699313571690768124526519149147249273822633288620766060008531880739672179440348323649920245457732590842453526445644663385312311724769509878839586842509961011310697728199950904374225119213000800070901345957101662364236551095524759749439820448987254433796717609220680458455425897350743266360177372265840068875196259935008461002485118590965560329908550728975980864132476941452335737563765680688743218238890937839438725367926661550251516871480975690377580727790061699193800984559532473197952892118205824014003854533928477782555737045902262331434275925294531079170815974742727359188528293620090996573489883410211945945281126070244947519655268104997330021007164658299594364690488612635379090096434790941014486902325054008351162831995364791477077752201466736431684950064817754708302585612232148278549912256747277420718837231346982865722686818234870947295349350453329693605198159913999614604770959862135032617927407058852906259485177394399206669115419460990752431833638413933874659271828399603326407805254280165117213000940032833959442647524402260618705921904317908673671058057619030649163954936551256233417055829641026714919398049687060758946607378259660972396802601462501281314930772145994467134016736798432364615169002175941457713641673554591534335208624415434839591565719690683155741845851516861925335663864414289487655531712620094930936402418265065528241299502952864170641798408421550770376630200782021196997294333932202011724657897123594582769470135235240944285312037982349642020406996311393316178158706792854462704951006672721751178617001103204989878687546152233590221157626309690818554071966585444982573490303743330333829349604127606536103809379377598789669815108737079620002360725125145782825125413944444574421930592137374294240912286405100739723094245009677843775256965571961493351172127566316354018340088916928556779080343683546682037982056635374076506002510128674953512768719246720130813945662234650742391221032205242959543691517028919810299023002674272597334368220574413943823286386786874169464242895789237713551649598672790189828122552513190699617928526880883620191677842555505105817805808574227371192979659642047092699520487570286628946591530967931119516482395369814481638382309155013513388439885430387318275982040823244014843157621287740184732083531524891862249825972119699196288270572978524265225913154811336563278560046703963405419631167210168430546804915401766299328700962816597738787317313958207458541739259916695911488397301999798666586981909538599715100084878539348052469343156551516750135700246889337681612128397698740620812527634409014041008386010579852878968825829671711535477084153391611117834850093151106368444330100040509487289817472124902178037672128450137780031258833367402742266145286412903632014138035922961525577851517865529232684594359095995467862767228417407679415293252438358496197375423028264365262645121853966569678759864548799633975722308672457528102951407984174015247493259841411576282781817914608755745748673012876771519054937938960384530785705395062680545981429453806450505379778271872762606519993962177691392910361579295699749437400610014439472998045011754644041203945050724182441868172677906025405853459424943230154497101556334569663896901138235026325344141197400249072847402385133839813517789239414478281883919016086452855917217516503547073187755223513550654528118063836503838152669544788189127084974486781599735933523379752684037582631893841763229155445695907660581489951040924098482563305951818998461257759125936665403766338612022061709434090272996245881577260415677423385816935900405740318389882505741582796075492741899941351776233911120113669727283421068990817757428009547401366730478545999793575009685498589066518562984123784622591238588214165759433851750807933400224627346594328388232104053796925804565664100073249948164259588133597108335923397034280047849152381145224496245295752780409572003184348225137491747318667902491910920585824624701562361660492068466155177579361378315819407002020870559446764970309052946230594342503804431015671878950892918060478524475539216810466205059174942169591573861106177576286621505075669879141817846122377462044079910554477816151645721277056936046302383691887571762341719844028300388337596139135847854501795966535042775596492197947122676559521809091991632414605665771751691550093033466758835137897872872973931034745322878516626467813864274612796568470903815833514988319043756132154664896177025438820006199750244058088330661861828678744720825772376513900288413906646049050393350481329906915118617946038251980962264225733384314390558795804116235963519154906302517310587321960850614038169061049624056779027847705469449138835701811272225743091781815706878105551248241779431342970952719306229059375186373576179108870298475196320461584025429943101956203907009413304302612812570110992724807853367199781012772080143306667359812456578470424013574080948393442627901272882907175789118541396690261761244670541175200021724391676806302081712097329902841861488307230132936020369602585487581834499601747432361445934958189165004048258246724550519770714981473145537291197613690645702772625142290370352168559934150716572726146751309899250431695198393140796429579097296794070589376191529701618858414310045022669233174110095109686213351622452223315776709611497219624091347648919065869231803025829872914346551153738952772651777739574754447252190930880032299781291123241905190268383948086445645338765622579805421047481252752106153193325437559228623697792168169645820250217576654651700992767854812526961627328668783385691353012010907945594565447371647310670009339267434434008919320399560858096899879433263550221529141842887887450345778016126553163103817862344466860061861437815146130570894742863833862917120813244546289838374111860565954631461450767828174312315993418530950083111344496444227696362796896542708347939358144235321333417230719574679855952731502606530129648560955843365204590405113681701007314737705121263027336638609609604512561580561052412490955025894093233647336580074636444823306516506484718300508025914713999232134994034781120380109606784860349621083927561673938115859841664048433925219099316320411915571253257325267863680709693866187109141383075498142728819590771736109091396382715047444305692453300876372073959885414978086357425709020882704363353762691963308883025075844064067410330515242318997630909720633264662051175733311603079336282711591598162934605133316086598930632093460086593954240395748898722139849994575329145415910342488133600544743718161701892695465062508146595255704866699437034313723146217602368569859761099571104934371083611386576276184174416250846827532846677085752661748635153890931894288293894271305391233025886198787327181897821181898016928216587671764419583370404426055212310794677073687705151692006477233047220190823307877365256466173662206073182696993642865145730897121389182537648350571350046295659966424562328544191786484409047470474660633242613203904198773173710250845834440585729710535241949350777643500913342983550993868543001753454012980671289989545287049735101529563885983815647473184606453091903426062306906551163632523663556792801502366644056834285364849908727038436878558121283277586383688710941626913857896391023293573003423669741254318864330243312846957048522759241086204606347916236842466294639009451598938943774839632266289171599763950875359117605668142545556050815748049734495603360431406692299732363335689926920533460896029365511591074347730442804918829030032675076420575790646946407434310219135264682618616156670765769879809617457645449339806149589050376944330063884683087351224184721692193616195418480823025030081057928594506509981103706753705308520748085631625758488600648267099925943479594471089637138507982748339846372317339346139692052542553382025296532159521937532105829046080802623231512144706660619371056460286510079912524834163063807279887277709195581160204089140870480160693141832240646762944987466229119083452176551884176965289139409263055846112181217221646614441783654247662854340306562398952493617388069185974602304949640412213274687144413135384885392946777116200410613102331758651243311886746574367184626277592166257133469721106453193092909835636563073557326398928641124896252690383748575154363776059237944966506377166936760735953235992594583840142925961318976630797393596502124519694433755905143313577435553589936190177099317072524885843542164641775161769407830087581089141673331869620049910473746730637310251315982286658538451353426674060220415736214890345456394616129287637593721493825647073325975584864182010362294128136000884850790957522986407772057755570518530633378490560032002558779254561303809218684875280950165570282577775515467001799271395982407090089431074236149576048561876445426572153873427935514335536573753086943462476268003050659296053218820026651782331466840764823625751951515780706001838470237182567123745870874732289562323356798831217398443910864144092823961057976952726488899830508548966030671770971139655267349868831025235976997072835585340731344298923550408138404499840087893492437813612209821513444349329920696548940641487316076352492767809501224624359267398898108385025937242573728741939084985875844584085348216263369760496211982346074372204291657184823046942724686509423081504887029752178850865543788195064987383276247320949167408029042740326059617998841728868502221625097199712162830287904828275657770338303730640568774242103152714395742510531939935375763666502457890657538355828585877366967667747126021439613844239940447369800884099792989409114223027032873344923996114767567606110907421269841447229598198771129984960792065303098753644170360242959444821073199503496805011579789301670642550670671462836737014376523982921866873521252518230215521560942148265121691442416566323303977124517040335975833946854134113695454982310379742235967308995950857976295694369406614552163914682555358638135473375763245535020051002841464309331319754280853918586411199130768471819912943121737111647656706962672191899008409223901583934819237268359141574130319465749861130854664778111866438080667065347377367105963780531317374883319024920446015101589630716266650221030565269632845468021787719015224100428219151663631291593406140145690984907965708666747593654634458861830770073615301749530658988625780608664574958058801601942640233807237512025457405762247188645421758928543851581989860828218316599074562960650599900614737037586824453720064749970674400204415495960448726198381976531904584522507336164436772649028155495494963667865709299874078974414040709096560023939243113788849910659738214273696197027370163860831877228250161855085646935501037949792688097521329571720443819608010974068552288213514672866445006748931622696543542568637757727326368872972914419769261291543161629365266940798132212726908668327944516211451917727985779566931794859391682279402168040533744249133669396136287572975430775025862792509664071858893186614277780369312765192843311044594670866561784735776213749501360644292818900703525898537343901371328937100422276695090934974766189086603012372495375104764199978321022035123767870581701133115800796882790225853488365976821548896866780400066808808312634483857267903572332764808962726553262781181918858905243991368560589481472939789469774473758327999747743668741795930923013574199150033831560814223500870518509563713334249910128794974685552684330459539206977064578845215053361147117981636197068395429692809372384250818861241287866517297301028440686681202309929634304726167794441462842217498875876720643108931721511378207705330351184242019338355523970512421425234092037785839437680036246484953967473142446244893238705630939828387634623653209079805391753887902963445196915976371673712421279800251825656197428131598086022119959018342246800168912065354361964826886765365908542212116741295555239483336571817903128029142128040704504813995776514567405402178845219871359363115198035544448913053075670607940640751603426258459980055142926555626626232305981565846712614417746313241498260597226447906498865823281578731205110187070152281322920194192206173057486658632211110366665086973943361692163019952137055973663165625568030221542035276885822320462280070409470961079627078902752730185395615390602296873991968558411819127937568976336465755693546717929012590249233296636311979891374157062019127285091977220758872396436129484162136888110826977950032280831960385675430642647682098257143820713165422823118789229368510296625465666532245598045733590891519838055222536926885706655456812075707851451513518273659564800526119323427738573408182638244455630485311921342441571359208999610936644805735632573263977037673945616710135774192210441858228654397842590487366341174955885395709381502214147672336409904631469374368450027955970054425199335020333150617015756789868551841008008864081938605050157099376149941247939512756266644643484623141311707924639433892170258262298301010679899384166929927429838903983612850332460835948059787804263258077311207806466832829934907001204157700668411402898701704651858392414184877282918153017260201401815531121813284117061150846294794289450790652775388659267760212049705407258909527511486534517157196407782636023716349447806360734083149937396785834682567327053109493490734746937546018450287181007936991884257138475292979461997542019659741911057888886420442574338005122140613582461484982978350440685446891712084799824805936538944333122681189979167345169813375019101126077758599632742403330373427259395907033499769121098590556030628545891521158459839173675044667981644152391197157514416764705895456501607641279390925900528209156312112208912827719757193623613756160711087203559269701430149235721430402606166113896652527565914658493664746082346051218817137530582717713432176127706629816241013643153658253799146740103019718046647975596109855224848975950995098472178835578091221368973584526862768508252528809180382164916410491938088186953632001916242237106503520102198854508588300171845656627704083982473470690866651870168717876201826730094067410698488916167820008657594670730301756330939648501120746450744738077609855929879990351270077116619990090965003101578378572432886549830886681360046933766385066805476594086195028667808436576666389552076858844575343705736279136257068381382576331959434719196016692756912373860029020634972173202088959726810364170645532629386004627105201900340149667689888512825471849198247897248786496708177586265000944122815542138460243673775522682044131294098483158504156614683677159914827081189653601852128555865349739116241028449445455246823107527845311188680873213941390655261385820066729094912576219137760639900059161577465742325125012453504666879622198015027432310242231538898385208782926766575571431780645623313552868535503901440229069309889120663554012789644580629146649383755733771031061446930923896275114887316362681331788650081209109254923240253664924032327793336532580790708049557217451544657343180674430028497372367609748869166285451943568605698366675511751656271370018354127882043003148560759730247426293672236227368124387570311131476791204598419066838751286651808053519896340011363593527347299753249244179899644890688805098479795930418459681185830569813907482909795795928014865371366412013812451670441904412831281947998006307347849390905879165985850172212146140830093746851219041017315215616160565599758639467855453913747370130461738087815534991862884030615830896812882158403677947246910877691139927701254776283702522864827382904425200288105406672140535731072483864847497582500002498441740217035205248748609697153607970108120931711587204379816771414891834463596239451868112442630319063338968891824676038515643051405001936782735944764750264426432538415945638484173215652443669723495720482806137852246045395493973847936187374970066219163130397083661785215776254903372414705650322035102298194488292099529114169741949142402346523401691385568106617673446270924650887436435529075277432029042583145693810319048244575389550544260234757162280123111809872387694100099691241870069565789532129179871270663709297716610483931878005966912863991400489882352832884399904818175497769513231804372370556160756693742137979130838849453136050517581098380413507237838684492909630114764296050945976633517768361956055946932435563805942260327916312177965681664372551493290711843052675855936399374642963277728633549712381533404858438586061775292510662129260517376051080573105699315901308116418130181337777664871335221871324939425619645420034350257119154987159555369716745218201312235836108638144293014070220221007059204691545422601494435898035247128896540918526930644163575992124591113704976816985621668178113305950870978052421984645030692548283036536611290302719865856148894647221781303492464285966923582948502245116706505517186973040940492110144619171005680741397285312048492288438988369459348896155411787403431639765387118609467189225720081773779537164653917337358858253307013483493538985125565093003762993446841568224170551515404708751310450565193435097948734605938816269894803727836077629199606163288647144747897013768833136205943862138075529349777209717163866899981173400676904427775512722348305368202197451255945693043758454319383979879319687448650683666925998502441783907561014852175952427769972290119885558755556536378039180749107008475995042197085917565570329586863630447213183157901926544883365191263426243927482401981014527670554929195511768443478718077619796331019495758207781520346477872750788392510371343145218531951520516254478763192370290121514902272394574062641898303043084981756005134338321016395585738444704527146126377394033450124633871993189919600734571638503135284325819565727678096474045320319618706673264292087230523613164626677012732743697875062034263218910311248440188315567687646900586404965360490747972576883758130963359092767894938939570995527021736411908349286862898935423788784148701470057492511547165878770766773213259517993190276254013808787368259118660256572692887728046000456589188825044829669065788689174064006487846893722570320013619554377340589791505948336945395729890605104245538874811544392271206514577285885912585280845348702598722825620634704163169439927973880167649108025616720524915490114269685663903570170059172361759950562925372350324278363072046001327566438361233816914655851896495947450738355565316411352365695830442395430595883904043390000342912436583421206345367998608593360011502672698727642533913604524418991456672056533074270080016353967664538415852445390212179818110685666459228154561571742871178143171705958784027164455384680472570021655793485065657504762240913964655467851832469889654647877833883660579219916509741107705504705540716724795845659909530557099692229157201655222655088595601663993035152176721444408017119752468338798865075163309358199470235673674785429140510479249584504492912944064260280832225711431582440881506422573008629152867754895120722972669241348445345768370327893910841730397553562942485985754463908211620780606533894436699837911856002701216408020809111858126047000127975511384015199064829899597419893475913511849491629267001122363835650781244031332704727810671479909142411793755848485030057440269237477027722030100877857170464203005178957274286059741161696170735848385202035762596420944115401362695630589130917762202709431030136200426598913867385886704873981135738521801947757615693188463699293074790644712278314629802100145214607736009414061724084730105443178632069536519470115440584209374921116568309496607941875590613280546580198288880817161143166350116110062797082605844907721967695300579580624762868100311127175463186193409682586925494344978274579324464197283826736139898355276370254238458037081623116823330355734153935119880169959893426206181559677161162861664290189477078075998919308969438587510949564455271056686684257621568445656457675664732317953537656291053097395660186371502902521907810377289837550875158289484326305991669637258240679385646011485224151927553421643467146284716113500593309648930544124147097011731251917929669752602977815798062767979882227283508957177066131846868022573241821526977702183767656654148593761797980125998475597701516934103875538288118563677868516653967599808831844036742623229144390123140138559730789197455204907258045833155235790114726026141882835958270787508476581520173016133776421903508057961183018865844668941161167998661325350667958570167297268660179040952156604816680723040105413396930464850877419385053245905744379316665630994154263956217022765141255821514697051482381188490132024526747823019271529052632546300681454088853126113435192598244729336825407982148822814039642209772946837437527195152027448432068517928076846189236499629455448277538391091128852624516752338877604248103063930286790545703170993879971758176844656411735581831178451283548878399074572660007474176230272688149041927348775547161482216124136467318085312317820212807830188262245230725738183721243222225245634551059382264794956980797493781457117760331395580990840192254612759297641881237741809742433747836084559688612272601264966654534724800012477172915463269234081299742303300819430910380053968051264931356867780936065657583396345930976481416662038148081174025471750497096438603839441300102578338210091111002132177346405092151901683196425550890886928150428508674616888630976535511836994625379729694869599632543692331056733867751285311854296938094463626342867823692500552925060168624726216112183228303126847166879055490414426651069197594613454074004696473108584195488761091354112772073332606248351550858107776834120586717547255298245409095714595274413496250413976479480232407193675989255225133529223721876718720848161811064651068872414242019603178194386850912505228757578000799661318190669727193252080899538446002113694262821352686930541737417733573847317630712422256248971811077524545242629430518246529612086245314630081594990203262898022111017842966842559253412521725933741727815740333206188542752694087246396974678048256220664223830533157270615603033833138986633554458862083045966093350255884588485841251125366761904621645653551186898014674676529691049841010279674427149551478612775251061049858381439411709425442005394254905159416727521929555452788015557763081525268832160970768528491630530187025325199184229336370743604777525323387358396570706513213880292896194798422053239478012523907674675426507550426398019801967098747849491054121242451480671993975153472658844409345042747708451649291050860394366988443792786443732811584732839205734501417920739914449462324933457598687220086435625024328959569782370267229148441775430425999999046482484263999097467921542506339573010715230109589432724447971478833982250319505307851452966524011448242650373778965065864034649265453403061859643986306438739442206736019134373572871034187176185247867586084421222044975704852582218582823361734603612914073438807745907951479190888250762847540830154893870180777070124335163147090078643149828664973392875563546983360473137689418584282150349657148070894909603983827733642021243709485761184033401498470090821251574023995277053286269587481330554853213203099438420349596533082719292204102751489711902826677887283304269523421497277327554186903330552976846027039578633462569150325222415584623020569083729128984406717385428440620054846571875317657279367796420164526523830505819781665853977502738872533042452268641268550747560039385497836102216695753178048966042270494523138848062828420354255579647868574232104430760734683399648791093090404513174588771687049035053755202864499393982334107153286426888670261561005302692981008767203890276352482163503670180498206677695477209822734710115803944914395623771821170047486276719547298069069663872397036958421706454264714326643632114968619180196289359867761484986231591126058659079040762312473681799882008063039963973993603872902940476273145323529335869106481432267798176072224112259397346145303726785459113337000137821719811027974747512820297994814369893065826596439110815823117177482436402697872623515449484095262204398793200205630448272777062945161985973395495383668931119602374445553507579292600026305813939706252141927209839744912167808841254104639014754490897960910020150474048560764566496753313583802874972104356140498406598959956486518353045733182856186391761453411606725663802994041155996358036104467600875210101635730471700373922747528407610595383630121020645651209720184728435169747702603526084425588605700804818285278681262707352208158937604885530127826729908256568082858937067583956552741267698825427536922438663743308686289774986460009662115523082573198977897055631462448703957831429914548917812012127367758738455345685994697188218601871259863168438368477144836184263542057953146321722717031224919570734440942166475192675533506869657767195960026843004306715708382955197974595757736500821831466991027347768855035678415155476890524940185298273943979405751930686522237797586661697691723159762781080560449167535401750983296801366673718544629579271255776351056436378762068220997041436239243614103110975588598489568313686475136670533171224950382224501665928784031368422021715375453266824299976514073121504798643462335314045284991322589548763302090014949330318515317518280812097155827647713040737686601122246659959655692759550395306302567149598683026679719089884275070678126597919464686450219689241217908757749269005006415700185421724422697093115589477069207450919849618533199562340912262701490176372259267817086749322756677604112049025651313250579120681999527157544268655987753280359407820639905886156664575333941183967092010009731221820168570942292051356598700101416162881695024325702172822868844035916840051402513769819696660979029236245490096990022144740872141874890604421003531161340408175639267360917904603753023077387434970478008824665870349517668024288252318244029446768258513487540221398532410461868799062109508403421792580082493226540324505435851458541141587905223769987664936933249175940106436451830754169877019032668488669397574484605553197645697099566389889139426707730990775504348714873167479206945607048101742317263497788824312177571249529910624943775561232127986035449336524665251764320498757172008370099232605818695010736317007239662838413303653427158731850707496687905530809353632652180281514333583210324822408414888892764133117693672250216929834307288957840248739436204534881172436263174278581809923859728928812203907442117929521934058405854344091674113430229600611164589920486391550786999079027470673571354300721034582985975949233451857377025944131009786088432600620036275182483658029421285033265607204910772115944415004172364871707723857737734776669717993957530363533121257612260378797284366917480756976753488027547987443327354570780852627092976369841976872907538100009813480443560358706419314334619194931166218022718786899815571908128197277447926333857332211948761171892289992755596380729761993309180499784934563774326395126485697948057272384140118343475431129756325904452517923556094381979107958951834611894010639144824364914581842746261646070729377930664146658301980115554354867067604840591769513071544764148003301906278831316581454015248838848211438933733980181847495613650534680980882220932883467000645544282678324355549545287547408344188967440224215624867883251597256345561752172353738046137090483396933544690988025399818616567004003335603533252318875512402575108375842168761174292184107564697416275131060205046565731286510744915730841954234506205458500811044824892041788661645118295398469120705150688658969104895673856324962798372160242307912808363548964166252701117096540257909337990824555864844089605942951561306082826723006754076644656409455890597402160831501173061009641006243659816071257463986712850458316193359667040604410882970287129287585181861634180717234279256418287836309176210354872537538204031733205521948196830335325200180879919015884202319903587632601152271328866195783984028159758160885105372555825180691492667025305196119764649010132780529513378648455142088306218746563652937740826897948893401881481128404846211796627909346573202052442106664709157629262233188083810978425148997055744776934245116726661308749225367633660786405626788633746226031834129884013757944921809419269005686973921468817614245702375546655988627356645103521002640996857274665161584775609362396558436340603059274233700528860777270645198252115761832150565243369988678086284316395392798717035426872269239290451905099227965731155185144334769404183346255828648981263586588707449734635628477531872049285817430559207628466789572341231610413749089520237397775818675448631186105097678766719996383383518930631707400947002060766647763239823203158666843755455191463970335131462585451181970707729676278550542482177012610682220960517730641231378060789165638317304717448925944487720915886554526123047319692990068006402950740676725425794604100215068819679822553019042481612029117469219879396693173822437087634896794786012533000382318620025375820213946253654159720348782650464958718462376509357731546146558231537355181517433098933218241957268573739231034789977984183498615904336007109722378557370058122354923586566652528638410405073382180684649466020002864452066165706387961623176042598279287798015213592001821129429214212549545033806896363256860663708050154348274691156957200996065025432232652089722137114388404084353055969071483985965734432401505702367916030888947607679591017034706264253711253280441606483538172555122641564808873639402248571567484367593152882096558722896039851803824787052432140449019548621861306700761468707127453029134418184962826187086836172068385487535266218861285618132424016648488034247270018419419848595810657637179482695087326631944850841359063923302154957579101448415051609763967267073560167844292561623502654353345570709707746484942585991737750589072768685323725739085732157041999080373188922973982567029159660392600842670392375560085789507110978222955628458840505878605290739637584059203374103326391012976176471709070014757174555303326801913579965789721280396726946908083970507279238225639181283627803300572985679530128121354798716755762047762723158876651444533932187027086537977887466881109635909168748072392190085131202783167265607168468316022559310122691809198376186633852575355991182159018708217006071021521957860597684292627255980163555791690243137799012741922118909178515237696852662251584369289331828698901729997658746527415660825007714800850009155356679684847234997834834668244015410190883155615123379787557416461178807860775554523451255701447975586421164118475765905421246603662902783765350959772198157587653307372433915717302745867256152204818567844688325543417195067300949057832683526082476699136071751083818521255295370171066487647105873145279237862186399785139529453959766496314173113285921149492594084379121032876911805094630571235281629199240818863298308934496940782367824532468843503231947416198686356632949705065007602146641897710982053402004762462503761678559925190125212049842784615826412451434410762931262292223938455589259396893857889270916198766506596111491169748253436218514802474033209414196862139089816478548399215060911397899598539723385483767363317101333612631054517138250470398098264705454545645598413426799093734616927982227595469875575766434695341961688935910182462252234690419680231709491109189496824750059213017819126069429509336914725140902822114088544878209066037790455745953434426135294908078718050058093347675226711073368907658179086147215977436218583744670127201856261219632813906416136383853002928667073224287828130229514244889631418543838024336235340745594695319164429995250033502445639397206270604707014689730286084352793564120849439715066837082270020357306355214317004301317090603333845263644203508986425530435770842470547564853315664986982189881507276752470444342465212269382799118580574279378467892855077357742598337745162349154735860936635946681096550530073314104282523722857448765884862837626631045040557668544956516683709881368769985637061879997036708970959893117748402321007679686360207960258746376888697268307906569392725834617172823092701832888048937262305355012075710756243401790874750334641365984608251877227658305677264253694952326758308009172822168078175596251340447616815204057246281942349384329496513529208852319593025328358565395132730491636946319201916815137416406653324575415243908852233487251849029494872979709031167168293827769898970216095511652849233304391672120510601896539559795916075621344192303594525935547755322487140516630589376048340723537523201771285340395680041667539458954977555877712202269946594531941026851056514884024195404394977195078821823623658671959437746215818974588144973669789377201013215916949880797839587164608238086678824050952914160461021734925036304329686209263988859347613592692514161602643690710305212235464289564070571777702274648796986835069192355216916604405272185205360658857960427313634314719237582327565003654381670403765678421489979438521622855664238440125990704315840482099892337542432060634957363597665848693349641559217620644335128267577932978467338516884177148318788178294680866501497504239352503796900361202125092199099193161250544641318993335954518911458133911894742050718176592309812166397039981529607741665224834494534685041598673133259027866293480574452871412924963233448746932684339485213755300535870321334625343810449333900266785219322941929484191061119383144551211828628949739367582077049096819717610728091479901200953794617534031952626979858162170070673194459337067875144619190495941157781090988680666287811496740159571440636706794281196787963219844172810492247944967298954978894408308109388707094268647010820805803271704517392225082956473370589823001837400969801036862755437710908379146386990172394185269226228572088500199684243700784112981112860780922872303274517487041810554464479771089971270850628564009195466074764417540911844673731041826823050333149612738759325134722329572476019304390195541813056524258185779090023383642837921615066227253029704875063843920668345398354902499687143315666449902836351752029178619285187095080101024598937354630503991153924830432668276334302709481590158595725999197745434540600790054471759966666291730107576269249765171891267636744365633905756854097128004530000841709344067525324818245023724401110008545455841796212836744489659757967016573021665088667652660467117396054344157408616325533764099811957305568048342208741906709482151895081910489078087711755768367012235869954964675137489930029853336262606096152852407658822451107853320046754580755032722176745380499615470273228331681791823277280788204849994812788434174024748032653625445764699113220869556087531904017823257879893722277326231916401391823423374348741253613200452359618407851773833888249953804926518063744069431528029569301821435886137636715789175793701239733885432650642674193500669997851856887934431821457091068116121076344818103634258556880754228205717719855296665945391935351842484033636746064098568044399578012529106550693555669665768282498074529486693800773804852877521836046290555776876855387024605193378409614763919440280643598460251059407848382289119418656778770327332816077403724176326047204427727007269100975924271277905010303150778990664626131532343704045238207823072041000519517560647852105198561782108355464472260656753420771534341379348719286299025022430429263431046747355157101835945187679845424141684575335645248617024224248590414693183461525660001495120577374911863076794330034701674160964742528995768592700634381770416602033099503444975980315865868618430419865100663689719912609963688979269893391955609894727550838309024662587443084617083599997414629024943971574967699643727512051872374603586885948588008535729572879847526743236637137722184526231282273903960545994676764470523270440686976413940339965428124275780725210504543840327628705294506755445788327152944058378659311599419920510331680854109312725065822557442916429223652817163440798332861934849456963352225163328326736774380707658070197195811735164974598474440478201612138024816382761757346320242137075282140408122038277439028245182689660278627206152135703826235591296118067945797847270033854986903324298477610830177700922180539577183018336311223667809359187910175648037232861078332215433180272299660733437473151009036773959066612861595922442237754859370586797382757464085773513252860497212177577739391180588831999994177441236333605313333956383753646393757160768492632729686036248818717057314556162879828320503115158628982829893495766838996852651755564445484133933098319587081588736374991464049685188382808528245912666673360802372419749580380516423067825031601331034299961671532864972542185264606634156215706494790165733583148098713324614916468092880339511515840593154840401524069982720849638471582175837132231854291451206042338375995036489178981530849540049073889791806128875989745100134142798014537912923351983874131651635465829554218306685041984245492317989767919941429634588435718860013879252376272245179968889522659033720474922953548868786905142723581922208853899095904302620226943942395731368796352388586964501668723898442939218037877958657656611050328581232916094230431556525458103928679169941210884618482263051676873343521749346480594626758891641094781843442429514131606889967885343885162538587941770391301718147008952932179320422501490945807440555515405113782462357388971925269096305001839793646726490677838600600624669079083445858774724221474893037172281846376638790366005537908197941816895360866916314159845424029063149777109563503949795418082064550578699310502837810401027635932219587706388488078443033086115712461695186803201837400498237966625436648188302159742415150255403694790760950187355507815103184150648500709328823178387102718645866536279401998299407989104721859552199004034194810617903044292704037772267317844645175658269972304135929930708949886758176987265779371965184205968276486149700732770970385489752399603641237670530158589220005369296775964490879993528045051802580563046611376497025986116725258288850050637924457819189216168748230370947491591012952311884934753540240250439647464972449058201294896603578203465567196391659979654157471684035721144313911971001675171057248993469427264060490328903845785887472123299857848778001736533284141663795957029614530010380923330511213927675170454776557669426598099028223711739504956454250884053683701632863664529506138369688951588090890722876259042182166695450136252522562556804389077718939810081544206192121687556935834285656121619729436645160570688484833489595306359011348554833689541696106114335719304827296685952053502921899945539354417595187754956754375010346703555823925460339156659716899304974250997608164351011520522806379515281410217750081151659670630111610385072050143067017042117889968336784475815402942898098612214309659143968870772092152299558450528727840103565668794844992000149118753020235419086607436028561114922713713002998128993150880479119160884326607257992948916112838610080417357437014232391567799694832976867477369340050898541834685503449902260559208620433576706572598348036690344040562777900733605091793509082472138504488726858190546925304458747869877141630535316197091074466083044876207032058478693442447126144468412393067622853725682946611449045111863100195052460017093296116804260619205867439378841660350836269832302970920144341069237694987565291853630755585449880888588210513513430536304005175214152589386898741629357775541995746941023048535486960876458767632875113884060642709572217388638356012874913605691935610596793406386020587985675416498473179583966737130936705947768533721820856017553109196958687973752674957526568453526692410743972330702939724387486275215354262524730960985095996739467834807218616859039151666045083180959434202203380281063876959329498025212350862586796398939342395549362324155922733087640209288623724438465936958924961181944913062200182923626750890359073571471989939919436044395279882731161659552878106293616624062674607607863527427890749400055237566588430062954742699099408968205258648168054809693329509384235090166626169801770180964376779922036831712283523229893789728843518890292028441780350099495618550670220369459177384522023051180122486060493148841745471178013493387022452802636824136450596850690166798591845319677605024789197335622427683176856238844962009271033068436252862687806608690482909063889629999786528519699174884698230061606110966185773432573420396648775274151297310624899414631915229864050158552941625267706045640043469960093109289780427903768052606038998832414370055489364054350921291536408336576052587213589830077527829278584010981226720089783205329617166770416734781762959315340201287872255547789914474690615305322065935227997767075933186480014679219177171384272322422315756468509344813773918038211012247325246053574710556880534011444008300818984501879722568873633520791590612815645995316806302406986043094278114101792056397702572856348165504729924206550219135662714152096099300503036920108071281382306546505315551101239030925024565575481914608425154127682413417514375629651669916545384979966138770830708856058282617395105801493353577071359964687590278432455161103138376281075393761310753419584123180087154381910232002436893209672238767521025064242808619427835493402641756112886764614594925695186622005214395506978044512182964022985259430436733570729956777600963830397569500483592855944016871969293308967765581673821948910259818731939944872540897526700668172910892527388577995397567075918896139344860501065381281296966358147240414522535411240227538714286132477504410321938070023908076709276421047577820585172807480754469718449895326645757827659416569873100427128214122302992568759278530914610174677635432090334529229016182103738049038646837984440992611978560702730413167282874413777791626231032788807159850382702489973598497356511191652011128974507742094443339529194310952409851142644537286956525738538849290826635181549601798639353996471260213914386644401982193237452548879494794115740953527796789814104199625278464522723657580486993632659430301945924880846884398052033420253459106962510783187740774551778916502117803436128590981540233389244661691490434222874166073502604288541221586317332463401831802154116244338069909818533944322747121340866274846876857443526494036761451075140173238784606669545199671775908494022728529386013738095073901941645322280340835220112142672507681736615489671928230132743357532108074390901074673456402891077379765575030550203195953247568753810133562662511443519001781703101584324866912754021692941157152650206287910190122071397942871422235035552512079898083648582580157333345425385703565350334500088742604229347880190661876087988717793588734580424606655501214187496522735444315212380705114666759691303172372161159366504630985459503367124847881068090121766894541957699256683593554632446758167013138511992186402198417082374711836086308485957194772076630691183938758958051509133180089458809315103138784649866801333829510735539318406344931707304468707592352561135883960015017693194375418091897827807534257618484008584349970882241941409891701872719747836041190272668572904312254565574165414075927326868383373220192057683927178319755704504680788547473343610177869016480385668759662445689220088454246047540637726216213631442594215565150388087349819656934686671932562275886224695494146325517849948467118336130605385901267182809539583596161392113473433522355639759610196908702839283555517405875507834544407133672488644831276407185223802310381183026301132446945851955315833243897916718658944447903647879111869796873692898023579008149277561864104696553788276462065015555361656978386409759345707020127028616376131493419961265545586394356353604707964985403406621899858880063979543127473278055337828711829756740112870911032946996196431206867108160586836699543838003376097155229417392484265814062349668054881458449326124582082486221722792016310156229645083968947889421120584871600239215754923918174838715223373128649954433441839919066156906996195104508808474713251049600039234539327790699325877215364965536842140979793743489687747863825542834942988825349356942513432052502750096109929063786554189797306507510342286471837780467641566702145762378448271106949910368594701343069802831181217786162330953826857686654850380121120677191055818131303380854260041945281512130646732269276581242464560216373666796945480858499909561307855081155821155831470502210176679401869013175086618881427388476961595109719506241170227495624725784364470480098517249826233558978571870897915203404595102991409379476420554072766451233871357706984076443079162600688695086298044203425477249226990905233019621255185378409641853524877845917915747299810834503876536243527650211600038111606058083466375124590481061781606082168821904870160489819350355281590406396109372984964303702942153874094113358322702665612730462068109988940063518180238424757970458760548364684477401935489822693291062712830085305211359312656425638428493087486083207479602429331344473436392082515154135157568005686178638639465768601511139425318839735846724346122254864229631103484639190394493950988138978803949608106629898359491103291950458012233283201372162023131026775686087384305772162872816957091831174742811410145633803135057382484258232858545076714785604579423978144312324775464202991806251334881455742859742398535613053465107830154930484382632917001529497860282880540936426076943353599312890836374656187667758139438479937671059126933669436093516968918756529860108517811233118185013695084346512939748357786708794907240462863424053118819071101229673501464856279017190495148149792213589247230826605065354043390113781769980291916652290026119389922224171970950492693105863568566068469652412162768028226596767956825134525414603649259521424733474966389448158968638870902358250210854506738018948243263480370608632504657448254710530861629364426944393065221759559368562332563302806718491069853799298344034545587734077289455173205136730190174610122609660311631336193981179119099613142408435546353352664391085856501254385882785176483867631723147518206639473519821292419073604189972172989873679656911737624730410801683018986602871112276535582545524489511541472350499698571462846343518879752637858256340687079242979924488425480246244737718252568978612016540680844112282527706905194037937890593566016278045402919767958086724635854273357612643859325379205800264418534559217450361561048053020341200406356477004288086629946785381830333343812748604622767387643212119502721085479301560921504449331183074285736333361559774981119288622658064264946726126473284135296712631162511625155286519870882278883571853280314362373265633004283891132912060689779272080286823635391208067088480060278048945715681296702269157627442824914051634920822007462361288980758676116515306955569952146423346186656884022832975445070309876731536602358877828669419120199373072891747649280448088254918935283254571435642144887853116308399878843015408085513629589563388526215806012471210229068893875290531443244579039009265824828141328044569149230925462647643633079133905576566312710667135441462148381771386764074559739351948760265300202492467427735425505323895135665259598600517367347402614841117733456260752712061423598500375992523105187163200640350481547787961785644928157170373436202292316404917524667409062320903701833033351888591558438975047315072725809875296266588454711064895662597693497413190507399098170216327796965417343389441705349422179105102098056308897230046764581521682252267766236121449033168219566755432889338964865073135757352643379162467444159245646063607986908637815089485029349436453487763045529644843636470965769959904493303901505714226835026738180743728465751740072034084835647388015165319042623616230636080298763983493135567461352696214049987781392720290706207994508813477307321188537355285937391419022452070660435037491462087252483863706818783501911146532064628676023784126614381834182669814557658342972827006047405561110774224765526631575120165074371427405649325133800875235838357062225050890286129861106585906266177398594837085728362435682676663337708645640503094577783764101468413339603810498712202658824839789449099641106155607493416554309969521029075326113326459804581222054477808626279020098803528277013423816366193840968150926057093764562583553183229586680140825523541499040860171539989798091453682304408938333808473909090573383638526926174853672644751345691806521699103587824367834517608172600798487113045592092087140082998814670323806107509419057113647587203021695023861900835469898002490209160497834434671818507579551064133766223605636912153025414049620863447904718526098273945681961854324168759088475609902723116092958946910194262450720913367445316327524294884609592853997121223387751828475143060369133262551591762603549515837896402895896603218104580745957549305127928265886401545071932912410675608722953468464993363690877520754172564341777922498697161455893971575555069788585135585921765922432465357798817977415480084348252913881008112109000362120624288469701009903058233274282216416121900057841436748042074793763821395274059898334015055528887025079790386818644878442674181905812060753653829865048906493200802715079952853104127271163657291433609960913393252368305207013967163144269928577755982382391516106981870931889578773080319085768595687273556954749792008558525473931264476508178200832211280918224491563797712128538448612373258394837613069500186541501594299756181658632354435551570747704823432274647326607209265168688182708652571211447484906238251606287051745725503389785289380448403910107804473123439430916082611051686970309872709768725950434859011332707386258593498824725384302807325215080857584461147910065190787274958586503218133671201751563567201351458166012029169995286652267606365894526842432769359966373065227249480915246058558954615366875615282356974740334586508258889591789898004647837245021189857750190948114358460285734068514770061696133825883697736095438608846538219977292394516337675197053087898331319145003633436509323762928747222420999334299180504113099749895918593757024937571610830532437330022955394349234429590929837565860542821161302341985074960428311173579062408032178009175213574716473705476184763966973305259744409906239511608753207550574762852036533615215635819375696911266205542843429002175512253899562170703352739714022189108268853474058241708449274096464738282833341557753863352249440417132685788183323869753293199696805895390358580022270832011159743397226244369840504488816325250408515316645030095906004742313943667302203966852530054833032157112282321900974748652295804746194144149653798581056353096478389637814297207763616217115147212373631693301326914023958551033372769374901530189158866413516932431564703592466792177976674742221630832689291035936887753657018223018379209894809579788654112080077265380019733736486950540409363880917112586692521955525657970361047324625507335082397677243990115085371336158187565962543021193364445161280186315241996276667479004604684887236686880879203431359716917286841346271584290824525435783824552157632694500505633093592473285535757383131941052145250531073250251935806827875004239533772711696749133220666600370605953045402401268103794278925859821304113661456600472671943705695983521927552528480735205497219649988590056607163837800008287379160805324996430635592279074420165927521690176174931459894914257948907091931190578678192436225806058057650596942478469210301476472282290786863069622306665101804323672815129711987497521729984658637029633682374037986408890830789366283661123919907197676475738705547254028252916819167759122610217481041866576106351645655640151470801453308169575321162929022830586970260009828579573287754224306719359712237760565697783792141616820490469679878820550153779766407305913114247080493693154613789628564650495716506497718684815125906538286369839749958699579228977308106982217291299380892996200584807900865343508130601415947202212067853504398563842591445884752042330824730573686657110143947170558856276312861679927276300440248357883646570257108097891242720211024309946565167887052692266260951950193804856738115062344562202723745001821318793871962995714538647593262160194923548799233358971410537873312552194225446780741451610600910155608481163948723516136239044248684485848401913790317780173154731960643517440003191677771396715552135531563820990621568659099855799695839965669711777632930979707287987680756160930484813002455519980792002789741068890730181105606342969337595302644893645933042565293753918714741410888893987064562147441341789484031946378859155626380619022198412408015156865530497383904687501263229095369929508814861211436977542577604909683623932196042387553112425040938840574942026245643019700776782567343851971432752817592334127476142980384743403790565501190951932780171255273400390310086234465276871668074963300426217237538622988111949934075015533726960276038857726352060113912938071599270868763673230453877557618570856349822143735667763936642272248739208220980200664067013514500499014976378015594721826485542676578274145287145650102802315287906005255660345036655115503934386499744632514988195383632805165329913761849713265762626175950016196868426821239349300742267243060497093833218694924515840635750008546887995295434218821986366547938565329444267247274163309775121743815535700619584169636928885087390523896140698530222564626430909144856135153860314473594684861171664101952797860920430163782230305312716738731230458767109260274214520385928181871716915397056850671766657951679218287206155767671274262215518881625812040459403025816738528788899236429529330774470043925298872529592565136539485442750842549050359106658068704853937031291894698920601599156159453608216604660871657043317358686396132366824874408610183817822866741809122328179276263491175300331529181037270217048227264072100744249377912707919899832695439094956488723843140201692890781281895896457438026732949802805117074494597971232238048421817128537046379547375584088245407853589967257705578458488802349658704127551932770982548887390793981110131099655045070411261111463536520802181453078591495207048396535562720180872904258065320821621595188396527165335832631583714646661195544309130656993967743304818335819762267861206123709655341548317430900126803839971918758476834965663871711654362762413351660701536936122087192700783395468339927218656939487899809898436693329259254468294004118483811434126083362964397264770634773349288912286218317360832771233786385816920441411545061293171537603590015638836393955062409429230026493742450905414014559305963850105009282196062529917151314940899310897018434678117834590115699184806855819793319531593520092863139700367505455726795879303152570863307769305879480308887358874084813045706199023421685901002537351770895249721930584467127320232702355886751689890053690386681161230060197897333405053314562754948534465666949356062354377498533719361145587639040565932410342340883382450923918547014450124919827012903647635016072023199865522518829082004698835285532914084599301173310387150687046031176900928436880395661871203748378462555377510724832169489950397918333900598314661298006683690168217590890397418838962087747893056786387193503888588325925465743427876128174788348835714653595149478136362313465888719401230541596076318511979120000111880590625347807165256442219519541766878680502880624366858842705683504382972985677014663469686322267294197867841395998627754356059534673783666781506065601001231016669180356926985857159820360416695301764823323777490627936892821838839447367825071365203133829780161175053116938948644843383546614846214309996237120151736288343691628947602746208569883201951126899666045450138916063636229937319510663145467845178536314381758471548939720952704629269905544457508852041308075814624510121871116823760376068578909610102220342761110711666232123291914761684743178445930822247159223325141186522262748191928762027435753254074157657245596403397303545410647294256679397284326289839937572034460081889359743443335018927013372727146973740653928055369098864301200386054963123945779327737496451730517125868213752828101221221956432769649339781090095832464187482163340559868845566108420883317854103146836681458271179322156368511481356279964053158771599953963160479636521028942337812726740660370890874063466436805423506538642264083721638879835246354532763628924141561230238725332838821712713211862016663226432651976206621006726928733278052337686238655037060315040685583328697642604781641266289057465467854996104911971656454713727690893290514609873035152447135050719091844677623796965301474455416611087253308576526267249419673205155441402446976273319663948513038409220631047312112396329005769371605725267442766125285325628429190179890799956759010511986740903674036036546913039081242715878547170398941539934372687022032540468598779694643910661787551230589377599330315053193851611965123486712496145669765093581999246038131590909451460625598837520571823750786857021289187524091330804540741998455372507458910433668770981817628142700135862727940297400096040533885645165903358749200430489464019503542008987634072140956234526338033450381670141506530045528369927920461034267378177696579682069728469583493305833681006003526449905339002914149307498038826734889565958617175751264725326411964614888532686782267868265937114779202992875983402361808077119121738873978863651597332257792622373156735788494714465323862333386304958901219605029770831609313425238478310385463347785107978532227992059583963409323876334942544515026951136240986200345922391030694558386157647815719032174739498428899996139286336796278946501300246618236535169874556058130481338498320617693255209178129141970789670719796484575525985916015154746037543761178539653131153876400655492986770130833948583362963955801325159643594461275363114638379530986897098187402328133625228763212461624569232305678802870388572514300251722676052232049242652809524410218841180300561078395479802909393367118186195099202575554307628789613942318162688607451336572681759962953065186353456159463087392914675162712687283273400719698364868663942914352836836081938352117207628037759647198927542107526598492740250578432296494277987162036027134591570755782711498102139755325337262458854141521608804750618053908483741226341658202472602288690157706369543753997556103508085070329288995979577400970033079136811403448424120000351950551517595577749274194018362922864242708429864948742629034363260754060917552333032013534621569235282799150958006932866599973181104996669234655694754252605608312187276489976393088832736996197124167282791760555554504128248150435230076324495979278467679217388372550836879841845878966131192523625419174309684704150783393458543385185599044136735470381043054205153942860266990603894389272929838707881420143692038734530299215246712167808292534576966090783917875328093373051191048322412156545112898170228232119769976004892143268611592541301211960561044947301030408164712243457167665390771828663099897343963767478075173678023698978940910491730892455541029362407895298360730941239557947650444229703802000147463564113177733184345245562822351680304055599497125407659619572367216361388354627357283502452637247502082001882255585251239938595263541600980549805776894280510145599558888158754529223061770693496400658478791292066943328152346236673384033706986250572290910051419078680896767938942562034397664494751034388267919060571577191636929449778108641868752482095295302183198183230070857313542316047299271561435528870533534154777893111409269476362834968651301456573529188230216096067978982542204249106867721249561895845849355905232305978213479719736919341953497865276999848319446718689749902115861544055017791280685370363406083159468006631656265121276896768443513286743955261831219831227087681797576571022639018094209368754883633168932519404227113813171024534149548134469701151422512759351359778305602648168750530347454150697168693122890684159302677149715766539574545119833483961269352257089979626394040243351311656762459538065422012682703443394770710753044801615936480213090825309443632995476941886174854906179775818207797905245577940132729401995672385313543745194786567239304291961606950096595823386629604905152529799393059950793099046856735662026093054775046629036237779510001799373387473536437217543966448001094337621875125419819034989866523441522947215947939640170345787092179776783737027304769235416997456847039491242848473681915243207196059259444958310358309515541511695372455587819655232905844933645019206881137661938269888120750627175224663209918608819962134869830790551793777424029132738727183189722790298781553307716745274385469033825421257123759424192398003664303699903232332658569917331218347380197629600009446904854565667849513278027868583304271629741301702045984783857055075790303257267171446832216000543654547374188127964326703272294658418421764214443403994305272452650017000248878806670375372554820812849982098366444900915240094163829437729008186152937773241471993569281295987911541994419703865632848040287670797339419791685500988243163698280550656638521255758068958054069817248568760896609389997014542831299911312629709866464761756073878775937348159001590753428288349483953148813693981695209077781559251441907972568641561289374795158127585060771925441812000626309179395021942816296820472134696364145158766437166459908835110605985142213850561708207527368410830418072571987276063492767566012173862064272134189258405641855673594187375034819826753674095933638792602804623651958850518979062410762073959547957063394330064686375771069490278834944013080207101716684475809903063701265295422536020878681721628942322124314686474631965601295543261252649423074878012384007276865619105828700838153466200549031359608867538331603242099658937382317234437692822833306771896585679353802227970281533199152189791030386660025742363056573285835749686311644201979384434822901912009240359163607934870419886277153211093430810214390191772786425440736058837407285057570913685515562653184597873941131370342459435557390771015716788789198204301567062566460805206913377160912386290415078985299448623000197381868617233848783504120848841355945454812680800785951214598601077745789859837118839735195917893089319995720520373998615508909044777556361106903556437516083352833086385473325689645379227335753444451544815936165740842324573935637492405064924037915233544216272792080421959030854655128392012839910712149904378879380330660699260046829422138030002247570023194211879263997331985675161527887359495399913652400628029625717391506047246529246938353825069468575045280463159214311294596354055287434473044374687275879142230053854616970283639672006990011643355237239167589436890922949587020209836366845001581670352448001628694381810010039159487947629490727759040304629135302828237169203346514852098732644779390382921852145690395423052402876481820561174921112968461150658820423195245380943593720706328788895518128612754537261263572138742167956768124900805753763732698411811441262552446365889698122454591527307263231002304471284121759159527481400164431596056415724364275573267669485731996462392870289431080762528561379920469584627789699517049390430038035573487163879149683763011019206294231583456185782054359055954644257979836029866125135913692607792878314282083379251685222376862736398233914656097213861378280065407624078992964086897048035881780048258568747862215502123667340887676651489758841846577515127241751254366612134316442960145651285311141090468317507305664349959634879555422196920450491006301982244536757467278699785162228319835108010051491347753985252708697403244633484461879786090072576791619069895739501129577000765774913825935466986749844291050188631779146869017619868658811136550949843147515559456484989308480284298468917820115658126757174901115544118150951210019609406225728351395709993505805114215779071629003949955459782521549838123222929424399258623292413538561334479956780086224907894443618580714872994537858246888534793014827332368870174437848753469576133266111204505018638909897991489656654528914359400974252443010299661911591967207112591932168038236571169168108770582293983632733574520700801552593192822843851546286423683876029673544011633219611400788693028960761284935826909756579372781131360005162743558635088464400064219260923760405749381305786826537488590728650190015926208061234247696145544879077951396486342897772174859720466843803857471928314416830708435096349976212883014879179448562546699677865938185434683704134333999485096722707093033230601119530017030764807182562641726412947062292234358977731120994074505548343218604719425255031146297105996377760924122105571417616550480136851302516981249138729047007168298578181657564006280645965701056482904424014479682711548330432692278901542942318603281111865034224608800584031812091365162821805240627410394630435244294210812852911378633563338397407903539986752614618890751491656970619283175474357471912358327329160265205954490792787874032710120502876772761808602001765621285667904279646466354640264706527434800936566872221462669943368904600513269931725601820130890237086954846458883320748749945370956185674109016365505315182679986824921656354056185220413883079803818080240741735671997753082745708904920110894555707460417349221682421775394247891726016690637368326263055928206672944387469739660132122398176950492762998333548191563863767264469178297748013168800024757873961651720720195003388758821715588687995747441059278517804157998267022113899897238165668927507869852539283398209713367232869717296398115936391529796426940200755397550196843760773677262104855908256745845070011045106965591231268525315352627168795361065327391166437567719613898462254807959716155773831716608513090806016803215693170663221354780128431179852531188093466694090477384497223262018714831182269994141852060125221465743637167578863101907278418590005970734799547682837770137604931607716576751978166202940248094687592929846676804046277502053908852174846637839129286070736562511249182342395371071060278845002511598128853475907054158799185924084200969267606774178333207718931913451409765141373205438487099390753907445727722146228216280306256769603979837037495362615259290870807852941236818891884999222679949417688421696752081329129876760889702834482726869900507667054462349959217360089786230041397673226165077385084228980233545461556718375825526737090701259818448338604703996493688389595746585266108113135209627662372160252174927519241670806897507966434372195011805395563049757078497721350251968103060727739884824345225403871308430545048273988834179873839641129608891583933557898564334867707968558877930965577671863890880750638299502081335898553748968607566266817420073767598798156391842878647018004780870956537019560622903251406183397687069220379825147721199611776768264043378007659258682573838530799148885161644074284552967107937268587505776932698555656555260899161728907575864860778099407901000818458550633538554183079818245678931023074692463310573719659494094167275906157062029253080207403716653829296449957572810732679057702754294736767542799379838548493953130476370514145155801679546988170281278903095905199540354044502056014383177572636713255963523838668743980604390183653339765620263874057906983534598199105597905840248027472925479658347129195285331356354808332324086069294487526898205388940850910040584518574881936877164745390773890695023826825552312270811476589917691539875702204264896146378274275478282404441032891674986802038597982983403094721819660514031773613365192632962909361687568012753361385247401212448697422172790755056921434364747163953476552342511516766904094962519598558946019523997991300379388201118014706885095480383843695125654089620531163160834562482445595972022646423996824820665517319599531928027318404911235134989038244887172199946610079864314745284385194551574431558520272191735531306175574854541727506513143861193789346415305405691092743249220909018344422781554028996443746109491279394788392734949685470047221250206420859721005763475679306453069745517033615743605592040417427353734660673128151890211595491650499099383817718175162655093196155827951567890208011415063581815510182457264131493082525417107199037931291018216398364992198390823205939302633443506584474650415010004885679044263880678591967323058252818159821188719708381422548286726966359230071533049001335761866998813697490845010211181173522963042504960114824568018322548401965616651213475419651576614538836987792110921777680092605807456954688572269922911580053833660608045234050136273653429644946129360885984914696609231325263175152160940483103312652633634049612264800135204781880042923241277635228155611814111116410150626665080911387426523036559016708279424033281886965628842595877681920166661712719567009206425042013353410743228067072250148745570850837116222555119351417664967685279382500876727588752341443903299135347932884970202459165769171466538347226828883020035430334432875744763665293598267102010679847657908672395960188389285122218153946085326293642577174446520718449239321847563949606969331318744698259414524896750167605803269643257340566098090031382719945591566343886783697738883366790019635754313357842473720851235330011857328756311174245363925759983500796132206259385737015198816683982329056424239313242621476915645521993282132376635179271123081682303576331089507949040004193550205469284829680203366036013069427881662339544733862324025306579544229208919470687564288670637428148113501413497827806398576259733105194783154160190972630060609124827752226546838303259085477468810665655911682422165619053914568652540434056046482779409802113855704613325222687365166410671405415249446263562270354829480429348363399811238227109945425806145834369376504930505233088430798858398364757239767927751749582539979642844491317151819936957704117592640016452730076728241802550067049846991077579375902566514056048819648521483786111094604936166206623569614841666182653438054031112817591387083943931117766901571123815805018799906673626666287339031640892707656162736521399638430525739969430256334719410479299238219032885281930410561409571118516383515864596274563240436558180979325701691159065856919121475887387078041502438880428144005533165377399809852253560455334054226516512264379083709856453599843808973936105902757413115218702361198177887823556820891700396357837119668449836729237601156245326902180735072184698736299071581572976022462361314621028142978663019544488011404033913103588482005799220783925771806034108430505624435734843736204123262139817502857591563096362840680737625649062425866257094181972152504129531586333501876716872530149841750756699645153364472848065260277934626805399169470613253121340637799554720536856729987683284819219516513278751218760741888733634010094780768473267212758344452234763894073634790309199971159985241169948264199444886894917876786979298727658825141693916442106653599650676920908123726689310454913378180003467206540312441587460150038267298952729525265321251620460450008126462668516398285040887880401314208853817964012551692504916070421984682664127848522397552272964009835774883078762646366252264902762683177734728462897692353735006441650675146094148542605961757158243873953597155307511530436174171633125459432569229757603800292336391746356732650320600933165592355522648965023375456682941828271747258702469116572497322704958260808110077553665278892148045221784331248196680016871268255365345280316320014466232689487193560280658930709853813987797636636662807862196873264676003532043228562953709104344582215911297339886327109985491870157412024394417540066378362871391271499868625753319557862448938853673240106512415256911997423800364473596107063704749473455385738947346765969225251331506123261443196903299641479767828123791915659796005312986446150861428758966683594919564428344314879399896563806291486727592124612064279238893172262131653676580499381913369347634431560515484687347567799031879332969763938531057430477159439233955694031447629315907072120325724493026925516390777092762948398042298535868074788351810280699558500432362366881582821063296523836747751035740461168848039313210302578912476584160128812580025838762970411710472680374597406753716388680856340316331811093897370036026899431516090273265548658354700623820103833511028207097068904724080235105668234230950717460829785958626307427849336817492213077826157482469708358949835779041480579754530270925512560725194377289782303678854533713467006737529342013630031699049646545577681523412404063895816913681040573798686070528039354753154274776720916040107214959711257318751218626897306465781564122820124261849489299279121612782925293463706711907873934250065067546906494451558641185329558117586745191710771917385031967659752115341640517751823749272900369236298931492363596373078674783494232511796611289289585823802575895681036503268817682008541405922981182625383463808232579935006698041494610619170465693786503298037260194415204578453913883940696508254085009654295792944797285158843407493968055977326530417872448478203585359298881953395264166485518937980298358385746090214407211421770287311020742581527683004312008046430058891959955736529389804326725089478750372644920541776962372429439143930175787156944628024788700673712113020527663478821432400079150281091272261499584957303593761805200542396415702566948968719329269907427083774211886655040048288488844379757359317975966961907150410859138876036726627294700883142761092468361170918671503035070146402798136434298224094768194034319817760291718865470268908932996557887343571388817046292844322435630803984885606333940045390526273471549354434037199893628389027785570275940734423591838630975766097226677516604616153066199071893554707379265429793163967536168966719877587356421384448274025231565062291448233069391913588316020845636391661988673397082360813225514672352357125918855804576548469354846825395966721748002144654423296434193499970276909102518463135389932702090361699103517111331258032984754766841267938923995457336152484898570460557560612871196292102516389302646395283894889277304790659531466959051632657513412235307702725496249607843176099367104374298173271314131813611452961254830517532199895958227804325559661379434845272219245327518850258700887271504505932468675018334390134500622898935637526894047438913553886946344334804398317533626219470740049147329117624251855923323072574603715997034864826335316582577182952265438437731055113545505305826698427502832900486863415633906511468797221412287620059746930991536142590211989580192179110396701659417513283899313386334826939501475772716888842518244555939850196095468256267714241824666690815589145033726565998916759474461400855257912590434838701540606347980278569304045872021344407631723084251171298220529191187911345111433828544008022260204681892679505867346183410779316880547943706566908150212050549659661131303973682690293535239752127513091849618051484890408623717747486523631945541787892239928926363055371183651592499777348314115000334834258983095376126952533465198941164349611576651140625163700230541719740423057232789986401389883675497616533529042520151935941479411841107577035996812713017867208609718000856929003686240796342058276631820417013093713731167557624760468834533498482639505475553640247867924285025285744860495113171825038063800132866340026308959998748789324338352521337109126186234121222992644840577375347986044855421621082725799906553390516784835722468529282385886759807651574881061777960584071149348906197165486354557988951878247606878303812222570219394472618394521063855796764051133805253264065145513568630871553435123171196094886498965054025255490809320604776780790470016345313016527488367724528843079464672790754319591424965758204983071533864135666010137822159492259715983229481380072203641944750516902253818456025246066467724942848975647610610755718037593116915714093803937397831197566516465023836965042403692279189196561611646834279083832668589123881175392795813865824859090147595097931333330597132218070708185151131902458189926370090000976769174337684903648728925736401966230035232648496782205667756848886316910906530059693164101078312651295620113786099257533461380870254117295103951956867939098656054201568077200823338266655569528366007628007146158047351606410070252910300447685422836877439773818947270052823336273103041111724262623526420610332990544191876487249938314750678122430119455994669369555382101829103530403728956785637819188387775528796615631162554023167935079168550714297849541972967671790156476700918553794413745240484484354484837653903830938001640085374215740000830119333678419061502146963388912598381857966557942463232748892976502250880743068687236191811697701645014994915992905886291737898911137921217225193801518465040098514258724081325146737974038699412074403037407823571240338858395975140479327552333918988209960902776048557823370420640526766655315155604859003463002778981180108496103787943531098674498977375684541653441984857950946201239745371990248289866798833577229970207915458648153127251751280456950636376333262241910324612873075492268205786660591765997513478262474308467051358714029939204302427011369938668498396346986735692935435184925126032071886773741239453566384407595471043336564310808448979501687697626174587897182054444419933470068610874171545771115547388887457137502750860021726552721877030917438534343134990064411160905910034343878155061625718728737685329640998455510121294712946358635712683889376310878694759784252214909096561458317774728316887727842768016422350307271596924979238910516289939545193366210164085098692349951191901097541095486879836858266754925314785134816999541907005895777911726125195271004962711994593912938655869775332022215185757035278427817071017584939182061548827013897596731562126510728135841318740996845915194707986098100130319458005043265930925821506093766771933224129096680516888425677812361520458200203655409992340929476013198935108990577990848354702600702347842292698640319634834226614569317168206491041974373252296957401251344749528410363959958832074306390622625125442080271666060531474401509520593746898394138931901237849233911278810014205560552926994648191844410235082747543062996582960203562557912932046346735662462914019673819532798763903254119503841756796151147187512766372185832684746812631618570645229054535066012767927984363094874683950115031648197795704136267919920238468678082714839106741554382810648554840213637242548645340561791602797910221738610371370700513566979870630958363612631426432029042703180838398383414416398221263588761979147605263640645616676697452809353218436790019012374701639482815548717727790160579394713970212025808146579482346591815204381227590800120158372778440339418226343561431566536587024643282076227713403695398812764494149205491120753390799341797171228425382727641957917515103638510020967559044788324525127713850191577568126315383873822678952440956042256090966784933322878359890018522398899912532014398080598548099088210962629376549550588426623807235083694733699384780264295129747326420201667868653530979053475533061646184046613553139582784348533312134658898853215621568064866093451232545347116064376551399583118758529442021072455823726735292447714411116370097788432311839853496351368289017685139563555060056443246486650279615155769480633535979693761702409988177439001502847040487738610275521073531443154764427733296497243025678099789001230972739119376151086674618567900312730295091563843095911032015385794647513749353823177440768905778616875852517022841119995115865394562349026086940503400887969652344082135305247387763637372903357800493313204150928517124752144714719777432807875357466811165281811468373778780197391559778542884031616976903070901858255792341006327076825566804281513713382502339492039459508848848645902320274467606988163894984801973897881954733921976486635096724226542225368640626482232773740055106692335215646087676156497567523897371510112215569308809813947862400582518467270028484400604732728958348522929908595963614224669908373557293634983616519269161932558977876637381779571359849452654179337348198719876278147718563477645488780087152518514174551760587509936488680540900567359833547538106394621962749435394634083230386851862783553597717990605823388694756248577656427706253355454753091267177917395603393326538396684925233701223873847674559916417514116119456910285757472040790003187084133734100746977761626849100722059222056219949735923503392195488665611967316063621690508486646145756417443056407094323391747419134293556047958245869552046351445260671066048302910960257562617565494016340110049125313700384617935671453101570593668695972000891159639816153399123606890694235421216112278468866242510856798583248841349901847217846171272990180882458249947414973681379038771095168171539074703096053637135684054182026707098836009251111202312144910184428226910674798161426970578960231946570702989807982492855168124023140810417696133781817777433743089898159340175247848613941140266803269546723393891337917462011830747321059874841442934306738221286017285769256412853695245389708558406906980453134236363059213328191587316260213379480521049545468121808271179493434998787651017943004301348794072116788948425943611591622869047402647122797967682686329540231169541730231527688880206819102707880517212719584836403686146782020614446963417596129363337863619418709076265448031181343568908977858379126824350196847906683999528176582295635995030238843517834836869772247745742043624634130082053787031192181692426300175414234774802258149833120820799286767964844741563995484673657315589394760135784669658198530965038986398774649025821758764067335734723434599041398830726301192298084489240555536621870823298447235047015849704904022566014829062496685931534392024039351659024482742472132952273209872402445146109003621051179907452629378168853903528348786732144666126460819984562595851096539345169680804443282373397109603204902185804671757845051937859578300698411702720535538150092363267954960391799699590892190136790050361079507299312877798210153170191739117372922042088480900913988420664513601836452570706748204934592170655916891089365185999414696349063536169759895607163197539045527948294041317146256663483475815919267410040930657386835245286281005744623689054820877621474748557715010030613815345353254496989607800855625211184258432829293777848599917392807253139177963842582206727072950078455803227282750060812377525220703724588144191834605242747454781880865301968976997212455774573029539400921552612085130363685850709761393831698452613446644415596315718270290248790934570015986228430363282140101065873543722952657080293541435192088028668853835747533441501215386597635048947913067324633737318265492409047314350307931593933416468768766685234245045503083148053267940942193721418658273835612097109629926576075270605032430344498550975195550678768179769135070864779509508364651849490472083714316422373025955544792663296432347935491300751731724403268824350193542818299843811731333755858201474890105092581519979507931108912069616613793515550878929380177651660720047323514147195945571867515898817360301665971258688674337605889427133419077243954837345486722979600973616327648425680980594807243604871956822977413815240074922553109583065592241691971487058461089303682962848656946246524259117931607930554770203524415381333479223784764340067390252854135867764856145481080086162651346279897319037760672083776226628241484655967822256078509583759326681384015390855833293174114812208258795031054100024426369497598469469940381800928100522614594562817189100494730906842302270571038069796049253386255818780606537288430748454899876768534098737032266406819695418502254747723360946577214022041308087442547058885935389175490971282216749580061567041305514752929984287699627240803291988694877268213046562264655057425357856557013851565035686600863485504700496779082621710350226265376484022843526559598429133082788170807004159925549303875956947868314093556963737736392970465744615866211973939871652936878505690262180912265052552591665025222083991664587509246866641230664278776064870869991309744023419826634595584945458945838207975101112340185160594740752536144769589461649889593870889329413506554237305205981740955694930479100694577587468214731162842729771986238554465206352429097491632391002514218547445135163507162073585301936204905597691419814108827782162930137848597583764074291952502745441386649193739738665644011174297516938583346592512456646746600569183364581979165699288498924326070793259508172734821306386826012416519873280905099789481856105023428468954191920448769661379687071708256887373471520667470629899731443892362329232150699610848193247575442906097165702449038319713126772726752809166556795032169686974749969137176969639937791469300597579844978861667869816748340385971277907065568943531203169845613101094543101157808202145861533036891557853244839266916835985093382171607719955945802888914893806608525102500753994871146356353243035637461040519107645329920429314840846852403584974731506767032878640867254277046430564774484813775960686761851120311728202305318152284254417766854514175226244636899677086135052326096560335592300576230213251965711270264365191361604653426125594040797483696448618514165985387835148946524100740366655697991116942826557157595750846264605294072901160527788577657818585889296319411812570248770026370308164140745286073249951518824094013744929135281206460332871951278201767362698965352999165536789006719571909358178352728677051554629600776000199280600572038409340008439508847634285862016166902051883758755484953286200138951601090550699765194874807953544768571078755996558291459714103495712623073986847074730600948053399530659242083130340102087587504847284121715455626305825419808349201346546298175290787048789961886007821398874039693319432719679510441304158102042549145134218770724691021817673877151338202418257771156983736321583903944934640904359607911879016708588705633019725361925004478303803700461572444087493185420523410151277818488049391254908075113388841529121989691793906956070634409363488512791044344650982889409418467997147790089018761133087058786757259950173281171539159250012521629331246712197978514162796856391386049012674079663634856691706063201913015963788655238999607610042358037703089702917755783166035194168181958305548804651052320933288350664068231124880136477527002766663934880684144075774053030294094600318731097083071812181621448937026634803735309597617670077610319731038424740256971588355421510020561666367448588298654053264925965261080519908852326389686191425848697296522725395552161450867261363863100730116299049964191061961365361865911797698787599298638407301871800374061913339257404603193033315760928755870690259709333308038958550540630964341544549367969390003982782945950727180655980520100525006542897039780817307924790908789345203702524474934515055701242923291819477033871367013051860464685744812988566972796687384760910606634877437585851082252735531538063748486717822148821490890544096053396267943442671750515671829309539923308761650143222641406711465034983796720515781397559520307681184010862484391773156041784113451176429087290412102809676379281820026759968155865793405548803570653111388158634448201983576184120141480280486332251270698645508535732539704798454043761525802831039224564591532541224506609463725581868499584590048348708352664892574751642106590622368954822773025213159254085924740556106889182316172575527442734251822725633259014466770799813876356489624510481789347554526306403138528301817486428805772223328235444998048215711823870671190803360267599085284479010156219928853657587374417157413075754252359076502982126218984755284596679871162458602474211130089011151247908127044580496229423028479482596312220575320495826468881520210087321712577042537443441150446805104209216087428240408534705172121726315063848275588506104437166706802771617451693294326972001242506678681149818248937061683757279256972096879912094538454026018729540784613226058009713858119746636988269592569311902898747797548403249238458884576134209418654440155093150006517394520539686194097732254859755974697743465123838582173818264123653700625942170027940537657143447556115136694092028619653776939223414384639091697671774169081103809822957976753004415742048079492414389517464262199983025812179144297447938989349062762360671066043915168483567503995604649384276679840641082204068661891791957324805523537495786457576567144977636714178331562328803573292540618684241055914075870967875536192449081087028747100686362113130222044207753450040137621056974602720027718132508563150902678267790124256689922881848834358594825724562013340177432406352827670170722389667749873602074943724649524690081645565456362416580398163181533053527883238666223275249249980597494299839598680502570588688280109302289401603224021921258103879284221186660137534243108321913536842602252433834982589250275161721740019827634967595612532726737938381393588662758853437307203878449744866331326845272452982316858201899702475977774980105462875478649703790513972578019290748362316985313262466823461423565891874947702560982934747802827919175675891609218921079787967479163689731097119663110295180025416576981983367921608629889825236323268674959796078939263931006728476642541063488789549876837926778653975511611126118677322914177291433654648444021345688158460009112078126995089244144273952382946094266728275135112864629203821247367398009934787440459480915249352111728291948476591615975905025474281371456618499270925881168612662118424351283772803094015702377713685947568472674523583291673019560844568094277545148088120694587818596724564597536699445936550049580694336885190144122148730182645376130483044080163104005874348338712492767815576207880866887684614918583791503149417831807403702594924249168064396956734039936106007062626236227449997382655851752615985289567589006470948325411560273129735932724863093752033746537688732128420693845383743748391384623090169102828245593803870103729598239154758284064469929037329607131524394835989633746392889288224796281017553926121235314086329389887270228955924471477951805744323282312700436752137002519997799066647160219894283425733608204637745047344039887293889410122302301540351286755426394634801104074572278837457368855258116666639589609815631532109303434821477525130620684365844254638566931765561183925923057347999584160794357492673402414178433439406484511880666029546108399787162336113470421674163281251247770722068790018160085560230856110102564967816644226392809119793808497160816782999299786051784143748609191757811809298971099182947738788674711511909368053122710313869973910177798459274372787998066143801003459473408471353135797472932597668695160550379630626211471322020528404330403909746366746321358228612860912887773459403398795237970655091256213730490992767586691610399864745616937545597638031969767209857754630350223255805372378172087687285746101202339377969062163553571247674083295905821445388863715285185142353923181224078538837490070708911056701600710947195664250091165300813347942132559203856070380758945272874334542359695839052408976973452123336638759184407639835218167194874703211794822960274681202743833111655016161139839695828633814540963089969964785664208399959721179928234447882115683913278788146789735753812647826265183412017157332634480132992856882439955541931090881575644504990246782410515141250633575797827565977349760588257213576692695342765249786370393956696089746589343777855117134635267661675643763770439477928301571028849851006704495834806876095793082981217194931378284292351195947658769874698445669120461293035406281700527722234823806769653878664059617054982756744485490060626378966889436775400195189176487181238466297313924278123019878937757340429141904527702057895276725108776229229389284689978578444439279379876261506833120457464931475067909781143332451104711239062660319045536458313316731644677509133875000385581604030913101456872741322828400160831199540949853942336189093643132076753667992545038037419046735640793778153554533033386622841168989385621468925471331356219160589713879435294251963549088023418494105765561152390371047682489927754975487588879150768795459356396009999022518336417866777844768570406703406581941675775134434696962038218927671576893968728567660518844755770767369979814094059536433725292837883058850667411179356768069961720528399513652225544154562440563442101654369778302274582994057762630757467464995248667633459516459443690398901916512379136348688262419179531036100396411499808232898519927785074309159702941485806381594740077841042504971692067178701352449700635689251880856039483437847387527512995388192680823677558758576774621640310980292110013266841928559076135662337532450955330009696018929593706822235465381057926552941772253950493522922182171823013083750582382135492855284217222206592312301000546465420628555057566199606030107695353350492536719007558781784726761073923399748874735668559431284092292928210991433380533552329578936465164113421538630431457770949763456550282460623067129962119089113088045905257542460934694180757787665757556201071668389450242465313374983237463221429627367327370363585530222660847312591637857840457670295139032947816688820158302951542146432330156575707412551143883235664445031235010555551816784781011706345182484513132398816053212099852599084009671016274103107119682895267547428215422123750930479357150686795469445034676910187952782453704154129693310922939524539980995037708990274718471050503747315973476378384298101058263900974680856361480368362590464479056638039191897572919994287560377891948978611532351446582750012557715176929527568898187725264544152875517893735162912991681910416940516400527304632894267609660721892281025284543926272563679796894036932441477734355622731634913450486990913550832233591037120021524076696511971703976403028838085566143380354605735424357050944122305722948644640492019423412957606914368123337350217020151242078593478375694376259048221366633474775364505524596213501755192946565248936216001996444437663663365392414568804898985569561040405316589906262711491454239866106178407602993784254904802344387952442229483543838646833214051181327964863796232839191311184256772622574314411362692053886589961490016386980201213922995259724259282907555574449575462825858450686718948444045578236761463434397003384609432774605983134797178267853832480531033241949415247140465000684233492341468342655311586258700569303718473743142624093617189210097097064309582588994698157243930850639326464636939391991743307970498765467484636927227357659019281296115242539111395976173057786942118507200008355728058809137641944623530430454766827039637380312539685990635282895058121132176608201250187232338612925910828312625956196895081601991351544415952735687405896352206048885421014710816956685577989178601692978052710764995024465116591625454038838153667752149374645869794969613377128699228612017395912143196200139384919853032238813928837641313552141845738101232230628052235336656713877969686703156233930169407701682667725138438022134660977542316637433309472524478016814900711432575563692433260228691831369401248995831795665280521634806446397544006770857705559559892452840747070743075287650251265525612617467610132405546127096727522439621459520967840040135554801535661924546998433801558466266104316421348566714798254852919845407607428396100215775473467500443868117802098168738374666499413055570360432662725429311887634731385483968677513458184259222526643674776952086837997769281870592206968715277474441918347848442672536071747230611475187725212121925828010646242277326859964765693903213189973957342835244133014490471644731041960984749677973197374861062714852379092205613674887986714433060697673941694890025618686403443932973365207712710354938149352649058260355913794877207208557723099654790999525528854442951363232620850457449970428569510219718244398113825925591191702156936434025805767911463011157124217003168920762265888055034766283698880437410591911736172983128159509787352867109688012456560409576676948768408518137590403073139341042812390298391640207662880479113460994622732580029822317517049255834332782310883869603767138622331263695775273009206571396528345009117503482369176387304112706495215870298042195015657273737170421644083018598835039131696577222917047513295024210152721687755268893311321490517038983570737349606748609323247598818740584363213885286114677280198377311417045497099191179783978878635674606672043156339302466073990396151181246590358245262487636312231665030849976219508181203536098705464702794043354565821697372478543235161535645857378573741590277022118141084298941197900397347020001981945632175683857668570356475607334146800776070421290792859199074084874026324873699345159113894320740027987602933654916039115974583290886146959563319266737130075685771781669814670722635459597557781338420170923076183675861158866145897699552898363898392901743677008579997505529729997797663957009547799491840305958527675329831413471433565003122400422378870013695860814391333632271063135642353344271521643116544417631128324773652654490514331513909281533175804953558308814197372126610208275729085845377991255632261693858856815744197576509941983023981879172777109184988990844260200166494925159110141294442552438331283303117579040377276011226291284193380141551738678980520601519647492692489361301345013937373692747467512966555734679479072991847197489439128851968671267464956872993006048001489814619179772708539940681429860150629437614559803982127856592353291202222912764761433530825515276025960353082828308597808539179736315459481984474001327087287325798044431067988593920228267491358446444378423195416955226518794761571534898656539181865143824958575839679829597696164092444402839374096879362671688029065137209630067285924508360180553806823119861082602930220535073680034065688465783035892982131570179473181740888923605692417339172434487763284596009988398241392754154798480311295286185064225542729074470628101219048094264717953180278790591819763357607963149810607586243283557531315612097823056382880636458709409714560287690309868120285217286600620062294944533362539759587785054004635143773092896745833187396807996817497349578555224867146195733016134036299159021140288814421867415522938802746529259089071261276752112597250593849945880790743614718175233861422119360452878485104590581739968188509223521071954888254084055616771391403585685186483593031382802893150550854560591456143337183913186446792552826765723923312900594773352968196815384666760383838917512469740999780214071887966560448086972398501400556823491712387788070999749672121431756966908047803021257324522948495881020840737574835998605232677531306233118695601392573570993602032270990047224271392278173826612482228784206650595132041445661627367652102054007576748107562023437690094244840616914295098020504516975149966879983779329922549325063177218090812633987387189708720216159654060159139913068028843678117317801976330591529013949614813506046359345256222269526613803405013363117933361762436111120544527731864434027156067901261825130937660709572714005219735121535335811185143388505286340907774428478646087075688321878656030443093296642361539250824089334218208827153803256997454016030751782409128081932692060726245868238076006300065982359793973125452780231653412852585447682492972197581363656644151676732443507516783676661764739388965194157185649584462241291255724361517538425802298760289062221427541277391025833571725087192342519597787980595710514451939839580224095385076197913515092954058342908920067240733400700206014149843272268619054334339676532506133267863291588548134017347432502192206367796593756301546256413336223369285117409912362111414236527133006942711160400771194926315067579952395521054076133787156924537018824469690774337761812421162102811690129760340356809185891433497046022279727725423143342170483747697209379603389154199893302397477931305593902606862581678450211563968789621316409810363269281161756798692494392830192808394854889400969097532515054537947995563689626656356139913559248817818560629215497634806865048500653974005395010013035300689298368231164759747420704043237399723548031750972326879700655267234738934739748411979287496117006202558069204436091368126117124065350993415111411756311140278316124583617521206922838355866017058283737340933793705556809885616130411330337660888051862676234773167084476750846520079946439788421067745793758479019675523874041368842644794334193083514685261831625001114789171012470076569930272634242595657395539286857855531198620169065615992651695258668003543979628223209560139833504212985757970031227676556755957307866055617568589393383564480386903002772069662548039895190918350548377800111716940482087810804422227098400065998182588644976322200438022723256043779660932942337044853913905849504517500209566013716759875172041465923966577683980598865446424632599243136810816523904006158797071148307059850656246542047303214752684421850651622535450246510025448529888830550024044495965696631723494239112444451366944699469355592692145765124621217575341388234374834182321324448516281223124405383200065817861196102799196379501258147123020257535009531490703440360947946577282290027691386469500004987153847933548618239389704205031384549836342750277782284492856006662727928059768903515739020908666930992443608739633392419656759793931533443392436947670854779553331643224428849879796183475169972394645874310937190615643919169236405535505859292462818796628505188577677681193937527941276691193275435713720703641258513882909475403145351204410885950579499969657999391289311991120828008459031917691393845833006275938136287775147820356440619501074744312702180042773554609381058237692148380323420302864480455353508689153013205729081347395743680990523383198974486664833654617548317390685737400029868540391539856450153336347498420375257318761890191795609071513414509885345449434264846054582617090993721429840658407924849990738382985203897081886075125357848978624007395685946215110640012427529305955436572345609651644917507388629239818473491229634060229111510459196835222188618250723344267976586922317404647267135809033073082613596668851858208994607204944747215381834062494870553526906717865264975751590053974745887989460540648374271480922902347408166651936111235128423226709771098139126919438871387966094533431881822141184256645043185465724065759298621602266858263034757179341149967005079230355512317613968926599285346255297631515701273382835351938784300830048271307265751828159745045196905338435320415374272367173685370265746978344640078385529995197164634446240973651597802890203425724784623201977823369815612429015233380553745365797657594761877540650309310002951631586804919397027228462689096289186958803974221935700815620951010271957623804085988702001448957306993541514206032129606507569993507756731356925048935799000483951233495672641956624287840973365355679186817618250872639084501518600034896661565756537662545043124488262602661394733249436363754368545522438816353151698184582304155632825557809041487839689897282851593950388519503158190405101250516625062883053437863337687743976955910227967656558395236225531340540603109780899539753557867098121543749272649626844076704159066731729570853070157042990480285322524451610018130959919703864766316616412128261541291845418969610799878959385512927669710713529057454706910329091522624718799987057887417434013107949418694045368584196904713870609073298789973992926836378457725240587927042921781322196257538508151433429347948459162217219045938942594226436380941106836933054374969408526904705906756514637334075771450734493441699223660814761969607629045524305309132443375457221938510265751812917055838768658401308758090961331012038613562643890321735005951913461435688907620843458405157935894171085137403617959827007689897942352987273506104001965364666357129815648166426287712217466270437232619631100526648766404607737445742932717171575615972246394251792693870181615683539154991957904353305338693226665422891979409840044570171530958379188510825794287568139331052806128597081618624832843672324964851640319502916285603066865937394126362647066041154903330632294735312202341163071792849433201630010716174944655352446090476919718826737152218881195258934009396214084397622280326119084845657976992845712622014211995608092187121475159862272907023009600860276731336249776465560980901773212041518540262629000445837444995922452077166692205712191122836792979467132525721223589233804786517023107960754790872424271499225636593063964604271114672249909699319897237261098819911060866535639961452322839071953697751770254498420358056239729625072031728484602824520584320489850072932194954403188544303447091676232922886164278536881822628204734735365165095993220805511849393516380718911842643078324226118636876803960985618809648673199677533500839583292065155752133948425815279758793634601266702391265674593004014797384230039249164936561237493240417247462527810450557144560219386512448439236858808389589776841372271674382157297851822811137723591701538360837545201970631483590789331927171108273741153092023019467370804199555361123495098169289843092926036015638615765104500819502349698350019050440752132468324896764847243636085322260911244771202940193849432733794516414180496533105913658527131822418093819981386413217893284822171829929381229701883412273689530152076774733965683504214944045339286410893467055278139525876453384761108269641220951011903960969759256875064361629849158478812990332861389758758205890614022663628710367127706159707736212305583658751913436282819667993576401603827676373477980970424254967353952783978399879096519677371430539486155889756074297623444939776611974762200417851272441564194729783256535731361934494912959591719482417364393819323421510361490132209992590695704200915806449951704401607815275947614676570823136659179114329677241967564317131286851969638067913818646818703955820763483942745394141535509543462790091452020355653474241549975874933913162146579594541172696304566940975000254594579808271430968248052878042740269993395394027541682205872079575860232347422318036636033014095969070632762555095006187618344562030513051998421084414482783128019560624497467025046915927612226906648381841875271895297241572991582717369723127857667076571551110108204379762842101314873911480654317756688828755660872275690324541064058998719955829277373351124957638706868427124827277757409835625336389304945781505334720730505744577347033394743695274096708149613419643763096877706119009005246328987280465870770356365255405459023022699886528967182921358915890260626949505924711792746752908557212545967866679459659045785004035637107305823064296914591597847732760532632458341567178672426983199423211597323048564420294218198169640928054461298281901314531980867408051903771110494147978089565390610851391172957543449518735363548726567387966436202462378074991161220043884818385873974338431587538859921312719347533297562363788362136684609403849411931539683154604228761095970526929460286893425451172946226522328139231065021981254280426319442814926106797413866953246237641650665013389280716772249895641786209179474659534435181306337187081587300059219615052090845098111983921832616994367400710806364590083799132884409932776381549600675815037196679549359090393747326103910542718288540724306604931545315628816320784112216826033917438594589279943524978221184961557987595111856516249901663315965950324077056244034741228693522375145090241273486905044164197771330186216251441982895082766296280045854433650137011975655657983991029251526401958608148272908606549355092323051059643796609271895986101064829631552475630863229636072675972954633672087274607405766794787536709400613042585765054800726699785627239360766949727177169709747545757322449781608161750151627142392115653863163608816442397570338126714141772909542488678442851429568130374415174014305026787557766342089246758915685591024295722858517779802012699287339645363263332215067447706129518200546760442380982172638968757101893166866293833576496230565189140469274349664490034986367759801578856912170003131878221577457010227663757370179024907558893539538667603452050850836199650659744915941846203516093778783252446335834928657590756391578822769083686363126944860979281599248602386566376031508796727827685303636092817802887033207873335048010607840775022588431220562344491337157776416770297969842824101639373586244236350867089954603726996778155313644788092873387372185177916718068860172477306717984641831446463389065502395275494147818831051820645793855814301719271363173384501817313948337189197008331914001882150660983873807903514072396370859371041836052461414434452382409970821822643092841359169068014200368832085193450699422691406823524021804981957342990809228436031648190688404447806138980963216689666360940719021432589853133509896486746676998401797743414318381055816524831506252807046889561652361714795997749218739910795135155002633043613041538812091728883647709275198474487402293640691624307240788609152285876795360537760638386172966113296034068034617429398356910519662325020806016284163738946757934214904144478161045724874594218189607082082831005081278531258912298710119649594990251473336580904951459087215857796117666404695135367002255977281277476460267689635616489845334611405337733612451896574144204777848944168821760921400056237170199690828043551178657794235497808612348869612172009951392310838944453509885806992790090579840135856408695532967491931289863266023403300237023521741276861069116493712930982213867126998858519484500105012559918283080834900361133236215257905599883123451649516244373100677189733830017888224524029538945023992115054413672238274621043384204174502638827116988382203105005441396526812879926496518666861297885218106935246723139195973779725138626979629820964494396177797017605497861112091514404802726160696871888720119337278296843284458133665146034110420385891157063922733105240556671889250734176852162670523131301356982727401067237149146023865885916440809482179885412388055140968295295024341048481025058639766196146828108702249625883915360862529171829095489168434922625124380240347051867547774660705091968369862399039843231168559640386732592413827515674146545197023831000105847984018898668241892516479896367577900533693382224015165503829958434422462350902439278999637217908205491001899797019381495313117434548899163941136498791690871115901352325329645376230927988859861182723978417630455127244918469423719507064626985779062848013072869331528173140003062542252226337150846268812201338414270157823576945469468858223835139758503123711174406276899880366030503228390730329063328521678597789681110810856886191770359055996272763840545748417591899926361451799316258586710288241114601950885106213618046000726314744969917745669132017463990034346687496454121972798435674745196363532490344895422434289497666949669244365804216563601383206011843742989693285744775886850020809385041383823865498015235819389897363147679651757412252561915080402167086403125428209070747001137902656970927981196861918263671683517376691824234379878419744816358390824734742064566417603822142235437592865764310780183665317067282796262059851809754631240453049614942583993357460369254643301341960259453030847522011804052850168518676228649283326590112513637079143484991897790310141632499045379798255386227046223976726607549619028500693548519547182422947101417475467021445564960032621201405846516417666021387806960555331327955663271608342559873190101368954699890433626113830880072865057933745082300681507433691003777723687072365540365573763706989500815689190641233667072315646270045850729702064912266720265546569002342304398472302226923223805733260141108984132974464864309308760145107785483444092915992904075756852728935947748407292690137300447915618857351977453363847968794383384356550938443152095529639006205596412494548569073825551531691536870355385662743800138418283214203325194023597640641509532697353080561593095239845800972877581760033353500100457379919102225327332656347676701530232340746501070636215874781539579695609358840657858403250853562456904156326214299751003814999772149900788880160535957360808513717430342109919455959003510888786778169275119471452518263815362636150703072125044743454260507294099126015071547964286143805017668068359009869755189647900362891438518205984742941986352156841671967302895785941454905500976377127929615496989313306218979778401956509024527856828110789894466334214326504116298160965135564009799524151951054549037979581049499701577682766579681420144905648131802799759178880087708945223246419928600237260382883203196813564252640053635674590523162216612785467105093019294489616311105906060095679891845749509210122372638996046833489262362007655754018792292821998011931375154309319010083515313597383275737474454608633584168619028850624548723475565729534037108740439088640394765291596186681314619569406147220244207594939842927620144347468082862781771545307070528229410106831663988275648779674460200019383963493647462098097079012989087327957901859047992976475349639538695877028153204606968048491576546023437039876356064425432361836788453710818730255824283989094749110071439110427701923676976240991113318320063549080702540053490838721228171201195235472713099951559917359011450386936475046712860566157760977875597725879563000731955185339994902047001673326499529899466545907935504927410384231583108020181533141806319029629504547589007883482900883740476513442781108626065736251365957971539409038124480802738621703820430083987332992674333687776610498373698439725852004728242326818523603837374857105530512635059887462260150814408373704560820723335148336058265752548281783094194366868574763717950479711431121389921693765426435882017816304272960350653910866623076190303951224204145247243914340074587265216002133623477750823388558443590493461168191128778694226217735079513076961645763023156217566983770854481596905233258692000457995750034799565425946114568424105889547217934442635412287517798539028266807090530018491922932318711667165693046109155749295120805659758725923279835649507100703924446368215998272012298544158308932291418804499196471930488072591912890499054803378958637735921450504718630574340202634514207346977861879130297793572751123304204842260329128042663744935337921766234145799455884091917328423878084974288745183737965301498760277896448547512303987326969798341118532730201874735287184563891787359422368301033970738975013575008455464865526546329960417518228999522315987650384198251520655501182922771916422913057374613274173899386058356519538625916150517923672818903744704463147184944954200629859066419779672163706535593966596015283846363783339077651325489274195741147276278965305865341620373335111318378592486864601556187224555258790079194865780223573871343966754312926180112009759542643631515974364109825122396094135022821236960578151273769843158458051031768515464596343987407331342902769276222205893501237329297205706667539333546910733626131842627987927169212952483630996204370123482576185753745698494541879616140999140515980585324874217875872821957050719152749517647934784517759803937816171069967932135289406185649052350389276679559212124890638726462363906310006478902070339467882175636870583565322924501881965502577044456015106646336915277768123684958760249995562408762122067164330137149883816735908905420459759988979652134877735337354870616080520015524655281404918369944929698334089834624254873377015201034915152993446812097086952677559371431765903353172272560562550292681826762847153449737861258085976689676988709395990142386961944893002934364175697552641563945294341688809077252799497309955229846266974246545037884501637423675602947979559318081691250000193341551174525579276136081445055568318136046954476797063153067169986403907169528725668654421404755057135892978216497672513968610165847322748642624063673141451204930157670197909723129074521093069355384652906688025966824919439536430674132750879683715946348223012920887079752197421430672563525165279814176402877806860423142821106273607025706570182088902521748225173263513435378987860963001880908944989911309251919880461195426312587629507827823339508446036861756785853079576554791362102422856022457920365316659077359185974298161090856543655521929046248897024236076043301623716643802327845324630945309649905268559440581918883683136278833974801153635588418183654867312312271361409469540450130412329542452421984198722970809236314074036246381830442541670376874494680835059082929508660897784193740340062033924703525732915752329558576274435056551337295409229666843759267415710474797514755526903672155779055253811494591370536785772068419265479569143012444159492913892807009628306126610992771165347700338226849069549136648879886840915866781087067591756415991964320221714452758094408167520910361610412655796655368843634823950629727173001425932631065298323890702841542599794405278024714702675871319013465455359757717706501006532909530195282218833171221619950383400649493418240320852613996137331864135404422038905706198566588439844184933954920183131771030381961217283320268601378885652276104349703131631147323145563001222772843595320249371147752893095565120129948935681854466329210316971610413316872024678123382308421070436248824215300201595281809993760514700576863821034143470525358163429884706010669142311816700833992781503651262920643477546979838213213610335401388778703412390701925986006304612457276497211907035841750570297725539527198781142033748476069835201007580029915323678036883734937709724965569338576227253975527812755317146491174545973746547309614084777935540623779029404745833145413985018456519744528756369596725242896997928775335303375483350529651827190238467013661795210674061336792740729031952044523082636585475986984629346158708050327266329487787339488374679142246886535705830840154905655724664123244507522770407506259510061051902761963152351569871162115036704092080793321998532172327172721599817145418156594450830337374576845103276115879808670585394236980983118632323805249363975564370261499480504477853201598867352075049882891905655572409199359115665506864087247534082179572831147795015327006636318632337757492629996349384040035525397574099152395950020195306118652890774446588442908976014309113982371074212125991066050517191187532665397004721653210341451240298715065266448749369325664637440408541328347135923847738474375758386345463988907147533598671271000629942923254528584297902019389867778201993730052644044577398576595927037121020463792319346347619221155727177342691048728644112342520869792099512014070074063329916237578944193685762646374384652941497365961193157182063315725319507115274003074772302743286055351269169993106725313920232964135468918243021875618399121880055967012615669489095423625301852589867094162558045573161531876616438815445675114820477327563806334846652863806585819787237077855366678769687006883622764683002133611612101736766810134673681053188428598884063467669649596343729816091702941261638007290971759834408974981462148495535816043308550663418325496249545243953335651176058429351031584436297200579768808010272355121212423171301714562517001888073222839583818300317809876980834478983418930146698068197751215161129909954012907976627282038682883835620360480876889321601214726736685928958495521780441478287257520082368447722996764758644340053449264580185706029330425036937514891158785313690554506791636451872472503800347755806551742588391601937473521956569598501479675602238893072136801942992089940320484155353023147101281694246103313243816971653596791922768917568072466780198292766491457526961180687363749971383763699115092796702709862600587243589251536341731726433209561109309903629561646503737484041237653951351468810888971314938330355537965714971051054493882645967280162790085140969815109602093181081564802155330179254863351524207785222243947566816483896698304522677084429798049835092308212220372626756691760045729768879032289684073437634912672105092900934114855857269092149641104114689716328907942580268587598519270931612663929756818663395947213486901848315816655834382275354851185339655717987453930349408010984688393963144826175724919367802286301346826710682394625213134063477275967900809211252802066205910729325605087387175534024857488502431794619075226773885885423193519581771059267785889255855915550963577666998677536156148036820274469679040143377377753765869104518293337826995093748193394462054932837804313006886425129956346661407298756905205329720292766598866953373181365006570552216723317740874022130378558412036744845777659488500386523539705414813370290097378442834292988601433961156285466500763789597055396176661299406578376678883474186843895640342891973198613479664573850484559366331093091164344763477646984883253212889115912908304120818714063607949797668113206600146814325290514873999651384166564330368878034985516123387299694663637814452952581434965663401043535681404369603349837438391956291898328284409380627907985280653733831497772666055061573063098729884287859277622125265420815787235780415093036957372788398159143701080077673798829478012472175028909606804555355637572314277928986953682719001059540582429199829785403587359426359676499704539243901353330744144845522074334535173709579321856319605178739218842641334208096042047909783309985150164140295465758236602889758844615344430877018006479103854379780410988586067956627291796027871761513952460338170012589567656901012959547712861174808900667743145630784393873463123136323160719932915171007865719576092679508602265128003043969843169807651821644708953733759442485447786602768441429633603101368090165953056507839551077676866479453586727474890873481906110498744924019921403328566540023005967909256638118196396079571812434059171783926871622773179880172149868898151626212511559609622390725509893177073051669731311287651369972898767606679799203725592475750423976754861278883308860924954983769569314472244411038669203690501087641212324901399228085913092158805185801524190262560722534491190004328511670706563482160037518631424994685310061269341744511810267140374570292325776929465091019029155037046518256077931318850488309405371856195321529327364546282711731892120514701435599895731165367381141376907161405449542815365578797134546083144205336485525692883420656172550301454080351516061275943364343149061585383225982722361037852437666270335011608690265405268530474601155542662376304062690547054153644916626742225306551962079638070099661068363928761194248901478035802279472939063566423098311074871379185577785503710980219488283956070831928636311732522949407904533287173469710093361742050362157353816349623666640547948115106882497919862894688256777711723947723698125397741794859398958624135180989013978078161075685146227183755573743314963530697688325490399014509528167975671096615834330216715903815540487219565624056238723337929127235999562730699800810804772644512640276539852363043245770245860291712971185616076912317701775822914648121247808460649240222454488003231625679532883811055818198950744706242790041005923020489399272388872143161379878921639603916037625029715473937283459423961150986055342031046309035975997825038742274322581008490388484080257189563708737136297837901670834400385693819615758384837663777652334298390840991026916225052856525959811651676019426715484990653403580052478178113344663398132507083969699802136879132635339320321963160493088652946945350967632761645614800509913028310713295665484223916769241489404148035277064431898086010548995267790209958634616295025137311973450225459621562894947730730426622338197981132155985424435739567527984649989601128576457494745203811222662754678673500481545014280418227486553674449689710499595759219281632982483228662848923377055830666022570242945146744863381488698500639381343079369956633547138551329756386883497750679836956127282619424017998119498609654353543656581729819084618653034778097249056093396701033404025861022318820690194096614865142465821615947366224985647625070902190850842693461936768626488424588813861152930919913460834372900307451436007646575002649909317700890325480758695874920627759555206013705212824497249941887235654512614903541968288000466552540840201754323894779485812655130404317366377209240556621773302057389067036838933811018433712598881386322075374631685678735523631817988553275314166849509228950022854444254499587602671604239769538334603177483153694992979111668026361482033069066147437039746064454285073221497631649928504988331090111123138402280710588022669619055688202992930530158245145490042547343731956859503365823177241127960320735656865638569360686888442397074271605639164821040983826570716740844002268930995803744101841932897263457401468050597256295098271581227376073599483011396173023310750680392293669350558149881360793662837684530279365962813613957111394246268918378809845211063244722175272312487001017785519009627949412796489482324294233045828715661048186658087345337550976208910595292040003977731989397839538731406392831911042942496227887117405982409217650276890101007989372294877491498135236737764336230942728210521012640139197584449342469702489493699746707186804085114535820344283893741897928263107491237891893963255873135956548834297410335335521975445273069596874538597503205748871938242155255105536494777847837571706454355563223296787406309348038939522849358744336995080308081685120505694234212277959368944968673286976932688181380211187780276650551727508239371422026770587394173488021927379532788561248203504036970293816135110303650052198169292383028563805440841433056679042360137044501631930574758066378791112262010295960873453706251459185421461903236240593853717283456902888562784448037164320549146424755578592451502568767466283676415657048941682723603375337310330561762165311217778290220872156412777978128094638907285558229156752573829248546902017072044959905181127162151381129468054528954177010509335539618576382738711061422734031219742352232992314765067503128141045407147442477815509760864901346907800611299012393054311425833117430864318408762242974039902572839719347609899209524018199694044245404629251755890031283672131958021448703966704372820555119837932547017640313868741740171632318575863064151973841354738422515238566845936958849611265406059887665844094221162179092013816783191515066470493965238851253862266088358148537149282920807753394145154545562869805668208651716596151344199088184298097763255903787532630886317684052629920178275178550730855437594195928110450084640456903645087579504756547008580346498160247710174623947047486761693731471356871592292763817557492891190168139579563175854585865033128108506535969314561424625764589554218979677095468118667777994437649735226843157583682038981829757793434085516119153506350478427207015796254432685483969099106144275993306850503836982503937601331732340643265847948651975862750641370780761794413732215393438756506186255555159900305537716062121062039196227774580295158177150531512665943114625571498133142023826035699273863339700053811102252723105845626576841251737262722011644764672233672965604057078241432241113410434891817712000686977675028405553113358306088815944984041272507446145247068021551891057957662166414415415279519818968585881392246768285005666641716912245949631944991121852099783981869442722264282828155864672845774620127558721790197788906307253552008346142690387180415332116074738234799174178062578788342956201522369350664344412766074909911848979634664127742451931211390234070152265397871332789441858876359275705761432783296092345370277384937883714513487579729819128582119218612652311771728465832039512619492293922812334733327379985655721037059218036038228689756088733146882416159345564267514403679812409302863099532919017400409183205643999027737597860062324459067961531202173618066476881143216744888100335645679309477328841322348107930672524043834931775006905218007972353073250779382297873705153294200924958188748452728429609677585444689725732176495066849440227969299762694321393669890853810733143832861494319854010758872333903909503446478546789916280196412587228637912127162806323056414647667279681701998327617282261674005508252288709537330687983316004232960461700084534726362071339871575649800204810595214668402004524300146491028018842351359626646392915301984244786591184376467733608047314009837950602782932387099116097233215468980640785905801192455649884037886899555045195397387228717894834259645750074526858302780066516758921004256578983578607390501343976318002079418155512547866427829275794394570059932087899713554659192141614180875973931668640331503423465301188529967830471371930695056162198046320939894620052997067148147614374350934755550247220973348572630894560316805070507866535352553465490732006558006539964391144445716751310141829501245592960538376772187987633135917012158128551928676116882764800475253910415050933858594161347568580855849594488390640142794939647603854722921158942673796149306813261551050248476423893886982225104957647548386239777542502687346170619812559105586588657293458164594982070155803313264448865906306178773013388317379150057880327470740451066845032531105955104353630964415650060616708646644045115632744027226179635412001527439053671688784923832469515804111362066492603517659814188184298553582892780367678108602002867446624540532060879229889461091504695909626212199830425348276859182859623734335839610046814394382058355402338765436890969972478695409113232402865459968883171788455906314189772200449775386802999922844035848356029648188896367834060805080006573031055142611061740196215736754673638889244807948758178757404580406192503917897253457634615659306122645977484833793801960674809677104484778997643408827385411718351908038351201592191457671254766536305250468412734174668640215145170112944030547258283039119674465734191901250235398537356967681370135467896661325353206486417297863237714074345114791806428142346357196247400963166337191670298194284833252841793124211496682254544988276691449760672797970233575896350028184297912654064291165315480602427429895741863987205877830970833540884672185394467430279146407823451922827272301168681207862958574098248611071819258703574721112110333141282732486907896661852517201553400048554458963344323544281056994542565570593780051045118769473700570769598587951914885307117567968029248880046434786199860140722710903730486213845438979994615137223457852402410160487283733690360561694278500036120709181755653027882555719327955472136540213694088666201315666428879858685256776300288001131895043679496339806429914315639775798761445253723812269321814062493206776524492637848057076080045119160741248784387801458983241131786460036955284920238103686855252317606775575193499692796468992168823748590798988935144433142984104162696179296459308739594649184890351480865510361006368700369283423038793995009602569580896803436454125783334092767191006013624441323301528104065041915997747879595645297546086201594074867643389152452989033804593516399027453741679952585290380403773483604592819771853310827343271419045172098915050414577157746467953598906254514428995005218089911857349842153399781193946380833729744817465839424209532073064898683352594474857559877839005933297311977691240146234202431734552268823058532436845676038813962672480757078462945794657519495850195890517720307353747744910133500187164414529198049879426004667170636977179489729265185584047103426486776628547020956745828933042475904228214854036425364305523434892073307181388420659846734779026361832091119363645532806080187887181493319862108673803783721177724588787807183802969400112866279747004942812859584729267194983049172464905514108020325104512798484896538440757232768448879043345989351378256299675093563645075923624811842860887810278670214121766846055995841634538116237059224659402692078874809340748396646547295764770839603787735381724839105362431757180635003938760509272056190104123039298019958360780910683335677483620381398086659530861820881687716238818695120454342182620132124159960283282138705893860977167818207992809929245382132840696957999827159249068608830749902555981621010355259539364895954934782365090934084417951174075239105827494995903021615826014625047372394895121881234299747189109304865664710057236711608343962965993129769008649405117758525816204259659558696034335158781697752906929202720121016400848618643566123916998893818203428142749408775555757169612216125933527025321460547687120711938250549958933526618799441342143865648869763475027957202103704445936223564599096759574126717182803985380395533567699829534518084898864279902619135962145760130193754918290200808293549062038116247583693809202325449647644753451408808978675422739179955036845263701712694703075417178424864439753719370365157911232979297995855885301075786396545148842596450229531009230288657343881870583153262421272611779859492845669758907231965741199671040351897867809877051343609584751180406936567237769239803666510676473821057979130916551714815059679241503841052594055797890078898142747213928662260649148718068394442717236345562661729891393402736278455195012135342662039633389821474548646954966690183594852476702927840048768912399631245857935848811926909526045108613243730787562900930897809644945411848694365614294844982013502508599964015483982206648156348737713801000710142945592697542127448892835432383464235594159201015772303366809092154102613216017180877575171171069291995422590287863870218154389369311296475785255995527609271981331121760210828629733407631652762174412580103906066369519988458296491735901759156487296721232945735533306693957064871056179649403125971849034714114566787359133139365839268862287690581410619661345633867067317085703279782620375542967882207263498911357644798789772584073965404052912541950904734973587705172291109545494533597797860908811438438093440025445049631192705707436525705488355125918425570945196400386435938511789481545039588849845443766643329808494400961702422456670622254109533040086302148737760718762937966635086153342578544192122815559438396883571014821019182153310018625752254405459143951439592190500299887737660295438699416006766866300239499060414854546239832487314970993446064462440632251835033038865509239427614465201977750083390358403693762956190272840640619282383042745665116939931024853978776387988906967004276612216804249748466252008415001357141173338738080985496282350872411857077543713237911101637532993551789366450216120232051301820628765946903416637188040968733517621102794339520257670203866043001772911677828208121185476970917895689911050639069848050135894858881234740787657174266572963100726241114311585145473779979953923074876491879720437523447592567755400573929449231436312260018502885758954032975467223505350994040231541764961118867509600329947382774917330773470425405336862158305445931054008254057780784663628405658514047353866208822404896698764289824738284418628470978503994270568847421583396409882031334917535538631760151001090720386549848868183221457824999244553782986346549472766008684377081465035388172387693940902753256386185828110986056635069774020060082313792358204957253603464176303640869854645130344296226861579698557204813796683676600800817963113989601605439883208760719478639862284454093470977835919619279502022427069692523845441507936166441179901712883700056545952926354267374744018781065440611731330246421368821490920826123496613965728178518479664924191731746136249001241018821079076976259410550964204429750276684563242545714539024774410974740874213820246805236916054171910508446285732438433336420697232293586557231635459250250613891856206175775420154816165761034888395591251376745301312567748044635802523442567520072944213893707892736979139002877127090683803688882391008703495356807111534950665790338548858255347598201912696676189692659363103420675671721469386872079575205164705103374464265634397142639007359600358561493145720158196070416402781633157336060201857300518695356779963207096416661157382261870826756867545365690302372642281920440333974578156231814149867127219297351732692810996155547466917362408220609293997548827428648703270288679505919979306871916847697637217219533951616375866154781339587315410163399261418476047965286810737214497346142026048607482610524713475956222212641627628341327133168035177293669077953645921627808171063992242654578695322322962661025542963125249676873663439123543278601925541931903250647958465599571223703301325268843489684490683144324971030862885716294403176490273491253018968518526075843130333233828573573326322922564527862280281287759715330870539595174960647249047482119825252028297631357089038505672776163865460664150132951110922514976615447968082029699840109524759530940861068514738423799836416318317897110892031901996424993658867000753308515219853706083208782643141820820060461150447533410686216004688957367087257211071010303097029666273036718842252873936123546612252123025629062812101604326769530938998423864599572902896792185824603997676431961343347770845815803162698724886244982034361638799559966303510552895633709189103671291098639647399568510502158104711013537555034450818346545948262008608300149339771417325020101031379751104392852261976439007507350101489527099907174469999251044323878288531247118565261827966457525712001026365382810200816379360933325110419196321376629987951567575840177463263167175287770848012460644389192923917215726844353726768924900117155037075548150667740942775227208153828128773867388328132022289913345715753277392346045109274624262491072944862131728023119555189435497182529045715490544195961750210501916621254225012928563958163397296162963795429086103357365988678725826747239098615066523961822206311816306019068673530532679078592394924069048995924910530735636840044147030134291377672802508338200673857772047207113351719078092258627507755272277946864022621219804030811246692803312701958133564086877263218347979118439732393770024393418436547850460963107725435571382716879259544552358557399063385054699422612119809482744230028189558493898326779044487836150746387796276135215695471220100436110050274355469280487675604399371679314274801385222808483647399779103763515435556675393444126009881306694363150847362983519684465628332743988922802643209668800171259851752789987405219787563436523611394304342278480153483100763711459722736742722868731562949612779889353319954067237296084063149413386373691082701863218283420855348557681119722903267732224996197946258789681971327614845371799718951835071451495731437163850331378113577394648594300221716112303367419962425314058619809953672348642846667508666970180143122693278109105325370451185135866304775536891124197515118377341692528948563320127090597094371669167458456442561620446746908455014888850160376172753445161811029758813494906415742244527953615918494307171034161576575336354170659524416896995448157362680615684918291047555926338478533270736638415634520705474210077152898982776702187466615331868652555856398838990128185485062575316238318972662311237694241537850648119626537236659574144365034333908576341023293307156306081050841621558277699873966519385450487176305424443150504741231497136289949603113097058860061856120011343033605912492601092323035151123814853394235026173509227752848064295846766112141133246785300460968765232336512536442635661569610368842693976797078257458873432571517884197757695495324881952486182251734994285289268218593717067247077744682583931824498760007314341647418107556771790267918672156616285194333984850077398594191164940188273777740380566024375984169183511713079202975787732604324796824423497680317159217669140721082411451762152022439267585095608448977471550728193801466213164523905805518432847758504522418618434111124340093781909330549982308910081688077619972845894391804959491010911126647248991463652089701343942998781342665709047150624953547985836513067768978054697740188202249536270102538125045838219469714632153563771655824285499776204154443335001081683849862109065413219739427825719679569235434624901699082837339204462218345978039296237350385636367091150753836971016875219051269646667426388344994792381056217352943219025604858843454736628645189644710123916320283228599500667397004668760112318315005797645913310514284026645254054175568124051571984445579754287917848699125612587090400481021229460539895441988588906543366628662271078469428975225238636765437855275291893108542854609621370955075390225675654858698016009949313463418166963896269637733595166525176353797599122225870817944173953060259054863653515056524849454566135681644387172195446297615684763210082798221838910849715924845196604103920580845746617589223900741551019654214151709508739703834154602006126262433429889056106408355695264964374774000715553006849354406930701678318310768025457389590543723608106129503121583253264227771859520080377607362271820808892005429874319519663302487084025096942678451741410816622429912026775442346843738290362417379984048397139375431118538066258576454864062951088337895714948696745257129599676621747947551830289817641265277314330061731185307041717481660582524579498933890336178572972945567039407662360988124925534406851784414069301998543163781691840416244482030804963224716647203991874684613198489524976178163050084498072510976526960347579506483308647464627424608500561479204552241280957307223030687018707868997185643783295925334131430801420983641606886352067483407396014034416585808487720745943782986805702084367342558576301147216995824419749289909486767713700505788058009901227881732044574981116386450914382802709256702208956606281936624913961936114988469622012502114349670832335250829735918729371282736873900913838931476225229331048552817928868549752238689989877753877548444563883008363587794156070846350271787095590860463207932802668052430628539229020998370389215580759426230747767611088771842856765725698816875480334179698772287667087317216148920799374458541553359695669210428475633356931245747777439239684849184581133663029130821093857558407769497785809880743539933610251700363645193425376992748307743345894854802781675169275916688267576833793686247934776932668434200313787060233407435479129101870479141385980734162437495507232123803761777180706317779583996574504247759066693827413548381670071680457172408539378939737452426863498578373966160342703810700037247964941816651936388951367393190457114310820777099444166232359867156297932562274638825964286636862947848123768574952560313773525029717289059579725809787112188708694923992728551623438382418351147187869137260750976586465066835752546512402593487435519333404930098282471311345794249865175594128497870189755351461635107169683409604668728228938010701438001139155101353508696559692941499071358082271971031687839243883456160144739929562492777509155648148278767145021653885958168892018888291142381267366317877807983060229568613396900216635908943755398632793778848418197278401786440529830551133546910612512290446611397616066838820058096500494447066007198054132510115392970675046123449129204611654816455158209636773605803088739519556691138316357132355369070302355028938362079227705686570359631399655855657849355629619022942363862398167424472961898983406022466600622075246137359749547272171801457527111197373673183961516250665893468999168545829496129559675012679450788184392547970300366517232251384055509940280621786136855916709271411494858725521729949234743444888367446415035103592584849698382582849475149370505376072138806985093543042831960704362747821240842112976630859198484975841085597079445102317547106945544381129776467940373060034117160790963646935653078533831881870619002533721798722654418531415401710568432356223714272976450852473786523942656111904440568048047531634685053317765429677099816158338199707726258993963477433101755429479422683998932058688398460344453983770469486639690734274478002861059537920491650443947057158556987103594414897779552853629055927417962183619806751376648362727741304905417909677503155213373506116201483555694107455842906935661370568838563342941969754917805364971805566174574008949110040611226134062970023500880132557003966236662457118108995233456873165478434527286117267879403895947747398555500040244319680810764582142545416228699033258992013320480857656829705373642065066049390571805664082669346502841557410254976751270980001327999485642077589399014569922746338951598348945234791886053554661560167443256188737777240207299506247843981971149354457176618208324290815936207491288998456806930150277140278905409019411820389367050597188812915770776669016855116573853421158175977942242225559084329916815559285671331747298180595335731457724342713519395348323301626637991093112706873596915905950794416360586334703279056421139748158527321668020398437184570194212514075835084008455583175036272326056502354150293751190911933473835826757852830669545132480239751577619218549358287913104609963199591584068209723468156450286730253242073595651815562483860427339320790370976512677788740425706830134129228398236552797546463249174806674275867842887266259720185708218750453277499191055540023097625919382578919159735858561707926543650408959512079547575470800514708692887791139883625100755329171182420827998551164697399164794376524352188600111816152327076495942537415696121666319807181327732074394034223337162370398395031121871157520974761925440319124834641637498441391741563015695881558190219350135785823933174779048006293755723835539888743752980791903405460461935936505507636074346509885134784082064496120064890448940063393614882208915186283623176774960588055798463055907756537550875480988341634494010273398674844992684218432961627754550440714318024656241459587859604303296069022364150517279186385216845508022746842913323705031812932791752061833132090791718814266821727051612797879870065118324139058968055392303425921621186175169129155851525406016982825940118364807360660577765549983551545348356876506192103781860128685834363025819790138621058448148572146958609951777689676816135142149670012547219072371145807332195868957216958972001746632275080378699629402308144094513315128376311571062374479191299881633409857937105059528249657162203283147692160225968572022962842755853722122129360792805601217657348425953924533338492516245222187412097116534070907798396027653735045309309159638294201017293643329405978654459710580903990153267654050806483594230873036707103871490070947448980683656460964882709611594542633111755706943845946531453816367565095108744751778108100613181287947495791854440042084410784888667172376633453865387547139793240798252242664332764094715198165725320922217678344265179705923519376734400112663794357791379437887349999657200441018093533383823420914080602323364004156417648320515584112442374320380149793232036380272543126504047574206780456698715135686707027737200843547973718219788671067020001613233299647601397205020330049819603221695317157664803024246164739911134492416885381125713795760664216926396582786097550051427845158930903516065723266355990539272848377110996753843185826477458165503563731450344151592240625682532242119423908326592432071303045756343233266024043892708487199096158217281956500400635293627154043582637732547749144524428701966277672331797912682505016366993497700750274360658471781695514191690876036688017572304547749444429864586210059115885884016027526657637603987447646438006083164225111650210903230077492889391175850959168175465291750158192959045405149481862322189339657982301589743187033369291098790929394713482089255224772569426744147040486685672599218723761108077711077310454810748420079314112438475684098247316529182520460140968689952879857908510312708980913291152391361821785748787222483082344551844852815886768661507175204973399243874856621061261409029464170137333175026500694468135764533111051813831603765612770120081083185896325739002470039478761719485602220783399459047047230778474472840818659098951799730193550229570410079718381717559130999599242160249397541788452947606362543664179826170058097772473825700552778799706039367554871913050531921038216392451021208274558382227180618845348994331331479731166316713776160504687013809734751814445506725638879370787913603033626012291170604696234051242129278009802128975055479949831015828823191904996710596193675201275950647215337218594938626160198028249217457670362645964412671701938235547680099826136695155219715265561655563181000618085854808659855376421604652383670939649454605618610215315971931403551779485005264485790252659480536688141847856418183907076385008764411435539236896489891549706928289370516159360447509105035431960809976972178070554123507824136401512443987215959551415638708012424319953984821649478951236195634624508720854964109841653532537897636174288924539790515218084524225684577994748092770431501918576525128333143624701493141656843206834359081829334689363683049847630080687237061618027419614545122743050552585539543227560711524336738399435822399348961646721634086758739429137835483652420277383534287554030381312143793421216280034453028986608968253595916790691233660823910560688053585739505904966835179459830609099823332514376686762516382666274199061573765091878133716334804456328343710569323001612115486699571836403576884269720504756553350665534681459160788271557823266487382429658307074779646388324913760286063800186860637825712402479718074020873470103733371421746249828876923512021632960875521263025092059561157124238371961409639204147645772969065195553950539981075180687900334362575756694341233268569677557226023487036980262749547620793681424006685182603093366386056040494620366414763459074360410694455342161169915309884567538702382128933484188713176467604914865820258961794989288352672819703440450202047776845603996214759706763990533345217991791402555587017522294810558402609020503387535403598785837783158693536053775085631348990910791436325551045332944811772636791065026961727654994930795751344604085496358131123308571178463707310091160415778363094026602498507389252293548819723062615478009657367286058166975000953725594185882126043202364039394924459045420586879092682649711303956841704202417921016982660388716381905409281589601948559099260161452605239877300231780980266765576244082375684395866828129533121177065809002665422327653725431680550431106793931147657429616876563305889911073444365157958722686185500734270693094781850867903106855216160429682182987871532358673609468696708320247115271675777250717791748854405418914064317307661385146975244227481496296916987630186938789902331725390239009992306367069696848510685864399318068309188282394703640754919092205711765236952773660458598314770046229636060347748288826440508719794265660828776882442689242162184574172314046889319396232587998056369336217738843934280696761213567197252660575488590987899095691941371896147386632372758503573377951292029654851501576401634002105155262119859985263582749522296029982063260381663117029293964393768333536707178076259925412171919681255661710093679522319265845171627219147800333282149630436677124235199173691893622624875901787132966405997047765997533581163520899965361091139767376229647385997327534743221493004577117801478735602985861578619431095254137563617178592360335302120655078032315431928144117483946479512191792585695175359436147230723702631511549760613287816991045532682478058643760001572905101257530220346663301452034270362255324736548666986780993603922467600340845909361126936207847790790597398858457849237907338058723603554217463099550791368508153881441269370689050780166491385719353018227269015943934393354303328721145587094022698128649405782354136477751628729668678509881554032289787618105579287375657666931905042291032166054941904766571649499377301840431263914592651398371860541744954757565200859419092524806212124389568173467456682573648540251574188621405864964220850151493235735176147581441814174844472581979661571514518066421980935932242105016358820978554859052174538845557186591291285508014703088094703058937527253550275659752856227031296924118448938147847638075713157343477066987160207477063281116922689390185386859440722964093376014333029278101394711055971578138657136220689148840921379660776973377659349454762636314825954896324077412841391353836571858390247079846709636945035975806916080544283131777697817357973309819708747058641189124539787951738209406762166080396315851762270317117826189446211288935689181339386636426764988182622887935474920663256734419459320661212893900893259078222185499827959784967101532944974970763423545209229881976221007379825303085810991265634939365609690119672358103280384305411779187629776254508582780359798750801143828427701742300116479204098776260059750954027769192634900049907334974437794900750295152292670489666934151871149696631708480868380707581227312419308222196368480513813935536183431206798916079314847607031858070180662725914488849056790954403861289881419128439002935796157709100013880656166181978605166124614877153150680724009802427481327198188021212003630811108701879962760621350247758268833636994007880154106643489476438654892392313266572599267302576779171782271460807583726309077332956287137850041364788354796453876966562911863471379346861567918129432808367644460715658510700760375977157634840734466272165085764450828916492169363891099793543603476678995130393881022059919621599090539041434634556960789041832577702222789796290046961366928941366608939175673418117595508569160539958593367506307485647382927371329571291787588612340126432556721717603183182763742514893212713404643843682120477436771062139109939178086998822588096626937948354712403869817470031697370216022190773264468158968223823645169696090437703924647010554210661952177695204652941911470590378605667791286710442292329656014612737409987409545210597032754836925648823650801389739296554672997057221042670969774722054296823468428428602226767466844584516395469959662751624184600608480452154230136233485675157740624588956304147586105079021535992116330302894597907136367908398771599669011482484494313116571240412900560430829767443376573297942993761114369077270143680710027529026381873067770825239574105088575572274379614104338622347132264200095097999682125256259482335381914153093027980783114183033408784093977357543793646650191701900232122368939237989996432568912156869506355148920132782464269540462633181739560912916740968015748760096061150333704987800336903685485847407674719523487175023326027055293247985132721418463159447579249278715178795668772437639267085028160597691026642334329786075060771333375459494087395538426515860176940128189037890106258149883410338799584068711570839462960684144755213960803700574096225531716165365189463139525871157450673324999578740656144192630530635060026021154294776699130322901024593764871679024543405519725692312948316069326348938681666979060669975181724876423415969243077097305825216777677961114836570818107917774175528940351978846010717919911759617839635035019918598147966842016704660854845217818030520739845081849681556444312803585118385330031208840837555581626721992376513048584122587135331280315343338483554023489071074255797572673383043270607700334957934787924270511834032687426805097312219945496125053573141755829128907152842495321920019638746138156812128150767419801677309356523968993309968589257452904177241642674570784117835816521522018425516805441064499341856035590250886702361073473384738351124881859998705418263556400511985342800058241425368593613952735528052569660359025609287783162743260052365887943964202319679252639619205690134825758014374994915147758881696563991467493869124379695596292921450789050914702592213857756890924135788403007496929506479381764331505229758840874308901050550713029530367403442808207906095690464266588862310237071105315018794245920411006017657895327818270223865691974235387700846291031295680857895782614283748365676224036298640649975802552632056443417326892111924718604222185907022016445435269006943569570179895126013078480039962012653814869213892320045026132112035502591503524302394273874454168733256265639248250319325141562525873862482074989726232046562676574418158501089264276031354928301127066291676507692460032937141761017496628307355726865398260161750796323308610494284877856532463556417764061362134278916450823320162887389150789206872547601381425488938873963853021921134946791173901872430151583338277472759666446621568168795750421713262824318425293123796538425423677788522551606035286783649460514678418501227328299539732680264642464103129629807233198582903721845479716085451951313491597233488213417851151445436483261634082725373496372052837702532000407718088112765557290371710409333632890507816610620959252591308773781595699268306328513433458049217673674643280707585482707285397736206452428643069983389431893625184045943864920640049310687928402152660894935130105274594346158580161675476414158173260846886506230816985553342371229452529737361277180141497485017042542261719450769083525760462625796627318629773542747873960402417275712719177764192071251677598770900590638342450741161718514879779027834927834743806208382236958840148108958737653964249466797733515070267378059207148241568846812189289768257484510401654300701841394014215519939585816350474613893539474588034383993209613461814273574360904465941255929564770946958708735020530836636981834555292957846512635013197855946204011517690077142595402248184950055571869476356754314952726729275446933571965271672435856910289642576137788838886443780416596122653115523522598378692241901144266461500050688926822926116998454462731897550058700419721896031026213381400988272587952600004439722436631413773837179441010530269624220205234554715665561890448204924908344716953708369269966580713612950141241868283142462177147296660700755474763356074847014983199788795244274120072476520488756597401559884387418067437901953417486069255460028947794577427083242978417613183711675426001273106843555799214118524770629030991062490094673640836393169466178001585672597034221435484568418399269925257314575765921122371387456668734801355310489587889839552746272266325925528284245161174377684252023941816561546902246215098478591614652325970733738363147981274582634055142218980065333562174252572323975456625921158865111133580987452163208133697037296984804586369841378599618176372138386323074859157396490884495635992838934292881679222524905245636945603779344964731855828122356709613030110379172867162471176219845626915062074873741375785005718487825129140299087619016831320105447519915852194178297856008246933631454774328297775136481545889131402412955634733201407977485966694805715436504547241881917041719815741456439966373792880731166016612245715524174884353144669170989337082129363748833904869896695293186738358317302932927714479812786370434758065908295572910697335032996826054041617273228874037702604481484353779118146932803587163511240972054035635782952563739614323304117607652651979125834776331631345052162821010824365988907357648045146380976798599104416942223808435870962024804948110473685383290092094240492477954116653828779219302313010644805816895763751635019930398777597381889919183629967052566249674291302938124711337234218159605829893181329059518734616024224165423960300343061377868562564377451886576542850546143830439292166585397918365731061466368849714451529902252154614239300485081761778168899255551596454753117487918082166914624570884702477323276892763911689498821519703860324240721647417682461646371335846254014721693460491786619651339264756322851718742061961809884477788494798775069099017075674301481205886057396501492634180551882859939562605529059667677877686324394329056202719629485897757108672980346758259555552311038843868298049884002228349558724347855605408586070039431554367989142101668322457355009569476589750960579267528245802536945763504642651541942982015291928095446813469587625127651700796358026691380068440786239098817305549890185420687974481713114671388419308627087498564885772704273825917856871515291148041976601377998100849913068285318623406822735599451071845847598949038226570269967466130548259218583156779041119033386962629410282915882363739331022100498885284709647536071456424051065598878858429453107873776641718059613981772146798750496899652254356892671782055930790691279540084423217459104275404474397525250794484881579224997590318379573887141955176202938129692568128457818138084116325419694434534491883578745028166535974058236566790053167240836763650592582867388874892015508134458802516721929938055279498415671875093525835854727363641766748726993576294915636452030205100691989338581525116371722130381576756454079695498393567232612277469451165342989745552112322804179439601958252444889687345288053088752871004985777577865695832427266913643770367028736688029772147485134525002478216182976131014023330799062308913606313271821617158128229388773538147739179390307848612910421564604798934862691621392619453652082862049768668378217733956811459069612974472438470609029388513818641564310997185019169015726995602896356195200332997256067201475696015772508372709023292846599602861339855241630044213882853380207297588142656748177026831501808965603709028450251001266583458241265100829961692270379382651071034947126005969580544304947429702158436913002663426599356126263814748314373159855174563198062992123172248226616296223267238165839096387326468049187266086019703928573080328944663258423574877689119612138546000000609691182919933111973847386604779811324171565383333422971855292210413196464925383036953114484241162393220402317522722305083005877393986235719129648967554248005005869772877122867965541787722691349981559525106691988034216291671714567829352659172137347322641986642375216236303224392169219364715995508506317594004203284511594320621009970807289397233136630647999538548256715705842547633784403775651579702132298025844625302032751781313485546348395068511694799942053055099464564040955443633918914806923415807202279103390340057537816655562577475888225182262663976672878162940816393964489783741274286489305450349960386517187848396755483647368122266373505027739301695193618088280473650603561174761457969395242845709355232076591228097641068459741928256183499940882807877142421470233561062156084141153407372226006906795695739477343126492818206657450469367757471048542815482321400519852206929335220816371941001991674711337609319881631794243607279718192555355745301142354817234653548058670233110386552050660162483348409929365820255671116112055177316868521535917086108580385908775730173865968400075350903722083711572804933066954393020248523160779058757754207270600367571629106868352845968557179377674201543747432684336661151164336099114666269770667056037416242319403058484140418183614239784338999239411572260956028146439659276621104296990612915254913052553426284522331609579319729087741214409689664166902284191652694130177498769597833591437923247301154452697427398608472523266906993017022461328365627570188622159948442566210595718952562414217925982876834890143667749239074902065482180455168237231411152108526560132988058921860217651476586756164133271495008503131050544498204243529005318827118344296895432984845153545437501135397322103467890907346128495265059067726974810577680556892886731970150775338274518452559308798995122848274906588022471139051625193282953077140857593475409235519814581137343148712069191662240966614408563136439648270159302912040516066902664266761311881321701430630197344733531664296298076904028717928887415353747314198078973339196000771926471049540409390120459566877848398759268471435431538338191507564136889577677262223589563658965753266123511611363654917012648633041478082912736857612528839264961112744044176215362777551080440653362886479511763398642037564626334406537046980158407428218702733741483618774509559617204616832627973710752098173548755532044081362855624013272814621035201902410569929703302251418380253311990354125466784170216609820030478704202763918899573801091959237075361750192793142281197172845150836250368635343509385096836070762833813852669141981841650397472314710074212740574702128707263162149390221312255422337591390335273370897929923057278782410212288506900337223220461776378662147809124651785156607285745109153737612819836370542474246543499146062410099550405782026471417153271573815143384400464418573801179124188436777601246233865409417804952280481495417897316672879839684377731508862181327858116794351931636100651082207502685796407251873058229818597354456401775716828324546737546235000918064931145048025082296142683607835255190571078242984579139847509397005054152431430827748297584224521333787855060688586975517226806948943920652991724164763742235668039843700053362678291614456708258791909132757431123579953871690143759687271988386783392288662855679718243393819926033660479315875501566823281407444796808676657868385500307065377095080094912431534744998962291071070354980081208207223641080562484789569840719935710652639264729833102403900832106528077565275731472344014864593484827272389433326434725735778147535845675113694301651599054812072015533311549855920789513373563750131749182627641222926887256001034683993929088425166313568131662444467469767327180101880916434542708841804091434557649951704804628327788815482511281363743035978932980115841953334355310511085166778751496580442223648637284564608263930344138983804039810081681529862038598902299186796336339750224790625778643404745789984065459748847032592737387484475498088095673017332492649686152089446430728352614093939369251340299955810470839645144969584166417185219029109522322974741709265492668876212840495665537072481993191874921232185558690862970893275395833125660754023749992731479361756513454105916297894204301950378689456356274168893099945546465826226616044237671870833991790165026206719194871336129560348628609512417982875188376466333975718217286471887656945847563805908703133444769823272768180596396107262567656383704288366601277368964024053113577259081754298329658141229722576592654766474650041661589292926296081489087456798440450290088160448332049567367876788971241217682266717375354997276487843914729246188565785523342118282069764190218194185451023020761482656840255707752274010666788084040680902176316401303936035791193831715288239514009747003938961470745033500774617471765458645129828469453524461908360052278462229049390051630330350959760197507517330584901916404729791921109690018362703765337450516047761607732075657106400756206514640446448789867012881878511211214752883482343583137928905182452082914717318243104512929283859455385553125419718199678803339914961704060052126433860074693381458225117239516531811932042886018394481264024913700325969182942739098717284784685717834579552507452813705986665730275515329279120513124557852343795492528716582689535809389905062190313763922936017427619335967093026254644500141312873779311108185551950271337951927414157746099459724495257259938217144322020142162994893646914951583629289592924706533294532877804350947955628679188380813357773674565257506400807724996674030087372042030414262899247150985637032370036499660636570844750347376585573392338274229407194057924061597252167781709289418985934122626378445465316727354997046551780317848884214004511715931607679451370769317246110132302224201652057979046515936720021886541529068031800032762229059347606285994702167242238760607080794483213565991284301446533167489277607462736373342917183630863510657643424298447964118071972714001360496059863616501198684160339696720661215797509157232219531747452716179585222066610898372306125531000259084169103774585656817118247327796966917574066666652001156902327767321985432784163830747970940924792878589091543926853159977552562899896058523006693318841970655883369477609229495533373820157208442354285324034743806009108800402504682758171014162578716883296955814608696975372816091881328869323437109204568621266643250183807679289025417005135453594589274206858116347205049937845250767407942632735791620531008481750569109616170535826473727318574215949993571402459241515713323088883236870280642293678064953915772175999211712549598479364360243563222836399009376083755824172760630367463124254175670112102859320005870302734556916469229802805558753757873259249738186507470428771520726532242220910585176384625095734835487467645051830148211390977933089990492946480275939807194192247324740299283938386958625251427447547200653822728893048297024181444941797998069615225168286791319118812704575725971022259875792427075892320068997524825363750000254356516212011656267976833209319892834276610715346548762591993237128162183537164849029205843900445304410585737833975019908335156051063377842870282083202283774108205099821970539908737708645615430668335370347201640791474767893492340791467733136104205872082993947670083577556986079844863110303839126522894436950947187187972661339619554989015540589731703779092586677954137095600441490332310662189379183000749037433501376215391816765027950249106494931514347389064678053483180974727466361538123881899961957360057971867010958973737815442033709516212546303670541420220394890723801382113835131801773604132276649844622121229239197472517027162488356488771825054195456730323343283131925114352575850250593276982910037525312477216172533822855515243109803976771623557884538506460278516673050356380179427429447723161935747577141055230008935763137421356069036873315676452873588261484513275621756043970929263961770638730991897560875182009607659980029044199724116527479691881317141542551817135176646728929388399524048723387333676723315360332963165959758256728980545633579986082858905537801346581549070785766047610815679304707596244546879648261303786081649241800685617697366642991295951189075066912212854069030707339440086214654346320370420710277288510575168958121047608111709777280514232767132762055595990312182604323123799294921978285788348574532785902303020312151820026522027844721121696807783725746764474432590341486366179079872893308418292115453638092371045031061115303108808536866394696041297994832899357418707024465200798965030554792922584899259918224232767748739002286048387822937361637745390000016427689592809457587553366001912149645013659711680846514813931317209624457809179036012670788094373633840059454197175549815503966213473055498119830227710187598956171394611921506953180984667944785240056893766687624309289319248091279522346997875067966475047060474164243905559769198937408449425384921001740631030485827188341348980746391205777114222136914935957830147860269065205450289264989886618547051785725894384652231299393680767886414462076782419667785149379944860476593901785785340223898690849612675696225252064753668295656817821875833497088311636581191734234529565347827925816298146615166620438209089535135466693885956362766243399598517293120938925607833486931602539175935664056632045753867648647534810707321428898051137711325895446854281852727720170606129909083192591715852474648086794303144882645735783663960864970500218177792061422854358974721433115241783054250277045058601179088779849090732211734915293911099144459104571867181810410514018878958268029771931679027270642842280341378006762440994394870877753720867137480749117354308445470923582370712925587626162394594637790328880570583335239066462411956311256017804719310561518001075804802750720694342981336875915984563460253519027953653769169170875072238686759711626175796827799150193731416637170560678965527101207916662787097411956808206216996967293602511451169372501652019233727013682925850439839011237604585268105851576431598703053725662402081850587654570741374818145490279178692043005194921615042712279719178983990021530690824583440772888896949882958435393063011322684986246443535594919900003174744804336875212557756573498843816824509679614894515645928980148040132577525862900851617802820704819537030525732120433170851537557060082875925413511452043553656467667891438788906813740513905144075736854461406414877029049238309611387797222684913158140852447283854443239633852991319047691828787865561790214136068227205468445892286893074719845981363444882151339210826561303677846597073224088955878466509325157723266074755425261208810463385150515353621143803237637593201164839606751461951863388733708872664493517871032880588315269556258259239106935102338137782637405921526649857788451737953268714685057762755487075396903018025906593147756446732992060695843728779039720068067157270310684244903273564680573146919613380692388950952383303156740322177513994382452967995832055019044382849425993512342014386813877716331780509559867230616418188838068410529599639467576180790135554088248915160975568001941448349605611562194245894363097323189726670867184031121738587167161533581960190705475357177576269037959862254322709622753571810151660169032886976282093198602846689575174618960982613137337643419456990498356417231072817769122084665743405248412827519466055022815273040832337884205290434254392549480517714137820188249125507296835551265200439442575403326921100101073940554987594721193163695503129355498606692355231358976991336677588836616417346614881158048686232233228431276267507508325599974308170532835360618064817603023301711794143568732993352309980416554701255117745802973590569306281969662067373864804257942699266390230361599154543175866111654001151713992398685827569730876540447179715644179356140938386414839817645318956317304336532059627611212735428564498923312658581728085532441112233771437592647281607241029349178009298754727524207356384762718421988434310449636413858152701655360169853269173607268669087241820924008797707584312033474854428758764925484428196421149230698370272348175280269551063817205028916728215989941598574027379101871427419843382460368280313570560864157486207287738329723070650082752963185594506205022265392099261231015183319648615644305294657527528635158293251346482003658503490388426709303999146758977516334789648357935548096250248552212959248781896638666007232836556404133377601194236217034938350643658566137166335979334107795159106045240938223842989833498864381185178380584103877512662407427479250518190810732910181943085335039629892580792051442545341785110323096880351821098331357058177647300365914554412228721525759287109021774992007117689695271948979130370902645361153105046446768406027078018506995408655600939460284448285261125739789881095520987063966461198178225237612726675905683521447811972695881359793849200537658293095037884479074713803190010814385393628611953457168143566862307259880700059714161070725444262679910242479179906494232637292411298538946836463232709491971658806532012766891204972021091287632438440418081030173402842708155773800546654601154326764913434525327731838686979733477379711306713230184490385766183381081411120476067612867341837587448162903386801651986547645974213734397294450479364905345569044184723789922869240034783713874234753082032927223657952531703304871301768764488419902524352218285071084806509473695026646057154288232408704177847010223772421155143698938599062425115128419465673368545546585576133179677565289711144345873683093154514078791378407352387101601039011215730192880619458937340673526782638309288919936864051351039585859955446697018163453598135693482760296614768094715344173555171432291386946748410733683602891089706070265850073220398862464415839840684109331348784233131231932614916268819331326370115540509168717703868975338127985637959448410745769526799915223326743570363906321773615871455969507129557011171851528889325296042425083848786636243597803781567914874214729023029299228413639680615714436574447450216226365090783299661466335354851632380882196679328623277321876512378821473675379430269546038462221010191090246451725477766279045050446905395323137858983192071376487778882647127200391512426613435677365643342304215418789685850767534328567653929192922749699865473250551918429695952643200726987253442094899939157173637765763335709060416768758763859812862133696873509028440618450738255952235731003477905580468371681603310353403318308397118196969870386998543915202443884097226314776684226722187040161554510505001687089968124533225535893914945288384340838776994749897163196373245738031078451544110248348619674104095567239136860573412174375417638647766445556876586935816387168688730183253726481261843842839722592377214273841264134270630523737831761425005733999711219737716896699052081540355592739709717372924692824057689434813517325427915404585043853627309188393909561709991807388752940218663430060893761211874387689169787413581595408903734072077777601393536504172396751657490545906166971632018818120737415024347742048250040435163392193202871175761892131415277958847824712823536693537739716753737267476139210501276558843550702512696152869659548586281371309125978037304512031207248843127512764732545870715304660870923629789141192261761338219574266778071908434885322421646729632984766096676899885414532745629631571793066084533094198258839508516803369290400687827238252971098162140224299834139345854992279613061925316229162547574058839850255484066642942131964614059178918586203791952870149050534957033769215634571763177380258325169764737566536721206212499124682913214235906237567156223926080714450747002527303614085510989520299759829587270711834331511579611596606902720021511126842433546733401274701184558691167504788611213730173199380441509571241339184854905681012919373902834534698371331353853349378873606245755488486506249999018449146715541720947995788106525649915132552587213672203512873462261500017970023614599621087514739416551519146929937028189327917255183365777630840975296538013935709026086123906093611569759531647024863452328755935264030975284894327194965738558024715549975387488064900884800908033822758294634793776799980870075736907704478491535580911129202219271728562551421915346557471807134762749721735088757355586653731772740832278279035901688916574865893726591400150037175728643300097621107137929714732647367157781599692618889515151217303237130355543262832360184301594391229084875554060123786396084809271085373915094323946566238813040810405492072687863589275331840373096631463052136973521213660891585544470866254129382063685541506973370092023056809100851884368331549081694325248886247659863468039887968878096081543215140467402843554534945512253286352456204261167460882483881053913596689279829709213145442414839805724850978774818172347683584973044897442353179263087486258387253815028652768746767040552470862921429177123530667561904582030897605908494280245244196456860268945077253820099379061310609285983683192008684242870728919249819944013767054772648312072333586103803180716282567708959876178894333627566965872014797259182688621928607136681879952157699329330058775736813059606813924363249075688880331224438333599200262137702739109681500710192760946707883672462890823981782760863114307447937493653832789265956247195062372327620081779465409969336557788203725190928921756717260711510283240672209924383128026888592976054005823322396791372371523792797087792799721268877032263621759443022381347082908761422004933537121081717566957323903262406726337522042600508634870526665762044519461136103920012474597471875359249172535383609883400514947482517428218589511414856923153545737854623796171576807876215562190058285678819221035544507212481195687551754655672594677139375615680562400290947501435763875370060537233008317116223100933399295541204677727356340177064009227700547758412267971211395917672012390567331677542273785557037786232796114884370326497863994567472645111176077165280222271185972453973816931949628114139883288101414519835328638596506072269863260000806703854674983960826173635806206136673005650407048031263706135446861902806720850645998610414674267430981320675609466629002445789744916151933003625843149257506286684062939082563546453090362669212324049839386369430493739691963566868479486735032248645139239271226787473141082411239190061850136541800818897266833184132870916940833627942419695825552212384418346341035111547918629638618929652790692002841253814323744847235801319271329971386655325831001021125403627699290552678932546558201457965448411213569610737297406560052130983162361512953493396990179223607893414472594526051795036453109260672544186688825655860409632888140873025279675160999406230362264533026255609221545380257897071455241715721452387619156990389006928052768373546498715781748182235563674215232939039481563977272700691650430878782143332507216172863480771682600032799978072881119908105082273362409639269151140158408737295387885198801270383978984044260276518544641362340289850307045911503574336503724189790991366421906527011615167375282313404459917998149137579929039954320593276633891062942666661895111320266283780929220592558218450096138298837829180135229246255517307930634588136895190218725495624725473738740718530134302697506687060546079002195893002587928171687019213938180896881825841600500599195442957533800270346052933288796453186637100078912679082881983829305770000660022281189981785420064966899901896015267356743999233899030795305609295163615811090946495600432773200979041319536483233562247489730553123342714763572732439771508492520461146750575223344938493085856334333504140158974075384565460029172231880922748126760337055007483505509491881583098644258735662416038551134407636198903773739000942831811071209989249994425228011648558364659660677715824870543509234140387463625708410822777669737222377995537976642194129100479813087473065738975708840618599397176616647647256013411438990199474034712299992827046373076781146609245950820119965577551144022681576850125788179310564550444377877915386070605963640083197776339762941684492764698262972468029256477808572586934736367855858713651621166274856692467670678214829516340491426032963861581731390266360689328000687119721215489685190911453107350155151593559297090382724821996536013556260975621961544501646505007679257855817545453199203080683283348254856019450188985360096370866681598220012424029449355257281847793736964815168417374928773614119424765554105849762468812609752670252409182006837097603692238133554897199142282594614009291180710056340893345795489362375718422727521993537212094812049876447739939008530130053291021517656244297641836602237052275157415376195983518810167230346713489722079433546968658151009453872603209724745036456038480662123542278003596518418646553917143917184712360506270970829404180693712356802314596640454095585099827939203822780053830899366927729844334765045539692702075718761436515818262358346524184151568297697731591883783571155568822415154488341243041794779680827432688957905856336673478579471160744025069508109209563845034250241749869761911819711354982791165559680493615558444564621816290023298933038183106865580531643042790054090770588313524434986871155819582859000661127631199943586609193063455210077487069667580143072984861566582995551932441069692107534701078983745452968945530337174496099496360064378008817875884970848456283923148057803669754308743284523389672844275153367080388241512013901714444818893461975065966729089921074345043446447865607711410039834336239308385140792646029966809759868147571776693391729861179116874838918230464351962333068617649906791802594342000147527122713049212859683389415099899643165645492744647750775989721554162330606631556833917334496340206111161914463694225112930963069777090419503133535659476907957488887749246597020201836379832363565124876640125977770947894796497864900286634416136055813658416727679460831336951162179670953198480359227934435874326053071345143963772332573523753732058799174414308429416414540030385462536681625094165401817985147365358549724888814783450408121248659011193434659307741415461597419842742127157196549617247739407196461766461239027530607423998386294721804504141667161182806410020182509569796313648933660449661174850269400423402639036373621466435226488349525721030850004511209014948438042418692421474633853708807930561782858486566502115954549968370243677674698486014070375386639755744762624622957080783238525069445639580494331722004025325736793665735018586380129225988930266756832620157676898773415571245476673176325345519599324213117029336693546707353555059520386198274626083210810455157895471505913622259132710777752610375170736419637612936623196823361718916283531702811262531284825949965642216086469974595543384128163168097889269762939888965415029630249952901223441846376485373475153954069568215326277988869366564789705415092451799509940367798328255932975170117819178757493423744335734462029147197605601833078324300307492476593908411558386734883238840332272926716619496245916249537733907741733970706248649980860797372238294245299010982023615795314355618034664799468547979504950951103354676021148010954425468302321993276742852803413983291153471970947527844924117834704058125592018379719756120691666665550206970212779732232045229227958346950908587079175379829272333097310782733380762109353212456089998281438824469602236118533375011089933511012364096948513742743886803724910604899803839494041408189510588477160812104753158503901655441622291273063783273514382719709796266225602300026338233092902485344314059049240386833326621071219508112343028876910242763391250671003593467906084572709439444597516474474287683856834101887632276855669681590289250048293759986368696589917678782562142840518580436319714418527624106756000680747140068678188456686579082294413324608849731008073897780828161846269943048380337685747477423306715397499874687839611568549126851016607096079450370682197526390244536364785124854626232359314619914044836572790767641895642268920842641856767823776833639135013702567656548263790496966503108427378343584701334463500687722111543712149422518273247831570406441908027801365265018802017859200212438362986346506367394670910392535991484134003031016189506846602692244939098841434205593667737102455971571766714337296101147048338105824495334741294808868650594530485817967253823138388964121520437615200918310748952396911637874272635991543090985756629415299824621183847261471225666365525774027420396434050953102550262326196222114025423155428225396781751812559641288098034008737897306589963480852202864677961010015792699938802227405066356138574003276248062698927028491972320806818556034349561306212352942721478410919774096735334257725219543341745613204566233347593332418524803143135866358123800726439521528523419010471905752669818173842228709831417420227804297400766531278314612832355084322715036089811592835132503177070548887022803727363984569402284289380762977718842305198596328429320381061337171238178779414373088158590976346207399886649811663971835831876862148986963338968435373916191109908473700158036360315566466916888636762002646981892315752200360911796473016389935176744638874251061561400633842942109467567546787835243381738236811858374026238566216329631333775422857823217764407872120456390033531076235116608635223955189088397095329801141154284437984902040746738734339988208807809436625517965166596290124898296836481621838554778690022993761545470048282174905569702811881414410550948046137313838785693220108137436307003170527562876155204731021854990674753529725258814720547232253380469986740391837749538612073144689798921967960571494813855463063878604788007571274792004407687759499281563233876186430063373001548836550935815138475627358878474831314567923861374097228856392070555246990479993838188465551079096993614778635045351733533768239367122420950444121526297041699027547304815977143850979690198427268245166834993776067848326533730296273563830136709166079106312024538389494686112786852585034996829322509565107439088172802805726239899332008158812869888008301946561604326893051976537984999600812626237143749159456192541570046977605326940006894098049324540470559216481178177024169715356284271356956617561032931041642011387864247604013253975131576528697480282160935713123139014535090326576706297721101273977278618246930697378420936075934281649538743292919790264268926613176113406609789555700030797869771006729858515808499883861456975159320004477358301449507165889893587524098680255262342952344523933997924178449374534217475403634708996120792980785741410019578449658155285393543055744113351666310503093946613966864805294162818067109417045724426281586957745215020287468149064554719112014772772596820222467145638125349674756444703557743009649310580492607973161134399080537187181368676068801659692670839955507712923417389763061130928212681080428347575410648238735960270948139316149092108730861564548252411240889214955659019203872210475769351828367206678655638599721359565206084923898848954872427870540887172650320642663470787276658189504663266285842892531408011561363829563856524532846232525327893745934893301933075339268962194447762927829466498110966100692738558147655463943280930378989979885404546207379957119118075021755256840306440004176225047382360785563537388516413403518082665365650399632490377647083343588876521262557000058851792829952039647812968908100841687339433036349776395076000997720492138289855599410941421960216673476164104139342163343467211156876748717834952570122197835333272560457986854915780984741233568146725255117541195935773185207336394502318410295924628092930947223576400321847825841960898262150795774187636781291815967338809976266912834431430170961391175706586692747468059406910045969033893124260595196381665187958172634661634129113515364695626460508653294785516272730486122079088826484214462863870067840072342938044239248003078704953943254539660348387995260728503894623067646836592049641963063451420875689732111026466134120822593811002737618121271278512901018066523883242407285655969844535433768712979260667142825010109496054508795369706024402882538095376188728892137814012539342989602869446370626246410607521264130173326566366436130484474599852572342573195094828594153743118255570964503878208459405177872315801828558477708228651563029813537368301165944619129274863745842490185181551253716664523170247110107957871469935845004772893365392921390323247204214576340286103300647227568892578728384502144695336444263366921847248070565093814103917294958550109111004720863612201875251021514499753049301287033408787409235846938346957427142136709389407818947105187205042166338033686432512828508996550631858032189728753883907927949879508313529138859968279856769296861498824238456548322378424272836225349355382965695344071627937997133866648936025958422810384856612615316548394756102595959421898405224272023172393895897197013976135756926246771624678049910666171500432492589768613907052887029452344873211946203197343638244367675666413036964632003349975191946532612133320010611896763816917251143731998474875750281629268213279482084024160347918769045510139171975933225099414324848171454083717484340225990833053458586345521566824306906152240511125775639621915043895411123721419879413390470994486671310220898374212634105164332580218727336525795683209324343969808099404850565834412554492076109684795137322199368651665025892187658273817661136928295185723653291138993495621838238915404650252970222935019760937248497546948446953011040064190953880500092848081867096252311879786865170845681094895975275446048186707424548035835905025098603402438073914130785747749228023955794751678329674172096159769631473482165379397496516506634296591401649619951064960191032939372602573742205751393060165834544878237616492106999858298270324863915382367533667269060203906512199494873102363907561560166975882112501929313336297000819630460872030762790266945514637024062236985225955627692415158975241111574532982442699366273164804388043510449354759610505644467572109280229323531713870925960797783232305144947298392338585623475842433078573425452658482198800958270116723231233751870446068452336792431539756971749732098789332235714530580331203946521497729107294548183582577479124445751116110592056581629107766178069846955905537300968923501197880087580372082602046214324134529624216069045159894315136848603289213351267564149886864059214741865822382859616681067335262432396574716429955294162275129579123295455972052491048533444337914441308463881256218453389665437821959104702492592307667522503393928915110579344717305602144975585990046436187358669165297891535417045383077426481737460092727571304022751854215962681422295509660446987849798154337960127937366922997656412776305521799675096653448205529869902015657908269822075762613948132674161272581101594677434824726772740303599712956672429093446222163341174067975678206745636679006436923774843175963783870666684850272246543940359446265493306170322743148697205459888216897486453081624360939418851832706205600867788133737914279689718819573046401606489579612709880916161601668182213315206159933577808594222932795771017252004770824541628391137361495238960575170247236645435892919854612025718669054918261814215641793668089209339964939494934431977017942287110370272591672739683380654795048992166470125628664173585493417703232059748998032883753621969216327649986991340083186296641507701109722498399101250724612831131640378866393729134222355284628333552966977983945576081349053190283566926298975402788946892749867798605712426359924005059851382774608762168035937522045336891990420871491542689710340040787332042507449352490820731200682166394873053004661673987584256680192862968790014195780826772392020542378019748646595618400925184496985552988347462899073448077278242033749865764615546032541472223204199197184957878793969147558611476352872414425285447803234507638015541826497460586955567368005282554178105960468365470368537849693527934527153666491389052664311006482888866419771049880135169431281616763904407150178777228877757217581987099295348730394582506878410788738597780267300875607174578370946188954707833300250150739458641749773818375016022111946000578219000561317290975247991957707777710969231707686097448641644823813310048026058747173445051412058117064677612968934204560619793039916710520831963035953473605481704754454768473513826616916501525259578441962446950849734888143937158879238347167452970115789689379387963412513243233414308299276274086085271676032063204435880272726487052235656230872642443803512184646215066909584190308027626236662477215241902526892768621220262753917638779804418901108027654216787695612793266441942236705405966202896079009142625882273569904787267656951663000776659011542729196194348925382500913522711935927491050786762985220953994231603442210554186163623188559849694344912357656631635007846856705281787777953501175972069884209563176484910140906626229254140267832748623970465924757209748216221551544002030217901944573075916118946257356223859389842685588043707059861725879419614378687790606306040508158099021628346186189021204609038903648269576584024907847059912441466220117213547386647470452399566414958013166204458799866288544199920621109624994662462756101637184111194457738357312715321656862471607579330129109867835609147835487291351125491419495904473549261095100083040812715204074366446296148721963706219665648867097434627209877386096678300068234816661410940612150147349899978997950227338367077979303438321586067085536046759847966509929329881927310447171886336150594987421493340170336491801072353538964149134814203513964725105160252335658154814023509783353341656517069164795045381189660138546240891858224878997436439095966062372940676134142583606188431707530992655117388083099531248004476429544721708255988245853448834663661763581615061299863500953346213716242821758297561588113804416028873328693423094477863171633493957039069007374674175589357315813959119303188259743774065684566598881233451255581674270837728049007636040446082060899776303055993081377345934802885342011672242635919035961480562688934941373800778212710819128430190183079411424028424448712358690754478302954508396926028605652955751794453688594495079499684208957719186751147440748474666553096668356502598471522019467035674372777540527223686796691612176304971790239070400546713400748433268429606045065327992695816460781909157829629459289742675087516192536437025661931570141163492094498821107212918063297765305242506570773766688421989486528814442538091866079579147768801192660730817948154482840110669363422910003257986207813107094574047038290899705058403240254211239844604252640419447526976010033233819654229497126158077514525657433062767961434344614718753373552815341515055333397567842294891598104371826692101370316846353859359600066474820891033447713865679865570668378238158346876059993164575415305052298763190430705385120348351197801632268650387639573889002777040353898691745968482302791035952459999203109841173107414085083925055948969930160572307218767128967653870913478838258219667560633551391773631321745285266952989352403680745245238058935358861065607243125594568354716281018539634498691100703935807216336599674246840376939771488588335417578225754128764655497207649319266713050757984329235766456824889531753302512359488678923676206605068053962226133341162271792719682090702453054435528871191304406486634840226412373049172635997368789419794967751656084772218601871848417787118301388652733155169570250928929001009913934997121109307639162397778815572308190536094753067538794859524797365829201536873080497039422078907373855005350347211160005739888766394481723766629373809885145663959324018347219967857056181820071787478084341485608527414988444948692872311525071603410129909565083651081456388860650192184271432926841518293034431550546676669981800713682099659774570575735118385822813770399446889026751829490540994229237986951780773126102508265228056500214013983562625583048330428117965780483221222300954035241390641679115870026186637585300968716097739118013586977233861239941588708929462918171535396349475164336677846068726883591234527853342668867914775821981708832304847750218511048715441267266173375955036161696799610132691030826784910030608181317958182180895615420207701093358983570825546846987023520699474340527119043088589028392283109836352209306146579576753320475639676494896687796036189304190613010809562522035761165344167277152354459858195965738836918114934639034417501983072206911883194839579308761177297011360071495532544349755837059229265775802391107156601874231341461728576653516821563800961651678559449143282530459328554561132486809221564767840275914859449998859527762258619116419370840138352218492112349651500645263857090307996466540151766247096231771555142454503105841126657699555896441382226556620308078267694690487220092447801060535671643380178807122556723497634299359551363359090569400122832283503568597820626328477949901595367161125272663592033164189744876331585663344382868010007914255497779727127037551650038113438732946643817217398432963527698281062639467760634091040398261114837532770622900889966366296656352032418190582451424432490176942956383535718314104469393840052123188345523298485738611922168507434179187518444052964281132408183940551141649706346626168683584054868553282363259604887815228959479082840710638511526196118591425753035994782121320099335103204643340907220784410776721840270239576821855158490829610553368975562610218587877643664172928868080986710388365548383976557125728228211183861755842976892001306259954187562940859461271201963112091867541654468099230336681229351579887264828097654850340188748440562622856280716536329551153512739868783225054995867728463102677688502847961351694255491932103061026272079585597855009749177611969266237644591471761691865061210309218019375729889828560873614006498252958666772802301615761470157578398866494956089711737108669991059502480080401317495040842877251210911834255784369446245897457876954469609172167729771023750301473816376439212971418271872380482287098712805144754216243099486021747501294626420993164036091340817464658490349952865111333653253640024763162452829993406916405144136072206847265057666169107289251123113184931298234435777981502214510975475615240671757611762915750953018372349581425667787152311738925704506728122941406494318393147158889279043054784010615202376221808942645470584882299028111759012240638547380727104516774680238015595559644686239786168073691909087796529263314186174865952635134159124204687841148587929443197947161950382646664981491303487592868546798212296369005926205557111943014452778271096135698086783800742682884513046155989998864031579729937132986300690603392672944709133954926529012858074874845082888723507925365615138287490392963958959247918982308068435331294757007219653185317156373478093442322754443986650403492617176701177745279681093235290214570977505005755715816400273975285991586465974815867331625492139168509822383238502356955462954504634609637298808539683475218566231256608377398211126195401674543271064967727661094923599580986930352630138001082928579839302934028726764099389251823856585291187321824297271670024781162532037058482366595188469295712221340657694343066428199766405231743497695947150626280736716301748800878302562898688025163505267194340334096353418734057309578932286883301622153196504826817303594484069764174859849353135289172231276466940862848823086667019352245639567397260409937903862945412242839882342566023052183128744203591605692605321832788321960273997159903449895904992188502658261714483089064381069418744527785040618009131370559175095096206776093702686815647414223614044379783542648027030497811213349820628757277957284294570189127615342821798207654439960435953767009640273281046163695724664814003514324567139862774470825517445304229506391949197096190437143656050470652704737909309865856303410547121986908311049317392166912600526617338423673166117212896569403816830478603723978939113479910139877966077975687377181670792949605358942681725984256825183046580600991839969155363193075120098172007279191649647974893298477250481863124113538575170849837024643934904035846594366178130789185520902043115941978197243234845941614533622246643489505027187638503777599496877412019581135436426319514043017539094345009556375589316835288786199506729299554512497609054175175023979600300844020476974805894877669372358555454925029763222165971532972182743841689595962269250629577381608953800611905593409373006433000538121709962659532388083933605219164473936967338693170809577602146109754755450548402762884267774741586122934972507213339893342708693494407146985958240691366003173319217460677664959869740169049652269308113229691806049767650547959002226634390235988392212998333849933059262544692180110369109428868284880117401074291961127075365134227671904815565946221462315443189426715363180602704823475061412783259985723085750142352093784469323150915135594165742315033414370715932669295120654971015576117335732002254878157280311445261504516412658302454945952739460059994819178713725570258963343454686348928428010288999486033601277195702431076201630071005350853197655163708901630126004430603996866840230751495378362970296467820815186089377073762879363266758892486770698572678286646312028334298686694014132978067198840963111139144336221020351750248045694722179881424071010304625013604987710828721815694991546592113579034232863684683191993324835727001251616073507736848404574661985492208849393360670634722021347627727843293435916580445925160607614120120696769906000065608717877690203550700217546846718173688066974451390172484257528500276634758624868223972100409592375794637255210235063662890023290601841733846179378423632837390309862581710824584732699091432829114374971761157943088169501134441230237314383182404438821392245753063221382421101127941480769499684724639782562045915848574009213686197455161829776674995506640770114854993607890395134459767446265179162789052387811865505982293610723545426713066427489930602635770043202156041742211974485783129672974306541624164981620503283746754183139291615796040002838088191542221635392257516573593291215679069418313362586861897738337791744221639220250103121383771212999120806567436818528255958452277816264860661344385968247775243928927626067293147879750777995356727456514032179680969598472838861061103934868141137306628293358921153686025727497047309487223409313805873153212720312310999268493573606276885396775543837315413298081104442735358139341116406166749115940370391406117249154998212372052756786265828994872904770109572769399162348687225702479419284047031279986505116399311660103590122381250097754372346486532902056836219889195910664987834207954078254905315715308831581762412744550147561269183060144637683102957662611745157941276346158177786739608793035073852093559889378275324114284530594635207642642714292754190743606735254588336514199954952244249848476903037744651157353246260500786826031214076944022529301281600050720460440776923979410382711124122601436901886492038733922956814111613812206177887114204154689139566279595614350585705721840362810486728375165552226003111135590330527380862623364191241486345435422156285280980717680888946082334466104768136807114798922324136733195406748008388962929530748809157346089632666573435615746890199922997632023057380715821334400758580537071168243699799558875132497449993864113514015183513486316366900568139100611537010338669724653118688906604300582902622497705509202772438445220706955896358051677185688657690884501633484023680718006285528144245301972416271175199223506061328850345342517678399193189000005464009955707612340751946074830187203491436377120612635698304291394158691285503474096639784479595679160162295620484234215765307234094602751159272037315784928824406424970881828817173880506580012350164152973612228355575144807199339051558309856616233248194030680946661389829131292350908041980098307399065168106559564168919630726428725518903993917839305591924899565112552034008209023257394001414898899725384019575916589922760037910802623154503006972134529750189450054179441082577649414049840513943647767220389024303498179314090265921231229223526997549608012712666398487483329867865592550369508726726546839636221903885897611906219319134140872934055340010592100294926977113691565029345737882770004551022205504315713031729633214981716208190458099183612747042976559358640437269451971856344888898843107813790422067309422005240992843538297298803731198064021541394451009222214645101082314309075959851417371761106795158840706736675576612993718211025466702042212938351828470489676703747628492099556608043556003826237544837801217504479286839089615703881026396591085923509645350101821950122542516349751621119721828509086462013342096534187237656245853381902766633112918440852322045034527109179289865307856790401773602639720028371947847053406261573169882921979850963274744927862925037118768261210204940516397732369771742955119354477591134035206122945024638349756512326298341650947234698602405157408059519781632020650605912328527176858162243512616534069104355276965288628881813896211606350163229726957475517519323932430082239672090425897659124958422802279384659482806835498039726146840920054513927082190118865867576188836461336064803496087811570701555350261857578035675952256949688685128506156283119764226177346728242869885644898951945793551845579192586082176999319118659104383034561069117980824884078506432629675147652012677541252179523333206052499861984248251056383618788433389118749765964893897591463578468688481139701485690067469067008203642692716518372427717381505110968685418878668144326018353286170390695443500902872021656324522396959874079654952494445508552326178478738421915444861273741069001802441982474078527894965965887024417194999029568747759005009191055662570883804765636952281123886242226176381466995885848579177522874051166900665590349674205080686792173904140882193372804252062203600613051452428089222484620942572355732859187667039314407391612912110472460391406812167229621810239964164487764534032560229181307452359883580930698357647450642551985129076550219426958840113136845104712132611493500140593786377947737088856004318847220147622935121359294175929053759822401891086119253614588719825492473374508285484123785686688464384717622091215234912355116041289838828121815835526829178241851769848585295544046011214528478306531526003238540056326808389684930734404543719163477123608524067981003342607744394633609284473144389349153968201879395839160175454401283925918256192282528085460396169518563762193122326077178719564266604372535643423428266681208390680466581179777765545803535769695128906703421389981304302662547510403791180638821703894183842119991589015948785699494663731139333283329935129485441239536081020067492466427077952460222013929269468691940148918061714068782286292829208182311996154497565663752807711188562508100256993604595239041180550467599779947032892612041819212122973960931895039135157305231762987129055203078779224514105039473589380207523266788200290254648914626960592444484698693098873693863665251260248385966949042810972477198724628581127475343864899970441798702359443565948140871876596431109317234121960874896255313050929763416201445170349424710833163064362200520520325403300944524615532461916330430101027656772359136089685154133638575919516496491886517856663779499741560967380358528591464492213822235226180695549575299416275090424907058246496473145628160957651943427177758466396706506004009515572281836011574127065875889662091306971333665673653440309946961471122076890108209081345079515090324063506728450888669830297825633261987560236137073481220117729006277712862544332937087306094632818156754587397689078254700613327626122237154537203933942630692450064042822427490601881328586368058881290973384185750191187658010758946443718363112751491315929677977091013742826856729549895813235491348003879362853527746559837556304638394821676559875740195937511991715355066476731205945989353871795347150039434776706510312012880063962104565459319202228721219003530559525786011820286432439976901593177781715099335553527431237324812105796287330344404848917153952818912312084001422460207907567296877220992198878732999307379042363051648240844615597685616848286530162883042852233723356640939058587299241086691622040970605968329008081444864293968249855517392698047309342082327097072030011239955065809606474172438285729150634241948717486089683408818268808819733334682926924741912698686228503470634271618439967653094983452682352617125175558906744040740833049469030000693202760233427988637120119286964514762633710483273442863737516962442097754217450191676031454034352997098832517191662766645639903230068163501843863303960831750705472569265994463530510569406963975145364818733828833290193790199226322149774047411338534286870398766993205534775339072021690497286097004428196706172036291937693567199333331465859083720610662010672538234890214678568833679554367610041833793435073308939128328683403997014297881967290477519737063869512225452239366287542848415016541158442630840489531402150379103330514750936552505680074058775680669516585249147427272346771179070130253233016609381926925770337756969447168386803657809795513754370039100120885424271608045836165820170232262876842869832885548937647782509482205853240999975127068089588394212688327075906482290284671001859984439572245614939507529256900968840601046098523622926551777562859857854251095769067010276977681564820977186214768533565899245713194096829341389263021171181374874874628716921887085819271149622307844828495519506639494809616493527045451502897225521717671505789732702651496129028206260844909115558585910452699818711376067779163626270163048306930052821386528469329635669729539771694812411281271458803000182737797892965099946088149222789098342548987648363091025096055827949956244321554514870502682621189093507761467130993028972968501799097212460423566453866901356455383987610430713167777777954608247510649541193837672091582490688037674493308056994588874355037312891212043380414410554807124847261386846908742531537510386351290117648098439479334732928752028743603436312651003444649826675030129393429922615410267678481938332816379104752835329396646298668764653916148281038861138641617300919691581545433753520770576765155393634534163304798169028514891990256823399663671513395671646001986040121542823947561385270086781988990836905200241491874226588858956506907154958235443563709096798903695674710406680517222905368865425530465299644709001352610249789328647091814121767669883084312930254754834110557008702719582086751755679111715602801203619235819417492198813640726745520717443415576636646768367963945880839130019261427343920725335100817270976168133690055375780580566468160478995272761787913838431342952705941565228034856742256216562060354062052459189417814435797957550285960485340908668643671389694687227104243520758396652318291783868847703240792269558845513729098502753765185584055069990609180551946936047439442435910152018492885082390280428938562510430701527351609340461497020632887550287865089739310122382024510233598856112155243242182630099008221476632612905421974758362631302304829597152063529535558349150881630025389233627598007040360172694951727327807008789338516927526808355327661646624329174661130779063082973898248552755556416015994806779527767928837813167507029743488190255153163133506017269489126750445325017708979473197040608517923935542638185052274930674123699219938065858851172454763623344764657336054216856834446223204464622804508978110736788045535393843864654299829961684731265105785937854419878329621799518959563424088923502461001020600260023313435951810035715013534855258747942629124667625350752751887396513378656462138388730964532862903124702594166656178130399579271894870251263520122592313432923409358690883126267418524703771899777224579013427055651941874816168290484732823784188135352593828719163757853448900314786153716506330335803156350237187534046758025407287284922665965953477176923611506468763119779566562357216706139341261992734999425587528698392311314567566759129020462135827754935890351146060506358098685218563558939498686401284107077009791823675400098223630575393447815847223877776152937481837506450574808381488734962048312066455171049117652069819614989753228895909285742214299348579739120622546496788738551707298526471803157519764444374347309587064820837135802308477300913218440627288963952842226815532340500885406043967285633187180308507509754180888820108033967805214248688051783501603421909854487622339058335519325062466999059438461730054039131830318076406294406030054143864475812799129282570888836172747818857846825309367640829845123869409000751578132932510444767835556091989023716262709269479681617103632141951247503937289259018235258930363376373745427805745416670330863411370176074241573408706954781392721633726077504947937028010998214326668491577102530442644633373166734695644926371585081158854845415124103494693083768292816270148182806653185745842775800290491358214844533229749999958349107155888113953928373569777985560821646109753382040940029128995541568408769134981948653513285505576202233451579434173467773080297068386379693400043035706913147188579911187482407500498487740021202443731637469777553584216236863558951467085340800387268068460623966156494512882222133472697863907763749314606498133168853321209017863201095758712847251259882065501936675001673789715109040253186439013244277481091710347469398941497775893506475157669505508203872773212867429104135644192372386386693633547278462183168838878301303773150782031032499768022462740479481069045006830645437830654727215125761417301807538154773156123624412331626283064815344043523547794259213732846158401375919582452749105892024510765883106199909790128952899708389739076464801772627419200568311698507603051562761916239220577124509403422418576711937473250581531465299474440028873154009372257375024674012904451140463305408203837970119447234161489310169469522952778554522069859040143385514466303784988435023238864280944209265553692115619162674770158798673063802488232728158426436079991277703667992500726597298685361093402138532217371623250563482133993553580905232382369081170508840747395418726249217934395050511613495135349669945590736410996576660010313188569022848919269415802238741110330031921447971189679036343710677971814702353171888349445481476319576316604451183855783333429555817211511215633798598407802841577467822201670268858252471201060218723745599235041429177516780785003722796474327002277577703299855182140893598008070579952917192940112785383119275372223875721663943717200739307021911823815616489224469693142960304968112352614072448844086639099364460061763286587967453150385372968863663793343760595352362451698509296095259011971794052536493015870776846687689454868246373528825135337194901112893240485988692072269152324637661792912728164693385451271346532333155007288434032645466376539307464563695594401261147789823594151124546683825831977510423309238498897908244982943162836836246622134053828420727018698696625325375135550334511124068752747381780736306587751201103805411765967028042391233659046459191749165773914786471340676172369317607307665945533293854804773820852584468062337152592255795121583390634840334984563342619691347300570660113712484677439521490392914801981667694531471937916081246993400423883113350519017654562392895308926170251473452385332308738195166298137226164498555580125053422001262845838046685975168159932469974022144026068755708721827514019787904787878861047255117289089288715042345858505062709907319243289643313211812507809683246620947061726601126756534825842220386034097748630530839008431904592915247710502207398126623836307990901737457543607402839191316914130462337955576320562432443293240827724746681284684428190588349164615239387570724101718351571774870324090367582628490348553221881804983072294284095396818523283330568748368905749157050699701222895298987117188490099931859844824319687029166043200713864906761302024707113124055374641435949414361868768972848528905096594968908031676484016786129352160810560072038307857200414604053052188576767564288786047545221653317690459592566126433365028769983051482271604794595557737602441278141939887860461647998452099635499381368047817256322951546515444669730226895134373335802239462307767157732338978243738818331510315065238227924294177416340414366361453098685414701871742280683571093619576300531460366055811690266955978819585203812798035198132492030419131098033196507528513598367241459572901913510314314261652458092262351515789901240886164445422227812540898025010307183621728026845820602023475770409232054335734624452214334095412926305969148595174485208557841747276043423174659220017246191178575924969928797791400975543704786095022130590633418113470152277173092450513539748213344070022452302392638278412499788370074013286395766564078411162729585121328306399031642242879051633367722167755287920672997303384700840990347636743854863634010054476183830405490618466477138310069681428994121977498060735822249616048148340989679857204836409903942807520833818989660681601809223495892747986691522798475874065678259505892482790380128147339008702524491571301465727299840288139555520220817186908602418348208636543881802379269009043767798622348636837821727402022009408322839424918435287327905691845914061762556946757429271788141359605190942498256985681307204790687390380434594594346064079386881745764402252963281600187956998841980966932746457545861507115538387928099770460759446274363724758873692220489195948408026150270694975657507771229398640446425505826662643847293278236021449014907968118357609861061030074442856542299585309907515469670233338647709736155828142400481907583074018134813641077411360152905975977413521084375467261694335733654901261054782262798427835312517820985719233340287631413107952842356883474050129125160617744386142184976664284346246310790095085878677234620539331507574892861050419598182507881736143106915765366921376759901818015254412262573473286545974121670892634321284242078883703824913857337888959894951946947750569652422827329720753170501180363407702579814749124891972929458622167414412002742689056801877766374358033326458180389109830177629333270440219485470648420836542278549725791002662194316224372500680127559401169958174302311528514706286652725108889832111913188881301849652431610198608159542646638133084315364819263483756031684260400290540664863452634217731085839497701020107453146339306694484440948043516418563274617989966172026632054101238988132410193641150373488157729978044578184296472210224906848376137446362515097784856547274300849239211033523229785699204969951793473783080888161855991490003012458859984883886796038317957383259877884737168611069669376815726257520078239107061456589730767385512879709719655294501836883147835577411884820279132320793752482641288034317039413288030821349560086243275474906769856502617773412375638412358790841538787836059055597986549775336760623649507413110393255169320981952575656952729783027638047793968621961542144595119604386462300808261420746839889985173993080359358934138158642205569523842832551865422093775033223048980919427122678734490494764103852209471476866411067611309442598748285065730118463278147541501473752081421411778605979976525208308702999577784462562404315916567278236878001409295872073488485343284976937387703824036016840841542864510501645255938478577818099317822200151307297166250231535764954385857732309740989219945969248992376303526723069082607061899281418979827010212934954815805164141080502477699138347322978627646766094790348279286998581250264907616285465334622840297386036437132210426069544165662794487850041280957717936555158107634729133513082595047664978926625163588314551772112047329246278195424495803250242106443149127492141347302933414575877508912316784014288998917637695618889996214027856195942397179202334568310100324990579089264498044541238729978090219031084204343891866058359153948041518299598403879082286076637159509908004484591655538508694716708365215437020568636084190035056839271732103777749913005777504507139262814973621908922184140269687883581739606737430879313331063486803339926547411906425463638877771657040711736857387276072627288625446369944516534776582558453728711609417625441324623436472718340189363259062616770791716881762950970149073099440815232531196374181349571104383934015018437879276758492254604669833529048376869407347233807802767771186103365780493812517597566058870658178712456798881027129778020855234167316043387149865910152060860546992995120078230385747668383897491011821332554998668509161202737270644144749371650812271813474416497610308236070539348407242842656541729084669876635241229948172938323792099698038762711615091280237084077089739110935333713916690625559504856392517319246379216445497919590289097326080756958145915183255649918649198467833982517146259665305279462869226634749928602937367572865878940142627486701760387652398908005217015459908514617137783438367810997212281099462002861343286119674862723041054291242258715678655710982209416988855768736085901001835664089183931854221302152279568000557788575045462934756998629778812332253192664505692102629004260632344837584153872713712143842415761554278640975671206151570609914478968577615067744810465073807151283780523720535603275667692906596561239262550580269906471690097149795471642297395925937315017072272247946767110639440281638025900556063474804003699661337743746148264380061728725169292167386721447484414422531747249543077281475359933723814500386475163433475043527851276399726336488624256501286476113430418429722656928760213400124052159914834290455093594550530855952899382915112681165731615249077038743170706369262754050920858617597422781772661470746137092903202201323203526436531264865882096859888878367076028673816305498225708686435709705253312974772519399515977986755703994196482709901450959560808968850705244592653144140287698642023878287435986282269495180239002470402411539419647211605588796074658796712026089286949368867671567210578848711466156019725853754006167282414698021903199497041871241300763828455397957593943834456402929595347706483422262115827411844582520756640107902443081685665180496888920477899593323910783254211816639319767834167114368581243547209068077967494698177582973280232023921040062386492714143250614975618399479141479171550999660112544969964835030919027533807827904715642033684306865883861119138060854133508086830141696685344114141195197192380656260082833966886543686768629647682616593151143187447732700927707078348319220394667998569917519295692009757642068951058270775578912659094877236054138495140003421409785945831616701895383676946609408894645676706502838159318202847492267760343683666001366282387518366242493750623629199299715676700418852862867589774543644082151214640999253015911636540405950850282367574179805189667580756069664510389648894009542025051696238214178493696039393935293053560851927982523844017432194050734580284589778410795614965161282177981138740623522869367520471080126936577322353219709953908962197426051693124234590810196460297303641049044680159778691512127244936440062102538956967007435117638212664575449265659101455263464513797286068802709796661496960340896863773984155549197501951540853374964570384062725605037779306030512374755886295551558474077878093886362967930080181340581648425765141593935909968063297888648219965851199293212915426467368181180788397755893244022910097740522052284306875282351927006815645480828035376316060896799652078177272259384190047624781771717852458999311998459942562843970631246391431147617153018091245909309499686482894665073305891387523297365505144933255609504097372848724710332735444788565267632087926214391815782318983662622143477174695658635930352688459368494104625887046632640522858447862632832358763140767325331458349837346468284200998932747418544930444858559818756855112999099235231950762472760700446498969761963808854152974610770017559716782935568645542436423645309559613528411762521475575745174230357885131899922206284677353429175294658270909460603950563342260118905340280018788623183365619712360488061204106614622595365419160458483795558261124333667595784929501412633256964868244317733647314459046572010432429303853825027767379885103228477563091846337262668832695850624438853003021247775716889381917134817369641723857825940944169514158225254329288003851748760955057969010643599254693097333215030160427101626694316477524620126263065948142393161526986543984410448707732456394730583795767249654158121524040310527146514862545051890468977656322543590071677497361647001471379812798163606738976989984239289394960685720922727402291110643824774045897524191702099496725357404302585769875193746136976658224806695330297267673994394947125528964470245864726318099945720117960578769419280461847462921932273639019280018206537507703966317152756554212905264951710696041593583899133145592272728496636981637408515379273440988465546539353322898842959455381938245818400305188699074484081334963631434527568114950908939312705174795464082954651688351428443580250984268254518032041608093934246946042843039354141757181747439849702405292489082681775461261589934109157152916471683598148438344643250534430712291236451867332327699060063587799190188551422928714340932211213375398443129010463039774060512425305334992077737614241125162377130756055530463519549380070490127903999993331389767472777568711316375943828348267435330126363782772085723426575533753566650774115740840325409601957499309284017325977630873367870843102141478691320721240509877426617503508128569249921963449858256396070223631287000861229417954034032996137101953387813290076913629291413725677244620748486526199776124355788024850624122181924423076048791679033159864689499291203115469376636752106597018599011057160150328983232606623458666255781532289191659600722550844955704050954737851204170793850149845430691474540771358908229078033505009908543552785504630986600540066924543885913968875293362074366858001628621121789056343475952678786608310891522666595364789176937336764486700996351128416550759798969119073161367466173064176633456825980300682498646362493673838646461829276860189089382409968411653776867338637001469372828840442126691260425063663221163154425859954778977686283996222419297650687421388430664231131303872694019366144429723891110505488051867046179449829921603930549141693592017903374880439353400965323126368518750490502953095768134556269795793780804947230701897769543844252495949515352858667509190834028205035352411830234959973853409944877675539083817299111595817959023030623076211705965502109581782153130485477427659651876555403724743719531210218559862167207312180699336876191625635200704613575649678593100514891051264152873182486313836223226209106599408120361662136173396214634418399248026118899575222701831824370105732408264757974398317913586245652001399571516080731064036047262492131744158286954305533125776461825156300983261522772712751083376303439500830610691354840562644548025305642700940349773497967322780483133635891310495822409770620363315401223958694966113482785538146029641640169135224809149666606075026235694020417920756149691948111249688928699349696965367580171807792205688734083847209658243171623180038511429062010363850550929829107445397627668359363942950331044747050575261967890282003335554668550794576993229927247481899913174695392929597166791829485174670684778402199491184905010712252354726525256205653972221565941672316655795309122216344798852341088645719638277971275719352025154436992226387394618505230235992921496513360844829088350977971392069253221387498470909176349279679351950036075350470156520759280816098482546569711958155545674302449583041846191658130105674585990809910217129009310434185122195980599046853668963852966973220852350728932895414880909867181194959086653164890148814796977892839653599261187024874384496225093174865068207191994849070301612838252356475449837377165119882992331843904448040717251639740997322598622872975491739024645916391381581458338110226866905575164402063949809656073078041374661006017173418521387924967191761674753201764885652519398360033266296997341216741670997001456585926507109183438152494627043583791570677329119440369063968383632552276313165505837599924190675018399611889612587686776343540632987554980156816063928412695399706756748579748613689008513248757728649294335309425105581229602438328955774921788461227471894040840367082879340162408373118577198285038121173235097286991788959470254555349357568534588922409412484985720142616086389257795011078651757537492514927642629836889094480368024964217578833518223886840137224700565577972491813936212639903299484310419771362240592805113643365029994523353864934755525895044629642865620050262655602097768443514419291177871173865883633371437409535979055605862893435696921457238932899716657767657374018955336398652606723973834328070099981669839258694614295941047505943654577314774330394044950209354970414322441702638886330378775546549665431961108828064249560179285045992493713428029556859163056554286855703146239192074337266300873904417894731582092764028160460440592881640383146801679023627861398913438235345837072946967806582297442699096303839457436400030234248942305406691340002232347312139067652119828396683791429283786164983328099778477331549579304464978398912483853017612495360583438529993780454312639948166531754486342064369921195587924718637427665218956626985057343218955111613588079745775152002177692337211157333102253138476146258752518823060251705998051247582874878329325926004614487086259802641171477591462039901973474696742948151926461302130723658177425912154972279988659514890481624450803138972207001445845883316749951453156683605020441516676288003823107305248530436955612842997922022290374044056561975593682447135800905419048417173624707343253659906150707564491302869871785403853291073891061103383000863112088017509425373743818876325432734860593707463891690211624646380279337386936538409606874616709198908960093748277666768665151398902560732076761683994873008033492102200696714678890955563226761981424303266268562615621935022832894507162023653080992645783702208241873166783585614792415826001108093487460283488855766810485239955623931512165713363310690159664557417016411168301764626249016187236891422266053744204647428049920038890914158715417286821037924232601929776538960381641894501434749588868686964913552002555731975510241696979069751886063065633237617648788023219061126880888564219756551805831923953988278118730921188153075134178462633179502515785726719663933004139246671433834601375407658068201533206088972324537285805336851715014739774378607076771170873062845380439831811713346639664046139491332001376929895413622640625458599969899796607899639227514991663190340916568382690540634621468022764458264654112387454114291235453339126729720481218581896170663604402909167920717296625564016735912741792124182113046790073823021197168913728660001807917735683528722452407106659698378065548602880085988957483576170259733457960824731603390645603066597716865258759988202629876715815917117781270633536507387421390827117785245541654581704213907990475526431704414653980972330289536216401890772732631261007970256391847412288187842654962524647604087203481683982603033906266805591871739237225063818493066114817546650221646268016369023081930066030324557046613774075154732955689592253715312437404049732628193809783958142726945984327263711493840726634690539883703030358577345292886269439570783895077099213936441759187840645440792822142911176669420785800290885102303268647758073506429004156354940262308707381252987698728608737302212523155370829627195775764764694466107568560898292019148292341587895888410467846559523526833335691578701772961223724907825095529165714366886968831959952285135562650854590561287448762488426211783414524440739368670901621018998249564569527353824076203177515807870853322685920478344583867543758713001707598793547138285106578074398614507857549397822350108690815908766768684455536611809476676081612054905746437227409973411182393859073582111752483789521990031177460581070532006836283736000422753315565275648938090399618741165711444021174560320562087548493238634696191523024971299068460089911407134659122920220454558127550612202626584327357001254599830611470035413995002997471736718679284344349116115589763642139083033090116553064801228598572574707713606433017685431206122799773806035318411699005668280807735372263145873653345346370351544402307547942482404950372503004379940632135565623061544404662239361085855040601064799610386706106317321190598382919363140016548653797865012399128625107078668324403877239751087540550539280419174341174608348939283957548120561792088947238850332249221989127048132876973308437406156760246294630626500762057121113658402421622418727709955273741371478323254360541848666343513485666381565694821030206164962013296721794281571642962317435414365351778252694380016635278432469911996066476839537327087396119100470206709399379905891388813185511092789811902021512510463723973187250097231658942846191552353605261397285613826809913845705841061950694200691292508788370435273636887606588725166475009061859777119440061195934607343070524717200760079886303344651937593653294561213673188491616634706930229514941353922529079214251152201532274471821311943079024992436379895969089274623296002382139727999849516520126737504049558601283990767049191196075697551780389956001892172879478211063170759563143399088916797800980123967953728496591713495855798965829994538856455044692481163518983428230628659476882617438235347805669749822420619155429498828202779642424869457144074057332173650149919522751734824595680846530480739531649578788578444711532758440088618688831899848445044292856541170870771501184129178672319815287962827624827324308623769671056963125123785632831374384972712706226761305303129622917346192563967197216615200556245589965605407969529644829827498744846152759985296700886589634131925582335249757744435303637518370900380996879773356753162651522147708064898873227860575829204833456584695118674427567526369560021479568966927864423962467444022622330600940530104030513465946111544166015328158715433128816918368793627809492151331237196930603764906927836305001905176986538740048752975836493440810918880278114703126859584528620070812566550636734996754683306032509277299429603463831604796792774945240461249953622839599795899093489635044307282747258294570867952244718120826046072384138910105444246213504793033290797277184956380437106776280682236144188107373778473223369844021681752837485168524451166040712464023532544647995290593254149343639307386927317894194626838073823182452534455870712454033916971327093803752427710047598055422823024686981941592760589410409366530322181124269937622395500191837029851685744389886245451555915750871228920285036955636670361268995489369669588280037712401461568887909966138985187300566957629793295873840170552091365590225416242591833306111082183781961545889317021176516518678226546848931651645454765284355914525014067800737623851847765586402282455358425809733044901732647321164140248911663750278029262465481983833842923683993813329791045807602940388551940954958193236288260441182859970748419239735267600802110136349580191279986362430264324771507279798297950613982799258609395115921647929910928977900819443478136757370502056345492239328484854409575990360421081879995470545438921069696445627426791835511651864446493999723504703909505304174940293711779082027021596929012595155228267455461970547950168945484980212467415971685642392799010355549785495737009006555370131029769505079436496560437595190907548775991099314496739432231536272941970458011471526616118870530218049379018528048048259887006942941212467086222957461613823844766008533482302376481836806156931075950768522081567504267210617811495947926342304362856946593925325015646123106331258988578044739792813665158440499498607866691648252216005228539866390981003245808743446857087004285273737857692614794559906756126630252355721160249758782483848975006964034771917476844258566405155532375507113979967569768879820512028024037738616062402751634262616796018362901541265601232678495868861911603952033608518197946358852760730025704584904900268276637315145430992254947599537101247315923225638798399166165173063446825582472138101312495481471656496194763120726507363686030521148524985035932734787363707360807393240951030697349754036669831334734664976386135311453734500559680009350276338785376917933555218156536253819255875843387247065930321394929205625333306771128660706395759116493598922317152290954607806384227864649853683076565164535728465030576092690322152623008187160935546469480606292803951715953155470931552305045522985950373602326970686511306876009092707060766032555579336217148470942663210144173166608417586815154866311621555471790749225602659117283753771694160644138797653796730364420192447084563673075504559053526295837200693868831943783172167242283391456043917831769083882363981077309598789517589823088065804183174678785119339403498774987880506400462560702262356778184735693541893287438328360856882176317182806022919114053797655131066804733309558072594737386462354115345307282693110327855014007527157672005010812223206581820369461570502782580731238859195256596392445745609552567648886909629184504676221406188405564690290433498338325717821228663359485866263827037827393405309712056391682145882315271438603177973676554157243481300067193514959048457120705159351507086772309852109652126121497564350526630272164633325607136318984196507904519346075093194599174079145898773031075989395091219970736973723545056487442326363412679738974793106781792785746556054513942181191636001380112333242241771970619177659148258818381536301438762570413277273138958592336124272406296307093384230502444642813036225827402237022497845885322849892075394496479342989100097861389951504750856404914330669519265645880678037801325986334794945823149841331589110455634876696137076139168049149118923151016818324574315887033285434267450951266688560369666079791076611228663568233960841619896368225144222624981120306006536653589714563154903080171185277518865513074280063981285894584393673005515591315175074387964171752363589963521060450697351065228346702559581367609479671505131236280162053939297093917175034358437288107364783566877512820855919153520043063974251700387382504106272709693058878873814736254815052524020094992129408757252683386657788016231022439611638918233754482075833219467183900329453171758472966360456147816496475113872645373276457477407835192469185587206006789658011713597907793816520801165105796696983276001087206084497544855280946646867917618555665341322216620572590563938157796149003945993044264733067478105339607869172368471558032940942577999982125571185315358501026190666403423035694472482838920123210073366724481772035530627539113941554146199889982865678919641766616931910137655155579778277115157787443821443032204686259971760697693443907873496521541670633789597527950998085883017434399733399490901701583956203959869131142796282334146013103595106553361669747638590040507444368217917306083494455860266456283992488364215002385625541262498999442007103422150303514150175803351887658004346272401425428672908892106022513455789982200153984041951126051505922888914163631007064329399761767874216681479098850720043033238118674725448045930970724028968548164545484719006444186338072872214660300526479874814525272563055385722570542174763591021049436377319339856415184923848439790073009132761872478367440249935625676732179115911958617883799778010002046308468410961873567624123696295840169949738760852018550135403573471159617755479302570007858017941719718887899511612788431267126884071093331893148723420602629959761637846622396884436591576483431246733742223470484703559203432480076101248709029881859325083659150489153760592148363383478680587927471535162370696452839921538762629542340553822025959230079006431288696436065755366864929120511545166659746398503902887361363648165428960228484807328114048456618661066682292802661766211736771213405272246158275079750619070035724270091111608437704912872070141626445632765918332172015321044269935060686729965867705322228527922586098511353740790819267584201557160895343573188273961446510183063341038579992710341335082195611048798093338682984232959356069235013373976854521287360164262631527001059520461525224897665877989347422225589058941990954420878698466852038591710948063968015212998050186226722456479711335601427400080511692243592442345811089094821153487205726762188996500541068580374309537349814719607096000817254444711547051620958762528905806681532623698798104370244908516880581300723251331938092266807578947326335297968674318970624526821433418614951899005288756885769102388911451517990922369060002934176537948353623162543883573183408052722772298777379473135584230874840797298352493067887030386238016759217393177425989525934818467823670760670185237204330075534811042841766221081880850159573137848227353153333713349866075346139295930992885943820449526107470353303792888013767346185661851896232078951318166976821533709211981481810989653636916009075967725281451679077727733850517632252900351719240623323117579586661172523067290889957534863698415191768107638747329923407474473968307453098693321041549663385105277112464735026866895737594528893561116905070738463877944882330071468481010268190512123313656529359727664442695007672610370003851647805238393416480397973796274569238712232487363392221581473031122111219049866589527714390982022281194197458641762736095555427130568427410617040754821276588133323252250818914970043293956076333090887111565111642112367111682647902215018143215446567004229166265905558399731956564511830371698025342994427764720859103490247498406428780710858804511597862813520854760218729962541099640505510593894889156992609038014873344000755774812499681329362364890579679112627481549780604810423771158379352289526510493303390454975430210575169475262248661976892520002293122052784135300567344715459283569234861168325939180971966621986665583537626512811364413519930037449857865767929259152602885269549526534843493167531154040983012650423782603802522130694982135659691394018921069904272519510188401567691779907317106148111806546546261687132681887323877272992890419632911000079942832648111670085032469623793938343905177314961080130863871156513811685970095500277826439666744230066893590923291541332681148271732600640676618927713646316801489992250765455756800151615880496819604092556254692645511140157066957325378790410690085050846949607366149098849561687425836017054228078503732918244581574834564838075290658003519189489225388076793403112228074284417134303395217116245760491782485351801558873630361548523029027531852263766795682657146168281014044949949814151968926453732942607043425929384173465295467528518389792126479032581655780853591407739456498331509006728545844202116477431132026223306329151413203979827938982750988541478667967029737321697079846703733337414972403719049957932009876307559454518789327817742978036806722816708011241697986675835144724364326557949790269034243681634970033040092770479050622647110937608077072324947424600200067326888829814863446120490526866504859834297535519976931111257129335822854608367878456411767194683179145664780492838558670967239819186076244807261868413343510547085827282710424423089651063962382350183186741998558599853600931786016948739412591283955377172055188127933326320332317113177688971254773004598898037398850781298020441020579293142040069920033784459890135481091344136371388158810204578627260541982769472603425468168434744803441132697315201379055258729586485468783042146629559574183796565823835632811710997777185266563725140074034375326494978102192409370268640692157457106303355442409092395566755223837524964357517230972543867959094733825754979651300424855476350383460719337669767734585239898733920217980031362484865394482503336884912390011505789905429569082919333903470797300585460105531006400075209030223585110520959422655228301902937598743282614223343299040316704079541244380441775614590065056508359286500906749968800755857259771990838570573045696031572547903016566749819141948207596581405935904495368541441879867156236055680254569771158739266849789987237209999373679070892482323993928353432881592416917720691250482323177659229090213754179055754951799670884083714472621906863749271010183254814998810528133929684788157440925174491424562708799119958045272036233796625452715642207438376043264436929165720756387654000311362210952533104509314494711309134465458037446607242273826414190885657876826529814464653325088117204630739617398106745593121542300109620406921033223669020064014417636857878849433351097468401317618114501817258526286958240319566987648458473889929733565898317257120564033592062698551288292562086251723908200564917901206589140093321861112850572611128614687759748277440475679911149346907365050313672421831271779110933755180622065800986455237803559331733341462190509302317763120911477311368029739444484210712743052856874111668021151125404194446908174810490841381792624932206066025645041459285560572888650192442429949484248899670341021116419442932242168412545520938315759530217285655568844054955433587493024693540188747554301535552913106070948473418967413727774414860224860599333363315773079943530530207459667794396277708221928206831467661746397090748246739716611151140057259438657861030679060855522272571124425570956068731001776337780770683856157201431460783743259091973576150723991622377187456094652776204556264068580948002386150242804354808304285515837308984424394801318714269029417459240630552585684325527225132004710807641616359870934384555877561567650973429617902921647980860870305763536665215358326718893000486745117315570369858234620131251753957073488825501751353342253711662363893391354385731378105456047244575544662481664006608119770539989798427952539522742637232833206450960888453341183767609705520756080447207336743028517558647008755956487914148070682072995317321419520310270548950940605447668548414121944257467545840250844562185123962443061143425580815888038451842396017958582815625672262547535992460835380105723048655101370234882273332771919607783553434051620467611119618814836405882282938268885123250497424301247846472223005605962143721677721563080376221969969872208939539656647102332088151946633436718250519490417654848978817786371411498183751373008368420250929887707773869632648046288936334641142310391538582035855189912922257795596779660588251674686799218161114400116801598943154696351564524704778039869419414600679090203983032199276196910834889270059653142136578574414205834159967740280808911556213069417464990611095788621388376513407087542888974751378062543287311489048600134620617137123215337301528868508215655254132017950704110103468268249417236162769291354003586494714852288588343945190393133340005834986569892088622528585738682580463806416608028373146629999465858203880336281915872557706420640339870759508570026937015951487156277053247219800101521811147555179817477330406104628054139798209132630552262833136556704367805434072428340767243784358804459636199984974542762942019868637478045253623867520146506265576324010397903768017683924379988749978027206120223746561563366223877992561529171322841509389690345288448427900642069213418952957256322776362515785977556518741779254672233788829079230269945626856997284932516242607309300556962046446673529897454156736288095293452143916985633363908381385736140295878664194788740946768366298468191237421257088827591330061271500587892954454116097486870973111334092865188285318925421514110075294847219530130319950218533570511252644516489927242829752896088572948671695811425469177917829515742593663156800572976700930924101455780558874893137167249450331098767221054683712019845306105410028857550954512639620544401822526377619967567952244998848796422380401746125263063502877608341429105863559284999409124460484329906872086764981899407386536550366128213830415212690660848523698570570522206899122680857730937539271104224075251855687325809467226253818173219592329962255113113164861450727143142196960108611458816261417246782077065412366697642098157878890713126572772800232925553501028905580323081426481972039629789777147773098256751913721199159234018034431776012215082959083077750052268320073145379741896875306748380131578825490183085029743944555858209675513003106045997610559884978179806469812734978125807663985556856494009705037866262504914783326034155953324604529538460428520563864597257157263853151452545114544007833302476235733297473929102568251777567571274084070583447335427365407610763360268865337246854047507208226646718047116582075342033799822613117927679355587502993426735593346534647079346558640995239571374660032882980724616884834411768292497198097395501842654025942360077117779614260549393736817603799934676152340636027441207837519521594750558464724321038848357502485478068425741600702777099700153457268342186993819190262512472352336337234924306133183050982866094584009775709612170379529266916169284272504501241836544593840579736739768943546401442868157354035352240260296001148370894708298958323934550926261115380003881625181373040191098277862355442800626040813222149511626847581670170691500036894975138336593323312572978346140102874339698421277284568902731625946058941594225959605211892660170941009682393866921430145010552229361829114464713304734575587388529438259691306474921504965912352512453594212079029301072591469003763712348545207735982360346941380262850327973823630543447258588146091317489425399839401087728073303649613669157079878264739081035584940306464358186033179737830557717672701725587193389970486228552625398327628767074620512121741002449110025133048217670644719209942367215867967575213921730666556151130602113330327514683275506482200762958539028053248672047155844848311556426597493213975983879489891194151498191504528647018663323877582780231192301767051683381555489199688058421145024699547712004105676566026177955004735042311905340595867533995296493342755142798846424634779634212333581222802498810940134781056835769568323617810079981849999939939350416513124893787019228764102654557037219971009415529526595394008396031042136169335760673271691587496343804578289300755771655736685685268700113259354445246732588852467901937256276224310394885728507357563327575700585824022103511993360396140242790216942772108547017451987785595644516111894492727970952831522631124862700770193179145368032410527638843813038540352858317489686212629685597641724681247404951224047703571582042349147655909806711130845545426445078033597223177188166446303289660105189510806590183959910657500605329327285509545060841875654998081936607106169772124059513299559315615973639254853208730082557266683980014192576848291045667577203194185131224771528474086244648156968313890834981650769305273667291480451910661439824394557255145910235179915134660718845649642756929084104851401682683100019961226669286434437547915654076031822226706910023330688105343850451838600065344683279052882340044862104200573611288261612335931539909037577324727410832061845690425274037391387029218131242754137719554739261255976761111431325210890976920951000696758132769365652971969778957180591113997080127669996083315300755669973398753249586593119287004959214867194613926557313404825698310190637717453926614042841037753464608860197932993762932371111735072657638022841646156835723631723251314476979750918126006622674100690044836171506643861447040647585626971706478303299805977338600449136513395073645616856937271609962108350705164215711468856608080397396327215976431455388777031251568692616625470102974067311127697927946594978664241411978663586611808641847186691741951219833238969524662321256155857411097779099864025769452181971122033244503155864255567844117338227714139982228237412286646936209091065579912779900775465582835185746825989906876340137202103240297202514194165679222542693041422003299437967413327930243231611800331437471042680718562953302265486608544294208592849664734899158715071223549850092489805593431802814482710462666877226463026349476429572939565951094993374510063165986954323677764252037678027098266743237604693317061974321650849667689425787566097726571810198668691944514113827726909287016940486720926302753942816204195066694226438954068727471105101057574039086363466468311001348075881494256191944124475012279689939841519475381238644699750105729547040262325525150442402758541123372202606837939142482459292935586608536179176738538848878012293261542895803345289714173031442390984343290043519559718004119790845423200030032660890653735256888476221821857710957398204261300370353754723244401001804003299624818093060414144502920595049868214455059670754108279352799838347655588486702147434269463552854804176305774381624542237323588268355275123312671948789743323661939449909879157439187822433091200440356294787910633781126844238082665889465593292772369261979651310350077185260914242848209395817627820047982780259235676997899613273681329814838821212652667247666755594795421676471537096951052317791620147271939663266106811883489201016066684435396375804078383514929126354060335572222576385443139467306731365709935721382985455465887945047428715277153753029397500380623480601147911457860394889707227890417664743105151500863388594832919309489165773587735548608184865198912763161183569164427663210855193833637920386160417070511915881394087381431424541541848724252055845172141017419595817002912784632479782589669666080634321153816648573697825839151603692381198451266580640951625676120947157209267622674892510062076558474443969664433269747978139820761834026744420222604739976867856170971908992795252828972547338969094227168291894987159854425632047888721695952722379221940321789580343897240561808074459154294418560728305631511423444626962817729865782455211111003167962676679445291689982109399222652915512747405886565138855087199926097887898376198131921040013078979894729880460341240288725251557737340392994638949539796016395363261493588218617650844213431672875286017211509343234722325271159693388190174223054726248799622190591895413471296747397097690029222419010796967385239426990662876235506211238051901704745171645258723698386799984994410541039586001934669755599154853171669270800960258711144575585037400602203137771505769763027789714103604922743577279859588391947280744374934386929735280025355653012984470642389208215916104452665310667226636501379055915135289052871515247280252724421049758549545464977959739134148302365508922790316402947610429882391836191712720734694553436071936629609662637347765830742217070567656217599750064534115638884714608740401526179387029206128045991227657987130242726282667594985153228281341243005088621118072746128783919142609925465055068479430807260836884450271477810148940852102995918971232073936773946803902978746282052975435651332133062345990523301829364709194373167225201303570673630014002345278184174813676310504593908590723140665331698433002588192602209166204445544427633072133435116797770614344664012978689986712766931011575681734393330374266398513415130341002743428923427685599531378924697629150788515211914739522535758652068278662527534084547435966900276230825700248465775430441058734203021915024044701817951665313985253242397681674671974246085922622269520538893149004755672024546548001062058003014593500779152899810763990257905127388753215582576021369535638003632247148792617769950784963349236173811729591119888967137431328977197723811522892404030416945146994596723189867391043290898455696561974213327520142857512515660906581201969753033188044580390015931985587834586706532667723632324923240287163315948364530948427495435580057893084601029114675597982312657447932514306168182366879628326515829283983512288502237835410837583199936410478808110743001107863708529844517792471951740943773098623721555575648728007124162676724762463188200838420563520273872882230069682114717028086998863387535397940781497491033030146305907917695401853441578040684247890182041666764483568747225542712241569914025170557576568587432417484186665635578823630116503789735198605184524956652552732481428492713949294562501486583837715707869968254433189294889445446221306483690083477927267646672986392479124515074695825447468409436036137903515009377671383510040906531585268890392236410634011500889404540191184907855483985942558272330195288564704586888287211566193580360437306916089909874795147589850778209967710523441797218673131593574876643682063660128600303228414714631387973366853302056603300701088679845676056870441288521396722807678939925447252665118401908027430212944514583251843410646573718149053058947247228294536320850259883645735364677561153042504906704238999210343586164117749576762863776459684181539086341031409650521532512148062081184420366264248209260712076680383456204304853925766756308744329706393876221468800220935806079768046838384202501018445843993361255804634080432753821115813546250695261451201408458061572589341161773444763803352310321826496070570335064605510701026855076417773952358535516583889120497742695594069590163926153166002581358210852567769578262417981112938735134762316010041539772195349931012631065231484293875885835078151395786697413435813959725863515416561228103524265347485635736206715120198181228587074795117730523119604005931608031573166980116450347739173474630361063286260485627114919970206862056983856768728063191769560855054657432184454139741906995316179252939466952435146942040691314169441518716554562837824510124776179109633360934998621350855336520338632332081033046296081300916197618133625093226131353780777866701594188897461502123338769207037914263275698218331191190185891974143245865328970425281523139021856098385897294765336941965691075367704228532531873809243669805589760954346757454937177929977360827556700355580775698062007229172649959834280972689617248146433046086799245952070855975299617019352507200914274630149273467803131794492621366352768339264373786977030881266086928882684886746156234178749756403887228627650121458066922100861118539542337001711694090819151987919865066419866715882116070735200386934453709830170088944715739130119306969397327419080805153424488013726721773402598741707151097445320789630576756772702969945354943666153860665278462605412369229063159637222556119073210388833703460830056739927894793675959935879244887911617341369525097484301081072624545532070681868258050443545735016907799383400129147003471139732895960198135538573913036721165269795559146193452270750719471007329607345738955894804205553640742575153012925608436148447228396644202727009623206647844884669135864068836363886783993896044747149661062979179736458033179994805509784500774769887456359056129988366423359570413886530895785702428116937530546443289608004925647531027937735909305805134642487822006785792117523795883052345733760025967578064368295988980757237571686535345423532484122664099638831247667538010819463701586440597284355091371275029753441661439350477097852481299235951568850669790725271985518584946039627639430098433370848134660961150539723521855857436948922801649541541503224614529766994034685445566456438622616904036286685343136741351378783848729304188236823624722203445038125607347104275955869524531816415556730744678389717676158398954008249457538316753714853927154176750249217896265629383582381815391379012901449174701032388020294800945339820802353439817366457489392754499886098652606117809691897698097006752519059637657044348264073645870331434825820137139344681348052231128558059538689907094401659438167212496954770823349797043448789098321009568824733004653101669321336310664296337355101484736131973589160322608433315435869920727613244261424246133816906861630457571905263639516277342364583979494573765281037736614272147395841886486983713280352334723728926271550426816201755916023407042456542799702101570126465332683673835287611936272988148256480243488373472769484649191385464899230183620386756387194075797804812968224292212291300123235682729622075552385315693532148342158568805872807170722956793946604433440729371005323017981242031628376589438483089200384421233473154214301544747034281072947549763163137521822343519088011666317704013326330500822272989742902393098842608295780688045437580729469234983178353045766466680086071212461726598391223636752686606871703243443222235476370631739023362086843599618036699604240763391803032937555806374747069773950865996770030889759089523845541297011255847403779292006975247530236445194749567494849176383525119174147987035902942827208374802784969934288772849692499253180078362743495453116349804835064441285429669740523042559138887639349423871012718247146660545494958647199156003325615170460883260174126694659661836109482961316003903044799272293064538204332976128028727670178588962697805519904998943554201196757857668648036439729425848525247186419642073400356474010583591757352818914598442571460155882602817873526132779408014398151925590268326756929272259504351210693877294875382832402701288261860676735180971874325338168654569949184301231223928707849380121964878470354570148316653949803714971121198643623336255390945786069899915936990892111389254018789891817811705982535743949776754641125033594193397084041174453336936197714587325834508955999179806175751588766009803074500660016405096759552067430721799610219484849781948784319010353399185035982880082746676183450772987657827136634474156731382988179085585177702236308924582710660247060141626830846013552464194614729376314947078042011695344881949613009785620383508671037301280688210786890384077054952655438629752829446434869554935375408137728365151395954024784453450844738255882745000801160816131679948844616586756143264680452826846460197846245324913440489741502497451813980761418603588399261408812907905036520131686523671614111992829389853623709298671154161509406307528302989308368524581017707138923720168590285288321260079562159988057337847113554109458183337929537753351414035209268249736161160765378953209363372926448595581026274763217554677156076659956801604151142441123953920481529270830351187537756903191166968710784141595621250790971213747220628975324496897412745346009695010140775001876994169646946154440976210422586401784387718562108376169062638115634492950625349644075046422205558287478174249446394436439124386842807829419712769072652459416523256926942332535245874840141902053841072931434668829042543865490105366117751991852543799757652133790501843304679705612508006925088279937760492059245609879769683943533218938767580281674672029730934626304419697794764017804384622249672772389911931472990126650287863727417002048054443128378914995324405244125681967442350568873048245476251109696337252401598507699371333183527665667187276460068419068590111246007600885275371605633599467017043763448701442854223744509668520910019202854304586798591488381733164284919958515822087453805130462802884219245573144049586236871754182543813114233930292406216198939893144934639049904871454943821535534225486841359124827754460619943887759127835567053944550757152259447264430110901675085222197761910502692859619568347042718203400079667517647424392953804683031536515161059309107661228502151136631433848017990650719420664950436584626764558074485164393338988154193866923828290747229614136642205319605172812217577360533205428933681583107517730631018051179348384604361786308051371600650505661587243222861596006724912174620470663439334561129408309884026179011794032180709808506675632248223949490128490368672528838347913636490068797358921415171226654661926345612572156197876062761403440321248622542005402182128002382647487200836941155047890293080602055971673015209359820933087619983462248425967547948103977678488158141886253932392588759525164116611686570293509308289055239082835248634769435153052988019058455646966924472110871948632726417809024909969051200146926132872106191769722582979490856331148928553814916491954234614153429556518283280739383469177363123262787498635426676705065541558079933089157026652402623151350754457737989443975308402991008535068167397674632284436643353148874562078027862738219559925006229527433004961074025585403727683170284968403212379016554986712264766457944011259743918221444195178718952251602270519430370691396794614102967546587008838551117508419375152038710282737915864821293904616865118478924325533054814948805767391139749585158372951373618396499722739232812496182742917438985889925526018792632263009530943935642322416117723384706106443288350105229066328448040524148289894029806734196710465308728124045035873931012219686193220084853297137755057294899441544205404895142644870164342760254957314305450292162441649162444623256626973828554788532457947425715522247363486985145731874426431675258638728584502636681916285071929251940815570528152707403840407345903089066645384926103885104963529768853634026736577816784433735796641980375435393999058771848379619080812271375770090787816679772832156728887016403225703847605499684791671052476294372978114036210301280015834759693222121827053205143946436228943481610123949386942845235860383884395766695167410831438701277443324353035987482523949872909091902670965634559059042400737298015578775471435142545798020451929655132369054181387125785023457070658089137056246132527914270034768070438656088281256772440205085966081937269284659966000904976093163953532333434997647700832182842199980888459519073119920766684544329569316949845236904165307245574170727912833339270210808271680815779099343955139471549478673378412712270566981190889582069587243791033833513211292772654205173200298068765652788534627486068016767517360197478175703407056401263685638244735764495714276785340645069827667546961581112352178608782093675409511109821596239532044008118422544534248128714725496126011743786767230581835460346673682333702255233008795026193854467178717653976898720382880113252288142037487426155375069614653308725883498459359556442264870290836717566903811794619834949880255099261903312304463319447194999392538662253761507709313013521944718509835282674076299637779595757475324520076399975591722843942800773805677478758319554840107038577025057096292221487982048409721985337775546691269779721639764427370330629804910052962134661744649337866079901218969549176148932912288556317146473301209682339106828009548447151283387232987776707057745193620291477615634207713567022565541125553862468909608096195772454536884100044396341552593039990052490383474548404377418337740492960305098240461531459434338989704942659191952942936237406223146012753593415730540291973682926039488238419470215465073227196885179962085892528481225675687890736460791592629663896459658552078540052172599841524415926210969290990486936647314335010296719125916699516059026308412207762719324612354992230697400820291042801546081694926504119166214057680789060603070829236579732776635238497815435742196539204714788221864089200595746740730312518215730321671295754286191072726718811420200420570733875753309144409048570047785871125325773201256667284672589818299753099580828130772779861885643591368434434772595513995610027604131664187969045231311234306700479090651880436683599690726537028207454324921802675787368554453322908013089357130470434129991366336934304124974695864135894094038338659589440324491287761606790082290621530771657656283862600274909031941256931328314443707921586444677893033045983773948565248253757102507733133021128758949257851172549749887883213603833693544678328781564334577473662172230934566611335143753016843155167244171039795751322078063916330221681646849528949821237060309670296612584906938845853230747650522304690904446872616491065702726369288752714061249684238725712722734407803126301145975533353481356845248774614209132379368092162744511704016934469392826615659269953120385415747613683985478964010220646490440291514874360691433628703835509371491984692202555284813523813462262918239849716833147242293229717087596572834845030556794382036950244326897391424779807258158099521146184758062290768163553845042418904719660648007971165961932043490036792685975662046490111776946080868607212190131603999719749645464965870531035836599712691711478908117118016221808607137688050049128968510980380817305388547863969240908837660676255662625943989044274131236891052174915577707432233093833351213199283479026668869797035712792084929306809917535561771180145975574311544050355360707641639568350975289880803075604738590223839953699026345572690539106364883844185591477463068505768601247952821770967107586364343051143003871763434520564663266430635853720756735023540598480669598633823938459229760640792035708463347706942792529094805019769430426529712700107838208976893911313303521595422116655828626930944012666626994743984784533870635244042535049217647784386948782437088337717523328850139272862492379401585147586517625717069078585049422726056854671560737476227072284793692274369628623098335186700535422564056835221326381383212195669150151912208172864839100131720303938883549839454638407293780323973165970758933261953233532912919375264057854568428570461977966243509533029095529403535272784230972623792991588678519058485438045477379189727512654944066278062812182432726063372536615255747847824971410596145277107867105526289493591097787591467159415511922920119015690231489293757558284924786691577333892064215234099440358678023569904742112997071765348487257894970374234553774070405025236559568093927931975826475117565171507305853012710547832070156984972317038340935222871018162919244297823737039381577314485625884237174009664566440368103741219854451480295136312417871565414688068467895842445989783120747986422163354901146435820354404832192293439269836786001239074222780962467760606615478098327424345517941606887446896942510404819637035512223098132430909739280038507015790843200469443928494850914551593949595362719219103624867936130344749192688397664453383229616805614690063083250873305950759781089859702580901435548091560848455190598510730605692693467011673432169157173584651607803852089428123394869177741455912938047036795306406014752561143759357891906686182950257613681614408695941795093705286093471352620142992077506726875223439954420518434204141229934559595787137413944875610729839178240973648524021042783800576023352456961177928110278029104417590052740507217188548634253121191718837014550605084762386782564359266299752666273693198336822655448818168070554215365558166473493795705334008887462163891609280111514494725842823468269255182070762953847273191068481495794691883832562555221220437124106387106329645162905602488719993580569403480722588163515105950060107405463075458135077485455022627064182376042970528990213043059196734300744797514647127512269445173063722165968089575970512215592284564974896636949776115114044327000351545631355929566064087776574857199082240203050374866245927453677430647378303076049751340318236847021998600950860227411659449255896842906849435174668624723597628632990507634400799671856992141258445011062482854734128967807692750115608423216558166045817650901801167719020151622173123802024689464530992293920967530184153847240281288795939380451088467794931302895894595380538613941902796788244390388031727118224094456973939843782387996352689680613833415939128205107359197491004357014189881129776155189817281557065805159566244301658186531429081131974275978684275913655701937316704311724268922738653167810283407754593483399970805426413317575614160431945963677181410500391714190687863666518241503835820027063569147535810409606391808405327556761511964697775551303761400303731077604797836608804262115872546152144160110992865600225264249624896189888567709987547620203693879955444148155304543993041247325300475589444875167086014259778110513349597855949700297032592103554839760809823690238640579689071583505992171239244732495091307530374723342821946739058645357597837036448634058839016250834277262192179643851944585804960965728209115623452956773742051129965644124553694364767311709196418331065781011892707137418584463051976518785291939541351449888881840645145946311637978502215672925418582852129635191253770565298409001981633534881388269605433628319949683152529823044776501183045994705775400599322380549089020353384562254564791459974777537895545650736015268596446396407353226823481903715389796871544896572391740001940919846961420657948442147236086934466004344513031713057467201145257677936784835024461669239724092155225877072761780387994612528008771185518691988139361287755076764676789048534860447679697823175924735213651422729944459579929825181057489193248322202263031845194447431924279235050522437530352721621828048199194846331374237701715776871051056353397489874114216217013930524702318101730496949953432679266895274192801723960190018259810382273875399334062082243838184892938154978399989594116985401988809466578735920521491891909427486255821561941370310593357881143456705786423967459096901849066840907672577752615310619946575633899154698200985226930295984404484453410892060062102458084373536476606252057945200794351865928600745308672612103194960830244047665880931990573347480854091377256235486379877746322298632210816390422241046608459280116441644370507258487383124264917217230026727715074640020175203569616064785820888576503221306116532105552980321124377885422666386223605524264891162478047905034835048649058066635091984660085168033521729871129901402990619317720363507026451828184398684886691669547007738771652743384956891416280322796534540258892024660786505635850256086903660726352041425710917006193478549017370573488856083199466025652334284148345507605101759001701308976487955633553855646746246995365731782975790317435821934892876007359748687345655997708633932966125374364949945536933705619673766867800199990057142499269109758573093386205747719641892422499253619037927676156018641347838653820494583089484030020374577153875509083674212523350219579413882508995706873789888675302627525312331208297463046395241202342278721239664782626916583449385536998312363755865949865881478183245175660640681227138019820764224654482709410518270893822469812229247141312866123360283071765294354162562788644340034235078587249091738842057478467311405570249254399547101303484404916068135728590663178773454206262884627828337070991695494873936050320358982904737357643041928542043217634152392457712300272424211556234446751039903154199144108158247276984318713725611763161343004407433360741253148679969426651143403811447467526024693192778618971777511946328248677368948854139759805475605717220237931490672469427341567816454580235901531813106634980790789619725945579470579723370215464512484947037894656979846237970169772771520993782468641011659380543574902213169718881536370389954817727199452647234617129266510314747948659277323800679262334273789499770903985498940394791296587213424719228412888250439271818011042757308553135847646226565104036883118688265407240453237561308095418446196902411235168862735611859101041089471774257050144994782766949158575137195207442792690915942268238132212157275538146403909463611172930424945904301308017184905272039808538806713442974427006033544271710593542435589167654335187086824519776843692219068048863268637701876377467579085872687265081040831885867290467197469780279632549896382348158821182446594774660804097871315477700303230478993464035133808842691275374998706184724566837100083859316085118575321456682347441027705613524226889648863947048040787854403417167785846548923924802586367056016036931792459369758146634881769643494378626895086718709415110751527176364180201360729504568958942829962392858325246323573208582994189971191036889463565385418313778875413794386100203359662156123209969890460394961686190430336319112553667774626865707099137284711454675765535835831362894387224771448920481783954815996034712543025627399854348550315527463960326542227990784587729906762955837117585469243464878252982988362836488421333422235186120127891392053642895485733201220197198800789285708669894194140107692676407682252512595076980935372234813594887151508679747497714160702536143388571459899233839019786276328371100266161681981314542734878469319770096661469613072301474182551173587909508727107220959463981357584538881620041903753731792390958146334168594058786097226501334164655113048172924394228957242659749529267976683774221658557977688570978843568904199002795842178903015958070380115510232278031859110265617009231186131126751094422005727384768465337763316367231271308669358530620417314956365787173706210623940865944136338972932046892207547999859143038590012344034217512698359616437443896043834501343957252554083625976351899237069650847382089594259207069888466783978340357542449669184784781286428633956459553348363089416863973123830928444350998463587500135466557580808455940387593689569030296519630217215517329128868644933936537241199789462024424929919884782288666395590701431337801966084321094748358094894507379996299092353706219432119446832343449801840579764368597124333481625814397541762323008938713885493260406284841994188880965108306723301011883237009774819598175139987536910126757532647955148346178649216492747759281485764153666610401389888466989067693905815234667153598857308501980236721671628934224577065986657020457454774086509139060144032264210401913603577066889977283303738828325097125177870917782216372000327686655120862573803656016033886788403448510122316081752619504736473074899872545269662024275368681943625934860239526701096310190288722151519673072057085794144188008326989700803282299659500063925870211137750833072326900489215135067191968882018310351333410981715111016240865415538647286412178346853940356565939233629456216354703272363852271600708938322939837559959265420818552665529067586823370086983428500144908932644075527176261361257631607647251220133945809490392943625036121525361786956052752901933779143742396526693484301074217772775621443036488350796588598600614968830148014613541427129200309502864345303118149081469802596097741105882428236984263246779247262509875498598166158645906560941883532590632441807980043505144425111124155925213415990428803273101754705633733918392150921931518013397766519871925368952750230818427786688424925540829645389142807464680210382019606013858161613257702847105823587354217005066544102470246176127002317586275106380878517748237121799334510350449132274698376460599249525518599478088980591408347814314768832522122257357523507506833639964687654165390137372371775710975427676186628840061502071642109448097972620648263239760220859094934164972095291668986226368552874981358697997052820777061690549072521748848969640207541344359201498296010246003766564296298430841962720158329441288908717429420899339565399894018315631310164901483216968252252398260603599426381203868911651435545497640775103725973697034680716437317135954247213823895362080475845574918997405880188953709571223956628066653580318961264336454275581735698148774708185374393974755791425655536614222255127533802291642841971873613391656318588169539427671862998276185437984771632788549896088603413622862265881624074724179892022390412171526130128098168198286540708861916775055155195725075041955308721661874908456726186123091470197626175537695229993181209060496696679500435540748411493655988965730789462939805106747539722557793089948064002024154560082863156410763010950373413945710889680236511750901492089560023566016790984913274706490139157580663946904946100720174768505832391868750645937186258231542702496792865795225159428978219914352724366875254319226904585468537715490408248224666726223448415947764849253533396506688898290487912587639175077179381475296163528270901000093816896145721520943904719208908996123881781155368998494540503131226560789672906703185508048524838189983229401537107383644892665873466656018469392894752320060829231463208312540797882166829233171711228443442622447897649317700947789551851821065497397247532872339152243403069936153212373201442394307057879288897026347622136767206274351815677182736642504349688187980569794918596620422261587440549976428627528807888589730154900056165536722006342198445574687619905021343473914901937164583343314361308500173963049022146187627220506309729619154841340369417672479376177041012062765397727305781673634745482354073638604480346915032628145883201634876451239046264759746943077085682233814429957774067855316925286835930948918829043764553757627290467692699495746673424386795312010785326003775151999048607898651899933472108745650450612500694511294245384990527698304947382315508564520844054264230386422600401606640303150633783077328486020262018067132732851705442906613443492731183225041295959380918036899314737670229713663514175403373274140964189896483901073623043785975247454126831705862581424759338686908911135349209734812702507512263620544701096599886789678510971476722433100034910876300946761969445128767664024518058617545110920780729388923699304677091484957344411402101269573903091733722010669009775330285319591383841214774975178950391813715284898573335364188339168216700976384904985968870844706125810114321873138284239337941576493005535048108323094373758754982978882084249951686581738781471299700658381985126691350946585783892301867271832805054830319936043430910428872437119325700445904071155996583093911229823191275193643265369847500903314077763957312551166548644737806954888072067156511674395590171442837498956321181482300143139133151953058545793805872928502994085857003890248008464225121215435797736001772710605661139981158147788160752722474256439334395359444115215741668743037016309651903332374116469871430826424257632887737731481387672185527635728438780477011587575414357880271840894020212462827747132813793987806174260521696458000824721759623167436466273611517293674554628012687781806384325970953663741913597925984954710118139346882169099921269089636630219824044527560031570460937274954213308880086435760837604743359604485815863621746328658186112614469912816560757337622809785147676299251757655124570256973792896398762800564738155593052239118659338043837578401133980587578791534490124254288791290304925378601850317465247350234674690086072440060854542688824804470063939876561450673468238114306302724163604762565917319567686518019867878966352957189738622330017115888492900540714896259947543650385316513688635923925957466325419546365444958010577510458205310790267063530912683468354914810639653254494354943638604482843875730768488250455681077025368728234834677714697241728473627621888015712723098321344048209292663014295121641294825092554068032701212793185596582641183734071019380199564750993654483777063347020137732370471090200141585607391111188749937514776801550727275657282044916491027052014727761776357021095781578248708544152585065865439934856198896897212619462735482596721335991877968998849119549840911917024119225801336060034593011486480102866119708094187829011840599333262598765135147731963354699841388157558211922904943724267975789915257549981812063287690196433771938671301164071727558027466368915173819572962582029204205570406368403201618355347061087016599572813429660768011835487559897230519223385673613129345577737208617370960040642712103368392456923012526399356055517473023715868504865046573847651812988495810651804267673921790405052104289938770397055598626391779700819818534742719156406167956592964822170980417031918590119557598822523653755676163157924163046199662163022184998897729693014349292867364759828201367219906822524334637491760416493083298448689077808063317385547984708983551852109428045704480159368216626482783998869347547522427228811910291759035729292066280583784986874454932964136868750649912568299981891642764708734148898043140922789137791788254570776784702733787501081786418289292710854214059994635649501781327841474851098874250456909865591085138987158949126049133168631110297270409902577511181004878035531512980023783996780126351304617849446095283832128329956789707397296224765771527138746091406093088830187490242746109891194387167683674246797395525822277756597617611991557492071293790548993601590510854142095398677883384739484206380110349097182748913526168695784309897459972448771465673132671774140112635589873066053358852887318842028070471298665720774281113219601575903472204635973610351145822854831259456754376307174058569713793239110768349140671880612575264846497740013691507016120489817667174290712792003282748453092672915601712673466290794934612624714507384408591335595678536138974046816954802420662380323543690432232434678779051208857707944083667506956499304539492306384059165711577510443672259254749480858608722866371120748238896044606518165802567368176046017039802813884469600775740934472436738756391406519154755983606822898653819273817328261633461141101505594277405290893887217044524051858678926407284243894497423179095422756352054349293655422423408863412305469508649032255824668788326382537877671853684510230724472705879756733183023774513955443669652029925484438804343845944263268006646848301255468373803181583766569444887864062276445589312008606391421555839814243079122773890403497055502772184850372526452031958810908805345134567646189774114777079802987148770804281223038746562858362594913227917161021882749359904908403395339218070197311808770551320218816121782408383216491215451539875482965617835009945728756911645476084760311244518257670871263914156496216681280847560474577532084039937648678192158757150623546444126040187591953469786352204016717811182610057127834564958478140747025080344857266672899667553261596168961699003771458779010548310862208667338147667935289314125015409488884303237106799089253130495774417707414516107064862432169105809420669374650875059151480185522030451048373317667901884391952178483794012643081385014190754505428063723017988468399040682496652592626271417967530121805072491771956555836666524089040359507582317509666640819032116907477740391654659161074857954985592625098539852201531001170607491069965008455574677887653012585582934637608381983046292228018021130987018281942060952064274261319991816828979004768198977911120340205317150836431332953463156264653510084345751747102087203129027455116583781023517704986157308387828429030633140347755232876135147188296870308130559084297086991168839338122218378226764830728815342795075355760401408328382102270728117815132040425873791668978849639452109351309140657908402852048032030326091993155620835847762687963399893882914774049224874101179644981203122945472956364247417315633603766592592938115975443934924559686812216282108124478820437386508733612152708396174853756104613752376086809488557947233955331657828163129455637773727843374859877020699977274768207271417281017162034380002683769421439150306844975264178219562665442507899684939429737294862411238668960861897440083375085379212365805743123165243763077418104224130932282951024652435043224222383119919401628286332181059266714325415852868814928458590348307556134134775699744921469817400658660769743587661772396817094618997685743384871935425562575364492028857827638142389135845060951569574797718221251865596470489779971890906704648761740141348596989312082381438264485173497226203594283325600657830919906045229070258984852785312824610750068864064595119866993032968278447117625712219056686261008693022077831662138889857776399561147839937567497306818154237889815438019343421815890382186895998807996334385556897425967095314172738828124075745110761960837059581445603933098688185769811785068157647627789747135278262534004542275164860072995107935667938898258589580612315003660733167860311858955866000368927307908221538178836237212750390954735894212172007333205805689059060420984339936198684702356433120950703553737867096606252488162050659391995444417547098301986211031952123776420573765477161837204050096223538940026381229572740804165127545067470845993235875856701412384234525465762654418516138311948498476617591857417390314325532744865634361177166707112034097894610498485254094549947990153987826300798245292548693092134696458503911730869248587925809587186825258869979680564380181016835135423568226813892121017499672139090238726512827493145923831348614896957521790891280364549875491336870724701319223352830770254719843837757418999653352630611620178585958984079816700225882067259942805514072281813135367710610560396261238958548659858187392037000560087082889753710910640320521553507816442449026693876978531757744314603819972508862045170722425051760186016162462094134534729926354533404256304794368818328823929960052407885245550456070100252072977168920548137757903459332887396337543343189315547632826433745538838863404068779018965974774241801493169824989093726547850302046317041099578980938268546891521483307924745632907295602486922965560505818070290564707872207345508808706411149894504679638822475944172657127324908343702625338251765948593754899174793440451846497824094685535907057609765623703006584969990876853904314742117216153189666243229175431795094431727702138904790922343035804767516611517331622189989021782157383975045847365373449389853588987806192425363753018136452913936202823617670350838308433761806041778948510547021571073242317581837352547917893214442833841827750510779277458785484824490439318301167187587925654148730890596623653960995832161931616616678550669796757070122894846551326760732964955504261971374371044996945358925903120182446155999362423480342734183277205040239170539842120552692214948643710906307663496905577971614608618371560472947255429854965200567930241304700223432209727339306109765414299381743058084507076469639850003593408736223528469761559852491267798788958200367545936473415679503533904320907770626000305514879536641799822776779821526853009554191354538636085740942922305628157946274026353161479892553881839731126208319605757698569974942895995203322751954940396444758200051609352423726057285534685418205859288780826593258250645060334343227376122530727968184999657029966300589457635399827475552904784978006706099656953066893581953748230055269993063698799663780600909298008278703104528720449217732698898014605568471165639738233132730499231867043991925903427969364455639582100679099399214724259278385859132122895137303917328507463830055594009356070640581896418924466443918916675200555375273628457653470203002313753351055951387776583798698134565808247004193179470182327130688514461416591151103250633895231407183281012017996751786498494508338454836423057815857675032258817486168818269205792206115630997320986154568916679184850795842508713384699212455183464043647005892451730969291229404910314030680125183354118928839645332907260448626827189986578152606348141043235327168927069864176704593988543755535868409101218709673086172364975517815486691682182331098912013173046262927177951371468202606776838307415739719598841396685289482569650147835370406200105965127891713619753110093380788412157183145682110551602813866836197295519537891124108936788133075441929469045711859514445223361939503558966430133193366780829342571875475210532727801628063700690456926659533126236675147325818633933436542444925730963548490788689215451297818564613671047643576816115204920198899157328111048414376649373753128526788723463087205067265195603162690037291814428519872081055483507972245669884425619564735808453484236464119591153152281807796502824368725896290628357668239336440981852293005545717724756261440241279832247123796447522501101548598740259882529070206110757651949973893553683840865760585323612754680795763471786661986927439433137877470173337022611078327330354882892010175359169675500202445568597833445016435263357111476472412973884306509277287678617792608352532305092661197731652588927529475056300908337522573590765836669331162107468221442379289907074750237744339481162536956164865411827127336205011019509398477454287788860270839075318739022955455282677009962636953377443749700270828863275572794650054414147921712598541754044008058446403792469016878174874594482164448163079311032277073786377306907446353978110650333056190080539217617262568518719897208727549579453919588160382563224539988684946129251947269316889045603694156984239159007279105934110141704452889185433254563129697610726131572758505027964772600858470580503592429929681435111028497095562224400553434375398841992694158956295271070011739168713668838820568017995485453008655881126920565618113643658639493265365427803849318104877681494878304201525290781934159188053886878590779252159507380285687929853383115153655789480904495341969069363950516992608010759578725956623590865118003434839178661271774830837954127625611114162303129124418349345022284063024025946159919190973392874706181415317138218109048362885583246837305315465193601805702625092008386860171047808870096098818921163399010083632917486367977601957883424344460059462548219680522995074516956166780169109293233856617938250158160791217135260262244244753955365008943855067701297247514173047923283305547953844065011294964362016403516523479424820369266523941418303060693021909902051405890169548266520238185899245667864990465518440490888729474652157838117735273800189174707822812757438482037410889657618896505260720202321583142072466852379750810594797364072067516038561674822946067613492871571458791307977613942686189271835462760880865337087603520921091065180188661872933508946534611825266161757494822505540100216283242152316784523640666301038240279982589274186585470386917641068397649634874111911844541668636965650683403344146599992695925810880266745860493217007960949663608904744836937154623859513376170763277754032647462875764300568906694911225873577726660844182470859085389803391659616138216001502273696753094316181924274185967090503544554296230739068060888533260861800450368112264793850953475189096191612647588572489502921056796902595195086599106043302885005000774352470628951163859940228649757643586371993414121317717309363754299071304139014701132359472718954582882827139924875961040423517976008602137757757948779438425513671030649335159414517211223215384049106089086073162198183592545726341652217844521232646965732510735629378747561166994110429192410207407256125211918251786700985316546920602904861333405836419662594118867269159677337546220249367361587745208319995335106000752674385002093510672585496420521901139623012330957847416581713171647070000891658246693104927842281240614867961540889076425811429750144496635082377873268375342615030281509444358907859170497129000844929962590529899815064055347324481657196619798143311687616223284164257529048821251788730102604582745570446912355644470839899460550512975602380664099171867325148651792394485036007150438467315593527552602128057417735376522465565192218365283582860084139807843371845716329384724130287526263263369186206929153415121281815779668724997826115402680881217030565094922379677282609726295832080243188669496513791141720713318161939421375420352334793828256057668451335432125226815046759564108372945569297881266657355043501300400648051667410780666893986652566043042840283003724662450707870102784704632353028794099526229906265334038161516984224906173846424066337368622720463347307181318426568375756889207159540247797401411799132676531273946103780967347951069874679239444754431295051818914350997533212448191959967770834772622144260897370373380223421852678497046534089519150773812926705807973016302378448610778241962858919975186358200374359852857197514435559631943409141084971931350483494178762862613335304439867636573100233105595363451239896326185138014798612111897021288576526359910623263265820240793321223286940786073428588864270726138305200546109429760459291699225232122865652704822197540896493619802699123097987137955182232193227132832100425274692874245339155241830197016816793266270456451473472418486327547686218491428982854364584400031410876720820361438546264013367533206782019127073122116199665550477706776067850102919909653359755068519158334188256235885453416189259364776592956243712977880349283781498955949562076627979495289698319869947756846750117627415838931255399170136015007617101690168597857717567127049910122167644194566531716733485443265750893846212000870513584868272867602391715757804932362337893201016042621879523700999773432778400508832299589696673364918167623786968317447590218618806800390282120691652268552685594123400985640704700200113767087735731532820919179721521971649390222630240019940715495481952022348165639546845094319668390878595925428415445997085887045271743727152899361035439546658950198241248684684922429231281625918725955875370246477058904743293126487884050898524976352844783069891799430366729993501734193414865071364856471937228359531046667522105972126951483234921678754217026911701185415375525779338234614673066067190633649950104518303421737466502051234584328939008716774612227322277442864168008449515027351557759758198010688756013707866579999865888922619794127858097395606894426199235390507234459424225913939133747739073815218874213169719806942577053346492008921352235524472479405010582183274549748612115575800421283329406744737448150694955628245229995175106484037852056748828568654394049857972364463126620139557755146112968045563773636093193957579214862200825759595193791697795726439607786219104716345040094373554532504050427855276463466153353606297943686788208414912535552755912262160396186321792149980832554653796091707657190302608257248439553911143028590714309393859017391847950796729542299259789796711368156494919035520257342541433416940117253931532101476125893533616677295393314660998791910963356575062307119855966399988826066188236693983893781165428075152415764624885644393476194960015543604440616006757347248224620934899079055270157727429682077745379332619357089275799401246059721888113417820480409422996206644697657686469732104250012535631904495194792373407652272697935624142970117840832386087667452902619033409187805185482373786698660679940105605050460338421864417217194283862995028982424698757612527445012797119495311986179862157511865180196736738697123652635063603246050901791780383041168473424663500835285387801450138660648976380909473305570391111705917779120987701979667977985807944534483283117148684979371082938924561785803219065699917436970373720237456938183943001895845578564114327853683098700329379770411518136281391931390575151920965132210417229296966012819806842512421063541014630262772087998513613703516366137117842449799415258443144164803799031871553696388222646870464113885917001180475543986714442681144621780873438543557907228650942000693415405968486003816968386285301704104172580856561782395338935602491045697965572874666496843653227345522136590105468584014626663469218594056374811561450007698997159957166899033071640188420434432007696972667321512725188104039500647821565002586312404858385772801680685980644267557695471724957268609565429950044114692648881928224224524461965476791872672412337587922819019108570354785771342995745137498313419423143702958211806502239770456887876066678021419399619244361020082860241434273397983154142664451156919804785214213765854701341351408853397191580812956032974787069409595701551784693053058327446573831365947984267407067808474409689355026728922726751621499882420774113414127092185495284016466286466716344344144686673913997830303743654693985452443158524640676884455813027621190645851544048824340356400618686816920573480337065039576456571226970234458913148129441064178310949827403079565798284415756785432346854575634570091278826179536130021722147894631162660063856477135624621958523556022261507212493149026159012878136318331343157767547068983243924058282281875313896604177345498900819814471789754964433085092197119683498186309353934947305434609696643392481121868886802228637136222141115603855718217557103088707847948839371213080864721190964595902932098554480239165359166569816485599259075244841353897495266842211227494208240652880713828892960040061140788785023963853228533334605085398243950345375764542104138581861378824755720350005513564545932106029342464611963010531071621786784263787044946898741006987477594347055907565971644171335409158092538632271942503669362510435183206707022193735797854604852576730695631542125250195532543257200637148409335873985440442517794278160999730387039566981671162912828566286659951073592658913388208418355567448022704606671538872013671827894118401950203215885952553421154675062009400332430156986502004337352390251590088102764651220712466289573309369396498874585242781315563093738591220702141582317231610245068908327941178763119945051497016624621500454315742072102530611905506397179555916908694447431320302650791311178091496304160816890626674556853004471728874708850234357078708296562020823312483618345953951749452325645032402602410480557047649944603426583198248326787022445826584933410434015987962040656411068973060444309846321334696903933776105983486717207812694399014012177974169887025576983528821450131283965735150249673290387295196852074290740877770747968983549739748738722576689221370825116779263821876580481555097771476353784086620420204875825628867387232586156373114694126778650743676361180022995713450433755463471012419563817972884892506793351724748166484912577351078733069101016839870935622636257176356479515314655309776562714426056966757883021516494449238709511764020424232687336823966471719210518169876479398800760878508855551736745216536888959433034673474878935520355169866163494755592287045054314544547813551119252540698461996426090504220401339266495862398940308620040549658518569366538907214940030223441269177761189378249887361902640181677634090810629868506190265463664099817451021103732411859889013791552011944088151280195588039618466196219446826221109852831011759558095304024400840735930571746921097004521112684837880222820142025033004874165031406058561024223660236850014148649654898611616944266114624694889710179697979120572695914947869809310186600195084770887378684781866189425246064911882859035961066667244384186255724933546094614704841555923447696949824287120834038868521651465087031898273976906437662719151530088444301621599602079407241671372350376286397223553899739667725120614296186381768302707489596225635186001744052382591425120450785416416927921915497980178130983004217147122754616086939024123326267880461872167200809542813397557707026938052282375522385288737616272844067771070532461381875756315225964514566679000038762762993490153065454644827269549857009736431701504666790460742680420064864059182248495311156104823390589339365313733625390758875162371325222016799964415927365456637166417895534539437788621112136147976173163918325191293737389646061455907878733702438877875984163808110411236340663395229526733473385368406612462250714091367741500340838731417718806046421717720459811139354308223996348252809670486047207926072395980317977742174044623061059979087881316983728019269836698604803441159778415975244816714426875637420922707972643909297160618791514395004126465221345911882949841060421643178361846524061631531776381414890575892948074102107315203909842597118094902484200029214246477922657282757783862779883933294984741953868005935381391732875317711732152293441862410939495268606705802318303144069090974625158960534202674065563398434623648558469644519466375899629978083772139032525280361011135368870202591667460128460043282454978008698313153306534163338059628465430688234311669767497234947207113995757726295536243231005808091591136334995891441541802376402120737865360173946205280355090892436980177919846398699320184867364646366008386904330502092443114136927769781534132970421061276061506797952468068708824741723491631244614764861087486665247004333188967770664764515578698229087156430690186502595621513735026666864482222338674547655290093729312770854041993417965601706252255968948988488674115383435358290982306962152355723993545641976758962436150260049400562753540584560761814864124750990579440390955282708933499862771238431299692458560675403951898255609579575382591242674594905954397289915031188192385151532870167067319366569287799122317544066252433535746306738432961503636638273673427623199177208294803460124853316311354099629631216485682580808548443417832301960611094455225159614380886811407232194283595604064045617209703545999692959060805815190359062287323562460995049881733225229164596051759196291954638533793911989319555888436742067123191736638286769390223412487934820879173179850996010750804924398136816127285120975635044855803813709283064512988520031630540811021413736214240549421357693937337835080500920670698131629959724006196571427548986581055242900343776780062622905285776589991507975988529060389958323821170118273925114048584546110947021892586908257886070658428591852791577579953149705672366270630813197502787623309083765951658158031448650108051441118894968427522165320576988960174598553098841196855543578808527623276808471421249709146077686002534358767421332469307634314915524366923058764079078800286112830086061070668904708539764151145880897036355788065441979676261137511744995940687742138234184100737108773845226433100629480183949201652681459722738470401255897274643113623740125023606749393528288676833681687565672013439503617886235850829729201468696316973177085873390032452265146234889328993305381905654171875761067200711608709847671356967849821512442198199135542897554288205534378119648725270365791321427462303737534925210762536717627517944019092536283113421834161630458507089476674977140946691641947620651749489544170521016390330091861078602018231995589222892648468869913915481268610579740256132341719677217090931969404334247240309486499710992362141464668681709197801280124367475837471108366971729137324965033632260216737723922358259922400990471633900709624088004348284106980976864889554192456121716012275385607243465600600864060721474635093404794587519168628242322203669295109698494594794889812487732679405074611390305863063510463133032912112194155133810070559972051362326361297746435274418140461968493488302382175073083258049559405250590679352996092828761637654043798666710706076407930757474673786342847640731032974617972388288693945908978559343303417053836242768235342440460701235790797092280273674276210279265286429221681964159716614591345577575049164036804824675784799380579097254473409456077214887830285838847561510730870911580326185732839990181402301394404062775498688823881589460755129553237707284689170616154704647554437240493272605811592223254162474978502333747639691028776235510727922958810357656069102869352526600458646159623568951944503578000419451080358690651886919707453507389284464057424096369216117544359418667843826374873773779789001522145018715981913250093641598233954375850348521429820494329960185664943166028455215559597271405177683156521852770367722609297157689431593030883118176227649652994634206487095671689976803693166664290238756976079428825904323010615027114219824197852727688510493466465999137984897827245703416041811552945672239577464212263258779730084950016298194494179745687763135431349555624709709559752785619400577511621655717095891762398155206122319440966306745242803558117611857598836893593358412098894047623937573240741796249733377800799294111787422150975758853326312810539400123363454347723499241432497928824560963185263379176645143261832413448815716295999494753898068530389189653793708838953456894884166375979306102407455166863679929651746935382250456135555831674254668892795937841622508226454366361065215354044176775006321797496359531386343254177515676092226996830220994281066075169920090639479617533452319829025235008946031475287830243685057362363634776180661359206884697089551794014488090976971699674913007362933342283352599393215900905347383231818559965342112335977061487868325009026963063729382024948553435484326647613556745692427586446403534137567991063693391344253344664489252518033547684777674832013929752722260287929885169143041685096904660842658903363551603557719255014635980817231742574166998044502551295717840699483590446477557566023752181741150914476819977792427862752468545524621532037388144446335180513495997605894669075021758214955200337825048114853176185206223816187947721882738894595577525658612239084953652239877573991998049460630515260161572753306443779459282639458078214532344708765302283201152409043410839746032902593674124218436198771944039437962636813929662595955299644324637678142546663907143002895607966410139779821263180017887347549644217486851216720582906622608228632575220513890054544614860456817140521496520103163929999507256093136296623633363589859508419826347597850558410040570504070878500610485342420429126097273021280067277511404343956275079653689945762493206576951262026057695855770174289547259573088628492642618750316812125094574906393173115827049942721381572322718122309258977843313267101892716614307525730893009871151881990865829721836355968773045818528262747053645808638403385509418469102090728736482236312367337236580093200610300186489118376575170328532178580422038571340990544324123254562738278199155432399850056881968602971733257840855251798100078396523249241185445080228694642222678309420565425856279672467608094133694625135613679108708160416881645711942357576676836328695470369700867776667890217055656635078032389360114668372166948098054163954752870609928630806337972736766696154321421085401804447416402957589929538165935646558149288604450039701394232147596931060751239278785873396235124590717984298327883247464367306988950198443589987050242770261865588844525074355251065473862885668500984828161538911694108657143126037102074761604975676918374603414323413749908684081069423656896064166206938313623539748955815108291466580793050896328646068984884419188152215660275246403485954585019854890183485926436049087358471474664364533735744596758265199625534302181146779950769914541865138449632621812040800173416312830983697290254713093070137734148866960854879784790031374327536902598043803218895385475691444266294970369051732312170145634228800888864065336876141889948867939192874160819260775275394161914870055332561059327461339697353369705843268278251031719012865578036623662987229723490204768341572350675876723679340620387346546975953655245514170101932400072015023978919479743848289537987806044222512146768054830579541164067166624708620968737120743968009898743358693787061548111235835729946906073803046026001134752629407236007501332396227863355028651465433552801534962110271773144409671647545827168350225370805878497313049325083957369987352212978993037986032857375554644924787884362676910222045116643875136266892143014757032832599409398214725434378208673901830175120640043748275685892951811618355183727871937476326701839181524056176942745664255344141205951738269317438760252643405756878709702355373458454245979942508459322575529655184926610448966616288442093429929176044746188366123104028080464792481838422222449772450831424137819308784701801519613474504082916551421870250826214893803314972025691440731898528693467895749217169877212607867706440718100499042127521332750098160937787209430673959485259229425950802001263271658524321423299155094503310868132563420951609873123477521016486909237911553573436746446156911920651288999570222954388068430624871881230469189822234378621787446765604327621583607892523412578192215022134666281898537357250106419910245352061113490702580027453204829881631571929297656929804814412111451145546717697104933158817396698676412216530023017361651351944828595796813484809312416720672153584984667006645781580732289371796524872943005143019288116411051983534532135194849501080987204561145080664899550195881643867735784886113773088475231648675260544481185426439392745815207435614059619212840020200655680299216247522730304922301726983867987145081325269121978021681877380333546184262582399485828924528214811458221298593788006241837119236551686572665538499434972770138275579411298735731766488170777592893782453290812219558158589314074844998938049412241447607390470565221227480836847728489530082247489217580104564247537292708584765108815622841319095384196268052610849595954949417091502933368558895488107299747148516221190723988187680128935455695817275118488454408933284032097554644466479642103080394965791163782893740206710045917971081406281865537061218090321261687528109883073655170110522117429809015249588972697761103691230344152333692598042715303689767554225907963344359019824038166255344157322101039673631915840248646430746928159908262899044823137247028556439508380113767176871081483330930665552254018145751210450834247097981230951556468690795150903587658471456713096178561007478609507992348864699720884629893826749754807649506022107821531403413731098594092581350959752236436122064286573685215966131719526970036594511181079720216526895709829052044445071628815302307203993547665029110459773212431643495389036401472690315464758406082309933462039694637429929486083123150660455645848502341785147420102235592929501059875087433850722883105697743089228255573441522862307578000696705521813156747327540062329092480966333269937058842105627020384375465776959980527258412607834695254091552931525189385548680572535473972575981863390820826954617426552312349095564322585481234146481291521579810283039149296429705704161617662666107164563258880243119307341352094040500401525609354353897004109480147044062502403206468589356202511901516048644142563030755323363471142166538529168487711644819993478415647544197714030983168260422893012253658845737582719993169806534404373277345561938491635585661201076235222576251739484498917975851039631670838709815849587194225343045644190956799047133395094109793230737337465860859896604689698992991424209549580779280669305755323597853561615044903122112163721237105446672414858143332894037315557250470300379771184750170078318123526743818362854143141497449989996157810511943348664419942330248422316134672872138393262200204961980038711480737295108725389122174013865383441673058905617785945915906803830182999636172771994882034050198984580964233202304682214595349321233071438164938810131698343780107456471221983394936605875466456016800095854220373503670333287451914808004272177574248141206955172162760514631137105433233082042335383359101637456910587193344025413427216036822321858899382109358129578574750563764979829923387735899394837610918487609596442084925836367047207010378317554279483654037973599018143912976237143614905088799957932337401628519021601851270215129536677388281833754973207007000064618951953938810881662376110072801680836532281607088494995006210001098010360686759872046110492952044221497577472951849003598527315819208736631029335324437751269969237763788483893499643976244471871742754154124814683795842668052468792654998279802807853322484685881596047552223280985982286458568501549971798020076210842292136820103913007405350457534921806637422382082364701341197579273330758044093672404819770006493367245540180100074124703403343295500306544494498277552440449073944120950992917380119772931387560717555973540285423234554595161609968445986922319457418006127129080428178583496507405252125737005438838010830804190603915930445618040428078113957534932067585385084683846844770735156031788428764483471964142641949885535846207479314581898862970571664958031780703202718625406742052164234605248613508928621018489079794430675237201600098404704318626372945028206909245023478197502273268907740814945282035742455954821619886162575267148054504555595767804542857908420400679488540918314640374750792466389817879457373508559135133546069030951169360918889167060179385064106919493645661285865757439662330059781125037690167072828427783022932895894478455184304888308217090243124791912584858315999054837459818560192156497532302891630931697261604113337059946036900690876022428010584432157571050227040879063987060977123593634552508995851307197375198081407766323173202097017494878463978696032827402150603332807108215408809327216465577941209291174736362355626470999416697196019364289370831509995783907559181281910830383269797121754668795163951197410856769007054954831305854134496365598313540385576661453645997530697331062728599227405495769100213092992984492334183107014073113719478041999731178536400288230549952436587510467528071873495903270674060499651956902193174665923719183956654115829404295903547827082892710667586931587285984893621436957434239733721732587509178954041367051395850332091454526214513097518647297455715973886383633515662806329385185596482317805220001337021262299845478472220673562519679374078657740027939679845694505892183032132037174630115877522558280108793330813359241470098492144540885192014216216750849434116602060503345376393467263457617482535560015796631511602687545015183062000577977918407388168719373741630807261082140459614523366061038825216200254313566549793603680737746244445975967573823465569904450271295839359643757355540802769626409994031347329823862530109948801013271121357836119487743149349213793656022251802782968526887184323713963055919826099665636092398034815737180044861758921862715600225828273506959838969231680634071630797994831011036446411580490603513103921849475815582260663691091577261665112208301529974974103588523827139779742565906297617780737648536955487791840515305871145238400774157754254963298385870773283551430546877011142028319810446123207731706354508931742450961690113084837016465965395002380384237902845249300777637285519395723287532358009003721249288056530471985401437002291591456041912231368761561538308526026605416026263771406641893977137297688668393577949439982490814701921168246128770227983502699475868054331285026248201919888969583115009526234330864224965974196213599055051777200787800002125004972186895290748250716180564448587905556556383026391791716032150156307611424474684158563059169416555277561253008017745679355865639029895339911778631740931786524226593691399272662755963914105532779666542075404634698633266082990049757890949459469505518253232083045244242082107353171974838661725209483337579123550149697134426524321990528841969980120524941875558798238262497154575740532186147016932108516500243882522778903002619484044800238371560131252919444717603326317359422957552539834369620271004764806221225117834055567492885175613671187649276469370107953461778940765309015816672833351583858538807783290208426518931380909369008650587505720494926251495411414214377362965889131768518115096824024446572570802295624791387558378200440160551306839681236670408425971604122256515778128552233897058766000055177769770187686949224525907020690066940133691578422143084204662574205016831244613244953722870210441698467916564873125437073115056592443244015780498551875423837785387909355831798010789940531026427215887844477361918386332997513675888425770675571764104940189862422910918480969760569820029343156522291514940236903197433116491242460687615879028747896197656320510015106778262512331657586207413393266218260331806990529625143456384781535345460042175829707645020354667918588035846802773272079936420688669577977927046005048980771425822846095949631328621190223322389023277958085783110683343598100622195833584000229340131539453060620209196902197135823344128457904814780337291938778569103799716772055248913924935696604933702926783415768746312121559203806934188397473117216716250605767089075091633319230851892834641222136662970021728853143656639724469466431037499527477652703166372882389520951225240834613607986258832257241048588223872519888413978689515684361592066289133948315822274068320470468647456801475498934268280224668131081259823512303279753363047300700134364311408633137443692970857765313858742673450254210541999863228912363674059779975578968499429740286121089023277284628258607941629030852091601258423304853263853111061641152800686431131842204813288943596427827893873880160481158464681443400669700402106330509271781692477163141566149518339868940621550937136249488844033178959211608639510401550450299997039901247119448289165751580634812448429052131046990186618287203138945369411179204990302228313396041821918310150136197604959335294184083447782854656744341746063044443414897215521526770781706935573843429395295120472017830746392690923650418099652892096192268436655615599592759796651848204192462089105240217425082779373457289036340715448778714119374253206254784492826028076798479854690997962664105242508566861583212504465836714392855917418358825463318048880450478929769195513833978705497816474308757561599605827699361062149578820320025768892828639139758415438972037695242517159199907550493524462036461306377271985856711857122601108604111012967899066201285926605564218226315541603807479537164656823624186388486282331205943437646496776023160007835831944224226212035423250870477391821904875682572679030468764110037988566051597332447090844346329518716933756153165825755737192734874761107644494007667653594918735644352731199991096684934348546471556878488584627639395630444108244010197151133167269898661990565017684310492211347477624868468317012660303326454938582661946378785651289147712785749887116630022211250365646591796714775665312664421768739174673024583097390639035166913636218773975020437399191377257025383323242872411385604014674828433912912215568287693204507303041149317597951934693388412601992847950369092576652744689020742809295910169709887588270595926140021771456508675073151869294326334965849002207682530049357407516701174509226484732687980833662297404875591677272187719645924221710518371229120483230858102997785071178917533692937902869170797381159896785614227292491650408202014123825731044435547482249859357062057862207399403485994724673985215799668029404888759930471301001897941374225285401488859608016965379796660524336512832231364376839481205116263197160951304809776799109745923384581332453841943475246375469476891000012864251950551852481081612434273660693748705204280959167083015074136333056212857762314372197308554350884773544467248169688306388857639247065152544756152886407526558920293357228579555696336432302473439642524142717392193363307501697152713945179824594426723194532096696131526490194319084942322802964619921137927231135673959025628265632414485250221675481560731764063346822912771407863604484610088434895564478155417219887205317197375133784022456458390188648482802974497250826091494279149791578016654411960602231812004291139472049082876930512355970281336058886311285540111158735076424989988544249826138652164760634040729599975951682592694853513542039987000223258889295203703252832008002898449566890101911839011209034754774457472565513878878328643628200394118048351854727147814136874842292264218804601581932141873422937712874414629342031924420820543636511776288424509730386986220506886565044212990475935465570700764581561581203516914125715682065890910132338297374153615116988058579467350294465786017641716320296862674145457452405010690787866053113938151983683502382741424277239878403980428459902224299213035392848249818260933504048828758369144631018397342730909586571237448917880521712462521608743191827378884092602301109450590583491452234446736175519006648305488106689540909713310493153085059284314146620730448087993878060057488654031603021624865859294795062186389303683773807751304440082019989567477976820990157262248307489851199320754610322339952816824118659734716693259287545595350509672923159292455775996029478683191590332396557263192012814257660323519437700833976553107021878656745304026536578440509174793541766570697259342515368373199458820704100621349804120552844074710315112659001170838164232057555462351540413152680225664868068150907447139661486118643489153373391833932293364054794093291326190624385058625493537429915552424640832084419264838886171907903429968928274474002676721489916364531094848764545759000404696206004758087761863515148091299189377308367697065472190037468997501232671960027225475650904787932011321064464393602796747561423139435890612847657871502582794776786238154430036475055863360704227206253408721896422064452980489624373566873729562446283609974131257162179963747907897938358657874299936045067280040283676698220848156080044461886185769167632601252381238915701606186286674366536544534031146324356685574834121374413284854350135121234229651244938480823030262055034466955317265323420501199206931272791969446890116606778630106547688006196143903030014943796055977037809296041851794284391853359476808647704709293960496474497904608155846504213934702579056896648860145998923565225361070747943923643170984857849933174714999057574472593695681914903095243945510083672365469415383919434438534773596614476114523331531162610932761327137275574934042384027108570173651398766366206615442511221781418936825170973597260638457534096706469386815088830040608670253345003440753430866753479899725221059112491561446415434106579645345676376650414937871827636473824928891966719969779154195752716772456321067014989198709148318759209224767485593061738048375703051207507440580443307135449837602124289518043135420043774449919270752848037228306021921999282457485550291398713056096714063130703769734423932984564994701770778999508338324473144710519578123525588970481994667939614521637266669839657174552818372857092777871545726354856139128649808605427207776530774374116294587818501898130325900657033712708748923584559374687218537939669573994041047491315948907270534142790886800808438865554104195840147675545226361190022221257250168612182095516218952368291978863089902195266808538399592977232432169121166951825658785196398136490195418681079398612835099999375609388022289472136191665797257577108331343576714952124137441449623463706414387770946481834527787505389602711611682052862863284540575369522847357872634829336716441751477074278785287237578015397758445244431198532183255211476710147900359726358042318730946404583734338147334261650761787786758678524128588025357438808210509310366807716639736798274774435992935322436465958736250061358847558844583160288601174785432984465770727408453669796242543934092696774809231178174959488437252270792900108801790304019237754846590793462248553082006299361559686234437843711848793249840490826545723540089624967234766191168986395965862209641290421174432416805558290848885510400536568081146286161368223994992157719963775959617867384781808300448165237621589193836953286350027964713224010666515066895622941982149079444983146190857037548998286383324698564436667002990080297577321621813942124248394952697550353722660472730163603850608615065957798681390440717604697767802664074541360810878428528422009789365410916098379715391973057306118289392746995834364770432429656530788827350233959302654756426424952896706659090862662603460890374210654153609091490498115780215674847193823708728133040008826632382944236984623222598717728883598277598848283170606604833128405260689771936331023015680872512959402225707837295726130415022106644316633419268451214535409158211902641834751731308112111332015487159916984632243915184676228945640328433299282959353840475125636060592999251213006137703391410324510092578405133874012155557326443687730779087834957869260028016434010094966687149367388418440676833099554894411944997583521275302943488988502222604949161259477887138200947920254835989487960614207100366637454146575794954300620297796824041344050076762553681184906325537358831047355357378770922953931968895577632700083590139475669047718471796772192547593809538548291515792465004676988627554880699176410150234886137280148534804420254248460709734682150630286938473323096056291691198143747400081207385642944427746508751647693535842892923895754639829669836350163887466921394936756672770928283376384569820524374623665042513859483900952695967165262235381844328528964792053010421352418548884851696302874641258311289406457845283131650346485075085466288730926823778932719114204026271258133688560219437972202690461625371527463006939066740373431156199293070903743648246896992678315373509718578281385323446881894839600894261875964692305934479218691616015689107123902809108564556571590524866126579886171246324335818021759158510734749474117671808236535519432882330839442348463691338260043124284330756568890832573932736846954047212231176980265083893192097536242276322497181253931356151806961810420167090592224735382785045370783334418152823804061088307495605096344698123454116435299778331890657201959394372245028273704552049014912224169800396672153920730858182406596643130787573232053635168341066612501263908729463465034929661827636898571424692210861895060164221667571037828338382108800774856495382718259528744314007843770087007080712778873858255113133317706000454615191943396776836090715202719903048960585908217444353476135841458946771044174768202553277544826875682975343244589118709890058742705305900788989575699478258653838887888711221426963680448233027897309475973010326952360078547913721076382587351771155845428000771353841882042928569307452752550724775106132202462499788229153878913600012919919146485854101244352562650320954702102203054417038619676275342445214676830143674148953504329223889619719109229311947343568025907614426742082009732972049675173248939468163704388373995132733733943771286663757450084217989399058660967881352802430717694342277656321658871503882946592135857380261636432724625652370766092216351822747563432914455301661039035073895773145190757276642465465601957970222514140825979630067891019404341738892699900995725486083788655910931245055524992653335114207009105222840385638001793832781787580094849340908524716274004925246436868033955654819021537576344946092929276417724588145715963032104595385366787431060597231296630991548853501321421034965753352700087512693147509394195388774170145896452507805898276878524854918262462350475883517759004239869755587039337648878927666069892950018005996203415365468439988082936619546693499409071998196604946573527351136555561264068901890191323827738881977827936852860697320813373821911642604223898382053452057669120557744096536444210211813700523478985153606640538532116189090247975757664980485178901404836853599338027137209169770819872772739305579963068435136529935851579526467208459565336791404168447841455281461329569545051157123679184585814924861372495500607994688908663551128562922859054443838968480570064639772411284131306065712619027261128449391368889932959210630037163593001842032019013753674325502857873533640850995253745545403448503853954067463491781949792977655893800189602932436173460592040462140268701779922890400983712089391612440351214610838918749611710583592065656636742450263435255161563996960197752907885442246291411495545553354289776510388011317874165859683616022572622340733724920999573377041646350321950505728286911249933409504155896287508357235943228655288000066971888131465226316536824050315425493416045981672831863036590721007686732277330833651856442513160710916296521616946709761575235510459653474230516129030923502138713975565140043396303026903110516837798479040896038839442837001021534243260296503643860054789438536421645029767254494244980924398131415662391548004029940745980391449435732473718941309005900941352479520823492859502127279064658161921372675477651703698755710287280706866327257883952953523030932307434323315052582927724631264601169035755663884773870682224080002441674571172411865365213110743839011580513923465664964839786457396472771328475207670973337783616079447333142941538091161474755283204200688410413727767769374724813601937401732193715336543927644756842404888688528529930882691999119018572990539142220670674603373244450878990576862339565987476182781536645721970439198195068987504968775826247491861119703905806544260706935297832096575368549082288151800663398968358153935299472332056879871760648951272210032584673708505381670220130574541136529690293145270084009446087801488728361451002680943897047701961148279906785049289577685694592743174186074475933068821854744939958072009112116369587857009996543114827812171744697461273660252774617635688537267493627796952702168805741137883248197578059889858645136591183979955198681898086138949737430905918942491372697592321118969192989344243669224352349054921040799413114952274030956031577514343574613321528951335085334068250187630059332690519815773363439409782090208826189969777154776465812665723656134370061164511979617684318917684002306374720011179177068820045763538671174396094307257602988961059750413358994586656575873295787246500111924143526203182600540744918876848714122934674364186381413430678898604593834933793184442330558027268468800184489248799641189149316426147061705887165091700808536568021602571715175785729705309466381923229362352760472264445580254521247539899560266295293516458861727682068967458756041896513476345342340111125727869575678103279250530303020241530259838307695158693177361366891059554900039729170989551219640154431096108453677269578535934838629882541828018459427772539013202993618638682298534084055201586294341511298345442390161202974586879865683098268704652857705184228740054393518187989622417458001924714811933367938652116707669846371237318838688659658325260529986339017602165505246261263329518390826607102204991352317115108372533416969209579164258838437588768207544077570042372758578507225629694058431996178710729457529284695963089771519793280429250737038370990877887508660180893578665475969815294583851253610452309704613494822027733944312763525132066703261908461568556497573779474083103888568674176102070741729424742316447827659978422423718939795981626537558752800893510201492097177919164895138024410071577866335812903772991730149571330454252577942826845617353463542897722540021986781635108906552184555166841996923027397182436293890075570450065441747166000109741747017525994948044646128662414640504471959570168129448112577889379308191886704041338084768071847243698201962681856972621861037695054220835491038952013604002971524170223710697289698891297828450532584145779055185236093277245597359437309174917683127415001075371002266943500726226157869039070952005009034966369351150995040711619271337779642327749622515914452581112518076413139146227952166875668104065608373194933990655206912391967956996855874856127835329375508508207073602865605476336273951503678306707563659971263766421062986051792311382162324430139832511879152332962813855146755398447898543990228461312634193953130952736680220261612039385889462305951214071702090477142138069195167109610515782652158031969029295721962992174385149207943201044661496117156071159188068293639930108522587515623541670004472688290290071441260820995660855551089210213211858024662967373482893903678759401211791651441603535544095192120518887345145236379930142196318988084330622173782556668114488705858975337221594241264682712072481048565284443492887725051091108291642663876232576072246451457911647948206729308919464766680261171532166899793622086775968032697695070493296265848685789612981239147559577917734992463090161283954897340953551264820729604406029270390796382999015257312643387749941619961739187380702478990283548808578497642369612351320997486706259754733456147640787945209487833257013967197141855904848624139145363088528662013285535447241191208502189497463524679462904358486741433362936225108279614962360058145640348659207772284552948841580962204940419968603240162132070125213514966029938567954375427846218756846395182450718391061342302452684601267898843360688259909984561565314924709064583500148814801765904272376629225512502694315097953263884534099169950816650249386665136595710306768378919275872058326683022268205091874466922393557255016947812749899526324379055247253564746528655276596563043649374134081627821201990119560210235502634331621168058216143546966951199190439275754779380578589263553120115906002006734866681918992271393708369530133896929341292823248881965250190239482966986706815532306244816152352025651850832153830659375250742715266540951722782190600005166870358485880746808089601499547242857037089728310021666705290031618439014767049438367834022768093106392699129126633704109640498536322844236168805823248597384729117585543686638027786196229262271073703916823106641096441211839122745476154173612459590617119608705654279079944656362111029287902726089796288509927366377356024933196327516262755718012328130248607313880427080078358992501212254762824437736635087079979489311142140691564948189759819666981133247335521018339425782601323498806973285451934555205689330489575303559548367625491607658854157802960681790215263681422485043926238934188036559929104692964815707022266543492392026075590230069304999998022073235928322182235259443681565008302927014596395424981740502213640914351657881454816816630462604862047100825906676707883358101042107911391458062182643483991123191146789328060382839955877569074960351398786228242949257609317078966206620942126639223155115014176169222368272276305276061794327184272530021458584535154830384522067220125775737709897816706596093566454616650423148086245420650305985298128383323940839003870624973468434627116710040411427086415557470694788942023557918618666747135807154766700389403552270656080017508326258465523438718209249837172403123395884186643328761220331591131615971612364051814849127476924144183808159821371447055561438752365142753291674785068391452009963273676663263233777527386601069548468220896530988964231037933684774271365570995343725975771317416919036463172596158065876380587778993111789853337366420518320117071026203222387397484537658841983846979775082714994531304330162403110908976907474736005080518227001766657548414797315872757243687158592827303289366287639961695001203229068842786864318729999288300694429737235868705270318763946102162757956098565992085189906730500876087885020214388197415565887026679844908938398811766894086487862587580823177581334510620775354434740047302854739066346693559918748761552717400942846638486953480825176268781321244880346913936992461315302839912824794564690769251417616680699425264526748815016265851585320170183253091536777038550322449395826641721871895436783208525753034220695274375054851149779440269366823043044422860758366313188073431807660150580538966298567394126553572753357906344392236292532624033241169303964067525150246637510374909638010154071825487517362283343058162244449848756856334859091966041276121351034592502621359080053637614582307426899714611441525857386658469717616334230208282255763726807508823919942644244625688992003546632139750502994167555981291081584520475000358094358300331347912206665080402084557547031282217401535646887321234172555245714346864359186687092803034565729310809106746573679211525770624731910870189119404902839899835324729385340429974510365594767874075800675287049182503134480765927522651239958647686351026510690180888825228983903669840946155195106371346282008707586118854910104877524509387938186329320045806361559047777906069503793795176740468998665322657183327116114557076325872407425651353963803194913347214683569447158220387188650103985029927243476854286516496998495215284659697143949889553902529302413176655919771641474835729365624575312753231026183442195617733740313503488296322495895722164444693920712965732534079412303990955247869984623358255809316585402614720467652565409472607066867032782262840846238519473157930025037282017675708608341759403575104781868630223386276559798616744942077705370334529603220512640132582905487524256533800647444223273847819688485457429116242554215143444364588424878224433628108658961423838917356896610611668849986928662794334676421034340964014692612984389779125006215173348402887837676848166095213554935523655007458424568284504205226313098914620521310712061326195163111514132114074212695910609976995909664210502304335027209151244332049965209839273023955642345270971165440913093014392342108231616590506767061932214355299421473900303335951885595209701326149359389364471687172335642724016714131786982747170574760199821573617677382454171527668870746537448177861146259489980878889030451374078515363642650521447674263159594920057474747625345535765945664029197621976801602611236892397307950889055658679916088211174484120247560905881967524203758774470167006503529893910357749642948986250314249831209476570755053066026299704688930504768875061610442347637874470166740980306212088475351953280677087076033760357242286819441098339024292246017321357135855757232567995406763066362869269074834781000082272007631678316993612042135091646893375117663288523764045257641385422557657225804264509779448529451935083582134960924921385017301494198586313709189344024102894065014216996126202408069979097736617894020807044164928165776407587948290204488671823795036945609326877485977736906306442469380183397259357553253501256330825660903198787021697164512482579999629609379267701775994053996166960944746394547076469189267956727365380490572276041896366841933730623885985804565405665484829747333392957551932270642636127953937826981578010766586209730429898110991601347429863567230764377021958437831191618401869290848318174179172365258667083950261412829445923101109747959456093839921651452521201863813190691069465751570531202098548217716867446282914280044771617161250142977341172759023648958217744452704151169529627612228100453663420015851678285159861710728117389774645483108646415644603894581136400857483502037559258304442509736346520681550322135981881273664681653691640626927277419122532109631018083771732495666432918704627207330995860199349643413948910599180136976420976290842190144356828607344840753949928199095911939037469078364983397159514833535905743295801781626546351248869266224764535008001010657006150450544234668132709851001945344472926116630260434807244074141509580716621936916988389826522681093807187280779534169641120374631552463442608985395350416593249200388693810223020346441427999580540063031139802660680108052632519368922984498572226057040439636905776236552301518918905067294312858743298990693886847306412050695409005611924092964796616736369763319501838387116538064746759855306295163433692497590526879710629884936980458170138092565604488119417165039162393626651739622803564932534600501679640779953402723825584474749198894263073062274044809222807231997694715580929690692585636045064420836181435372498659429057071745569519658035726517065846063812155386359506357948776701546383338671740408883268646160834290803938558678869040603347121086444805669446174584932459199703053469056493633064458261458149932564876774446031327051630816165972752220404015311192030337631358752211732701891960843634677091756266735257118620938737236459019518499958703840872756118522401029715624996666064366014350672179461764426884903368523150358333944109862841908124627430078353723692359645038187393598251630821722359370762974311293798431644443567969980053845310425412106324939594296581804260136726779668164722036227655821604818793975709240832105622947373698466956205963166553001221028707566460959261843495513529752403310440350131494859718149175221121475577975612849748460114553835991290614815185539147243012222409320913570033410909853257902367277711402422629639632919248628131438105179406035092075844321684568422785934341964439634139586196050137388609767430457927038450008289246392853373636092579521579554092410409320308680477181373992980370058934505672906725117365257442370340748328344182188052976625936425163855740418082575371406518260213474783264119471222874726818701499594374649606902192503748618060419725511893570709233915978652085102039692031260208039023732003423611229071596722389314157648030213850354478381038948951252663795603314791203886878828081526776974093742110956886279854479800647221223717439225537937493462850153834120693575332571682413093281307098372537425208119542926167904384833958091422778184771774831158359949194623129487303019836581553042285900719542061584164454468358905726102094863896437843767505037069586025694403269771147173329008021278629524318441407943047829021419383843794058604417425965336483086017406757942271178583369134948332741804013064253969007762724260977286373069104049713197941758739155131090119891787590480727088025104933303308979261538506131953773587397608025387018627259387337804407641842992386606869799043726551928495732450488506741509349567469222311512781702389199951892965005231239164599178849061068927024012581473393621253120282428197313686502946396668196272860477888568894038605403369835487303444732364291119660051610868336602023000758094257326294682296445478961550702686050723006863258771393033504732552451828024155586346206979451443688318424821478309316795466899117925320203121656173439642244392565342169802366771003759404485091963502899118904079306673020390268585100224126036817644544360424584454857756023953923775200363377130900819108517111694016545293980934912074472752236015576386232914015480787418794543763006091845951786423821328953633690706159430185413438888922371185314116793207758921720946029472353356827604771564138887455556005250144417133801132511618260160923643652636229365025862618476312322512568597948109439621280808909828292408130654353781648582041059437190653695710593316115497867877806729945756879492887209793833969584946735127576779676871085129395157000784429460805778456946454407948024355463094284851169123658477476299112174537080769003686276801347326349704926432603393141759431014734029528601626111872897068592192560550919834111747552952676878791602922466049964525805960926909882640701526312188820896516265773842762731588911542534515107376112119583723512671561228190089740127711952493313130519651946867911084730920023373624670978463388503062755522728818134061665937723063585232265886798893504267782911947091728021447291021004112773549192760311486960851991260135993853128568123461647108625249248143914383452250060124200518181622276736140579195366306935855970363920376400765897358110716627375443101474057177527796026597696134423481214502461018591430967459840590660223888837716624907211804760697844687291556402759479110713125411484754981113816067565819889329122533093585716230341877509619797925608874018763647923671511454113713021444011953968085506425070179178257920860794198984683238275189003098127905808610781301575112207279139888043370821014499009378905231842728511697440525276505142962707503067062980482833862392724504745974523831956295237550461634448602507268300400729315442269062711087654066809458836228544200140452060426137740530876648048015683485506570931409954121108809088879885515690311273186642971948414204345816898931489382432085950567942827796219138340700745050511836905922911443486303157020922784870822387846522726115908076237296535829492569697439012879670920313853281035288650614379564690231697192131476535799384828292372388759830680774716405923203565351169520341012811125016605753096665726045414972435802320608508731717203979979088604521848036468723117392338269008730602823994592750725941604709305428312629337509855105323387389683308997187936554877975721468875950932600056498512414096781202028259718996020078704695778469576756069505790750239928359050286587771469625490974656608851483368860586837548575059785981726693104264845988954532338199750190849797638703263248281185034456349750757770880489531943032784806629372016395809522924417239297126561632125031356396035860473654677379872705140572690801809546747680957135449033068809959736124582694028021842471015332066052107862436345378506016199719161937467090477955401872168366728447700248450847162207752416482094738054625848695439403269671036487447379436252584241340614803021627504167653204272536285614573352707963928316524041045762752886311985847747271952136602895756156763983899570774408372900223053568176576255432444398628033932166946401785779212328093258520939591907874239326296927171050088921782396683218388003401399288750542076516506743263627960972970405144204680778773671720245900253575359702345537264825512674071987212154294816447216831697535942311680272401090873935340250364466031550315514280130174112908099651694574147125452060213714053251821843159554328867397399001442392412798077569294354136540899611318277395067629435198337568878065845877994958927269804261211589037934882951911637984265963510520466060867297999791069914124238636768270191654435915325231137373185573509490471411890669349279553948366828803238278442105600498865460218586086316553168569646103087846463448249361337016650729119085057632644904751833498531665532912744275925141257359084205331491779083031361704665300681165563248202792169068019115859291186503780981705236996937327231160901696747663414960056607132713718466524850774102857338071216510696643159433033409436113785959960665391826113863634676077600681085632917893877569309040011303818038183135176850943186505412061233943031700058721956705768047246964722524720237758057535008604456594030778989981809837853674966826146737532079574969531683324682681992504044548383883196511783927939534102536557238119131214216012758219851362497828781083663680143968432068392047461213229518538867889484898632944762781622616781241979747186813553984594393039304166328696463358418043527943681068753049515844119462617753795168858897485496066786496323163784619974380061814088496193425886578954468433626625862191969028778832820059951248927718830225966937212783051722770184951449503943534212790387827049043451430890745451038470540427216734759982628638663393938648345572801141763203066367341835195130634125268126397903270242024110147453227429846191971247598132515786994655356535569046343299096831969310255669193350427836198239704669810481876416831938310992670866132829553842744684020495909564335867469692801531451941383950652642873762636808197546058685116486907990771237790368821601396497715893168824820181399828069876382986744697007364121744972172952014788910351851439658557920632150771456983188307361958446453757959584171839953985769717172044067835474431191440515470132985604667321393087689833520288935153366991881816057911446236069767921280796658977302908532399299606901958265554176649906913596710979951324404740554968373700413391193374655916791992765455747092131446858791660446460437500804230054662695180405745823191178912317293823755514486770248193292018632601916894682587865584441148323135012603255443455671036209013450414562449948588699050177535276345412586759035344815561246788217656905640106329639889620153381197143419546920286694199144048446705057216374963322057200346773553223297642555141967832979755616238061442091825303108860012191364953226024615122976301212030509698654069394772993876415411866940826031776013725028143324942600169695225930904821512653166477142749755400163624944750645326589131433868113041018437941801372147201125257461894413393294319335665966665015280035193320079409093222044602736064000694186420294541370047538039749851307211866191668071319092890294285395346615195452503880884426370391254143899679221047010303109585289315561504649246650009563484036113312413638941358436415791100164037873704577644195377439241837926385825460574815904225781706556404387560567172599663468245975172733638307135370022006372781818840475040625353516728633270385536575148120532125083452266360789267639884244981913484634378838917322205300029970399895059055082759334995983373559828353771262633649774851218957546018482383817888485731400671452895242952380451662241250041003223805238544568694573731755245935253981153571093773941750290259378766333140774124042423352245400981750065461112592728038024558745559339067976768222789026777498653531541244466273015330543248640830922845959841699497707132586268092827575319414408931356058263437595795062773472814386500990480399558669257437615232931643141126565956252425390559769056254284492359312138252258634676732695514145049414001689804234328739207383443007398417430627385586677736110467082043504201684775346680328703814970637873444618492318353497227017617361551414176900755475256800442278265515141161945394587439921902160791592157740429705994452573732673918735127513084290337687910506142186331817904110790975776836577256440054282803502367376146363069882953139505097477296005408021911538728708177868024136888983967236630078563681258254636189691013521298521023200324439888251458047539476400924809597851363381344029531585258161041496982420632639856788987598723844469390224159575703147625092725269430424332975330335921778960956553160562336581047595628068156596461199698067649595183153824444224365482284728535190299315228187873731371826862668488061789615269779786003462345634863285789774658961050747602657275134064022458890352530196954574212245696286218141853837054717541600811605917809613535635947981730683598049698407667741108627117657913607979039955135772630747563466038493925856460267036503479636248913118772430368691242846804815717683241968390593213999523218322025160308897646497998124007627161278974663904840378449022341351507584272828342606848610436301275363619488101382831825428394111719060026422968471630259084357258135813893272381610906995692355194221548278171846277959536937080961459155519749746898854996981330790558890956980082441194212375932891990210111583875859278209401052571279619616083184900000322694301046502444917001747547418928476857800192313433023715820455637809885136376849083850019027062013007697186947745847400451212465944739545625233075160717647340639346655221792495851004310805351008552638473534439728991469263021900273131298176964222914234573327094474363018957146714257396912874999128019017546739727511280834414411204188762226437494768321557004199320017170929312022478801226337730126109276047899709427766606232494192981811237288703816201135038744646742868239100995258023996135886970801520945695308187966661042206950498707862905576654163766240532923322574762211335066574889146071302653993066242457607181650894749584341031624705915036713174528229403453195800750297250420175640477851250791322564013297170376796033510754375469036291601535626532928333086460011312704886262048807171750892809566693591972065507449199742869501479142600093488664735084773528382168174323278883527247349664280332284922558577635579902765046358781796282691428251056110593797974483794417250752109208599671022721036507670438293964633665089541514013564628746104015373467287623027337720347756040632634990409960025392455374146985867230196026977333593038924197700646716484078878793546331871865682502431285678203187304548795443108124085822101344372408067615069383202355764483480250709139730263455961194186545058600795754067497363594573008318919754366446979007877367255845086498767019740891996504228187217254775865558355755360331148626970008971525403315414423689307455277171983903484139985610857021779783035630435200738136933847075394709577644747484487171847091352965045824218794497818521523696179796646476188557175691866646641833657468526301504125131550881788914602013823205832206561514584351169584791387846121009081036894585708981211340925077471089935686306699724740792996214155053151050818464402411108840221178952023190730506864615032959737572827764398716345788376018216845500922967785374944775067165885767823019845302835934796732706985292887608908105876678259784272315848188354584883490583061335502317154250151502468639460673965801040670018460686825163622021337901131126358474138736101705086787542420907712167220174397455130557056956138869061052346082239748157336863900086220469717301112348151775539201260658956202053833445962671041460050529400382540437332429529026583023828468519500083438347967386221998953753789572326171356905340927022185880232254022517009089326283715366760438325693904395618778051790118666725469216855017101876740567574728151123223415838035085191873470546824723977026378358933786817823187669064156683784460788691197721461482464338738188141340276516399034858693685076989364217869670594847780650367886052353028448522033867628628600671103633549175653487285313866419063704957396274056775047328136625576315021512047507892281573689432961234284745242033841619252749595964354159304920308278310342274664209533728334651517312278626150115734248700308631202197935028027703318247903236447186847207282830692819664517939032095262222146368305688209084485541807219283800506664065138899045123167824798238105289427845013183132960839357261696614405017031204649495153702592781245890734483909208914008067811915989205076120287821915025941358601616121467570765852637312038816145666637818392643042513430395910192223178487980499505493496582967921730729637644672935690715421157736413435422213523349215568860141964908906682336429513168167867716700588676546571195436746532514473075549346297757971268320024747259838526540260249487421723157976687650350160002072619546450835954523307142953786707974196446940248961173706153640829663902059682695628235637829997937513790492507787644039025986555783202311561496260830917252476702287768526887883857207922434843725873176616455679844207524248899142040379807177056016415827793889302472933551479333162215344975775230436326941887265221265097635336310757395986215257727191533691691441573559620625684999064813264730952015082092848235548261092646030283060766770412581097359496942707869099720812570012092856872347972645902956361406380344667472385385742925247665701203327265301584075923883080567507277802281325324411592251817325784306617499629035452188957271293163854662632268857834004671774244118939796009723778360249371104215289803482796000625085516566216277600036639448023122294354491441594946136725169526488437894737311001772336345992769228955330810248964922412607614325762406117132855759648481336542207349201852945221280459304712310966132914532789403866233954686814471196862819027900915768244865299915657560510243054041229818366491940770205755379348894151306121630378997855579582319748616065688951728369204080393135471367109427492866767120600303670853704770989774782944549522047159657308556014904523737748480987337547559822730503298994604721729025560603083679164864603608332519841243437909855723850037622781696776729342592343541030358872539303123551821048594202882269555200173420936264219824506169778485260637762607468187548469617135359481478125844675748506110074327564528865847573516568707814898403964294029996827538121362759009262732964538008464227548794350726448464309401297711354954355129062493055200933239888544657280757394198087216779683973457435188609792331121550622640469665164542400727721791129626061836101655868985690598480845469115446509531432308942885461839442841019699768468121043265166868871085435444569375836458622973618348237292408654891995036339029767402421666368600129973651301594935054762283692362908183311145095887931506454592437993559365340220015025004992431603134365096701494409990985635869836823669587574690823024769951475708030485001661841294178727661892693944583439115503579226790213552015381340772421853769615937690367251816057322789766143469625783306162826113769494885399284986636811229986954645577975754193659809579437396556619183483139429622299844693250735445041289285968460445644176635608081389975934855227200364811007830544305562645886164535519039820482434130722816961661911597994004258906153081337893723793011649352204517857372424393312101934188946137601102831946359826462707482488422424269938433651206643329133824706088422409235467951133087892766278747913091650833942433619939724788771704154525094193181606261652695325436064558945707962584189478161993677644750367437060462763399312544887519670554149934669900527944160233788943671737599240531092920760158754625205879379697785407236912125270773629880470784896294281953123963766442815394213686764733781231396917798055092484026073059833395744024715021727348933275772373536668954336710838931916862245254473115810579028213537093621097901385002881246561292012112988481792298568917381728053723058581576292211181104267325782709623349645548056458000370484218956145684805681787185725204155325776914529744798436073871708248325867862351473259516188995329185043795517846496774234380112380609673648534801356381016294775455228586320156159523373070344703961030616908189922436032579088727396474575123880779421266673410728631560666284506225852908040859166848235364555210109757265234127264932754718049914354179057226851230934977415115453212339661374809046465790148198594671939934210310082427833950692273312629354909224202788315037787436213593880432754646410553879403355296528661656076095644798272086410294576430301017334317446798727742412017960714250378136831230528643424916629010710364665171106262058618196685515435379263683458853411597711736612418268315493628056577726315348482715136265597644341670613457780676134358531759057757324752029248135107866233786816410678218603101686470077568150896774105441036024214688351325401076713372635780148035869645581251657968898598486686691971138719765112961536021986923624278983814169722843614288093245191976969419275296580141088300115951760479486739763278126837772621217756023020422773646130274324819248847011809442320217188343469541355550203337625356380361314661231592482968445034176341666365198912644814118585836444767534330174214738415372219457716012736712000593704084646599587461341706620954521985995154798116516607690904618968403752479006574956931013164673249745685991763394462235191035326002544056235816744667126890975129041600465340692002097111906009638504731103434800331423518727330710771707575355011130952493718333731852595452947204848798916567896869928817417801556708758153474119599089131690108107386675719495727525298446485437419652769632166852743664345532825487854939302592466881967554037814584888640026219279909258515598356402300640333337611915509873372668353069206955893564080562895069647769046070027584809664056070615265802148514391660496531683837444111212939110448279895354360216561571968241575208314274186455921921124001186443358354964419462231105628957534556058733886705948650323194983609974650285940210632539984085633843291818398711212248171144159833631667711121179119062486241825019814749437704338014983931720247294421478854143979687055121126614465937949222370838171235021970110951245869172234360252626318214866120766715928245201281195358197316432187144426715188182253871495847575576362060584002599176260133919343786350440176789204025159853497282992868527322533098887294374777445573739896379954209903097049933728373884322487556834025076004644975701060032050197985330442171105183323560767035345524613375152304571436020249494739536887709148264016452029578725257293337512009190545938492174109586794573292815622673459483319015684457510170364887060774741983480052868858802698453189417438069236885310752915929134833925122865706509761568956595843261735124198134584245918355008591708854813903455059235053857363371118461169349762012351454299125547983190423590394574285413396649650769305784167945800884120578128993495517476512826272114343482063227762090286289692381309735332826068176789394501527657969499648065909999613896678428533754015432256331718696519903482109087856651136638710747382520128173547074454992906245155411564282838316463768830033690282376742929266129756819804233673379632445842167009748538974751769503025987289939536728921783686271581038241539993671500615483946438595687854477422703793010706618539668755124562116415612029013013573432608312383896807952988859502546782327291389555722313031166033275218222709411204645329450196839526076179942711789302590071407162954501022256536388093675795912867690601155173397371681513744058101480640218300543501460014664204519027072087842202113219487025594540875316599014315983962658803599834262684240009869865406307360953698066693584110711972073714589273319379468107034999388408118296757680576675844338891041165275766850241155005698749518649059910637079178668990677088325677974660163737583198007800552227959622440288180957225290934768195766398575043015672518557456338715204128509801089121641535083677788499236723628190434893501251335546334746074097195876594555497983684607513281037294967618526691757623193490575194583273812661792181592606827263088796655868440923955752470002447249428604164988804737710540141677321575023115112317325321153735916389531723770222479777353740625264831892403331806029047034999046780747864405491118330148709570480511691270888468700245601973427897846417487582016969372494046551004428787817541867879103728716986466962269029154997654180934960375027900246851486089561172434773365882215692025016653911203819918254144267446571927484122614855576867437115268956833962653059552608772485103856680525109768442928987490524703883891393333914025157869337285775315394841828908478835623997216886859278497486094713516450187520117338789319559185469466002312586929242148310496411668173358390956539725737661643798021595687241925280018537982466622739104205503048447936582242914486179005477707088818302451451986472317344691951428517176546735022265773914323012553005755421071134719150566437769409436696175379097353108443124558136239587187845778494668809174186541810897843030661819125767287524638200745302012003609604802422431136730378238554499707168498911827751299182347611319357206250987028344353951762179278355684960636307493439456991363412300183246656846452708716897439512394491480063429257863124229505637717841977171051410519058971518757674193580720457033440950603071313310221743136044183976306031841963085279648456327921557974639217385665625180987749426011338712113526685459406374530603153909353717928103329036824927402163071861874018534553414366391439913125498454371534631789070014375195954416006267276105573716535593997653649684262351227650125280714798333276853559466567924485761854839500098715119725074237803639880374662704223431597258344522814904341864256146853756201262235598402131878915250248087256936788788726652843147632197330940226603794301389933253619350688460524182052327715992869207970155891075309022287790905559724421138557699461036156209659349598781388071335321484077366327845831427126153754778532464786361773646147857299949131865771475595670397354285996781289664906421412256427678908551838367150655445110983936749081379085628017868169759831324314151773446404205748832556858218777082564472501139633870123353990828506607696759590892927995708161118219744405941457556021089675342012596902721687283713878069121307239325619720562779025120172996364313770121967370621900961103715463899246873822206472232715181859568446176938405691385080279257585408400805327347762703746451492095552876680097781470709632033278068287087462596919826894352445545976322642857706415795273864721883438585178610837775120890234097430560982370332306346307550735275041625971607403535423038025536628092878520048152751726617005387905722778891550401872876376439019731582903622958258924031970007911994912518906084596749644293286276415085001148771394914666296244735392298701400691186235829059665559618935407456563408488021491906720228792463190925148053932629536258698549783439929441266545135584674996229885363618226654774736527894394428193071165138113645131712440330978244886236188419424591259268011648318528598578287374493531772239091163848020472573858389401353695207759079838484931089996946490360428140448133041775812783416046133599030864572491330194500683042844698529295938888827500426969857602159890125391855216658053219935499271332782128955022792038904916833904082975589008417199196720284858542496354197779669219586415641354264460259150444068048405145582233235564392252620758682097638937528320411691743222137858450776978299435882199512757037181248206546522316553058381234142284241566799738263455564669381195990622514651063674302264717021528557294441946787761017929744010169490228522681858190249494604172910586072303787067687933786803073623097804512230490630136268859727094263276116210863466503654008411619970191126317614072577574842532555806808740925003183723040207975950119882835855908880612296472126341649560731423375858654227322363100415969116273733482093985815904888422371373982451327922375563395745589283410341073884367797844748435609274656935012184321205240852349699256350661648650684157601314301032257322242221951259527952643209871291417362432413760748362628397981357603210353605531936609917907541753071177667083616120828989777920534312664342123660937154675041100478787872629025532305557727952856087179454198915379632571477865860761310049363455583835116102327298102818193066843805644708592477216580203903679364583179025468070419130104175089661784949105304344029636083479059258948896429153647344930476492158163923430465441774617946310710901489588133673803365761440599851730315237273219227702373165977501806606021792947885154325888266491693352083262086614880488787818627239527269002389125635759450501428315961477648056922860169431182197438649067928873433570792217817117187368429645472104064355081338703749004818349475477916926084836105449746889226976123852679950394201842465082377763076720448619863028336035406503241306931239495337378329274710732234719585555964582216831654367514991869907941848330839677549542578633205911124423085748877456558590436429884677674630797587187047139176175843557100884717696484857659870202342062632384610537273720797217064585140279474432328776977531783279027897660395616418015099664199157857824115323441681748310788263872133435875605147712148654817564699028562424550038376188300947105691414985819208457122591731880865907333135458323327550472499100828927763068359451166246556217158179540304263113424844748743676462124020773143226121168427492448010849321716513135000782245732845919245540623367463411943004746650916709971245734832954074467688148425163370695573931844019465903049100672503550840484262029549224418734597186761741467555827657701677726692163518998058987055298996842754640243806196745716951333657945768397411752695705321923179138727111691517249363236523935528958712819544393176404974481806083903887575783039671414240575131769404062636117717593251626337568759360696954316538212423950460522423965343143141478701921236337414248989726056865149478646984169502044474911090045924199310928264129116544134530328865891022791236877421382385719683061867879484634659709862792924694147351358316067075993270728293055054763396661219547490664896844766650269732381935077320949778157796922823469186050552531297116235986739002633124751198473778208515502246271534780261288978060244665178831943854297447840757387714152589426920978859050053828839848235769188877272705012688497072529836992712001445593960092923331856719078423759829636256060465432528968355040812951163434015026636817790580272212486659244952735545694297389347816967007913870569393044861127180641806295169877558613182760496257834137925139712941587926831320285887634132467544253359083251198309860060351255941807815268903229723121500252438952023511564838943185618875777823738057858690328193013899260676866796202607130238959177873655745356292351716554657855627602405095037101582596868929611039453885773818525057260812739455346366837837656975012827078117190145233691668332470384754098698692308877409688554655029976368064328957423250889902456998470960143676296451658802436153391832738770787152905222828941935694701889245452596071732638693113429672491750735211648415392150697705625322599777882713740325358683697438288330012181125935967044857506386271372058453616956793325312943012363170385532793858890066793684022492176245758370614484302845081514325205128966120081788434678368941654090070117163673279892195180743590256642167552572113140695354194915939735641839006501502955911836409224690687030682453433593933170876072376320716826345676874154379299194790950017181907496090811437892942154040914809463029330408864209008950117345090389294415716955510584803266743010331161585833538802152725226574998994810084250030633845435088804383534915224218499308273825874566287669435065291704181528529006868372540886572158325592589872329959441250849618442231829146455687412670774184041517318592537489139702407819254109356783635903897772363900700604006075812599930619877913788046655673554872234411676013549408744153165545810476454081696370779368205052376959040641013230370544198415632886575479086715622527036052913906297024687650081042194153411490217398595474085025953770497586036168893093904755254452365696680735375834607852227852665316213836773714060558886708985731111083481568221539954708471019630171638213556461183646630592961444692191918223594034375849162722185399659680037772119740364316962052886510485331074162892607528284814031191667348851757590750288425265278755699748725911164122410321756226266449581077871770466699264462746191086380337279088234668813734196555198360475226759060982719090706085100343045038701790342997138438321325152629828986074295473803395797324399256699241012884802645707171775873661356988189552114041135312933005541259022759902595631636612291788507275728494375266124930974138466166344498052088797633876688430025287655103718845600559766804469087924438185929889181378345546260272360178147614787570430130611321518465489830247569238572803558862778627108639271252954680519666054887196342804928273358175414417848200406455218666030489107004078039262718304197561232012598278505199440343451119336643652337942920435927619384918725113153830087141184702764348723249181852369111678673152941263705026643887808526247687286475520848777537232310360917306779693588904354878245329017574809982421676338215389923705752038983091642000444705962440022024076485445770762379104964539732300158585640694882642874764094735926911044227925694536411543588964772687955431876502943561220769402035141913272896367642053856048131151503052081293927104294276047467896893972053388540665848028107172116565887629577422550572064218077901565229102081145707480490753766973956868665678768587369716040868955680975766710245030386131015400857278494910855086636902586586426720020576357422965488083796643017296952237288526564844088763947654787592479465886440754961842441142250747687007525821790268648012246662161599237058835773240973378391902219365177998685826706567500145779071856387447014316134535832822237651307634111145292059917775364668021699290113808815706587332194147086796194573081629639521098554218562247808590480067174483299895415166397689429181711442068802289377675062551445543927780805959497267898102212963297041642596800223038488874799172918239081145841202847014466014847560386251530681342283148490759808443598148729428605209179401444957977562128151815846338800583525357697919643019809746738871666682594099997679941170130430986707286232847110874480416955253469660446743947369669166705182313465766642066882453342660160111104383624202904881717979090971443633367234914192812475630637667914091102933694003987424882758756485116853453325537780703603569625876139074539953917393538865449227450851972592860767866958547963081062598673535004643904313490873190414101737055304932637262158148566601707810756906666201727364685122406667338564255180859693208880172965456772178006047665356450730391999936507483961082796285830483440669363290253331570708535381517622719725702645966386280419737276345099105732952120433658580438453806412771402180204032613691654544479062198167924750433215553714593212080478205692128575789804428743957946891880259487253946243730710449546850907978538388005630174493083263195751082273747927833476426566765845785556208812722015519655971717857790974299444727372047065141154448828525236652378361839031133102136818666633268390190225098930162468672151813100271420888076185545343467230626183535090269618011717009213210458157253976081975010685583501992018868132343122325349926917185805903537380341323759936321948912693128679219627431513801478493380725487456919781883169972695889416576189969671493377729239436800656022249094186114967968948936871904209547655028285537930725081496720220029198200071649026494833229462346792138704551418909954820947070745976900524829979177268330485460670486421555786894987406230491678722539836275938433854546861217788327627839040773760777690655025530067100966914381429811033077995998408094615805376439227328177087804611572364713646807602847847086866505953190744072748618952461840253563138211505559343836473071976974832862532949202142574137761821354526987357055580261843962647727383341424104842331625036818552148848838758555198138807783640438259001351721200876772036928425688436357777286340717889709333045468891856800290537721011208263139391512660610370470779799914766399876804687695765659569854735819718333314197083947677828470933841870167641564987856858664462694126944082741638092056549306886813397205808139471888025670465472986985751008823433801733655279093599731156488791060591256152864998909208226299820128270091180399758282859916919340146856178192946264720049856574087016952307964096199318507003463861614228266485629860934451086121784738651686584809453474915344430175195830745048245737325444634295752858460712994768953317283096335568970472432070879799225613255346884423040602273577031927244637334152369555171555521303990726810400679629228356447198984278571115791880080954799594069786810285110919962990702403889001827944446500738455975693436155479396547828638495176859046742117721881867017232250343643018476361909317147040938560899762673233433390787292305332551088105397228787789292817926387883274199417132169884336535604380321055879664910960640037873815322682993807598129320792305728007932073838581301322761191969296535076953729695067664710197507548901740009503576823238479762668847004474762503837443999900645187530025523229869866117741025078103487307275605736981009640798420747813352396977333283326875015041365142255502746858383995262858406701675191900216391817032754454067764635907264222632010672921614384060440831349350848063072818068629235675790690431268753535640555166138090969102637526612521439255564625035462637568432682877978466523750356347023760374192662795483882975615339931622568469534908652585152240129763004758572940435221401294138518458565833770778465726051264832730212002008056619291340603689503406995088052618713271198048033657762859681906028170969448609735059759462890160931782343046045918045948562909086341948884962563649952609667679938501494672193758887107760504797409305498333272664950587485917546475422960372865044955754305592684268410007100785499975120881967641567741557200675203076927366072836809053061435340411359905245286553275013515988339751327788256598793536390824022750108648744475276069667192261392290523834217253460907365576935950572979752309435287071338572722401879998265933363312041036513719762712009955811570508502508304810261537286163999253437218197805934362218446313173112199715962931819280870281951063885631631497251218380042348511924511299882424620494241858084570984604627381174813186017847735750768239708656959134327385317822007887428205163408009989596517301749096452261435110194837635135942447334527553798848693562120020115958908767733393507631298908567459465477595529118307355689897119282313229529579395037317678267495566096106573245413736145377139147081892426659870827762600624403571443403608700099218019309116836775252512596946412706762109939930443147645511402197056479211504680305916446658909531747833686715319730614573653438590299791408686905797046585466913719865472124917762123231751694141747770076413283556758291579742959204141946429589148646899955095297029913311658484094073435939508236871210103592398307361339598328677367017524735639042739665203108735104454637629963809135892040726821150705900190726492561347212995044338530068218511089239859764662390762403150919457253526670980836199479247220245470389552547925285639001976360272686408418074394345042606469584032690793796530686152644386833246305591295045517017789470366651346828938220622179183367945748269606996796749658202965095585467240571938636087151062253796232540506099817759022567718127012808182089921500654912441807173781939028277304631533437741502509363265898202288791432277153463807043857661117780401019673445830092969390449414842952623978804509264352202415865443153547332076856121345374734556863402490412703582717408733057874202945647811560037152759339503343025420041317351444448702561916338366219568343219491481223811085624243564900157571476515919552683253682739511977611610354203218996786650044984537757252887441601273617320315391075536644703154870571490243822802940992635207832909527819106193745942122193877145066565969361617200770493630496872658414983231338419357125050569592853459388030583163541566055871718644089034185659618785904013336370742810587681922876575810877993798290968583386158379416785844534997651209174937366131324740488843904870152323625466534563787393133831781208007641644725616148809258886081699348591175634762227377022437926878122373325249952228744834538551993040783688655122862945270778030578125077302760292404851974357204538295311933979506364386340613042876209153058045742228650662691628352340350845644363423740736718986803366591338064160206351245622901405762504715689901791723308582709003595051557300315987127122580681672034830613617404939144619356778487712672925930208610897267146472161516057627538903389510417448976038379723098194984099634803629168631293565145726231367733837328654719601034457686814728537048870286053833347730105354752664764732746734077309787986595943569751878203337240776105857744901352695959541816324428320142877027937103423671750856913596939723612313320757746369946728126307691542463515409055950135460930150640247543323756108050620002633647866549758759029065215148192625832885252631693157283202712869043392096316465101493932717006305152785355155968494240205865218593083655962715167634881602271524541513819446224698880242483165610644687308676125770607202335308886824900005112883933037875921754486808443566357141391562046492841589168224841095430892978849869751655882660536281271884553413081083027799053070365295486175361236750031626587794522675767373338118058082161764592028693530508689456198695397275932569824503198785321500253795203260911195297610363324440044446474180551583703973139000919501727571751017649482595533338330856491886849804919834731824580526530972283868299338133976511289541248062024038651981879933434184200463377592423140045559771744880097094754813818995936812693330743286092884735377189734935246181945144138051212348639271949872468758556511372145521688148283352454561980466600847001935323533611375091322635034463959795282360002041508801319204077393723376982831612196421802137971897340635492006853822343321657898206954034258213364458966159387596098913294758804644916841145916900614351234109915925709931913790493126520485292259346218502493467502146859567101996816194871921286281680899256890149828232029123558443591426078420886802815490882568758436132580435816835039357706746244571016015862823226631392235392535935235480283827497728352353645973787467330293279596622251095171397714071375027206314785189420996410595568150535831299545982374428601672575531190238733934045299727559613951880493500765048375571214910366754767739051933415965354477331336168794048282320886706750349301031268581910132200341558678731014093310777126840875811856626070037769426643834140216016659375030075473201074050031923829647032981365202006898098578680142154224316866986510569344484107747062561278656147995284947722103049029835842661105502883523991151416807795688602892909270441107018388670122836766320654674501952903887694901627946132227426771018449358962899060922278938253973113633411631598780604585227657072331384789334377383801218332278575608287833132649945236151363711210523196665980643416379330061770328250188244545940403288370511713424445569595595485019067571043408841697587050921671765100877211042339986966904232058775679098660906717376039071149566516259998585304084356081754986848756077141549530595276316970752514667352850621180858602445838973877199788615422524142083476129083647259470255107762746656351573072925459089834234039754580059967692428673845902690331706848116412017979024278503502509718283318352202752022547237465038811544848364559797901912882813972911998637481317371020886564232484798695711324482714108396905739901852143568719976819912856529920524291282464304171507552893592319128424466345584665517498652179333456887884754389091297613466678291950517650708284579646043990744864486943161893365048309293801393889093506282271663941877325962025903039693756315674838948796164591961760525858501693650456642507265721736135801777965900694873748303658334909731563333294944528440044094402605807917085783460381654454942950438684436812626642519364176368898338710712364340142110456461944809795136063088418434281385782273502979444975785631662687069534512230552906325225788373167219393803530097305101416584165898964510625583989883359532497089617497239331858698588693881523401061689144889014973387968737029216498886378930559616214476777003207381249103621269337380079678300968838208518545484905425430776077121758206622795371320583616947017745971681293842131520048284213616483185082737450461978018886411305909287833201887749940406886851414322920531481538232924124897253703585855470124939409152198874131769534097351492325929923477909182228225327149708246157926117077774852604764389841301078896743685725945619805014854162711828219686366712955671142985991278446515507515652883762234134315676353305039249662283062676404468635766843361116929445943546225755950499984287170763980070243235291260050593152976873220703469442611025801500248013181992896363958286747414694432968374403221870972816108877382244683191083479911185148189953259410836801678307321353857632081673189647268503289267108540455881918774364275657674774409306418215321098969816606694735030354774385843499946267418412015974084202646395348674901815037580896579887809451224544087285159857192957005380511131877098812350200544620572785254710250328470005098710674166868545468376221532374335066326478459065778443950516575537370594005594018108671136515022927427281336411017775214332994141979786777282924974224060379096844282925110980824572144166397961183297527118080138610449436935628597549116214052428006437910671279438159258516944783219323305416830255724504458097493783645917317021502263526838544932158798035485107095220282198983914668214063384450084611360214321511363161250112925700092792761084898481482892463561471104708367737702282693637051688418639182245606750621727833394083051510824308356162831215419359602037871265603374271556529118683057286844904135684025783889883264324471541186686127950405614034098628566749514892624322648600142139250171134987716120779066988076191269775621347080405191801719767896116936373554198738339052255625390430355629936264428888008434297842130727081267679566387227297078197788450468330067896905875134567789501362658088442908069591065692371633713898992463566159234126973423031375674751548357703202680223895393509515434791242588541453303409759772504008411648671522758860334094725779928004514726111996589245805362194657507925743656534464991953023201841263963919336618028170446073262564827746114122658359904045710115437705922023266887230767976300139299780785903899169200919182604564818462808131761753265356064859108364619411748117851298610093264836690145283639505647056204492178012705544972805780690316884091654838154794359321317750380229481360288200068305883175035557288624216164231480271615339387193385817849274641074306064599330862380400201623572932646985562808921955486047663852428115458034610767808683171882259610171089561155448599479576709464096413401126485680718268853092928499448385378282438241769774620839621317096189061183618112322638237794294202790746483351925574953382953585536337312380239100953868682435897838626622425505237553337483786351042496902487761397644220235259622408037817768619807511520650127374717333946171786873653135103396159031099406153754759316453018647300941678723815134550605531937241569536418956250436673222480356092437539292320436299688666123902728916699442381315214200651267992594848258553966023365652847929224537642429003817176643963215324906134336033628689296630081527709330437857191558494691184596850698185790109724161199956657203637742769078501274666238030261472272503046948737761492306046615689760834386621528556889230788804326891351968245620093075217442444346985468349944001545012134306515962317278710111047526424162057667141938106877031990596476463695577717542865392361539991191776353749656789174755397699307167550050550119694639179882796844607367810208727818960908092600645889726285415655304192990928284949160531436939572528539908017867240571612098100576382806459488032292396784412068316778318175898500342421473351835632609268102774865246871212483778273332491404253636247482866030333150136903516107329425410025644116160139511816491682174440898003326467786199168615131177459716132248697489107469026677937263355489120765265884869166536042089818393242888406143502492724175905057821190757642513137175436333137338397768310873573756854312063324685458210728050525484011342781833189533353535432310114855304861813132604094368667851321991938241808514324419035586425154600709049116291864342284528758023881478978474837199232017961733144152571186015445462340105623773827038180061056582068517683600097902775806082659281175086519333165243469337699788778297321858090281472194392183213241389653368032007879950293754153292164718664962215256377778499749309659189239927245492119414259857535776090847537999119869840740535421189094285684045689422494453106265044334542305357297971608152243424313433289948348405619472380968491570217492524079569794740857163619241340238089890005504946566964684477188826789115364624273452311052433469323467522209825363370451633270194132733689164327708199932954753185331857613808744409766815435688091338081520536089539703846646554889746258854651094742551914139694329898430943736361167116282950271239629765473909885139664799171008405886536014418417562565210796288027557076023783786044812667265961035907998946991976745365598975887441428407121544046217116948720058982930484154146664146983648747235698178133086444575132549191444056102984792577501250964806629700812906719870136796387257666760072245897805001395354448758759545201176340916708516300055905011161328344625253623540427821517206915878771053171326936321163384421403709386997488420245808748868098189731370066819929316673943795865373729789748834598600922683315149409960809479125276603205470888574149629912228134303346558293527711551324869303712603500464241557121429793482442423802545437097126389362399828640205140860123495437563336190179533568551260223624294845809415886314589393253214356347746241723584848110871449413698817044832981414812437215581867094333389347552780197435352384033716997378763003553339738665829322074030939266976097824693305232384445597716143462150101466902830095591582532485751217613363955120354032932572179169760776300969259583606265291518472405041982641842399393611556675598030808851744585519710232727991269027029584811907869644216679027375726315983467573025091972933334479194672057378138820705211176979091141434608081913662778729996801413520446218738396222926585574681965666562778150139818408116270815048970692545712941281427389273635552963707614435071728185708963032989011117888804004341074457683015767841513514878269187307002769414573427501825817049199658188102497144770563827009028337332374720965974363661433686581977913929824103667258766296874018955601393443464849150908406185489346226612929061741340365996396251506177670980941210016573844062726912576571740001247101839564065086333990375588993930130258080982590743112657405670705901970209636148434108665492086317078880312689423499835551257372543597883141929488392007310399888673385811724633452625726078517950715461571123667508859594374524276483872884824790964618786246457041745042910303971085747636003152368372183168491000826548262602370364362195686552423261405541960719288255399316765551166518213146683221444868822710229826168330313774799951181412311068263399268361837927516202724713191666680105208716124498331668455856969989445320566253838095713723149142296620223134220094476260591373405466027330514433588287239625391263574845384586505188982766993566019045806714140512581214585107848640747195153535878185646259676470300978964952767104747847673831397326134919962205590561302509398797258404090148959931469297955186544891558867397344950684138048248848161506093633097598701211350446750531233007175839510188688911939807730300580588332463722823671839557605293945178014887600795070981563959099809295947868557628638661021684870754715977194926327168123620657053317874695364998066490591112625453734509558957650636528280192332091463460818642748835620487188967183991882892936656474100778150900398862626608297618802725126286013550135574050334575054456805985715876125368613118452468896577219531874463364563340799383047579512704898149742562652933344465071447777275275227751062771208984319988641845240506819696476564146399882289402155140766563245117339919508544445343523571758004770472886662935204071416620496751857050377448162666961575856908265523795898427840876202637141456781999766275555823644351100394981304111041450797338735847810186516427148435605562051176528663349801780765349853745882128112435649248940495955610896038044560064487625154880501134456074731810600294944505064514464790095945463720012106887774234272395284556597060801502908688605833392555682013018998881542841484211147304764689704340063470565932130431380819519058972450595362053070057801994005543770129932347927050822436825693488439896922801681887958473787070924975836387744823278603521467185699207456833748808452303705951012627756992795039984597374255596333954199004519647465894041998677599827942858357695546245275312489007703881691809725233248608477687162040091195248849437183188858710068718701485284707286430243251441783158482047304756878335463970810134281598659092407511436458261647221086724165248526855314843352017148057812265562947437199119892970277101258455488782459077839912081957558741240283388811938908780800464630309890780375471889900879944148683301843969113647507549426909447140497513591951619116404420974520928321734190924584241929338976218641253893316063101166523793938670922651685001430232058109499654364898773687828538643808514416174137382918176553435845979675001513524411377618786011569368171223666466770517918696766310887801433351982075263075157016294834216779778848625489725593038713455747029836925349306682131179764748954543952600205692148535413352222168967436570259933391268976837446152581631628331981727268632611596119970201476180620884911633756356223005300025522437537583547006995753675016490363740148839221963384652560909693515782562366499799103744568676233972500288400470652822221130028680735984891262066508985264807178195917980368378304148998714524427449928568832360744871874096956381999728651378184254326341644756375924867172401991279207103429615133255490898200142715698339852034353809459579736655006037263834625102071120195629685668022377775830384943257653147669487983404233000939721067540427603122570695669539570672589196634962627439966305397433161024634163766344959694283380532186111101669905984976008778954766258396531628035309931651462266716237697781784915248610447895551072786398735492722066133340984833816848779405555778803282882950431597176408269985651377523221200341250908096082760423782255389889585212945041031525387668614247222768657589369382301122952605326686567468144647788970992001100511318649832351114823764601245579401526898780049242574819164741019934904536569218363519248101784810032320630128651838401780863385164055645373047536739062539644447904978146060425469421321464118893711515704601018777426900404095807406122504506071474444172812661969778842811170230668881248711589773111610532247700747613511525782526467703885034018532313249690048906264139428873195416676836761157177344576747923316724335889829056517878303127968136014112562710515514188056290201519402496874029552188112690933491794064169519062089999599891121194185324615974715886194041582086561033119299705007131091738264673861058257578902380872280331890406771857840324153233779586998615931581794286286570546900017292859107021057504921722920309315503786291709136938024035020512155207061662017355055861998085818749384190957362264269977887912909080595503960359968459989447897009497032092188636171998151356014428468332289364312013125669174361946550144465447303703540388657899828061122219939942747775903536558791062579407495026868644070666454543879935476645371517504672739144806189561522165654872510651868452345874980353017431270502556579340491862047117421074431283878376499027890998544495655011675921604413442157451162463285053673866625890624208151526091120058993333801872286940007105714435318387371811587126641882801201066514730413130539699814403187983573671679546211161187875477990466182084290611709854035831620783488263052883737435357916482073626889856703709221062104938747986667645771617659679081720944205406806037114907467176420405865956409279895764835935385923311971770331326538765303307338728538461765769285439641454573750568556688851849910213159022501173471329395256983634347085931292578905627009669905231673973469183535174229611651948409081780114270712926539327056546476969472926145625892641139087097465403038696464145179605059077875127778298639910944244058493009844717763925205354598559411524223428671789894590830596261641899794013037892584634269854753303715893732013008517554299126640693151016812444167524029263891171936213611878089395258077422368327546454257508631046159610629461792973668215524861397419668583619993040651022017604043825685675031545546574056830420514405689221428024571783124701497140241891720172676692265058227340484120752976889272795605058265481590811113194380879522360632006890007750839347333535865338980431030444159031003875818247607531108045844035822641453214789060860345980970705471421732326209621676619963581189575928108222915063208008919924984455456231808407905586078650515757007980132683579485118156975402695566000444259630807193731918132555018217303903631221636885353712976323540943384781658312919573598868754477612393243863258419315071383204984634122676583489480036195258811307455929689458379212628129846107789028453371792406551759303353692751192939767491855870758560436232897719748691875563720918757406772531658729618086574055214032332813356062242451266263327945966232978946989065980586582519307599030347618375713619380712661630832422471103855367501758798629003864933959173978410179621163564407035900164543680436318139186780919745823780134518567964011126441512194429606770062949835743072350976756662609633607301940673888790444449897366797687889540077565812824434448384760342957900226363292024379912228991329827876533311508270436359616010197436475997177320356966731583053108396919986812104637852532506176545322272377782691714107373960044775007955570967366612368340891027350336807573413038954653978184202922431796284978684144648853772004611332723355760947792354794105873808902875788910682803494859784571748469488529431639302846371607423040773997363374080516181399973659718007128121689284552206346800030328666137281808875243313323323676178741913524277752474568827902699649025210262969806338939658515949610083290221288011532869552879096302616864510782640645699067483536812458841395267400598312863301739685107225117450686538481363826239115276329778114385348310561668922717149677640630900951332150102375084345700666107917242502326051840789570117355355556421310332075621652882098877535398366192100754040270468450701627638682518667415871350969034075769211566869568416090352311369264001358739414201922109758052633963885918628261715623692813647855128312013276163815894533254613747643789567435128181292131400480621469900358175758764535362228810922341430050779766679666873803581460908011846028132993075056308455596103949556378952277036966334076548290046495504100548319029252765902686194232696623252776717088613173446422226046275469680670371543290744884922050589324491231263037301190886073427447068830323999130712590145282233672072020400320610946041508697791838417076704908747117575664447736753592701163146219517007423236676963210655266740463623957018545191786817281729677120207513070099391648868071022622296270612893668074430435044918650812265766518746699744886925771937164132051960440511946761293642100143338786476415239481919962660824615932435010406144175504128735491559987503696543791716738617926858051940992375006463061098083623897438454736552240913799736013922316835478814691516147630195404607902848636651151574305188502514931983790546366677143202289214701752918037589484401130741270553671227335520524430385391296223662780944074313669620588695093210103158519398290967252041131502780677913668706450917098560500836186229925754414890577910437732102095415577220792635242467021413712681913738137236373377708816213381715729859418167667347170178485354012897381721579445952292084844069371704925893036499515938195258512134123641580964928397749648747541996377884195030671807520951177144191362528730904362050536837826088308971454196672130675248515566955904212640352992182982437592073394221742610511131885499041196455474230553398076728133521361914438973473901807231184176146999337273775807836878287231743508223064666143011612793625334899188306981222910033842764400783856694893663071826918423776241453030512410267567984545307514781611260442233446301225372339621778125643113201492869749215547835202480898146680378048167591492179726212309184380460032702015174930835409668400037875336462898849074549838394430996904759303380923004512157483433972025166731508052580181174891815759924408108566971396291907089532270239585609724781525226355316369893422191803461745175105365220372605602191854055537445518406003011401362142984086396737573274807562142547089716735564623239549289318779881438911478904893514414103186641164150751891971066816214747274980973666996077862149200493145181013658230903964385949677052321952038687409217658151714992128839190142154298794654158448131876930744134023971370169616417634216269956703333155584143450722119047831866501088622839543940741070705219254465685279048164373678731370564471635751104828681687126832593670298315196461928181950156090948343104137689947576434117565894423891272816648226300707550136260693977667909537913327630028727805612401672577685714405923973753134070961507869852582683433826419447556872015003823494308124159518465607602216576913452592472646268697800378779790768001960901473577885539845109598018329276369148443517212955224442770892561808673161142782481936619582344622680950648328590889180355404352759466803406539904849404477213944222106591148666279992241849969968817185080701452206306598458136702240920056140366998142627381502806008409984550094628004675977816584211154632704466640346728925372488470512181984482093974886424349405570031462269643564651416839863451660068870953105865937325394420581305472689472361537907234263064184569624297588346676446596186724638447734238004543930100982974491601511576671777001618612107041668292774401866637608929392642969367231601547189848585185638947057969669379615846364207926807403340403258188915836311718346000721568844656670287524783887559264345981921907698628341590377241181225050756135791522872509572293918926959123321259837756767711416304424266760716222572428986739305216731803749994592756603728387205312514352001450215485502682271951698506924774561668309955073179849227200136247442739613534574243470457302014764885926648487643292494494182453784188658142663967894996454687878526736160811329354784598314200979890524664795627754000832174821014273406353715442175717634548039649478279290447142651801175483530386515235313906359804439896883936415980944300920623298410269319225138545422813744614906355372906011487362578649691595266774172195495395729059941586801350369569342603386102265001848610350194670104304340899766992057228067211241773890256110319652769618855327745877389105686014651030610927218858548258879609737956137247488872592863961043596582903785684963652514215039374647149768486188422040563302581994896668026415468332033010346670568336293128904864880441485102589866792180987390078226816983826562878606852206673889743114930785243198390773460996294823735237085061744922855587861532365811427145565679199868002515412733594171452942121163129601265774687313244964128406594949093426587842190847347253056419945232388781464493541614120729379231960526672597846403945533724362970335084360585144103735638130036598924470127758627060851799490670230912343206290094305589290448954114943965462308215287598363249332402787735461110473300655801765576423152939720274585695954742889061303359236034532376418504505762890236933634210392709495994977090482318891817299458430663569818322440480146659293179467489740354438950065306839261489254791738853869198338215925360088180565680489548609049514929453388632361855621979353691203617746632229657828905818309173381762522822815887777630661253103471818354939444128918318244388113269693733372861049538520011950880398555289732695787121591192622233893932167991132460707981518604290340870845167276626104347249680440711012226754264548049196065733734959182059174558399765823631224076619744044264960727383244356611011314907231743256904207106983310274489241432501521876469426548436052905258160257857042640873491079945456266407217432453102802484870462212063681182596970900904931689004779941556498715274121982570949183882867367529890671798918743966760849327428259352891668066528285290476238865607659395224570629781773466125301751740301932249988630140761160699772991166856924377512386091724957065975018700207796956555210740466614530173713779019151599910845916025321307801072272706519297327927518129915921374893128193805242155475022279176300991539513081905737210056618809316039831087137595152938559879468663394397322090611953864095975934897032596114299497195313628379388263870958845082004767774038148964397576359954794628912703864084027589656613765979302783775906868980116717479785643144720818902772418229362532160534515299598358031843666833185736214793715867220190361195853113869197887229838459377488942008858331873694002271584905379886787912217488448642709160281534935439788173488653989252539494503000644453222994582054424314547878607975545602758235987870646504587613575182472780117697413165889315321878294272090945305785283399333402175997453109165229561848303940768223114756421417970049666868298184050022885695427093114868943876755998472398494644733679378849722914958206872652163079014917479933617146735426838330320174105891671194414860323542086907613334265877787077476126305579645425902212629413055640187451148164766937575726707605864287429109232857154440424638162634734959605601710566900992336752274890239198038813428477084224942432609029131383374651882948444837857020427299137017799913548744454320406022001097552444360171862203520883488974176299680631274376754806557797630176296325245607321500870233593942873877813929681928749141609937687822348883159100502928056019583053276299977181685194432397339540804414949693496833127410317626263519882917028309139013514000628294930516913779878087419714221570822976927286682293392783079318899676440191316581816457552713023442993935949518253621428614450318916136182531078424716840124013402657430951628561231116821230939334898368993250019611338812853026094139786404301536396155450219169401823966758346454696758175526844215378174893703305114058916423000187787081021583905239541712554341654118614279319574954282504194104480548061019532294177532782072272705998702099915387558388668729947814548264160047858688480749464802129868657337493298324487184832139832657352016032116081867135791454026742798262193207487867747930267730123885126659427710948530679969644027216706852141371694939441705697856797984773790017497411157498480940667113658743460213643045693838182941010857356023555149324429846243416940300958541442602616995583960819125547774474817153357558426483721561051356289020360093815852655996233655709855449104139219009175479631288904913547180625562687378782799665803584754111806466987155160378011069230949056539610725450290585456629084017770742946159256415368473259032247665476469744449667361452236643227114636834343553654778965652344403306354759550363659174574937683068827758066300131578896563712874577521615602241075464580092210898980713773914570524644969980113762541933674040526025819693778755656459771003437999763408441539830687948333404589919229865938278729417429417970794835918040787885685616651663476217133671763896871854732966588537841238854399308162644669657582494817531926227857326638206376776660587995413754309086259244860857456051048073076015201405484065344722640323134777275431706879182826218030490020267300096472966697566424861799890733533007417426078303994139478695747445036872656041314855516331332397163684148537822081794987706675582514665696188084050386009873009004218217873309685504156008220659796060724012452296783802914374633524892253346826210767241061852375564268188404410882499153837824774217033973149172031267449240959552123066826888381467353887137068533542491665463257389122313288606892391280220978414353277129480118336006997521127199504311792892016679937712850206000686145868239896650323610621955720395850005801484617365838333156736361642245942482369455015098174913119767669934803574098137711198501388805126161652117884297781697033637964620939019635555259651918737351158638631382450473807695160937816090723960768493923125131948224030250279523598040152853940980439714467702347036548612762581657285613293978906625277642393565129806028813045270143393992014597187015780548901024649370312220810480756821163490174496308125320832774990699857395896761080672106080137985832671472791716622405559852056948312892480548159041455806618075606818085266044869828537223870837172065998709865305572858990064453361284521768950831331954045202329494333115037461451113063723017224174659559151934052643928743457681188460613678990023206675748574357072380555879007876098646638145344431776818826915413574339537840023780607387566836700437673155007027375401514339544818382852354102879436273768065964482876635807246622128441168852921660082924028562192604528014243054657157522027549553667966523429690292084236115266303189738103805113747051533254410887714171188350206456024377296828419231136591302514362982625670021326868641473772274870223684671918677802977503012666376001650895134076348524454175394719824694038495041106748562800724278711258601701384100142017000851751384458463716300882148259750926904358742254894151407490901875984501766394218178883559166458054370993065325948693572413420707266259294215637989825570443855713648909154513982034280427558011639442385473089878766041134619732749299979908510938905062940740508750705842225063286049611397203866951820338893557170211607932976837600041742366207537270094128120257678220687281531729089898465710463524146681061551015417358388572513239143138697161551164821971813278314337312288790337177887030337198742753174546771911902702314552705138893750778215398197115955793273394377763149735613161596432685828724071788155953726371691264175686846102800458000629114991674010041422173903169514050404106744764314720171255897503537694116330601047805000389910186562527481013562901697418675581750519233444968705259312236340644636577506717795838377647082395759017923715393890729592072884526433203506253930618554338797337774492310885406833542239474709982718286450585690189077581271547212465552805385148783702114038372437861203690942871404645409908052095414349437890010885294012751781574618056407561093453524045592321641110160945566060358030612134123814825336331981845354378865856041779730053905870992125032328972856537730055659311420654376005305608941718024049591130450140987816834138246095852369098293004466115214131481443630333085886852924097123872593269693865989449979129347792193040530965240593124280879610635699876759729842147798828276162102802622195847214512539928596612955947558437555050123752909404114166268120388988763916384912755633768041912005179143523999862152546702988380052322032820488499698079934430024999749498975989265486519947404287945030367586366468841890079510851338788744185273183021385649830289063543090004417425769661426063328449947868359692598072209513554092716309890364466077845775988924776701259870711446928717236960201132639062935796912532684248293401235369256813389619267076250620970419487827587143591591295138097275136141351607371356959171962947701751290277851177193915170270249377569073609446121727740870822215240899910205127414726712099720339528125044800912130710425037226340530422587874998102564274247218009166075812118190732342119215023121364497184025032092062417145487285396809075312495813490178737486588821483651424923412027704731373799251791965271148712533159405053274739540998001036652651552218584294465336955801871524861290029562299652334842679436045718978323747267589888152472613509452475420850515075680303159842500119883696191050513362619573076558040636275412144394491054636878466472226175347768428047279592333840241298386782998950868379627533068690617711536219912095147849568887118457399697166617743695730211246305232705497620979161649965508625236941929809538572642170477976482680697576052776681579857162532027665495312773261862955461664844677750680452936589627384586527978941541179695720817871435086327416267334820659285190296894990011486632437735149288143579516552506016878549560032384874222405697107362630264170245958759873654540536711989910040940798538203763186218738608226852547869065746196365106566155779437186249691144044952590396891401155731079251293785046358512764705968336840466270230102098375558852528692928017522800009444001952547125031446048671509864660822361652409546730956027730050138077618459605462819862749023224640828229342823369143529785255413547303409879999180239318775981120853976639039594484642586675057300994855970139408604802265104483771420366228689475346237152270439223094344593192192342361130236433363269293200757899730882774473606693204418830537342159889200622181990473996286072350191102570867507206801917221595224139181630821509164542809064271805641339649323582295078170497932406936368476498938097345865425766358689096273895726713909764046534761848552193150872810300479104335843524625552638154932971155028777507890595273282073837887954730944790278533512232796021987123158480885980708235170686960869642633338081009479120439850466721505780420720110687793692754114383214621861232809685759251558524975020176846444125023816948423159504613287250848955773715880614034212584129958988383847497133474095665451311367449997101102489170256323873840781898368773021817281486604046176548067019053321325719217736920745331188400429505670310950746310073488529235037371482178086588880608687904327510873424396783619183033269302946543184253401470348597332193100498611811148111413656114639971474727171672272414055708554782522421413897475747422022551723275775119501096950784608004993449145219065176326172978976395390916452383364070669537499450937819932812477778463616655799129014595965525383381449134521444212113522474110712987772686594669429421636809454422061718577590671511080404919583975600619897401561422854146320554571861721996842792646003403673467018066179846978577187012227073100372750996230255539073288726416481055549021390846594814416771727925731310846361466864523477684398200756307014159328573852495836291125273291209783103032496685008668717375886813708927947969273513087030293129832577144363316835959580433760149877396982478005351402605334515304843463395296688930933757438498202745467726788831729257045561052061299158828629682002041639041724362669919238345453200376697885166294607978054570169449544907641817751314162232514732282972516467247988040709409986856369858325327054323182874954781132017616256178355820493474887688291278686377563186825988984350968179205527604885390075278456648333775848341628371053420099379095167090659701573119742107367161875153686382497685885809323763437160087174020181464012335983921834496864454270974466403534604080091409153084626924187663783962862127741602972781089789979887255562544119854093105896555752246448066086130945738188753269043538264871431848119946615226443863591468544502718360760702374257302800971692084377321519612171591063311237388420233699714871131269143376485326896496422727683031241702107046413273394082113492229971467749494139972966352250635676333473936217634198051737781012196495507224314927203072658132627761979525457506559980498602427510354008894025075476208429220215271788335134564415083265532906800650493651567253127577072934738839275476016725770804967043187655850305790428366308468790033674043590741316681304069642466902802983903855964693992454362875010657991950307208352285326095783067316251196720308879945107449261703284089364762284064546942534110184638730216838719943991509476656908467227446138032166752042811286516229224003961335387753638811381281547946810374843597499808431928814293721060429979165516708651004927566286392817462899385709668978754340760529416058509760613569982522372093775242575502919756572069192104243261446050779303461002384765413732616604602052191998427202980057748202528948189005222319763754119438788409547029096847332488854048898572210052695461301887963584828062477752945778705210518268885847632863028924292208755991251725920994040136511420774390631876054105107902888949145975753644541088310361533179572955566287332950736892991936071761037060380913504883007946335943302475631178822087833482212681502713161469945971265167958530548947347456130934709732886183859613128299884092802167406718034694709058831672523082067703613245269257154595125397509089182933679079716899731613175667310313843985370437419988720167033555576202159358990820228104358628973204725440856518956299580655853093326546127369339759537341744402222200694618602307028467972654058817719588765610263089131366852584306696660609599115767430689752853163133521307061006573932418792841182817430544828540647383100176144928447702194372860210867272500739238460076375887754520159579726022327270510503871018331934128529758886798351352104677395187856992349129709321825710269831971900867334866159770944289083397847542703261266841155294029665570278381555809317331217076191374872636020387103461974854445748596567897752441851997944315562693595063334306191066344277202238977517212762916288601110251591088474350596748904586432093072163386622703553721406920762760336635584104018435869853889142431957972365229310502346101195034992459917942181994667929823865861820455640208461308418011128096694676204951170316221955626218067639442441674420535368482474048927430557577017138259572419882852855422897319299707117036769280727110407273197203206435319443226684485326489528912809408475399245293890180748086168443140614753462915279119745097597268491489282907809728436085933627176115873852634714128507629140095167100376504539694385594002640500438505944248713575609970224094005677825230143132917760569040359401277589177160104511050500943944152336092743984132762269043612065600163834862696768499773357737931270638808195937852421203183599866300620389365797236280120858163605723270723644110392367013271558575611304384606918494755813033984638162778302600127193323436801216927864763807708676717666818264126437463231058995052780351400668680180009550110705295599678985190551119369126784511714376331058318672334610866144420352431081804523495945540383201941177444983709258499158478746559258455743087645060837871741753431193468914376031803091276126108482502577723868995466021100797092499273718058792593038770987287404956362635352322491418453501404743403679131821752145647065758201569869955266740845114331526943318511775161112057790340137893321546423035164329243707535855796129185574054903394846359342097792665823736576193066030558335456772190553305492126905309326805523607248979680986845120988460448417439940341528290494919191986381760564009294672972066426295885328064497726628590623815259762272155913294022353139308419222840390529236096630968913062886254116814909786464011144386799510971411722601783274850319230540509976614685067927679435552854565039351325775681965815863285127179643325892628980031740336106325252489728625012294025005325082928749810674529615187143378179189092539351218811511293082651192991028177938268206534654299311164863680648588776225874646451674743469511398678122586111802634057850587740393462798828810251928060369039271102658065752609081042273097576615416177008762473093173429283358033297291362394134934101604129438956765258745818667659648142998471467949161416275938240513153827890410364676075279186469611568645064712968894692472519476483325235567292192133306326066027081128125456986554316573484756681503697807651069835791458515352650186033935661005629568518633788914616425284075621870185413740910995096117273809604045968879659201235679256546402198218634529376137733373698603961270904827543890031715387617764514053175393390824138714653042566176359595838013421593618304732797027358697912010810621465283224599597970847325058606408758973070356058291822427996226964437915201350981936981443823239577396330386574003179331891852886914946390065543566904766322641593474578072134988816457144283116828964231758772438080144413052237352033085398953376773290324002801713550259246524674408848626718889196727842334572959859419453168172457060469000314819056223736778170490915816444233552636386466909768747042365899048916979800903613852144592820714530619465273487295677891305413480237936379822553073656905259440000971398020934193318793220288108610185245014952184881539702253778841731764283947958843755878002142103449934594780278170186553455154874603139225735247188109441922497289443784129904934471192530485230791788800731511426572959966782744638134383068168176668570971896814614256907905451466744014321253985611756247570043857045356020669873821179928750920048478204517200577643133082592983938042076554945691514110771362036405237024867492907190186687067505390100557370986439295029838604367984815465188185022904138844022383574079862885922812856160355922492386505222520339875776355540194836682054582053614244664116162020764007848000572304714818520131558940403094703776631826974280664635877127613298727398764928534637318763975707837949493693984558017808198887326052866724484889528127063866558636318158184980951826062067846100189357258319221941735745034136676893556701262297684265497328638164024258787966608290107060189312836793407746227941980084123437198719437328207397451981583378669391937386723535042139572267077833186591989967679731159935897900619170092939272617216218553982874273132744375317477769554106117806999425774307946539353386325310544068148754097140960234197062108803716288958224021787191442009663285266625872462989617695542223961954199326792919255266707494593091439056928036899489445905047110222480720517829558171905190410790818258274057935209020439635501911323543376144027163959108198123606240198219340226825064864002667427170582245559664031673714877595667674425758398450494164399790620947461331556238631556754887038672471377773996613072421638413676577639304833025264947025606444663062183914874824262643990063171196285390176531210303425823850462328690733689356025693573103464068079141670755670936912421099641431807860769443446111691796544101934281775210961488444401915179491461732254442216058519581856955843215785933752637206194285508269458962220296841097194390224864627937023772988212293945144019823273719276251438025534946902093707535498978369316145591959258202372142825142963841159896582856456134536047166210770725415645521747894741080798570070292313727257884478717222043768567419117472924090408892888276714742247750607306499498277332491167063919354575759364664671460528433886219603677623243628881532963619826458221625715109389804203194359138649370032357772434457270663339104046305301821098387973230547952456596686170966978155592292628261187893920649513242318973697784796627562727977107133119524180581229058471473169439023481574953717280069101414831690119510482149321375661292862265107049169852448427174659807662825791849122168859783812368303860624295439564133142576579263604594603964122255467188433839060244906063106736562854049285515672904160271313826634400432371897640179493384578070738470257637361328590068493221085673624209821727150567250218147382600249828672999311024850896839242181772240477360358924005979480561994249560371462042620197075647596018373826103786937983471693758554362820983588820739617469062818396785462927129395310940214756588685837947119575358266981345733470651534789825083552770914922219794326474272900218481778210449654412959301830521974583841659105875595912727957509953604886456843835765189079254638469588151988121811741623570470683203889353884867934490117668769939239357817491956382105685693588122083720468754689946768329354234482647853657325329929739014323730441625323099175460052313126065476427333033638416568808368427356845038544372754546190550176510519687277208071419936688621274315671663448913092511829637107048938035685443291782701259529349853227775816015522141464853149916930791518384410623399134097089060989930464698820865867741730212683805611243099201765837657587789775652656392870057467791725573897135194869235736872561985243897413766598851098369734163596906601623371269842485001655499496284580308685484466478017477765153378629709585365131415115925932879166333071701805422142126001034715054058256923925996253368444402761880048712200610995121619201346525729181357921924700053181522131970766855731486238874682573939670903431580628974712320595699145838271457004117175815892037024000129245715695142997897908915362385122462603781056577981290173421323277388782975664861160843844433611261241120373743163219918057101173491661798954886475319692839488882026958198694346813395824163525130148903904639379909052763394918757217843834022116073856463320157342789535187421986729116806568386577231396377974589544000501827723068064645254828262159166176423684201286057616379859463088008873555589885999349493771608466032645761806457235765125979514545605308165979789748088643976067010612448449033415187499942210619808252179848900894899955020333191186051284524161683965014607807463156619512806645909343731953204494051935161362319303928267874246651054416976815034659122601909231929436123478798485202047254145192618964929419150044593431298255292161518881344315217020300690535271181074226364201458408509999374239312603014035927252027305411851105233673417656866768264078355092451976375605594544852968456054294995864315700481169970088421922800484410844476791564036874699053176235636436972648587503826275069520309075328959628657683992398907218133271756413052414272370912416670086820544667859631729593043961748949455183102035972614599415443487034273002657604579410498360385595853457620326450886796425534504847613633183207470771022296367799249255266225841803763612299862058855589936254497127064510901190931263405344397038141070901295401690610341444508223623390205856494882800956698314243383403422544811105895960039056345323512523434873610408007692757323657439472845804058734910901147866604870206547913467847686778347521749888278520951430978845581149043025254739197956081203488764929929857285731312060378784897600316779666048842694949382605171922566420970046322452078878541164873773683693359783201761911029210594923593492263855503010599488359088391305952567903401024910240534062315048381172397289798964092266691316648431518578847865084768698216404354608359325551097613247832016214781824187919183921534910127898565826405006380527072243030672454617940324632743108447599923294232651113861130462470974701537320918717350302794385181032414086978198932502026648298033912439511225688808031070353923553112688248802698310956183674345976269330021759939688300609173635135670434955222292082061793964192518605551851365803668580670452738273037893988982823968620135882129650999921017408543676839584006305800151802650327317946875170904587534803675332898952660400396395075909566882476867346118097372354307744757779715646386820549191924852382047887412411050324640999680646634701876162344536207033607801020673874338003916755982439821145569391576256069127406451484715833009616627859553712023924401759262177452922836678006909774899904326350654238285817279696407942204462808591088714870135653569833439025026726770138583396902963476175047857707854611403692558247786001439059930025268428384929283648956977182097289096579794383446981304282404169448993492967574402922079906522870634214245991234760392857727221727780353508326640359778200200422156564076141269494021841006551959857772855220315860959039406174452573420326058397417064337996494851671948693230372190552535667652682090986516731183436747053157773190563451766223968429633250540059782465873943052256801788942246800423798976232230519566546240452811719006581816217838702335770200881439056578989063112896625376785584739150110251216473923832237978510117792206657771450099045412456715364860491267811714047647852063017620319622967110947035860036442109234579217330344468082744333981071031417700618417380755466463930017384602997140719330274235017759910905063164192798626497450980791079979886740672756021524315171793715257297386000154701304172688547007870097363382231699472767968801142597363991561895903886284047863612849217702820899799540109369944824874435475759005932958113068459118021561639137562358408955386712884767411804513560307491908252046520424430657590204574770932901792213928449947366766465032645102089807393785893004335718210919448232474172774451146039511182266655798509260125680847552338757180867466939502952010662057253048915773865869207184298785731393396587687511502852701350016639091463429147360070350272857606946933108013103643547685628789935002622491713038682424668065255268519290558309882119117467352181774188786548094482414254485575845481731300799853390023229368901727200040554266684629130312399867324410745302586172015840550285876353053922374190289261778772633941667228779750573051892617539755804568634360990928704247346353634508056824277665621753439720201390493596420799391704121046088838329545678397996308358282864773946090810827545313952324676202701330974498402938071184165920215508195130469070834217125652613590399576708392900677514180677905691435768851757036417885223000275190864597511752517332363713374092761314847738819777911756106338352432575643147331902302553366085367312027571854645237631393435842546698915618715948444380449351429363158978164669370946655249765541625149482731299499012876325268252356571129185157551610366636046698484198764458165207428375051097608031794862347879366258640512667108943145898528782261231156569619477412241603635257756222665919031402355027983623376587804107521831546791979521742930978256756593816327762410279036900302468542194185718052167877542518430022576005934960519322183906212165896026467025898118086199007397112809820987614689448923022677714565665848467149814112896684341209991723836529672801120616072980350046457496689858177427296325880075054881501916906050942694805552109549517556527386540430074302244016778576276541369073721537425337586310452764878407619088034769481609560778639144124724286434450059526620781058294038109096646763130198794127073707077189936627326471290727510139573461178762362344948436222412708272846465471204865986306813580294718683723689530860092439741948172709721864682600653214591201301398893836185515170297576393659159816387900420786924261118262348564249749067442689152473232793538412895942220293428693409030244596404788398381855103316699617108316216501767592429835003767578891963996024091108796424563102363547991382183168938984921715853440314299454427342523844127020213627743690389062179316937543596828522029928772230565351955107465980810779092440108909075500298999200083331607861336565335041804849857543156187597125289536202208447728810285546853877978127560929402712991478329487123304499800542490036711237197883869749127241165184926809327199301814768404531516042062046773438519598958477630985815310318039685141681651761036804830013168264063254730977019901471849734127986837010487492896961143912458906898114413106652930610485938244167915103893002488660067066288336706468162517846189448800555295431733604990301700478039849203908952077968576040018580987250935722727314398386568303586569197458483222924836933289278644958717433854547602595500981579106049188247875685281275294218367500111145247272792957277363239982011155227185252228044560283013256773551308418749362327477978919435749734079226875379090105386542531888474005820987921690938424270503878450417795609329163658941424669134435914653131016733646384236895529343562603013779195347042922553816151300494737890861245697462507331622153919286437767991980105434519577761681100603769706772331029537722203883459453186809615818324078813547345157285584463915629822797477409775039009900919735967017255031751711684721328459438237988760280790475205980986947535132799558505259248420667765314897572849965696025589068771977819490178602661033857408297083490285305303694842030337664645167289504740810946655387838135637000182948393165620551227429101078514961120269550649010348463187861437547805343298269163123264166748071452286669803169607226142851706550694958759241115536664712708100808620435240617943673074619833638133095878009107064289615848633478752865718322941707251705745863317577261568934088545286162236403053517269700351302284495873291089643071800982032230154379988005914356941334573111163322052286886720464167792519855099267975827738112109097385247450579242696530021821604023273475898388485554234233648377158902206065051527304969044580802968419221897738150199481279582603048892533118799304135505289197242235136492589228443242494106526750363452874219583009335794168620385881414501676897271300834027091715406361261941018180470190280097961779855400429404033894916945495051648497733894159604724390134684983244565191100997989341701190024379746428394500847238496012496256488252818178797362145769145151149091514696559421485867014221589883988096452086329830563646334403289079218274443296054950545492884835765421731496458190402085709119035723856804902189215198737094028284071820017798120943851120071691452445640822671124214251898551995204754243806937535562254305905503738048405974877062914009793413138116852851147893878484444867023517761103123440699640449769539067275574504123544291816011540915095418558296062232663850605561940457384064211681083582205333743100401225632434889652653776047713741329357936716283763562136948041915557106480129314589350899721671992191709495186008350385009717968324696318040535051242043208969906203602652266612174713878456019979341092047282490419495420712034001808844652923105960159724799722434097426969982220450741327433525007699993273262037502491459744760028014201994112834226908594261512459127848893164103252819852539665640544318693513633099237970114740963383595955138720315074867361368873638289338427178927650835229384215875625413874593826686282430477180794602033599950829923413556926330707375589694729608619788886519708580987187715080562862137702657852423016577624666117440990710333303916879984236868844199107076169546300464175450971990545881296325406954962531760360917048870834444673637178167953206787497118769410420946535176306097282355839881387886461026548195448804677294097460194680676005647830615760988280028198818361081716099346656293757043986764382473108763915647407553976669459306779123118974061348567239250649409308564864532312463670659985274475757585678543141763841979778204147123833831099183966478828378987478297009970856581235075590772766051533464465363699526462909514767941879677989636989227257706854538641493507758682703168755561599812942362226805603110572470999621901426459566034809416717152715191473246048059395958147276967845054080270241835150832036373835777479461910465989866802683432313933926454969068742381241284968884832087962131679102632548247290662987600364872100542715403101705782184708497440126406493843164192771119630282015193988920489420274066736025740281798862470732582931243112809367915993109410529631736811527226905716582933495746847683346974896814874383141898622536403567643733218268527655528625400654652221142812065456846188325357990309826972665741788199087248075388105303695478215351174355402241354306520183863753955947393381198504232541341975075760564523511939439105405250856590155234920682580022471469727182760765045807425523539608196952366765941956842084325555890999952741530510220666805354305373780794720750562525035157324044304066889063034563032862812380539595426137984281502417813902567923177036172381167495384874876079228348677490715423756873828724091876359826530133071395055242600378482324477223637861567129831293254667513710585103931835737053008048342578627614142389426177649182323486724901018492458860716716493253090845540205948281432697299277909460740559286254615003883902083483320887632477056181685925627702768698708266120915069649562478373375683337070933583427341846739047650919307901283791983440679668217555701104486173169550095991765859355970531047098020616681879652480008920215272065228863680160075080464371218175400258319477385620934586726626924061950619732353532759219796638849113295619902055365483909792866589667736285265567113258696924146152518068551357049530015635439433060142783448169898243599248052379737648707464863202973883829645029279861562083124769720761682235054715004628249136334195857567021084091152640709919605864540818959978396111607693856878672982478423156165337705341383042743179315424337235947829179495687014099584921224187357753555344145106098222497774656145932177338850889709666090364545564514490350303221934633232958087380747618036317043106237831646737540733635268450583898220710506094894992182478081844419945090073570324975999829451615474703443874738529334382604861597046193393632478687376746655954183945304439483470468016626888153150403595403652020867548097798515640005521956127851025533016706566154393874148136708372737685657756939195215683996061529134126601742462713048764106733897579140417854301781873282387122694940736083281550961123836012906515398330763908093340878943759993096941875829237638036040721153658950483932883472933067320058489799315665266540512410129253967893936147048015919006910552508761251066392720337604056624988614358756776509739579628208336502942597414079653342195994167764114404592671729096716381913809642495136715242292822015176443263010097088735516696184002509735829486833139320619851928063978611839514589505904657736619603982481365001978310485383454031590683171972697712010779408943255771763832700158192032631622288146454469513780426420445793375394177906776757762224327397813182927572747544771672700314616575942887270138654527015206046276108500642984180926232096833753298535791953876988997785572917245106968959420238835458518903978420815714088548124058617045578469988432959037939504185836646495021823358244937742118371447345675441279270824921366548542183435595769388826375184692035361472899868618488653810487532629804022414746492342561645659603758436522988079503158781938815402014807521249045463265700315055673328150669095430647001016432444673094495916208916173871034244086313852434242763910259686088061182111314772310310781266395027459879925747568736772242197506908286549504151190472563516859403089348714942326100591752474675393055904082444224678802658372761003012542892573379576832757437204140862300085126265457153066591142280638775674370289287032183938823920862797758153369545378396286969506856149569214564763605853841890540136612755379325923533617350008130225112691432859444762550294949583053661112476515574940901695481098246465363745929669222852482330055436357322104104239923858166747354839865202481138302561896354509342207262693689105724079526012905899597736904621394691401787744143728990283482873406339024244829113411810869386254549918291224591912784984827289871995581118070985461802561471050764989577256020985637920999197953742883004521335066941491305037664983377544728999504707502086474780623445580175055633147169049536630409689295504694236565994305905401560062889112572972713374122464701004167794075288929692115188731260337548446042050532460399234376856763524183209226255112968477846063553549446056376498477731494647898063406836526626246164985837557391332949409235456841031201527994312383684358608487830713471957541573089882206267772687478068459661928438374885981646941338280667897711450128655943791815613630565993810218582197892618200087291820483294521025010640309635452824175706250633254183392389614826639348391386014455675308049452636565186356524007396509179075775001288910291072459038773560799243344788746675621382066036013948265737466888051455640791733184728571734657165060646252755138628550236652035952004953014596484930452468575335128150939137022500405794082632377084814722025576289770440700617703341859461525354998416058789277719067020265375379338877993225398497146554014187521719070930606205361577211749609730557014460146026219615366242466034214499756226135926370650849568824003038046964697662304585137936677222885659384010408941982401007684644097945777084761414254395314972529712091079769850256252476978239268594614467851888516439665748976766483440629995192242086859461818135022485997873371377445558670004573730728503680407281620315133482864826333511969146965879238152152831594692859007866216358115450557025119146221896768865948483135148671194266526127589810261726451731087454841743290052654881189173733950144120200156554919995277867274057968204512954119950010488139286392028283322323040873185114330522320931616567797366443117240405252883387579230035548648514805431180482842006796625862038751758531338718869323851610817964565934953347117437692609248403165968841420469332214469377688519046698253041322911734543658046576110065501892481673229816159899288709937687555322737045628695574537033991630265054507257821676885606041404200824614422749209507632086740680257211400934306786965467612079929808612113947652972827414207450983260903209095395320889322027926712719132141711338687272598841382414600546599660778113571478017250122189412434500215652243213713875771509037162083560307153039486027468162164597173481426053284927537979971609889930361705554676829134967587492263614706273627642323365713757465880092774167179207658879833529456791460376761250694305998729125352240506211661154080422812621002629703089962458992173643130524522912110081377946376568556300045417414088788221705611848722757452458514234683232351902088169299098213058390642626535167358022691431982417229510270889301445488923520011296456680953542247366219055186351102546054249432296129700691445570270018250583412405514130352193424196491431364663447276883115457122106360702147838657121094373584718104972855380811322326796639876796058677867779807432552464522084016884060139567825154926686297354005313093420881726256702666992808162967894069817495521630037606527395237377398331077946839032087405512701919538026620778782786788112177179924031558117789268275942625336880938824852906865818730776755231815689772770668116476361646143009406595656691199559175348406863103188037049583760511067400285303115957379929969538055946439578618779292151047462715306403580924177432945243832306377654339188249920258187962210962355818142922281018936566199663687619837625809548352629954590349765329005982595711579386473969627517970112409537691645896339534516327665690044837070667266730116042856816111671737845984226619849191702829709781273805133245100747740384915919563036334071982665087895061977166622050030724977253601406271351089666123331230425284217449351893327772008481932613239896290963510983695026496305258235031920009191327559501789326946175885112665488232823550618865240523379800268711270328470459345446337470483923521115635783333912450029756981068718003289982276595335836701076470584081127423196629480347807640607331912797076326522821473422899225799274998557253298012829176291159705584861999598353853209851261108378139812439015991056547649519682025711997119357185342187689534436467558074544125201317675011619047558451015698382985592231296640706737473828158914231294800342165852695908648111413784353708848128826378115219949405051008817381504259026701098596236903034061387079248340236570144148990471314663019749777575297634908274612696365747736130066276843952947038331727168866853343634742755490633873269213631489028661589396051570397614811266278006702938420830720884519658652860680202548161385441457594492666524910331016591459074850866010575012025489703015162843214703116730565327459566775187020847033575960802880436070965778116483022804919925026377230432180331545955626239569361120513340529707921614644996027736349215725447479416180724365349116727437883691076622663886968717779731444241480690288688833533699783280941074425394769744384233720419450663678548244186333760835541740287639165215144261353301882819330363008459122916411601541573070703205500436912096817727836016435431503346297864349964608799973783216061035824460950170991272751738211088331876043143640682976285442833623998961312757189388584101074307486950658521894733934859903983482707972098498044207155379137354930861279181291866531750680250244922175141270774141083290772104514215127927252986037280514589725683455781890156298933580548833261362278894426639483334902258301442160302735205502053360516768713037493538725351373778044693363653374267979240861648805204868947699194657046738892323367250013902849268202808104693437838746750213594847420292530241481887644559464662845175503010755420762792349919755095475704714423142486530043990771026315771810613923631972675470777976660860942030893628668238525284883387081971893016245941225799775969358658714373204550039325072966480454126856440573447991638024950663665525300299456129199289124513340874126374459134431724236744169141681359990504494967958360442271960615596148753432662816077985490470325272430770644696152031187500294655661979420250801335322023151779173259451666415442398298197868366106413282783903199929509404055961434025864254910057654267633391971037706039718096600521025454505253050764238837552271300753579750761660637890360481831458552186113972060650833696027738165309320334893036642561857414940842685548355761792969540926819268240854212187387255635828516487651190858215684651108756245696090958566251888962392732978371813265179654510904474085233405759706562050193984994611505918927136114593651811130538907617592556968330982761375097424498811167053014582616565960088581076549411387437384437794860590614861347649373923294494863008009855785199989921131584444787879624276713576820526439865535569725155868694852789395119773891141352648905159600131503552141080269015836742712484733339347526257928766924458479737370222574356862471111105982752569746830796065426923392801670161872306139781096247166247126268101872599485480114465129955229288886173450028085376971388480633680849805011718690482116628988394591489712607204501781912111443454297878776664682124369150521120862145292124799931455930892566877440773200381630795695063543331355065614495268755841418917263873282983459976556303732740123962057468384593154836925274079936115785037679212120275531534544981959684155319709014909589750124355500213021649448323950815749601695103360761244290065640541452610237131958630174581624180558122649825598245344568440725194722795378328539111261812553585255455696808861406020029609382469199937188437516188587701400551405396691490962261269457046223836109237688228878524652001574076443063511965147970102261417050718131250728665811050768844788988790114817017655429145411135514605392715060333355824059933994850974021161597811907008828326520999070155203608279875583426625398361702304102670725653270028293745205222313444716355239038095439690928763203895305657142896114363601763922408209689909918377755261709062853419270489990934952878671816998580730689299858925783146589465672823561473518362143955515484887806996158854051903058195883441084339899320179968406387263951755059379178447444582755753090334565182939088413771570036425771814362087254522885993484052275255407859175650089145193143109608424692264868574700300038759069181663750053497442823807217989738664773767773553542026222257701515429017876929795139939052291708209234051508302503406936832854528977014628251393013354332260093215250192328471528655232651605831214506927686964647130825566155030328015712016393967850467405635812649131195206128801825645883667441709432587648840872604025626549965356643574963930123601386920419195270263014334837061359775209961454378730770367370413205392291283780820452195623974153436481963651458358553646465385088334319020612711714239205589619660226519576611199050848783357423683443397573081896977524851744114684054960764196590711631310558617421230140743787576890691988967693371679788094551529923994480749182919578475829674072319143220252705274693439246194788499217019249177430081074891245694571149074819432147486552485759808259817922416953319158682867532219858145562508647824035193287958367261156709969371253964651213647918564972646657049289071065084496147240899376649910105639816997855109043909320460639689513837820277596774662357155681053015467198042670849710091287650018963657288426393860411743653406839660585981723011421954642863075391762653122059386879340397588028570081383482451531754296174250468154244096584745130958418447651925540109796639368791895231709347154511859528977478011796968906103296293414124592607572252639271892392779998162862760555139111542025365181705552617089840097970219464860795953222992987506748710925964573346866852227787694553736770290258832544784976900872192674618225319564804914930651540699770431483857238339864314082705101646959530214337578320588695404547021244440642967668406360890775098134311382477577832052351518561207727138210864891566727533760880643066279713167440836196749770772878889644931908645345816618815297979499832654054715229863689447850121241835692197627743314532195941274789808669304053536709350828115144826817030072396922254624564249157087939646074873669028659224537017783201125648666609110470985053236569920790419238269240588301483340631096081332727024455912113991176800561487911732449324097932665980628329800882180465917419803993567090852050831028571069579589410757169268898535580691649515248783527575499149878579725291357171560395256703316231593306705754925893301780472678829806994365317573104172595073573390866578083853570213696091842398389976574782708070484216376793313471186468720722637734745282087243336982149349162719020983837430469000107492070235312218222602687821475246510262923335108105297534061204060909722412474707107120726710674131397464610996783199717999471154777119842685058483616913172420885870491658422360117218695306255932730884015620146707678418266713896845429547245646400826087772377029179582077479414026021158697752583417011197516655931656330930849864030266429276215696552370633663314567594902390393531534262620451978398006160888387548317541852511247978687937737159573604796449040516023326544638351304989320780046741297159961369781491461513383493322907386955614961149764614128537014373243419310424134062824883861364092507349937297778374372553028165364612400792097291465593036810870984271727478573317076619918874543829215473229673165213464162144741895650736149424299281781214641398249961225667194176779407513063611363325926637904105885886456590321035076506477441029429995619291612663802007547743033773671800000971200017943812124404535081967428666509816036378561815846164671833179639394552710821051206493157345310396780003672333820765847207140414694541669477269271625469621599527003313115349561334012182933380739999395924495540486654147538190715675036314079367958072334046961634386045517630744125684163718029316052282605475195478200515125924544836752021397872782574587621994978124038721996142689628946330012822228475261822817067879736684625559620497021548114705261769553362861740234999941285314675383629829537085299631156877348803424754895640726237609506707002889392608291579949403818488679862860270092240188687680866313157045234482541981468198278310365950694431899237280566086585955050982515435347914207978697608160506908178401919517677873680244204665550421506356486071589777253517524775761495767664396323194958739645318822459339749512799973782327397206146075791336028641484749164856316704869691718073552208695097418874784884636903135738062581608576251397232718302543560131079812926854576658626416842519491903117678589889993771964767968156001475972023584856099847417353278004396664582489547290678984389871810706341544343196657967983630126623709853799714624242097239966338402519059048924370205712533251396453957636373229340796475395441609466391212086287604364419496159865630574255533299998475848908844303109847490637987730663194918370574126015740488685622230789736627478711859089651187090885322628605779850248290996046010799947877022006872666376244699928117517614820477739081869342435069002186851304545998702575663288852837353401668175729464263806407158646640380958053125879742217498638713779156095002089874069006298827239183011994529726350714883393325346503941675788546253701348796469676434875177077477980756426388682983816407891613791585355857193529696091019541010259818557466702420694976399179926630108348903847391268325241877017582318433609666862216669576670984309326226535811239319865074098258439710069932091255442712084004805905624726335046734037520370525857406037556675163316629926546153487697686509064906333474929574712489058332689172971487909534216917633680245960937457452241883193864494443401368128683043243030282174288682893929057214687953034103859897542265173705687913711983399145523859397038615672873837712184960576550720808671255130588157378890589259168963748161757688557463458573233060352381262604324929834298818551953930405005667260475352024194592930465302537232943342240227228665473250360119893437294900734701890936089577864693858361736063270813991776880671442024180563120422419345517439196329861229479182346240602536003156624547523782370839419537841521798284802824402626165609168732743378775702305217199628605106534827287745050611516800973953062620534880830133725345743331084475155202429512699007875370277979924530098569996595332392283049447701650693240597264424647878361346348106905660776306552672220604521748680787631269068750506831621105239839942562608399162466091219112612958104290441074893395953323241328392799702719927406775074250322625553505996064658924025126703452647207130130635763964137061083816826371782242618176332766477010635011571327175545499898126021634744711950180074992801259218423649569108287986885101881265892591810896164584574910245580950695050901521050024384317871338434317307951441525079007914276183973265443312079453921110905256730223698502601372342960900274264142301258691409967996530312110716950547163985894902519410890688393912733795365417558395018333116912296940267172402508973768730572188668954186212129449559087003408603231708242649293679283691535010454403213377425068806298142755947453700224847788376043280919743105978098293615669529044819320378348249869613976887090253874873475289814460798257581280410454521142159661828796661671391480592146193251909588935839270766605972917231376785113461780581648572978367902147833038957774516953638679725872509690148623384262129026437604420279475144232756145039170221826336079772686321265582289490703290024907468091555224273381862739074095950923407646241699230954459227330046307311144355853262247698529506065237616858117746628163769565154708322847992212007461218481468324625814040753579966328933555853956553088808575643314953868817506162460932617976368837711657241158543826977294307288157970266358146862685574161965160933027573675697881912984265518608646608135410395544181729582717392281996426909226261808439611686650429177116122404596847968996072074533138287139513387031668465723570121452248109022598596033684621777132979461077309494286236626849920621228876425658000127105807099941139071584256021860172506232691021981086099337310769777539935285430995573904988556668016225542038419072463784310771667978296204857927002432527752537753667689552627277871991388754986119701871525307636813283448131200131811984005102751520066443807458118939094779893016268507787035329246502543166882779825984974568108811556555736289053912572346134343989271927740353428116961143260742922568294942938850908317707206045560113930173696394878102157386334098194165203820223015441431431817224404387691443521590017636426642599680301496630595075890222581083159197179314534965438265031782729245646163140723185818707558926335781347581980999297480110941223441390614110519810682093147918941395421466445548329478029304054888086284914729176720262633802278684862213222847551674995404367608792888375436048356083179889440381211203458525173637872016298832819771849905981908697926606655295241624314144130581103195958499029672593909544475559291373071235508508999333491868119242113077441342730310760115059756824537882122407782285041611168739846230937717782203790344406118231793536365307206180462327022618475395205093484532162530733543392683718378852136966014643140688118290331214916414215178873211178692387461519197506562336402507507681864710191231263524450293065761914436346268088238291730816949502504241000315080717110362883708469693058292522318950397702770373326882627850103457149073700994605650823272908415041504454751277119249787594333265688247758423635288963335961967539747763207889226684954886653860118058880401634031007652324818049970992036625933815645315229089280717651756953524810789326450232105853337736398293557167599622064876778182974881487850200429073094013408730986962871068787032233836613764729053096465682422128339558935614900767216980064346371654474032023148552918958823307712183286488923533675186688355158413887527714127931409118139661972176694981240020633073996717985263553522827637687610827097256418162358161674780549324432001853267116798756759118387641208295337391142487730454932229270076669424991242468642419157075803381685708431710719901834617740084815917186406587249347148531652127110620166458753480702145497411359205408254463882416163226578101616740100094939300350727170506849609584633094647412142045231756955454459793905863628948106938765015287867697036229896279996998165867945157346094172499955605090348617341152239100748564332595642346877988881643726188586619903292967320395527958391335893734890066382810962577591177757416495811497001796043523316959016872305534582904511925087683850602499894996330036336994607500341095689003266996153362999297095204164048215878897338442650038143993821456068397319739770657757626197635434898633095556041119632262062775357764485134621257813302955669525211390717816387993748351365562475854628842718562998001239928982030684075430616487012535127500640415575755452501147343722816658406440189148367770729980430248461395562536640837497037666193526568361104191203132850577832949888100950140329936699349708218334296740481747109577754075976034268774638322280277572151603123520171449903912972650814287963738798293527265891366268331052776287956801761214816250490659539231027955584008803138319575347156736975773483364944329913775705370438045171034977069259615416319143663361064831723308015303007811471159069914046195169540437087870203031801155657354149941774824124149471972355282330577528884897233638344607168499220465822258381493472270118116226624977844498398475729584000034276503912550696917550117414295083227857185847252425811438626265791453835431294088134269424082102271613369684499636283400374368384685661691782610090746970773001419726613312991539416884684735070952028082803579671420182488799571927047765029513828219812242786253619880565931522720758831189107383305251557445579358724616634011131544099538996247028843827114534020473480085686769372733427605456166759256071032597511935233860272767780828598471523778855058375517215874514148039614048244620363943403841413923487226510936737021092362970877202691153376514824037501928933682196128971466592688920093626081147193658357175511871074205384885378882918084508074350895430184240741732656855542432290150731921416588706514945726459130709472662407526280000771132671398691098627931709155185912719087405056861061847708633287593628764703718099494267558583945027556467438170463767047659939212316867886150208739680884168768598865478930213045488556097268293101297199597207742488764826754984212496504674381508014096938727225591856910805004631004282143424145251779081857921418079138711443503049725864062726051201409246375292173957643745749293757041753515340680814526029577064143651771333317696191647812806543764811090704706613471349739482934529978117322471989874913145412744184413752343484480117299922119549692913750189850588229202315380956931436916398161272581706231740168030217353038402745536425018583394060354352500546883826209618463442771015866622437596789679001120162709101586683473975230568226805127299287911745368639058615670595399928117334632773214652400044258665641561518000928957448206383171045163869149534103158566713239098321806655929019084156477248191981340324088442566911594584049128084254346904421532912608090334362209689218462720898580487741905297947602629182330309599156254857622273503777584488545579580366064443539008528235260739412422582014507877678232964333501410324707983096005930445974295301705389833139666530317052444952183763296638018780169932802420220859729625443699573989735480308015545172431795782330103820260847512283327411314028662760656785979520182327493500840546660257769317892699906967534037951794028718172618199910055181622530044327479070854076057684361623391613717506246453369270696725454593029959537186440160410206168717813032306303581666453658161357486220242958372118278949073554661566487588442259715187029888836820893723834026092964296248758346994316298542240623591934079698201741684301897099606797841174605494522438278047587319607060964102367113958891258967216434182071659789496510578931309467837630850177421117559246418561920265942048486363616967804705169654189112566980596589100740752678532699037916563189349977720976786550040770168161096454562178195781195487961941243184275118574034367884768209979233167063704501646818943733464477945894662973804702040051063805989399236801077363660769654310046959461438634358092475879409003581929556158652994815279213959712141521951841404305099581237311293519409859225169194110251909146515196938383699828780540518604056330263023837021272607640844537531445629779315195814094730630244610013931620039216351739974535858197248791073577025540402162148155737383294824703815707118376167336886617199134061587242116624308885235117774833089185064629613538687739704464462040666811965298053156665324377055375936010874717718149313310641161754008557415955703131859526001321304906499017199056593829384308793702595275730244779644941946174817757309618441404734045190137229073864523428956741561419834089949097108748438016685531606759846133287597292405719516836699143160949961188791579320372657495249421215923560977632065335197688719761445516994292585765483856385755625003007592041873164843648631622566012571449164944526647129995939471959827983402697011814831640493402128070618402914500978781658129747643927659698556384990000862892406128802349045767767355229910270497541252840759597791756572477975087351399052013486640204087669297866752667126738810217744931294302836551568464706773309269291823030460072368715867721068551771330433068362888702374644060313410006145096929544961082471286308303909313475732062629893234469359154534415314942544410062792646669451390775151256692346094552193419209300939699824357866238330782749394865596894480289893330997424596371131498419984613441366976083553143498648245565552635339663220085260556330034087506681600335954443267496467040776892610294446315292645169002502694416850143812865879165207007574385549483432718374843748808592187440287097504136655374088914122563158176864491409118734663571072127184759113008969208401059984505965401667692977749617191197680048932185923973449023339565120175371060904939604812819578126568413429574472214144094586408857908052628727000968135694175525861697218858599949220895867895622769017399044501889185861175956957672266168639016210222946043898300802488683564722929525713154228252859721243970807074176458300451473503126930158855369782075959050329122006323594182378055732874879097734310465772016347885300024663816051527763602489371406353023667585101631394200667513052781912128760397892367202213825911738582403677419165844700609991580203032153255468416850449639492039131432303035121411370573815380235122917981088391075080668420755055854645769976903274170770940974120519288697394675938764934759410802936893861323040449543976193138013208526593049335123350478178615352908359181461014970373556713416257173885660059160422826050307238289390725262693579026718981414597051789436022885169044420434088224216751132200460878938717504029927358197969285889618440530872190518378243004892262664330706545468377916261399424041566068752508446424010501024249806222830801481428625000281138860980382288710525075975643228463488934452110976925286768436202937960020815915514843305157119274267924451246721522555210168425026143839122141864768848392277604920031245868393702750728393594797574720573868395094274282280210016666580141288846942677580734327057656339961328658145570640792641234647391176614237873427371389011463833696731274161738697219747572013626811999177476367386808680551261828770878292981248116556577182070098126807327617758414318698258676385948129148409343800562475237711399869042800078202209050286820243099696419816303538137709075375853338630229553408812795689443764243665837701508405292953860409510982696560368121077893403634161225837948987008018047748219723621733604705053613918693590814723548623850905121746158460698870543313258696673083520745546370433682590838243712653882098860836164723514393684685582858812480364941643316736231055399426561681365894180112487326069202322002762251722626750625886439745440402914761512938507501268786396333476149799805449539141768774957255272333296039686924859574628671577751627226739766313216504264521237173310821745329830878338608000519890403393273748811517561211380464436010059884408753587740653657765852799352165275547058501170167575270852847171844893606225062564298154623056114453915996169463094354569164334877746335361222065502605012015875588268690391276163634791582724759037527603232418071675220871679021918056186378131899599473683859051022945877900400271783912404188183114996621223233147615473052197558486846732248202282623246383429461726041013450965615556903252096295161554911101131370049112713322446185462639209518807479435804738746845488326750643091451379389148147912960173851387660156291717429513262590498205024853169935504702711796670418282290086622700541980925906427132873014499929817027837766215093603030519069368830311630905736495698268829547254092243770725869432118921413325328050494982013634189225249141667178461016551793176810600079619684882371672757342207884444415308557259310780936627529127951988300729695257280288719123325343554954386196527033764859277537757958322456916061643141821265034340180490428457293351462714731507302284010926728600301026061512560663205763930808510633881410715847619377329857973412307824840222736436515116492377972737691731336252394396486256784277720655449532564030093805292823154571154597948512768116730728053217732672655847051018563623971194764363882044450123638018616098325364259264129496290815567441397043035510503544378551890347052456119830806335145183168668003463260379236064523369180481832651463982111855330401672225715304452027341518039964030213980941192600518910082560537405439301548215128098258220066134965665225900819033168612933903202975026818912343371255885427400834904295262442961101746005286461150193168291191353040983281421950943476017664513533735465213046784962609473765024772974484233963370670257903607463069018447514736327729665632632467995917780144924362562934170445614562241672985152217618363201222452367175490860457591209261074674487816409362551920157775376593531407184379289579355912503797073468751563921981119355659149554479492744832801509092819018517732569166082889018594251274634395218696715855284972651658920076178791180641287458134079984541730243956210375841716504883512743296431740225993851721944708123700725838869057318113261548837826377103547408648385419917966233223962669360142203877317358980844479992498522726747417430377676854271294556602620789456055897553466212975309862164051539633348656653191386651608445313531932671367484541706823174804205452079400987394708144351266281956699583568724042955006655856768471201594123596620613712213652066011503150462501217634624547012190382712174866957024874397211171822098549834234546047507746708407807558754046301258134152406282934183159617961820988934966945310762745002195317916725496032239624761615479365912028839786236347815032169104232231022646770974775211679011529670363775466835006563744210030755035798836586511198923049862024298451340595166916394422367075364969516910122295618128771639223994412761215750059813118120025206115638563664394660287595385985883267845773778719161835742158383182062788925580492331623034674845879551416656171373876302903051155150490665796264618690955725877255928767449439335012212005813106023563129530116866970569860743391487705949245470518140662537052236863208628804592444889638494248548897979559798778427000631884397431021747704517049186670641974136535867217867144266659040519532993552152855069492568063322346538699811540718406692253181769429392841086122364949950488373372129100205722902508646217279548967204004190045298619586943241066898845624029541347058286228730171322530745712957492405102242722665946237211198216154673625513907278690407483693752820690215696944585313071773382572391521825115135206010135316888892410035049849338499375978244315647687116251399186792593648883908972407781344601867273300354734107844354467284910662994872506021492245301239121059500328089804165130700135804532205897721628919547177849123076443307676974385649266876630489718990808966100079839653264753109915385366934025849414100207548951690472827010372090989317075851144001213539980712847783710611387674816731250216161526402159647539531799153760418285149844735109341406213575556303839342346675091858657393044917516462709555733278970038887397460816975567251695245196902323312142404200021746640330762599099909295932528784715333442496956761882502541368276098473223628647483720222575819194338078377287428708949934965693097426057377428959088526429215789101121974949048238181443002766787876044846648414692564159149318788985499504650422071759334748140530879192301369110354957811960856939680305446219882540378474667402544300576084267323604862614885834080104838344335399219910205203394844294788188385062602251099874978804452945208436368471939023257058239918758937967742135209364113782503830054306271933789573271186130716919172224632012975693481605137508061497073048201084451817957584630168416273880617676618688700952279630154696093099544378152427573353725703018559635769970597567251352185341783021126065441759594307343892486975057222723464816110965786397204471110396479611747905171884737196011402102696081452343937583756279449984025125702473314439948302735817255293727238767132414692044993267869749443299379363157838624331272637965930046341669438573039797743126819367189503406403426063538273631225695597708251506137229722141086542908199328480811372757681676073904291024780038219542571148668097316603847555558197515930824270119828533578866065218917302709350546925291455314418747413976128306937904563214486245048032001665120690035129413608487467270409568197124870475181583309563027192681477683803353938978617815131918900489303582244015998028182319703407069667953711165531637154017653600233811640532901804800066396422101708186575093017613836458540499030246172228916303373257422668800902813412220439175121514987933759752463214101488517471679973346361170907658681684927911107026372314481943900702848395560252704447844152024023384928370999273342903301792222454692684067499747023231659253928532089239200463627753959177307913028561382859765735676406249091837812781669404825139585732594647041245458766688004243837842659973592633751218164399954644556511639606094156415067530687137364471388478327551092624749289889896148202686331029698593288748428289341168639946172846524058982952764726098094374546451528002933794492189657884156420413179760150961564702528473632830089207170431231789909715848857345647815471091146131661624200814686828268443381016365887230051399744028136349872696890297387067392607287170112507960026582973603204544851621781239900377111707466055414691572709173251254239539828506338861881686242269285913019283559618012966939344040137532597862310896273220373916391177502539264234977366204373307575077529277687755595332011629136130392548422769979859613050227162912764911292491731988530241223274680911111918584066407298970233948616483401885272018066701760373337533832173104991693119966512150858972890102516727218027512319268086537395973148627961292383806637130376580103491031432332371172689185587259229606982392979197918971073055630178169833311053146380286955808349430113886647017464330922435553250500473443574879013647520852710735929643057949985208616684022716312314498766092194076458533994919379914079609033884949045162824681940013613416351926739012426393067262600513401834632191248420092049408834432957709417880738282215407878576906814521087597016897559642774826706567356916204001069915906718714861943992116026088363421189367223334575302767772186232227445922851943962811759880718923145558732013071168721855851552031774255116153662132898423003291897207729192585580745643737635922468296082715667783400599511173696800844178782557106917238079867827843849298446159908063781882479105274343976359914934053677014369617685974528776238083421584158687317651210668644012316559525708089404137666608745195721787399243027769766188552158969356238137988684723124751982963101187868882795430579169565600129159454804251256314913691086187864615214569829421105705053230859572017626598761794755327260321085820158745254070424079806537487916113806005510265776130564089916397932953965440568006820989081722251083459513208291738288225179790251621535862428971967305628683001296249986610552024582542140229690887431406702077586834501579960586010345207908759301068349015176370539631270501491166369760040105456535489520679805701793634859973848837669608583736853224670401482530231846277065793235915477901108615220971967086577476599314569964647132542434703663226594337636373743056082567298027097604136004055754252497637380981404808574986979619371489488091859877629221084718649527448499277189498554169862826446849686407280023152437187417527982790552565718425817739984963094820957143003099288362996803996776782782773542840198909481467476592668833928890863985424939263225761362059609595388581003893245952438829945649750718448883660997851481040274891613707481513803839172119435593195379259436148649723500603548100384958922398209801658393442429195610545862308408530323329335007024629651378429165950058670547305100262800369682473045068568100882791161865817763718467738271992869171755321022973139565626620100636502349857620093534897996678599287324600014930302574876626463804653611260065673671923396109890995740212502566248386201370923110144512611550775491269660348039856582257454328426216892170304334652343044046801158532179424324400961264105850978213984851174289652220574812981637954345165097834007683565125517886574598904663889607003557031958260864319549374477041998496079522334329120134172468941237755853096838606759520874468068341378710721234324065386023458772923828417528410798835043240278981003807870765111415475599680213261827413929893000429770714310453885464585468627949115727692089381326298718280027870905183905598935018779859037005963359545254822986773975696766428319309765284700759021919003751632852809431542917146083970589718102056790290267795655135939661190597671875608528445463943530884394141779705576712045594662129127572691447238305326440808910660099942320277350604171649922378631191177612087329297731378715654925284360287565483827236143393453534320877069008182090017583758878403756514905549939727772827776660438876608198160801798930317804793401898770084913727893559082586382636378971760695502951628084739129649305094086915991081972838249805531962823403628670880235986323329458737738829906424598917331225810491465489031408884598138458017355755753337229692746228011713073069607007499386745495745099400365264144378699932700449417047441057542527672788936231580135813924163071002071432290398281457587113423396899366154579532005560336449121972278992850818849631528128906273816839181742865684170836618098316466739894824672998747154448076580191573401088019528137141067314215870347792434219088335009768395699639036735103543423243840884001011214173030996348074582474539264277159619975985566735135234656632229816351199482369953510461345689412752543315936336322003227501339454400300764858348952783554938236200368650502059175390460419016002752689379537609496526158616158976632741984712580867998456041801132332556312135075498248440497843512073791807139865927394409794663444475172875417773795063301266271231609474002718902851570944729379640932578938079968285092314851767461867806475116205485085151975913391775763786241211415974333630093937440877608225334948090643888114998322763647131845169334798242000590010258765945138570059001958338422544206991422542336532694860809908549965712453622568737145796168646900896392540079870975239403913910388958014230452499436974108373676332592574072681116752971423472460944956608552554586329096056813053338110859087314459664880836770428190818990898137823457667447837002300330379215630282074851552252203968608425470939594610675278498147540215684494687724104677736033951392399959549063215601021810687168120292169953829004179291529754276621279274008950778421665632594624047648250549453035979461406724596067794889789217158400314099243818350974585035972272226001477537398404336327046046316748358262419460322859792760981370472694547617104639004355225400777917143023807799827665471399122574603575874420241606892240009678272153946353157519040235626614273216054446231461669189139599720748744039848018730724912642873499582770693462662393777051557890528441602329981270896152348600909769526554667197857273487369326875935239966204464261673455731949556150166591157830923163137820591414568348398176287558921614744104079236381305620132807512589249763876042215577877664970065692247511195231747501508115718338871496131116568006272921333329242088292822258054840871295336988640384466097790718019068140930238963781587083932633077388933644993418247821120275089060211280662517453075515436708507610397864070764290550586229588926322280374342922082308211939435594547823126576746619315226606570098509657407739440188153874218949978527474904967608725469271417938830438816589670449641590361921284882968381789317651754586649035760290068977626282343307665955640969214965978417716690451609408920390835665803737593857131235843220584971745824617800372447728840637357349653094323714649608537651921168542998297187697431928471186764496437341403342456114281437010841470207001620003091455373861901199638417273148049052753915877297613662947933541869846098311472977043578422145372065006111171949497412444872825058005815328365979747419228394999212170560579211259499165215260832796478428564725621953548894360770411589885396454785433104334891409265352807310090266285507311168471092089097250153047118219650108892827119472758902823223431302810447965668212890672665670046042000297406152472502295190967463439386942147517430220780490220597395053017067756973346291701131020701458367193436521780608720006054158159453232273705047442275977589683535513557947695580721184437017259644453884166195552137631712781614000226215770712662404132318310794331578714331073260331352483127290536730886677779993853241342489860637865397173131336019521863702660457791259863070548280686163066310855763230035202193221022945825283759172609685852307351976413070585772944518900303568398573628948211422267699623931059294740684105133669109020118978910075763727927887520149369849170096819235959439584761502000988545310195397650687967502635001280188203299817028570387248939973666651139947117585939995781240852492456989782813328322358950455726068035204754879064528821805653897640289047029408922045244201369744265204690255677094497406081089049759475129140799046549824199283995634817899705723753019283212320735220667980193748977969819481512180267919673388943078838123921238586022084521810306438163493619505008089429721203779312427564378136270779513703902959893095661312062161923276681378146742326057394953794889076899286453026695814021210861372887726308533963130066310061655841496878982446195855120348558139485591227791157843860303128842724608194671408280126514183429381068087605833125112026722885723945021516969254002109948049388255104811135647642782592451973271780784133490856233778403203210024363353269765975420489615400311926956267588859281974101015360631483461844617833861925384902732133540274436548128186652957638082220102683019684848145701814803827862840418344417152473586437158955595880192005780111308735045867166800963985913506502232593479378393178238139927014870338718416468074231956312499319226064308631156985084820363056492393823637520213088388581075885321143153859775480933838091409106183117207074914248044190571935127436535225552453557424234019065937886793678107685855114898846427008486719936180857221292248633577655242232755442414629990836954282519159215935306325453632865091676320573849020565242024861591536260813083923177687199196571173018380292057010976340264450012422762654197306379890411530157332099902465992806225418956060450496622851655687254703692966520585328010740219973302225326318689770554956613928292414137928528598534895957706915137266541915946094760446013079078564175275829926942184479471608135460924527575235687869106132833266281999212186860529972032721027029234239337035255803749177588659768507346489841703034312300911778520081163804232742462569327534890261315873196591808651307518368573477701387323175662136085216793893250904642957231932714201708561042982581175429657707136598212452050384107825065085521331334527083326457521709091798237686996741124977181528229624822367019540480734129701482885594839040755017390625842058727356632213186202599747764186910661867997159072733461993066915690329308429515489787260268047886023619581641140510229381514995658069493954837658207484224275499867568228816637621960115677737909350376644848370279532205154663940723421966082006689845723640403244920808442328285540934820476127070711508445282686439037824791246397997110055463245167278829340454067248403909293646264892040147620379398924540794767903399932009172491191100322329667700475921156603290197576407527030200725341493824374605313602118800282090747564510188811348767160569806967561191908534985919883690825362372884339081177105062610116353069513529720916709251629853772986965103907623998978417847152149068258676395112312456162785177588903610643033057361460110985987882822957203978607222363170421319787974930909375264029082532011916481266414885463589851800146064923010428712117329929949458596241732273181392543222774996723727939320556908964398527012350493177381435764420514618993278042671225064078376886366773835206236384178708057077639655821124329013582408544387205636166329317992102453326715663746786405658454574517309556028928252913735281619117834126351320804870975694940354540757507713438370852734457127273645864427369849637832771532525944385159655225625085508261584153361162610556493386012499640302991222319033012568500289742241113302529662008859679904148068071221062496078803170336999928882208940847639342091762666556983946825038874068704000670167047507584486820700024706926510016597047798172004532679622163806640569118241306843744675908793505469648949282876920428076008789595418380258128990174240106385084700516684809113420976487537061414937473277112631397700866771958835287395654288672099179993025151798898306121318137152359823968651504351814345788897448104084462515388918449833109164017474769127193578774948872761210955777406416791587722152834744910952398337744792686112757563397205293934442093419193024799889803570597442704024827639347674642346915453432598285964888027209834451186206561363233723695474134638436822908342703917896208148788775358059692838265072303139130443704586228842170783256761659511517164278556536278509250223268038526005130151929963699782531338867735731651216896314677755176751399470985995728474868371785593045292804180486097974484998787098069420244921993988902923084999703259595261852997056729123217647869867363223360636909389600227894999987795403206264462236570434594059960483399233118405903777971473317355195840454343347115729446736313414537251588500834958341338199684647152180459179999140307416480393812562893289023340059579705637015287076668057118102587534055888709328148404040704271362949897528839823140624145280491572098067442625751828536835478531929676096005454233317705730864306631246112540555599889879809839309971594276524388822429608582212155191898974007402507012234940112519372571336502916060374665386032666797632810044246718737350296369273199640949812040773331183862379671252128833280576337343965912746716014884307442680207395156923435219574419934894058478653224787538136853300090015005159201276008707134864216437819136132717289281159569586959433677583045275553073883035345869182805295151331358239273991576235321667225604297295461686339569747938922227030369279270785042033574112961664020061617833000133376865872136518606281585128335813784187583561224044390611000251422394959582533285951346328328080096515099395420510543059209187941639038068347584682422944117389856384680579323972149654329837788393191752276646112006116076193732871089612092043254227452425378360250897359599332398943078325138087838343738566289914460463890409791152408142968421308908911951855880513159976527597957138171121555431380554606068563251122749861851598761849016476473183322449315818063080065940309994438493909586462738208853270719132279325082114018248620413297813629752785035438017151021735704902204369714840425393543018357665726894278787660758554896972249503920561974222856715217338439574604006415950194269966218251159912247333455521481779914156299447838222555015313905437881224032198103228842502008125788599690315210898956887597223823409358809967699459615709296472922347143674053805303625363211087416551857488288826243282918633080911786866782947656183913296997687678805847937921673723683370428055808993061758463215328438272048225122736612420667631431115065400756664580914990262040922470374027810857802951876424772325606293186883192573077627242831472026294528693735881744120305551776897039719283809119209831090627170419419256989385960152688988343068472900904437097992569587274067499300252466645400883360206792870357645854841438812640572764887620340787316471488925551651829316355761112706339168824664499498157766665469020026505111357385217913671594730731312295704720603406212074376698045674952582090714154477779742192210099170740086959008253305852956965850183272163250850427745743159947068158603200138202696587831382792650468141640847857377151574587872304891369170131794736697440400412589386953882339783820659285147287882191456173668180983306609884217379288933074052612431782890763649234755438695728953230157532919353796440697853703750175976307198446764436414344857620584551573831772603907118126521367920430198168955514796354591373586384950674901266020149773166420696832148723622862550591686235057270000997794618080296399347116497466497084926805115337680757107160405701377058682244406004065130629175205553214589522807765767930020848485619331508456662517051965683959939084039265214922738001275100448830748246233395589119100181889100540457897817895354489575635510183918166777253542496876954358438728367226984735867107896262826945291389978163089042799258111921139453570708655215270052881770749785731927670389506182854947643578650721712449371980148334140869875096376791356920909965508948763426693965278714925860101414970470617702044163051477046376981998579803124506890276138841905605455067242692516264041993243073749708802744376906401615065657762109870282180385116169815341215385100051064697347321459122859137552953063423206011294392269335813053649457138762642956075648949210443752978940899812750288562547741529445768687401293772545152370153856599926852174206457595273598950817132057116606147138525235477578012767300358212312851717221050522181136491262826444837243976552897435060622855312694730722890617298913303515164168160618766418276880365504775834893886793910862226235089219279936567567147644087289497789921760953233487067509202073306738125869334760682266973057386769011940651694922531391987579456273085955598311835499489421597455789665480257039411485972594353169437342470986654964902942135552952474650498160038914740084879954619708751796373929495768934793218044017044477073896875501206354644096114239547327443099457896230536526790403574515162577070193226154315997316407422525701905551813659876067313129583812847237488759918934209839789889782090116539005009301903967210419704292075699726675159616814703487951360695520416024260124771030824702147914532785442394375698031698944590560012475629819201610839149427977257129476528332478791340321562122324610743373030255173480392412901203587244401863926749648620141296956323467857695354373609180595065322466584749432707318472168740745183417702371794603536121308130108027491419217142572135537970503390921324717003101338340905045847457075646544237156066783627359088454975765394026759475107751265950891603124066109124190879539569709455229243030117926773588609665468630923998540765487064174613105030924707992730587514037295093956957677118149748090394906256442875706445787249473682004566557423220093486866468373144410485134505226365642264127468702274792420756350454347034607337384311926441351203575430588732466646457959917384677989349064212447361666185383401841451275033438323898352193497703547294941664528210352394390323658766891588323514107740857061265755608285976267976177253015529573213573088447277689137892676715527348122815503151555571732243575437284316817495944213210741469838271815219350764841701612847925911770494510018006995227060991663382157810909960137046089353799564756226595066377878436776432053479687061702937224947118986920815835821759567505205775895603743722276416718799073492711895916628870048075829316634108483878619653269321806116407912169386912794716262474813729590745038357577244613891699190069321529235889178975415482466657286466193181397419783656704924701854571027878547607493788013396058754157602738509491896395743852764650183853902433606788438714044257023846391278496391993176103200622438945440264852419275998805487143627316863549058321330305386907776460998154773194824873906166123866404527518818496198491425581791768040408945212134211545375981674000062003955487822237709360293289420346393235706823502396542683440866031550721713371683726582234453511915548889096331364717572335615375922095815067386313746802389342966072140970629499808172812253448790195918140830265178285250139670529816616181849889307526591934801284064469580481076973609356390445970457316925545304093637480226044460271326708363562300303580201635235628863720028173703119554633994751035094391694169988043783371819698827159710597493008435317084230512042178306494476525602609343334938016309894060296018849119880534529230200457801491942057030367705413540497988739312788573804650131447480028236648530427600785231001548603289709650049369972328204323894132232881546049836798098557975868450409176064708196099126741333868257698524046478822657766592629839671436627272747396604754311200004432253892538234422909346522135327170463729807482166205330716797088163605648012701081687380292964080894958273186437658841143534701554161243242132825645292759258788133010271783686663690234985442107066210705650928305221677871963373755696402464021479118179118124630242873949911136451585574869140758871146723811948208381717260714957609889593707708139149578908502021815089066003079062973553225984221865880221236261271291394351336060530529274627752228393465514094448456534411739168344129735296184404210617955217828959347262984777669755037460281406240165511836650048686682701390178967692433423804760481494807574546443941448077508875416779323333384953395037609288304058325815617634068954143934611017851206877408926679593906298431241864439294038304271060110603496021521133281528966975039883670445408199693320613415256629567396703957342598600955091006235428384986870221616651372978752374051750247307617291062363673785381803108581065044651285457407888728520997888895691345952786132743344316776562337508496315246473006168638202919243659137966144147447478683398098074559629527181695262824414457716687062062801179003742427113546589734267837681430202317392633922668696315165566858847062650363520651408536058104631473077082393695112924372789716002932129391911661057466206340472915395389881216415694554155844334250267279821925254331741037271979098831717137936642903767322871313829049634767015600465721235017962746969545859537571216033399854048455661799170136039877349923011796304862897251998435143590378908654261721813104089798904728025748051949590282166242146724142669449708554508400082073134109628318484659804280626209485360083844816364705374311558059382219246766854759975629808866658723627457583798800582811204112907541035632769721892778946757987725211304521777206123140097751918471240487724037426612071564017715801805760374885500850901631456256625332262921517608612725677835173171519984367783215500141925597263616878700849975881953286818796808718628093721328750832732475430515873493008212652179983451550225705165974015662040383681012298438882747908761596429574563833488975411172858719390898929019060414904094121987866955725309113491952171474760967858187906048131507401824029085418503289342769393671058192537530015756334540017596001592998071766031734508323121300876259024431488886478938043320311626048513523364708814313650635029039416406777420256579378374009301014554145474220918817963831595586312847380623622564976866874947013151833230837022026917007778850278944057620709291170127402752523753154310874025313965296670570861425338969582527811336884638350276816143547117759688463435588860038645535893624605513453243483116238247760127817889271452376798793069120531686068013188725473497049900393758438194006123509811053147541440875169847986756407794911980779282109486601518361829742897175918627975805524216593913179415582891252236467048852542839533962600806704018295080092033463427168378013170315944624634305467999868697169033272131341166410869297497452731653691977631054525633574875570855155668521895903769615618346012349983395537294170448772318409092951942208545703735560053726495480067022273056741068043824998254911816165004277350476895363270761096281537444895303826799508431186495608237567126188818761189165105853513564071846788308533412022686099485809154180929024448115394981077369338879444912654546927634179413006592798103826323460807985639065362006103269150578028763022371573199315865145674905424137249368207948929314471606339499698613424767827527600611021088435955115736943970738109165537908228483494628472834080435669327750505090608846578425256575757641188148838448951782740510025014408284918569506230426536301504564912017662910426028141227789161247560126837380426416173772314929417189729348919781926072800789404856333427700976152092143878192059187411385286818001348700251318635652728290140133851476722696469435925927645553866617772861681019974725148537992179358920345076442716718444290269207870893970723227082324708058229636239218856948492043425237174410922141149911913276403048763026624443695743053750740493807918576882163536073809496072163586816695346564268897744175298392826927974547390099295902557891399155296891828320887872922172256052952363617934321173504356039969248536696826332760833007071994647669269865132609383162481335903150570727169307164266747870800522819438146631897585480288305143151759281306883696478617542042461024761539704691035899803289493140423783247579675575148105820472684587675613596768605848444165998819218295236905595420862717548186925714531716153251824627525894690028441265996444041567666284934192328832601114661803606396636016890309785157678718830517636866664379068434181464642733556463176478457319094111425180490425762281298463803257028616133791642619002115159026689461228471591063017769569432462048553628912913005797573838733225486902508505222066365735358722134903674684783141066989320680981433104542498258680898117717445331455580615671810583082370670053226616537624128900206780596784972147964911919088771225476571032377356822754100948977989046061848751250102724196779982777284899940313080009867098657329072648664004903782710960904567127984599314693331581633921651380569256400688271243726211488626628479156821692745640894321582595086697780267949806857066909809396621380728825064547677727950482050282015561072297235240839780428335761458338652567548859438522045458099501945586019925236542572771504161488076624584970388987798018403640929209480578446737570513231273510251774126964833301083344349214947069503611700292198835520582985610480043343846928745976687276424396811689571406822356514419587246120746614773859198722928870279379472689221496697468240251375274331981907260347165168972791694417490461796341508561502943154853388384262708660699561152479663609139643594715307951497554627292747241386520524489133871849101805994754660800504227810025109247186840573706752958013923074235500604747021524363863309065917074920047262557019134418238280521276526521877103769630965121994909095845623996984418892188722459040681845341636565827395099903304323727653605149059116826855040893448745561244741486331686783650529237613630408969281338315267988155775727153212235518461335816100684209520578029972811255377486393322316521150612918859613693126829411356633043944627622519882240255055133465958327519867529745466015605188617750191095547107904702817229278691853393050416577457484332837286835950898342634868307605128038456294626511449836422680622699183787533318300409322922183812691336357237055615033978976072809652016491778653349483805057517293249358069037687747740722078061955521119509180785588398826607339819976841074695517831631387968889024337218395836566621064365732181639120253249191640542327653500719802281855777648642988716754607771283988281235240275075412015553837256948339966665991607407037801620663520684845066726427944651075480630803102520141646242472798802260219103436487583177978126569405900281433033345714569687535161162284007853205353225924285062112277745405083887551631596537005219937404975251609914997943547092800490143271283194789759840482460687736735113734551140131048757419667259985646156597398265098962210358117460686437073776607017886022123582305302779866255746622733762740933139968218669900642672343777102828424846141800884274028758347950253495696921350602295887418371145951203318937044522328673236861934722635902344963535363082877060652271052324287991073136377495264097513402482549705891265532620870801322844462304140150538510579099371919289582287368524407056328986005471670159791641549527190641917331184729645286846500263338870669306831180592807224625790715332701464602036223391464224627374039150059477695433855198781495975117079086577840273001361299176279903457727481610503821239383178426408906479875356647496857211101156416037010438465441470202366670984282870643612587356802188706700708653394809269627749325518350163556677594954130363762215070310398002702188419637798209991169672209516292828458853643065465932988858623828446359558000366376534135328112712716832786811622160480212692953527184832050119304566344909000534377423509367639559910349913071978761491319510581632474271682812886654397074503647496783960002365225466327696006787443444876581336704692598056070619606274563715631193739119535854543303110618736247176769055542990362452452785192645758117249149463931848467149104139256598528790581299770869694964637686135418213005839845435697763339157830348361177577262941073996501338197230383503056515542998643809058239727441466802291301672208849644871295505079078250809554134869619148484009953137311199414642177465377454124479182635093003011875109513891556045773414366785547477504989535341882135152951864139461796913481614451145575022577680056535649280782010196851477905969724748263263747211873658895580311092904324950690330519481088745877344583273543682519817069621651784462837759992258428990953825026750625190601205470956593705754770127716432889737774133241162008242072091033195441395935566223691082065274247979065412066211047756689495856224242110430327485016482075363466077222424463889348326023736834551093239344268303704015158557132839478080130286857368540075193563061273027405789374026690237061616115539582673500212814752179049412292646121069755435127736688219551501949302006427606525833850191737761407746260587137292396769373378256899191664086139876896366161139502389239098672518893853933705762997228577378662357227103219386756453725144476361984709418032231931438172284761636596761918680405363122693204329406444889957259366393060630238950891329915189548994837824940246924271786606944671656567047501640305538292873427659663727991022176231977929685387533835506083291701366182818827937985612256893232348554467673343012123310049275073330204390367814280807038884459494750132434135503884758496141780827780929190174373857743911051322971971568753226934786236470654571685252930716490081979844929419945629478663132557309020420340069140179053697008231141830431805261990818698207041750306544609725353013373169557912787097484991141080616287300199167317903928909878984947849911033042016071459628190616632078393722210999222767953810851174041053063909959125771624899204266990331986285064078979308205637604699825716824368508963811673732321202428159865768863859212168239393613295994618064011555017659214705696682678560044392761603310412438548697417106809307449577545916226771227568884671109432899332108333213846759150086526230385969974676684624337199516849277007771677442902311173920258370380303638232779099636860216659833793875355287252119540227256761554448804587037033311781747832390452765923807106233170418964172205566427492252349006140306516323136252034016892309919261214278417621690006620763731420316818302586349609869470285576605558187934090769243363312595950359531770689726301867999190110392243858780439378646482340386024453030825955016535817095001159645402512619343310261192447419654573618163130268546223605049000675571686951218480261133125415889620779406987417545700172432020976359879032150336138006118223853482280062919202809141992232512289160981759981186625457773053976224179570886336957716868023166404990704022840493626296008479801139073397951886005196178993751054871780279437777974266622836100881013500382020269810878592959241987443391532240657830275593501320290665119231626718868257129840114778954824515127792152347516957665527589235576008234001966489549025530589032019439544621218564895616414518356458379172267324369801847301629929004771711100621681291184054266168787271299354726219646061566647062673875932813727547221024772563196137054094978139092158965753945501853958827858539554644241981428280419863185854123347580407274013450013284942126691401700784226633614657841371737975668485427275580928939013702149952276117496424458173456541837637150246243500292383157097308483465369364175177205936432690296415780287709991781309427287696126951941398282598592610968740532611762387437758224626131503541013725890760730614985145454551485560491168004688482572570207344661130414414705293983320510561553801708893191692985165864043132577061854053699054751371039243183740314708753077609438389709563835496941269949026172777495351711216406547778009938886168995382678708929004314504142662465844751478167124682807756505356867457014212645216074510903976913932457404507376293883398125123600360745912067385911952395357136968840871167973954656625327805600295645018587368326584767346833137443589998402275259177975633058656650691295613640247248400880728476196466270476908539741284942947275685897643349118002387836496165974930546168366203182854752985180463423079229856700083112211863738900941873614463376086296877453107915869843433961134060676998882225816057711268856398483378789143902095437281567126260984897096667582641190467314102749064966726241278868176905678073041921114388215100787799358370174098380541872916264152731480241404770424420082378522268011199491204930720171515226300770451459959518379991325996340507596873705852263709423902160642971659654691208289335042887999412646616673306813677384502472576744573572193769525953832530413023210673713998532680574317272850579979358340682903324602532088953897791075949285834152056642807752912650387603543143911471097504840082667595278221659086977441094012033611796261118576905455372421629010288605769611479849926167326373518925804546192442110184135879999643512571241138277114577244967366851746504046319255830874378494161960829014487201479090784733536741016474347356399303178956624854085452521795722616720969130879439483578775382131783891768486054699172013650695673270920131967985184638496191976860396081854030412613472944030938921014578607256203655776205824249888738582236451332436391460872573532191445724847847132747314915632946988253131569977192097628468264211472814403025904989221547117513085612683397006485812834399829225102181809856190974213154904016260803514611392675490356294964501995009831485502341158891374738869890159303315502484237148445741179690498200482037600814964224001471909475601134969105044333875944969159055007940713053330751221051515417664554915610224099287069655829586324168517125454597655723083834848218330785990328940038631414083801060415055561312287354321282772079802109117565448694284434404934012216502005729837852650361375663313677984985911845264872944716165366158621062750005777201092039076306048434818413355804611272096862399853083595289540779702639603881167860164941133039294085199613549195168403359125805508331860044663462573228242826704250281417635624206695642094086621510421277191235387135768013123949801532228608713908061965508265612409027054863366626975536726659161401454835720386613895609837641519400531033190752187626509153858296855210247834902720528556640319535825361963614602562810522051288710735462086184017744737079956467934271404518753252509207390011477008925787594716706796432474734514005713077216770709515059552706515150424619833960001705479767312646473478631460522082707404350899237940903235101003775784020735801559526909530024272576495680722520835877021065032889082428473478855522727847697747532918510182315617443681322641334108852439423178173898251087244620860207825983318684927138572028389606426253220439645701296976444456607171732985565949933532610804793802254314333948263987157272603227315558465201732926031223914225496204074996095001974398494920863570888768730527402001932050324745943624548295052883531728353663061142479441201678915562308666931468864367344504515022150831410288041441408317169593114987499917840294134450912810418408525170595706945265002945007827340584619519617701356942259575405032775304315506055960408982738917686208619294705444385596001942734391343988985259477648066631683771313531450300759662112154944117131692482088132655576875582514295628456782595239858432247560638777506433161155452365482517154100352378073226492426809831098679876035927776350599512276143910303400076774262482563054251482852326031509220377356253992476218288697935874159975927762942375063582358908454257471707467533829702939428153092387932626161726125766570280178546527788571285037901879184872958964348030258705708374180002777363422521976703112240442800737475988245343792507825212659645230706744563163397183327085700815158369064380003981759820390115746570893741186431749163450635058569796245912016755844897037063345577652067196065866246482909155019213668723733310335020417583236198297012537983276841963226263126176247182119450457220830441318432800071443243901531074165261270585897338952504137766896933153642916724314806241442664788603591486349292265912642589176723643021141060024926282977822964342582266962571461379440664209261261589610224192709413466316528220241323059244257824009783780510875396096673541928465556597775697554804340388571550175605741818591375821801586390915672271413565324898404909819112882672528772107971626928884404770094552088753625963801906821077265383712546275696665683139029636331761695074924806998366266187204548224263076895672769624055337367438919452887070274270690010526977608246712428903719183238524269085198084876949466401169475398047431869249232737474118539139950144913169849554193335683100177927631568545225640262695557462465700865445096800037334908490362604817079272295090002300934004731665450702996907321523825023234749400593113246194846944340014926019944005917528293613217527940659422757289486778386415727778276169872714095153552639012664953032840006735679887376354803015784443255396239347467152136603013300013295475656869389258057344928565156074648971501869219754277372915250340118101885638210776328063029755312292143875775494827079148930947627176768602497500519320494090925951036741102850506525403225208091620361937013776313157409389217082874097563663122461954528911484308734992500727755473121413091467900129053563685860280763361196518318730758801390533134099427563533721780313462037000711284167896071197362417229589506764737459743805678124123215635666862297470089547652579463718576504128309768084364296409099946192967282543872528352579271142955719229082077992028625154698594412280285822987926086142445513776191569127219065581786575789208748942862201357298881385396420611378466053962477132574485363926999247689544742104295217621875432648761644439535502291388097741555996502288435334374453096705723822298193973921428766955663657275775355859759967192506016738418158550016182641963534943871066498532345454456328254427193641934908290446356621989784223016018146397164891661868856015708033848630407515683452509796899812773378031302176498011447396787803102096319168490675329034372999919451433724783560641066861057813188116027723923518847189754726912389761898918160328518148232173731915678263434741605017400260391365564958257435670094692038380508910613766202508793566689258860970881824289879294624640292365924081987669604160398231020268938389466907147342914805045300381296633568091733948107484769481871579725865364890409903569409660068948378629792885620544216212603744519506949287427169527580644141038748919190103831078641623884193268631501736081838275762706063651288365002465526757936855230234138299831141304861834539679662112320179309850329364179825869130411986057266704844841023177406003399214326444624049464937419721329110464666037325243016089967341619165835575336965589235551432275656954781670742987474818733463578168218192656253060590705251704744612438690040128225161134799990474703912516043806329133870231214407867233923745479632837969722788285242266532253279200734375363358475228956239106069672690257942506716092158390469359373163783855305296828719324422298306195683720156856903170068215894225924019196429791033229698985854145608157924033341330578174989388004015221861338447801987651299333613811141371313660363263566207400085888897893321322871804524676954675392183708167065882542085496221762718534443117095086117911969305134066653196518178506120018578729070034423574806602331584913799213050822446867824167211096421478463291901700380483271070654854910832688824257676876845703932804198721091911938885969959761784829690774956978445501462835248973738549332965852797054124015922185116906452837584732626083317715800721597729289768857394407237978110979731309555916232650938939486911843516272736483530941587291943953005947218659440277136053658870322191950249529808105019536825573187401253564571668501071437981070855971214069787418421172078905518554558489494328310230311071864438724203688606175563709003419546639911204615037455630995971949023794459110286281112221087498174371272082687957423428864607004896626604427979560190873291500960473087564098328943898181464966185541746362172045389617360836698419597800387956063429382910311144792626063527737984205109118981334980030648560561646132241401538808678640358105819201807275887145106775770760128422324364911990238527835548237882777591475229468051740846647744978743554343991901853992045502660542891827778407004472561586280790513524371559788856568233438397960335272341711045894475541440881310778305958970890736980367732313541618534746712669536812556409376353410522713285300571982663752475692435893117441608605917000227429359543873603308961755853284667794400814870238454918621077073496039898678234534433194295803946365007538938418095434457720446284315512269354576485912323682892577524395799893339855910331823367896145840496468779518001874536637357939469937385290153871850043884324313236553883101635650677993666130394961723121836145715724890344647896828184944163699773022858379832469894824821441198234567785011954511425635427115896481147683990326515612401612618914465830311798371720590885282975707290599760583379718691124463102124945870978802880438114412251483117785930165518672333168185856210050031679510172794462148452341279681427408719008405874589953076576810203683702587388775039544245675794269819700108132173486536207355371186866375027333702181592278833463468857420386975680339237231562369896109612285385062488747443979913943778241186560988513662373113837324580240546600729159509670293404883228268982346814088539715908184254053470529858714822913673219661916034507233245022079782513423741053001121727676798506695030354060285973550733732486107424000821239554176247894565342153816034661488289589920584372483439394936832073487131422090085098552831903282882891694799689447730629022177559977410013017826163556884688099567821112932147472313604099876805800984350218663710651862410564713562200557674575984391371230336078875721637540344019862926899303687263377751288559791861415879141040493266030337150700431580164117540458449075009785014360226043317356678169225446685401228683482049373650540924545457507167955578252418903547381779174341467621102266329887318938778745252318081201129072181826198133916444346446355954906464989310714058146458212371748756644135802353221952473233463423949858026613818431917369299181300610327619072909617682364594840675831376881021109144817962560112211778632643582006825824553961320694215901695580138253405961981664925531350756941074217394445238156618539381195966131261307809106942133998812485081991695283653963577960019761137503998310751311177257182806087863997685794166231538737163724437338551283119139243176474255316022041708723210155827001701231885236726228856583141975999295840732165220923235303489883287991174719747315743205281784455947310147448337101151238403136707730907607402417727381592786189631821247696027699836572634276283409388082227448067610023287589281300399452102550082531057221967109026925923807436699752366609724629305783371762597097407434561574797114992842466851623003561570727436031615006810151618680919002213497833087055196665532906259910467829114740741061756464334348139252294819398668602884703332536628925048580389245026805086398068460555965069282918310796025554217558273388353936353820518429003636182817352771351152671423766734090958263528149727807391018109311942297656229303029392816289485373992767346395365595736905040068226323675009750014972024870268861319807413902657606825039426402934019235430977684922597050984358748979241511449565665615041517976299046207616286177915840552157926394077697000649308021695410166635425724560021407203604586792509351044487199208756210638752063446361434855721790897865907783849116982618120079963013062193507274110930026839317463379642316454346584136311300853313021886345592320761862619468390993106719858622965778502423103008772641020655787445150949484226057221807045508954049313303947597571356187201455224111916721400569562187495060203263171619085691922865556306809647279484343111682943066285001025748512771087605301305179369058010796173072498106775092355837891375545529585868986749579619964380252536124430735461981023062490229548171242229798840595065598874857366411377455451685954893992431991835335686979329980952621677039288502390997366320797257895384546054818116909710143977505858023597896085311117941330386403033049304827821398315688612163135962481990147085093115946583753870972400127006360374849030555453233566984706920159282703791779280412810090511957988615005148612991270407916383413926637225869533761410192207256128782118779939460431172251622432667638435491782395155985170254819602936916780510650717734586413428486300405193597086659192239796714469918312312098755998736071767462192140605491333840733963366706961171213735874702423338384363163614114137902282364260733944000814752868201470105523492020017770077203842164344355425832365466170264623097136350042845840540645183312511300945470777585703374913491502799891812536887890318418355931835436415373685932944833425758001246347012856399745920253949947581607391430283881229597016605125246683565477762867338445960503029147273914286578602551080810726956311684446500156149448547410757770871843204057620035610928331253306488428916475534070254948103243324081965178216786976583509673500172951696227039816744246264359630233144268470901554215061752835999620899365222572897522751899683156961974038528033674125731176109597616158344709811548253723703754092441306672441335411629785857051174259790038738708980736232573908079384234343327903722459036449581166887252714185768983867473253864326132357087130509466486179604447130154629721834778473522550003919622872483611749030627780245971362861759586549414979583741170292493823208482436082454863951949547329938953294623546876918339539698540643436316519815158959437656879670399129199653003247138403294771347534169243724201463915514193885105356312304718719636584274061205657801453479066677847765726148249358859416063303255423834762895696399872078668830601633308645139170585046162052143766702532880168498583443818292476853042505264450003051184111126049411768257070086938310632081860000471750948264617398709667994901122318936270670051030584464520638902237335880189585241855963798778233287477297634452549775061852092735032090832309306790019445597970704037930841433422689014616616031107710203699553193646376955850356738818240052528217819597400271661139182521740808719503090546589611334378428496841887268444442573172026716693627314432086067576154121448921115761547856108014880026479956218124526266149692969084938756021924351508752344779317476031334413032170200621568261633526232020854666080237681332337266962407291660615261676985827005592881113648920791101963310082463405458409086574467850930197969563204557287629841974848190625349572975811694862250599481335253268334374341469013374377110175041306663813940573034007084815003420350301359667862178775982658275122649348442642117112650126371492430234052319264742212853703236258672184840916607568161832461231683504757347101475965822278598310935145647523486141285617389044656011899404442495399351537695105068045731464250269106477748782675584714004957318617998241885354873740389665804521503759830309080547435518776345350693912843953997264405511686689118301735925877816107910789506637708624998304067515836407626947520745050956497442659939731968173943173186682023779937732800027581556721030990386058622152116990977252078740656967943005212420312813884420214556469665748273334330630802200091134121274665782451218916388866137665200118033248932937692357056761244373809952518811703389669650662486266334887337790215848603069346671765773928829412489311737132303775338143419935761389187383444578011608022749658532969623429349499063204493206675306091136288566466489955668414470942440780714870732745417124672949226177376407457888479874577109164977317850003462298386117459594243574339751998067940679749535625319892739562844676389465100141437777147567607624878029218610595849931682063800045657149456410011755792440152515025802923060831486746624396963805641059175395073831581358754038046321084485167093997971271393663931682030151676202957410550266617966461199739850605925715983492042651070865935197783215489183879329114445293170303602023847451581271822994669242227151748343964771108078846043000413993994457140459304953643640642017686076331553745940627810640665794059367824233312950022309341583913721672662186265560648154858621654257270752830002555420322870245652081919116383772071977800527778212572219606329241848295078201785806922100927803448171050981875490855774309267671278924514452523548699076658017009047625540623660093352761820330726670063322250624140256033977374853606924823566388361129519668093016360411773611772796394775726022679194578034070647799986293133178881445303100269411972093371068483838240043386589416238798579052289999964599031287588145285968825411640953107875384889932707493064834460530423891745016284075605640267724298544031465425534069883143888908201750623652467338232516990565911947638489381635584153541857537543489347072210059599907068444819498283074747922598617276803732422456063808165707490889975795779702909354534274510442534475315099667193784477281114117397449033513103862915632103328027555645990852976591552837562448535161338045606535188510939656246604199442350109868190838325426003750336381238947809813018753394988883925004224873571014053483660461066342298321119780334117766600120874853007667179178762470595647047031675218443699884325131849952418526160576081368651928835091446691168952530164615062825888358155634635377164131846184435370821949378019013129451401513387036686479771267239587171657095108187356085421906721463842741714962162787873842454180160880281241367297134774393146209193689890852347431421778304593556494342804172615971533085792354604833253779704651863911936727130866097020761783788752331801829596904274694644717992576616431105894392466609772213479667317679601699728689452895534961815339142745460333298863097857134764626960753041673905302946229578668941684231804302580051454961145577941048849399581987655555504632153364628994773537336949911735906210259788374786274996564670306489851841120017985943338694680958467908661067418846021240535669347460528752179025408601276496028821715408514263875584551278565643257715049441618519937924459780016228748775570243142013112058784853908649577666813069314752997823719303729510408427673236891240640269748768433056982067724520309011349187170613438646937914625759780921355863707413865649112895378639960582601009804228890280166542803845890313811436017112987849528097167856815680186430447756692556763470163398305759186400400567034132601711950244305204704723751788490554542972509647185037943064745787630711309422598467198683931911186531299957383991929278853727114215575703032343150735630155304587094821452024831473851815377063416629094133892470401815826244429320586432404565920543387745877113717556478357571376869100971306996228259639497187986646184623966361069484813165614155156060390811620613183869993114172097585043291196830263853098200398525906568691206844818295051856177918490308805051630835487493259382068785461941949769574662487629669068737426807122901906751647670594867978575852400171868031679154346900097598720122743273307063869646377498503638060790633100574982130704214635924075250535479874138017720644122692654855063203084243590279579001392156691219875724474171995767675943056142455856566267708036165670903092047354021244737717751516679117700942484261001883831851948558394310205654264314601181793373528310350700490315299198004580987458855471091566847443745767717420965193073706064324406981849526070263264755783506742416205799250226843380041193482540042705883262001358703267153738941447008180003512541824112610725352191423650246631408710542720023758310962603352069912985922658738641175777520332665452574027530615891595450871451500052668340039989739367596567619420473871320836108048883214789727164621646395684904153205189844949047501439265356614648996340908837306350432251196718657908397398404976953738111922513201695717850000920247887144297239235872258366811741470776913923397840876769298240498299915115209542681929364910534412099783144495427268280267043079881724318416611467481185098705656033442877392281058115018865182306629810611441254615337047367417671784672257578298599570082553120425043928990952752698405871006978784391005595960654629542829589376551077827613031298620997532194470488227337433793072259880153702285690608357499004150656912774779381944981976836558013424992235876411461734895240112644590367407068478815828785431281048895150687110342720663751139753154625737569318116578882279029300518281118049663823459512720040715928241337859626448038454856608532247364626151559797349651464092340780182212529778506890358277941901883958875019762640078723328944116395769315849886191002227631431853630945890267968515174808723520857210711757771749379486165390107583222368788434488048830654176318350813001319832380386267678898058494026517572890863222733563231133479523528649765529711825662933772382669543086410557483911827606356897626181619564461017978064611653193990331577001150041534293961366489191083381729098267475923271302288600266787867976366111996324123576570592276574816040922644300080679654949472258024735825502352846055463041650045845498832728941957643471906232960706996969445488770261350182708803821923742451007285210062952490081136175499832526834741489840943799875154711830571255272015940567356336600572112537395740630590302857505481010261697417145444496110703598066072899624203210236401576470358900326197112080839723393865672959057015629120354044515882365042271231927895203965838722922065807222727127141114967812280753831376218900160476884168591535636328744486135206097965681786495183597495844199539334124309585999889991370010895659518626857825369367626675100776145399205344635271379381408221104089910184399168761297613051583691498555488966797857126073624950350438197939940194913285211697320508771468677605787298945217954747187298424493046934301001841168835347070873012503007877547231943595825857809267298259177787443111281644250291903352289671490807219122505011189979120925351500247148294969208810189772756087805837442766239366446057335877753643125681212313966863432204034999650158480191912767419244620890236131301503229942179697565452391792514068427670552124692439788866169118257959375548397959918491231927720503222515182908238543656185068319179291486407565352566436712038165911136347424093723535238979251972645941878930132104069610305546292494272380828801284359206390588280643078088043633809006041884110111827943397773448260079546923571804527805394370437041017739702305414970455544079045452999553193516771429173615791273040305830579780092949057742489578743239530610894561964686378542148757536088243110320859968948524562605409873083837076134031032640684398309990713799160432290369749267272432317209804493619451095735571725853580274931465884039956310839375513258282609847571314485245310968981837356218903325779980376395715364511960048390193196964227083102335824955829212410149005083265801718340778584540083194377945488662912125288016499524574318201158275087210253854814833068338815465374710667082413956528960545658880693015709122770105152553765710391583058967780744962361496237733932932385962648753503122796321438214931452152311255680235613508134145202777801386769855043714856576597016115334020920406123973034951677734662054626049210809404806806723779803326553647186793672032226183636436283815973244975517041698165150486401315078656636255760202847033987994905919916364649322931567518850928526271918639601642194709538367417648476734138572263420694596892647637742176941506328959138013095489206697963569933039376350664351496885711268588109190526494942821521884364276089377167765219203712495880683098301436696202870529091930443352241619038688984270707432681223945409880446241438328310146151981454704756827822219155594418732857514182191695983225627638197426063770624212961549682800127902735929559275162341743306152985553975024645277830010986740162480046863986280664243022708073090423620463455848190350018886108767143426071370996082634938714592428330030762180082889842588601174660323405236701436189240922239281768480870071939184591694221244621979103231818603879934745207636275929510389732637833402476750344293726977587626147005395859175919215210630798247787434845712722072304808991287538918245975487632273553065976831383020643784246298435748435660891556653734216584755510854922552501502907289815337009945758662382976492726808799449634782072698602817063808827403252851330700425089850048373759328025041155836815584127941226256227051982988038166698765362350367543611294754839966532248935635558744915511996451115689274028483788481492805919562699099373963363309414565510050917115246349853440393000169935680523267383393584981330839042467362799106197999078772929969951324144422339365785849094358827254754979469426899858073353372692122718481388660397311695750050299391235073858586439730582310810504163562021913474373123408986968980011681662662556792453679855823579041318485646551161943259184236646741672895824935186275656679315178323282578240075793988056437972398207502461974007670104313654937313729408348830641267131280165937540284392285577239495016588220357848269418998761011453151633754682787523851606155006050971967432261140050148537178357746516895987358430357351421958520883246598531772400988632282126537275022239290980724024002392201662299712004290554887742042585271772992456239032645395358477448759499836499726411262238560035939252291893599665199842569755469016453573714521884431152668294483622275609856826275056779566359309404149085078969912512621208060247761366860529151256189306115994334124068797364829027802284409767193223488547947257495463138351486992164497156630597567767261535532780457018620941119446766738568985359424332324739925122758599354352241556646809488911781888967797508048591018327436097846170041572285511521781904545273695339115562686640777795795228019897316225043345266317629244521873585556041109282391270862658897034017737919372596593200747246297822819667754286218516563953251837170661599906876542082533774883668506042078039696318781566979413228729402404480246604156726115807890990214408031545116228540917619637521037335224371027490155007769603556635059255900656773376360985315430825443035796411613274135773152890695441600510150788396379687691051524895525836509019567233004677168172071059283990395567081738690715566022865231697392842031649090521945807140056132650991297423846140509556901915770272483672918848882287749775114589546850560930298912120671425174100432716978712683320493534335566703882491405595459596592123409868225667538449234287743707200542198089434543991261984598085950721708968855477900223393811178201996928352204750940214615829429478653945011427545583062611154501105007645634231930866939023146810678008116165909693310143647835828792085320616228161985768915634369462261374604669278813008283556263085789252619467995627139016591257289530791025167554370122506858172240041156598518376899355218131440911160709694814901940095543188033082157267720457516153150383741558304976955257463630824887509712357069156589012090423478289595132696990376808659846933496547292547889314379404074069569093896630619721292996026250529773162865505935385704595829405084817172969710768407215471565784534545010586997538321845305525789112781377564913969468853418922793748533750280926857821895575437033770728616719797487159796562761288048274946155934813487949597773149424132735339228671566443084581020971548658332772254653601951571529061378831848687395096067450984482837258611258709064779117335010165051869753082028592490384268338602975142624008351081451280276539295840437501733243974614916328607863040831850109646129704932879519588205399250209475016565716433139648682433379906864497971346014040395685518069197444230021107433219629261390976456872055049396782405230670357603657786106805158960688455597458157955067788281503581863398633994381411077639421476575854841624193281394765291332496361478875458139238458443719402600853502151001093463320761153748853526632002318022449205835665060381961004486846854401461102805828581855000652521662949778988352494632938118136518790351386470671320501699099704401865462498118617472230910753982454498117533789514606995845800282735447818500602982091647944362239296110820582304904264651314337663880406638954516807228561239909377132594527693053380005564920313598047966379279197317355335487580783471434415940179935160029870704458017798537030750618802078895438672763423524791577644112661785713836158877597261518867042698551935517228985827604043377678594839175573709376787954411357976054300193073379428908737262529147561328036383072598748570238561331309651699810514782657458898999769866088952036484582020705547268133426696811204273733863353933395357522274332275366493501236980401288802173909830775778925216200526297386518017028858159971651695473791626080475310276052505785173200012434389592882599029334838571389565311368296352124197199858547838608767404200472002292780703387310718249354878967733787332674040128047657965897098354416482589791079290944869018847110291788982823960921537277352379062111034577737416914677531880294240057487389150393112007267783700874388373995018597851890159194112795031068801274106203121651128647064775586430075038743274890006157840042155817094798290083548908112480982829807046391283051253965160963712057728448831181499861170650541391622312627545636865269090710537713065811374825683871849142828001697992197075017052954682468561139761257258325433054851442725438195523652826569970745922645221074649425321510778604595396977654650089316008535264371117241675845798520124003648484396959163264916192181528869488834158046655363887727240853538831509392809179590502919911748726782549868988232099094139481235311390158572263773690790961431445595591644099251871415921535869034745040014724880492043957140593977739280329937206518828943980094195244905780465416681657086715759635310331273579801917663793741286385730901189467291553257684779599502722313912888572583649125622885125448173823769460919462873145562534395654267810846407029430811007396368742553343761796109000320742590927087954835771269411848275914255685751712629653917775798642023061284585486345106275422766685992809650848981138567050579300825118457858044718909453950123422937408116287136910702086811288550574947480598803171898034434505711023426208161004971899738657885962952858046069829823201824810357004603278063658833547887905435882431116771415982760506163455726627154669930046360601669109484220596973890873359858207399058184873493995884188184950372688445174737053953330661214744225127649277686341277863669280462743782374994260738106192710789069240918621831688313493181905668390710628799502106894216835101578318759871567069887528939594567622553442280440634447799477610058449796401416316011570277140362834686680851779906617373877118596010992513429311413644693065767331681307938316549839945736392762173251287876813757863628949424593104128866316112855682930085628552826284785593190938538948401276135319631666157169447286615196047285048425646328045317621429421546558751796029749825260501039876759288784348849975546699567111748094488130727725759170568703624330187923475723203918857500266632173707915153459298213581536333699117821421413072492238497014965165555602699480741086431584013039395910804946630807719152143688902702717052000996591465644126170243013516328825845267193603413741912176222772559165453936008661809082499269809010327074634662051520118764263477310090723863046261543827824385663529735135165914732510485904776031066641702934739067661114475229856146620944486366375842787430822260271771606410279016544763377537663389390212702017079678459510682045363238283379175811646429678410871570675442346908523641327980908761317513015652133095370508986557602804358345127847551061137007105925709637503350970764707943957205825793169649405406789213982025660728410067547226691550190377644429301877577875615807408469786232200852949832019610740298812165002052477765875175047944239535536714625464148938161255854036561221930041265783185837699078611269996567820587934554905538776649083316066956886874756278002191950113333453214893358953685010500593559952083553904422089143174371350578808711293422873024731874588652257042571091168296030140569641213516287648172992269619271388918960210117884004054084789155326058667483506868610746864059987886976972333497283381807955031160996280509965748099986916930159058824071316764234157482015741638889638245811162374955110388952656555516795410292362539953557809579470893973551893508613140491072555245873202606352431284773579765406554070599670630242397381591167643407529973530688506478394299187793688538522091173169262516735616637931168244519779105020401503581150528681401696528245285921144870663132535023041806900448963799409433005722928260896245370745913537033309184443859071118278875021235572026951243678123176206148035351248367384046280544591617755118496472493313355097411935292794016342664678304007143222975384861075161107284311011405913925423082145506410136757357304801242433759198083356541150754283062349781096379146305853287053912408217873490592277145013829425744571217529519055131736753456283852312879841986923410110601582486662318348191401609289676611748203396064548590469057349346456308052984331989752683510370333153283555220784788900437517121089890233800169142094492523045020530980740604954718306899963560522601395479063611728566192032493789480992761833653357908017657522461273917637266541378629890723193349909886911748489822073445306454498356426788887149435139274062294479962024245158017178076807697053730217427223100903868290559897893099353955537211035281688499020640719028880243621624789936460006977385555707271377731994229290999170522219821971343810333025302943956115557530695869917911858754191609132057858459710755614125969906268076602180450121254646117296427287613069441183064803425553286282511571766400576483211733370082314973373038789239383620321623786300778209022832425372896132689751246609058185461796810018793783385243992526861983464887629390808672528083474862783186491311837765452666055138986338867929684672011305492348175912659353362466945407983186492661521601821993537189276898488369032629318515995765539427838080799570400058634249366624626115175253312688648501484988559445947416539486643950616120353645818661047940383411104859769445038484065569771788851831003795225779929572754293372110448588574504391530347527325760327499055160382729194946707531404671294822784112848128345700284261547692897321575916321627938757956550519217750130707968473252030968351129716447543740308494948972205487010361768229099984096988889507312232784233320323705059901275975694258093047928949815775871564632568141752295270200274859759339831397174887745367194136195225719625902667995052598475299765338518681112797935619904383044712717769252445802665767343922968722654221019723407198294591721159949083123080378370685102840401022463723574103642082431381561973499259224976163452947005828635318521614323858482139177812947573947368354795653575665309576360078169349304267604968226596907725414309849661829644853221633121733972236620588072051102099807521523044098200576087447461684664804425233745836509475331611370359443540145670863896913925101160005032657157212958772880511937813141252845967111131982381392760269112063635565490622174514171876089728008347450154695059260834292887852487892994205312788589500520161005586000345410799899889046162458482851985612634869200037089641930207497767809584249492218378914501785636828039355283533795971605631505023247442153453746318599275111666766219206375316983028955810752060710278241509599026152079934579301056624235920148587877752781475184050531336254122798706063257967943878171417758752840745534694276668148771950219396473062224257090880280063496377830729091263218501952750400437439944027267713186538097735122191478054407875381543043955542844284613085611063008921681782936570863964077128466991355934998089102674571222017002861125318732008062680495563785119048363954874092424938400652698136544989617312309963468381106912231067932324628494353671127244872150256793793497439439984482719873274827844851107332314702340845748289730531263090229328117085356758900357103995601345124934349135408522658871781022934392355358148749801802845677647388921875962643133969488709035209990642186215603620977469967622272507570211547358737054370220829077351843240894770576277440650764933113329829794855643220242406256821429507719723709933012548684138500383602823179910914766478316897234073805629951686758278640071524342328182150393055349503898289337599308235360473032359863678626957147423072008537975496635740050772732430851910280138299424736247042791910384476773658017688786870644302272207514770574291345638258571911592966261776181111833109591798636670931563518754853651227193038984335147210137664734849763481517153770966697119600167463389533720045341428420968352265047014310780928834028490983422117770819664815713223408022786222870776753879064712584902622762244037877605333813831637279753573165461510793953287477404559952603240425031562471843402413346241905790349222318452806733305600075531661025731733181149262378055336802443779708924633696750137568517530244625763806612451485163937712138473362000348578690504514391963769091139810925784148514179744559493844910638183762000544158194902623769491558318933363794157731364642367976655371086209682940889893114466745409341239170573216812757542738864074893926179798556433282499512192333668188369570181707554657138178136819302660041714587414170034093729489482863840709711782271484544793135449242788055692861169770474149133863111977779105770453923169689297912396401360668204453210852355980355839104547627176636954535100199538513457011007752798060418082675954629301511855918905525315405676549589208538501462284561555255891380071863772331985216375462433150700886095140331465819169731714012483158983882675269924947900100356030768697865420616322905326355027400359926573357575229160460301110923919247009394330353541782946444841926761552427169089685169966035252407527334072952502524334847217573884832447875918966481937009923309220355463450871791264926807198755052864559833599548086520264417051732617762503918478028628041579257060427060623490035307708660565475545274665838843369142941177869077807233437120245327269983983784408621727940951211330800449834212270626743075258235397676605339792314934057502141956115968511888575216132954086705343139158727056069049184865728252813186415891410062001981113473059434035820065576156339114103452255336013046427173051454596936089593820278921972966271580000341074572339303554066124872160793667990477129069778595935208628036387315019236105106104664177855591519971941380095006200056792143282708441725651710896667817322053878811833739471695334042491075489156723441429057247771878645593277191410539716352752920064965127114390948987721443348072570865256615426812208291838240078844624000938983083494132033156340368265280612269301291107691422136948883755045895094833021621887239426304764987321950739675497041909744968467270053908409860634499901719692833248822770794806921140689253349108828950375167195704449475737364629298670064920797053685613165580715957670362729372595178122763882030934260060496580688405863003201999458374989360106532016940286145999390913940465320323635785625524121910074249716263871974494158874939076818168787478434479520722040555121462895469106411517880901591874614052255696648774413862314630750062168827631726359948412024514037223131449753106452076867681214308016684667319952136263819787522673807602741793409525404517451692946086003905329893285755891393815097596572470744366605481168960244647395433686516705915091686450932984709844424077811891391822505529474477811088073765165233746313684180689259814612152452735596629581399495030929989158497330779272172349594537334174734837384477892542746241223412742441576066718232155693037935403322574376213237124277982324052956670483748291841518305090117510051999053753596268086102835157865776233835016801408460237916140573435083363135673163119459499031261740539906482676114333409883077387857969514784628922745922571581395797532079331106736962446582997387233868780615715432983556160881350473041625780193206483099779165321682261673531400603710282863871190108698737278352646627462768069284679026970431523857054068956453214143853960336878758544935269535305768434155328418128833811461188077582480303108202351238065106771014587717152231184322379253333769046788967293133690897509236531889600297635529561627350682241205934884536598396670900839779608309377420593390390657167282091212972748800222067163116566822286098477845373160601774757915458623957806646811670659418131500116508813881576298334805110287066586075365203404645534420137941115584794143859817651796578488608780555479131540473009388162026042765325560738637426598187351718111744209087397126161778740046185841678118858502910068192523254339771949508881050590218601358817649851177860581009602849595204609949755941084200811070408266397496109182028218195554647458576836476934654362134953433059950994195076547166182050865076003445043597784870570075297244967494452886278784906575440400217310302649759157264511997394727433325067847177561102428083546206902725892746542445809436954389136887217350309104147785933945927849059272035384773538392826828572006400504736035792524163845475436381003154594421325502083913323063048975660092482825321366990128890604147138402428644889808286659782073809603396052107173007627599110960077757949132555499054454417276779407577791734627514767635823331619269220268005677469901908955504010763875109289720557514028499634766319821251836849058514512174395743716333425221688269721921332092142371799162644839853224893860126579328982935011790277164826697535478638363847615447137254549882206954542445843655483101673718928114702304312398446047271488598053946049820945262173648253872392955218289595008818320803936673633215198104720596510466344442849286028340520070385792535070115233016551753507963376744119686588432363736266153048122048667363930033451662757250364237072468986315043567927258069508067168016817539605323965107008942087048931203415295742350066593468100506841381740299527469486297978820317592101560828234429891454840261137408563632588261284474539046530920573611192566191054120494544948247326515247888117912534824840352085156873850922352810899030492342344880521356629164225285832851818643814704651516900749981833643575335638485067658026804945130821522423696144118670545842017800886464387045407121428674386671662298090702613215150363181031792962052385856263041583834779791136041637735542153386307458205399184537678928265703993906140964255766677138637571562866893784043060465797759941901795876636141600938433093140946503378194240338658841825728839184657765512758184779373658350454178374115134493459072066308841865147358231835834427438788320829190583169036602759677170002290330835524629588922167288266614456950639360781293260110791461351742822882966664945575562673017436480113734455924913514323200845919086694616652636276518638019417301652170214668928406534060828889384090310608275764222895829346281050597560825874312026621981304992715341078425178908426145197440630546234022243389776903606636667726892448025072218251958371976859090912110611079532869651201872173608739588584311092141825808382320137885143581937387493048649007601501232495013841803313126331348557301502379774076642853065208132208715174905965613393282890059087454577652725206341830520311008663041261464658772456127351574547344311972600435461694558444527173989761871687981684347030284745630199799485547825566943912299309886369779387712124099507857402517178284974688955166927392335524515246110450342639257421769521149159184962632948819979365844622891967104322955971604572320346298733657418898918657150285050546698715619752788879180994994128340793442593710274359437988354570456053853673579302335281653296604590357552390604616097499145752313048193923508937156470656943339343823744895104706947283526322159113059485640638699642850863278485726659558716366892427290419446544787488544443028017159938553336097473078882645031485364342809515819073969033652214733200051297970405798999126390235665288457379169163589717767867938558049620083274774794764042088964914494896282002509622575238361967205916566620693684722337331352177094496909156413191646497207097283481557389023037691008845969719200727057518987279787256348988081310302057939370844068973577840446581926156275574476150054688502610153161350737043347768584109678561992275386322640694706344251218993483871748363251606439287695005165839222806024400511489159565675874682235045253572891942253710419518324458937027436837088189166764698287521566717737037023398131153085339667147076362017640948746751397824652513104361643160067939590730581375075938597570951814117132933966265029980539559059422324920664572456207012861494659695361026077070963958718835864941030155862310276563951162279733082445427088238636609729459090418897143197052725683995878140402676994878454350810076951892137240093455881073541489547529005709853693046047494441092527142834092137533128810046531257381386948574972590903461463919408681501459574353171555588903439565070207800367544672387958085608077501781995208117639243158177231142823483047406709752429983659988173390280430466540854985953504317018191253100123895515663517551717738898597956058990345902088805664637708155966951202392685858306081425680084279535068038413075282146513554870200100836116229529486187049111703241568933825005128594033677986626752750029925221833954853278011710830705336036298726722020887076800069876461226886426069360761686399240955972606393433233568493655118526166258628979188288158442240087962902603342148701990327725657589606622704952192025592459185153010952886171823417490418356543774487393374285175325665620900118561982216435822075217510324333786147701909756084696282428986511072470774292300143692799220788188998585951032419405292290786784255371027144858973461082964294747021120498340877340756936710065227719946835417891143743179518284172643759364844057997501649089252506780370801720401383018823575009918614561328789483861446159618589654848179897420067570332369774530876061232779486883536121440127942829170552776823798703711992368317901229817341720186343680957918599375459357642980411253886519513848906891842511184822997243427568095455825657622731072561805288315807600572044593677030094439107370069804600102943540903699698364789732143836145775863429056860671519905510494621176650189904709393929468978815470549716390788129217079135653462632628173362049799476180062229283727263160133156834237483964548434005381271939942032691490608046292497532858515809623761908763872024022036125822409460699590187213332501511309661983386103735935589834389443606299486584971728604631328430922374598212214699616160206009435752777826494357547491467355711321379304898256761772897005894401902090901688635583557025486642433144606798988646587003142482973571457331850384096997343763243485935126198084914357729056896657087880005002195525201489705861628666754433700474699957683282612824757183400357841958700680451213733883103473034445265414986396656294877584245251352245719194758927734173438861916350264781653290415215812093992980021327986182458470022964433445171773114186774190910741500640185606566563521625250450117886420214934992495209643601439456658591450498011803789236123759119493595496898776167765973219895877139633910677583979846690019319401040990634992325896537434348283834520119562191498739467173093060795830549489874760485906524140669472117708291396581393473112603186122847968906904901083731712422379222156320100563496761254875137638002374413991216367574620095215941297602168601988247926948178453824008707229452194095244194583930472788241759476262156578834671076029473933475506801120489900862842812145487268414306500481960332244307248994741948371336989547621782049546631343669158376427674079684488898288183710113282557621288280007755815942941947247956135340138255018383612633578847108335743975852776254649199389655162009479307712478472020707111747088104260885782204208385190333494408581979211743427896970230725249015346512391719581713594667454449592937564344608732547610829952049893873374827183525854542842450350786200100302049344396033760681494009542518553293663254288038036651857346382767156438022436236568725455752596778100745479418935876811045080063132433156652875165439764467272602680127938138019392732654310260221300211323562123394672124493063356098211360209832725995130005146003716948251535834343926582845033850188230137521971497358257144292988962413198746044158031610406207079084752273666976256755915139795188844685879230003516271480401694161843406658389704180185159614333776153775879507135003682363709246661309019913909786504842382752600461803424433630519006275839265529879197282116930448695644741329372865481808829004343819973858688670839983534343001345320956407180631957302452561819459345742100910798843519161483990448419613641086482145050496273801641564120064093455539247109401966924615043047914784478920018041713762413172437649535768924558787061870898110578772512448733214239073935803284106835310313639160397679123939399182833338363402046515572585379295643152182722580513239126378380083579127762023780321569197668031745023049684941011174480753624239498455173517932961640811767467924859369320343758216485603535771113662076572351444809976504578104273856175274834998025335161610261044749740037426601288291783345147104533359447418556590813623720199561454181239954594574834145244898260334480392650486612965625160743478609061679015113916534863272163771315197217001239292889679840295921305987261104826327612143756208548636111540064818566091163034786423620316306203962504759563566352104454056897645670611167281214453400758202377028957838745729772696611700873254563538935118398681595905903411334738222547322448793210305557608123595521930983371297108232926048480617522224298165109451608054645011259619486498858530393348830795416916592212237112512307299853141658789014085855079687292134117936519659106570228729368735411757027080663946496132682413020530747489799806838458695290383057681627221537299290504896838329082874408950166082085649692358042069083926471825878800329606184074018384530785969038820931041857793175090068294181025563463141013995080994248751422797975793552633720798526437506505228548175943496281835147498816763149794799895832879694465825173343596031799096965543580698236958902954938221893695063883369285547590645970207008283445819852162977075452280055868603203266164242691077282920764754972635757005598115318993028930133603795615730701754843021809105440036818176812345109338809661303155411796800913205821528324868682271736413071189734410937668547974336694610453724157804942063161167803408237235516743990554414984646830517116938741382165971005404814619469579026368002981409245459469466824753927071991372484696797757472798334380679673975880723638421760612955421596529389781100966680214031691935075850753642788482394362714200937334590455680417818992458198024506592315415836254152973416633804424072050990214304304116828083520227851547078253208353813840116886787248509649003086366528178322215772122397494924344330295533083100132432276946410996977810660637033469140712453353836705352391367751343229079568007469101994923701217834040986222850496479921909334849346440864920330144045205012724779858046749179078281809785206994747341863871872601152178688898999810844331856053141553530269637681314436853274941638610799787722502273764520569612542687040540957962455936727727675533189603024413109222172061510125452743016053554224557403159436306785968911331500912782061763929011912229606982143767488715884761212667969299513575131204455088956240302898118724351767452954659911098257041038910787071659084031567648135195557458525283289512570130336757195933208625688057857872831017124832697529048045954194725717070096523017629404882150666530015503003149887912488332306281936913912554682786264001668804594848501563378119720637524787465191490895799955556410530407496657057991603050507047346602484962301093411040016907840565985981097749590866895439215969061123820903036096863763186725436752260707876517487140257681608622447940555985893357159247190688471652255273826505189230296814418026881079422473384185949444848855694183994604546034787291854229591769342755488699124035598012420979301137856819609987598426204356877950151043624212616005047899514031834636166646082623081111890619340511269668072374558603454386848868813194039335581852036695956776484642338566148781043470991672813526685082600607702216761582001764635670956643722341555613888246506401439217471260143780247673941251464497444924018567259789836453269738536098161674309425399348826962962301303440991489892013043969069595474968763314910232376312878653830313430791569304479780966109459512174086211105175872600902969314266519701731759252558228312904062454597748411408400135374987291806674859717031695783217380587537171997974320680483054833686965381860428267177311925691847102680456357652637276981926948315907468384644002283915382557797665298532310812816623723016238235968296447733885918987793498813718068780142415741013050165324396788425872149978771071434353652688285779448640577757127562091610810280553453845324809171016884341188273653757924380468573289728219254077744540651721289614601981181849032982273011526639316615006165254157677017385524091567888966835594388987622257125480435929778496639139334117190637640031099365848207622412129353808871610549262666966665836886198508506960193368499885942714490863808784145848132940254762592535664976504034465558675626829301953347968914741941226821332974710319100320373791494013013208842843850287112378563440593087718165945612825356264818060077118270427172972809778206519272493222299019602657378974509993062047983192330511743498330212942976174248232745137448312968922732106821401174098921455005753607887859477380712936028768236588713503544521178143018910382370365209980446841938464576845971712310892978750556197854357567135083241896303739218438456516510563673280020498157675375998561036313143802956901542934945408765872910870538239196791495556716210695290805113414756425533520756343562933436509584714595378372011548555370578648601354126610994009583534509555736714805470713445944765202627918657441984484160213680786688973410656439372524702549546058311069971117800139541787978568633615932995771572367751045512681640738351352616475476598394485305843994803009766858005550318790550558812073920674933312589612249604920783004866420119570329830513951766891643798162803811991864712041054674002230222804375016758095436204029945943398689911877819616132234163573449321117926048976440862429313968753026298368882293337810481089477747105846693224128229189234814884813306937374715513614532386023161776869381227821768686834035154718590029978984789618492216899785714790933989606160492727167606838778064412318679800945919171249995951540798586198082399654540575244093104017111876979848858805060998251130844985302018125856455273374880950107176968791421696556772266356819764204243121997822536688384196907395577307231987380218160047513680060141834641681351651314718645042242252753024007034504127622890752206326140464292579134828898802493707410835909738572445626648822133079271460503427979788133477006606947725847637805270374908243078259535453093003605860353387278037583700461379265658382296575440991903188295256008244813444261072869829412174216334986261918146985119240687903535089668230418906202565369544813053819088292905087437543986028495922687637039648333414095687462281897958393530062770477124009851562198311269612755195183637624043325369046622320083373087644199358485335993406442080502470436571763770330693565685729443225454852829794103503997852838765282988537346493708621760670842333671837493377062166816835913136799583547654138805136534777796639368178260273128566008161971147330816029297011377217157187954403373863261581626372073490482003765860093906674809061066398718079184960680654989546984379206784673550234268011888298317467208607462412190997331001983174619803430329256349319774050056584311227937813837650920064128666823243516843429348960861966525293055642143190609528700829739440118333633161123291945727463866336909614793446537347465792970888068000085691236906120390310563029276609950256917384060047389398500025422024381008610978452978975376538086764170314286650885551780176907136498173759607523958175798789006319329069516254539729054074084725658642184267155236551592092887308337994805456892849260495939297281168776755715503075937882418723720709490328813666529046080974832442480275531548464261007195628392476015836488058605417567621025883229151382595767974031440792876473192519383919892587812646952664629240345642318333156188220792273078665924666586807327702287484730337790872322071213626614533020267868094946672379047630386265358171664348572253687158698207681461364559424976785346484757873022014343496758524765186463120317743864610116224813776295700727982961336843291825158283061572612800910932540120523764766645701845528200018135456910288604194646932077098915209873611892603837010772091633833804923221348905736842653593894196271972595398466432773953045820949564418560735412820392797237869251701487443127938135321911486944756997629773503890842417473745735737955133872587980207357433103998190928771112398882987809820516164288323146749058350272116682801726939292242911937483274343094158425547420324418804284005709661537473248719053373113451292455964608309451448244545224431699277155422438134985344369996717097882474110004780276674303325715624687868814879611989574737830229311418906017320830485640612473552790553732376408150441017600486965924913369390431987095382741743148224616368782756705685281294369447684039064947937474392450652419088924242898988288839661801625084181655495607118550045542348457919622052714478116806472778600534568883618865201679721809633971121483718022516829644675919562080617440412969596184636109092701478961810578194827028335919585014913256529295151850623266613185533869631310415876717700628432531349312221845416347086726991768488947474297817861380835477374011135937320065080307578766168347255843669054211036922130442117089146219349279767457359400143978768852039005589880206701191236570114098040446500565265378161509105053783030823864221651610208918928550346980293561517772293815346420000105297030047058845619464909755104698895015321750719972695243244885720128244920319074743363713473408856445548251954917452044729859287330628190957634729682219650519838778424697807720620991626692758022166419085749495469411454342908503809893688413444897603609596841801947450148531559400596094668051518348957182259794955796063191499039812992208009634795812676943988010298499583319440904851053401411355887822548472376512100378929917950569309204816491512885631143827453405882088854899634499680268221302134998624081871285933348517458417396103706236574020033867459195985636536106115913869530715426241164690115700490221072434378165550432738567218934080569395115274797642487638765632594415387950883543305852352374948639372994695851723464165738983528669246290841834297589310967134087587900018946660034834432748355554989038981700885171405697943064594936447938785337359499147088810845788367726858928535450293172454976854940315136569922140013018370258568792299568542077136715530135794920541684843572563051405490457395314037575614947629224131120825829198573873082208862550463245429048439049594604063806501197813457452881841669211121130459585657226219413342768982998901930646410183740053290856371994071072235599444025742023732463021804114485255608255363655260716407713199732512559286729788624349956848834605006997625915944951481643712760608683167271381085432982794810654270204461453817893917897668777279213902940674376102829143324499494122225830464837554374588920616645607280776573190516679239150677706428387148967772940410873655995029015093718948969315240260093777704353272200510151839989482476793960398845265007694046450328028475651620415666773346844987215875966382296784093398333168037713185492768692143704761233494100163656347563296520381655849231458369581815903088486074308263578722936060344275256821760445214527005160073811967615382744335662866737781913572171967183802522547841303081214341180469742604077686298684960598720996747021607606565992041108689743448603768576935024374063601322174619257528008681410595556310863305466567123627461854516393106008090897048680401776134465072659002043894105709587895509354500724319428680843871793542853970753490515625017051354573342778708706942623594071927549037495410422654386015246723402231749276019118584607960688801194701683123136304261266281918786515278987216471377605378645635235485910664650262380288701370652224116732339206744302813045064828372994974389159793490813770580559936027720673744165949508631029120972153572644793663462622969784057815554030518535674732368465540946548992266353026315126585072704427560680052199869442968785489401120770512715820552807675035171292736904528022673489421510111001049908563467097728491625847659535154798415631512739035634789466495810391228358055926359766870241954148042679826760208288337999752967364591648348035858571838908302714864174329479000418271752967932249278188410464546012170328197534060348693689828233771891223674620258149916980708181451547448659879985974805043343887591985332225830285133392279284384980669793983674263635305921902707473343639521715279241262181454111454134340659884812566643163940712167158889201296211586416269100216637252636467567660863594641325376622444444961048810751522988966336854524528305583352759992653338008537999781999238372430725918777635097029738029278622097267875347024022593127875221988534021917985035584952220747537757542496342533567315952890217271195991816239126915517828414267781435666696400637868394391283597404307246899513381596566114575663196502413126756627358676611832871731786814389010093939841353133302394613986930135723635922084765298610687923065351468247304864773952510798218800067082935868980253073216087854366513887904778401169879625739806599181033665943036008921310261506157818220322564883237749577828620568987410293800902206311154433329787614683980664995383000605035018045644447758140975278548197769667846980684402107408556770326971673972359830286605798166689741021721597099560168960363236833132485869280398874729109862333291640605924521926417935308756985762409101875272546670885685036059737817114364171346281225968755746757400870806422604772373389053838444456825038425136254261680677062308784935758563192213882469115464461760358497836795908196525393788274051885977054844013098745773190878191351876491431493999547939691792220717007938291375438634143032425483207586596555033303621811203747737186757141833300992546155796682384487907129658860163087967824499373252788288140330818927873021872035184117142706913813472353732155551245838028122498243019407067371272544865262292810092091050069468916296866755127242448456738397919950442881845075032310652042132052579459289302906715993567933024410907515218298674848411988805081582636727792054296099857053180587589923639231977795751558022922520216737243144004644075433551025098089514358804049184821820216969961224535412352102772438854119874717073164815952470209493422939403109909232061151148348037503978980090248420773790287896648859397853017660717255207048975574319016962585895095855145170044046265252398844840847981909939572134532888399506126320321970292855989850060147247843213756819891086911843158315588842548239019351412417358064969954374490592400637763166963619813078730912730729843496766043766922447823911041687961331462347103659212561892401164708037761376924438019843424944990415966149950337561740408948319041428115653174275279618567743759631130029783641158854689274293320886695721747380096794959044685681802902467831716074692182497007812830469371819554202428181267600332583174948839835232895301370882443745566333638122741570369626333034234838056040392369039215940138287519739899350921587513445329917029343699190784935443057963160962553265648682594533398632609713064192030530209902408183346371604885942246753819512524388531419015873545279341602731767604341805428221500928076327390184581400637994869282150452253759003281415843420017723323676366630800532637902435813752866123927981689208776070114010353609545261241351094650334441296173239872425278334693581891140228511004823866922812231744466683587711101720334774518008585036569574438168838060292407307077290003513622591594215047283868710708635504160638486152206038734968923075629088295058679036118521410469355187359807454208765328899843484555323850444110442258598493923634052114557768531541444152263980438295074258733146110501570966301542107255082961658325680450176047493852085752605918519223532042160123090591460573968263273503398853334360300218862897802033419569235713060702716719793401963051484815001478910289141912709064224451993076704978374210849162486485877722485234851936317399764900013323975863313044934966336521865873384658490064263154310334403446519683635145018769632885515132966200817188277371791669726880527139512518047298652268309346836795088427231745572226925621852928492587853450947282344630154669456847534953100828989869033692997398929150473434050042715242518114476771662063990329321414805820611440901958729504355579245620442242183986795095340184175293502331766804879493830617683306765611477226339387450882689715537904746951479929008195772028475739035588317907958082666587715952151188604374723630216046974123777739110797202015972995774384482497335354834539585363530495347512917970093312657957257320200088023959252699185806416654706954867185511513425008672995532985249856820688532966246122244719488372542166560080352402915058150636578892953001986465489135017732756024784946023032653188836316760489934708570537054033927210955524369729974884777448740627728343798546633331278800063306845480468466699895559946521395336906332395520293193325814318802414857476563472106190250263440245592106690341273233781251102779219226932295809707801255818713244003903724950207576355398563073200076353063439816293300687108101109930351308485304687469660832519815809346393815338224327804060834831982236294868728633323625060981195012912953466297568156166212639408923830074795611712904483462746484821750350852846200671126026369166691310139539437088313615707623739618979050787447002643993926988007148409616958557806757916106834001351083349023909035822918278806160223657350195249625125466809781920057833804445510473157714099192243842554248319588137779988267814366300042949944463124196409985077983310417656957923989970810010071100159605533187918536248347515749386951865266028370302404101264551250787167531017773429261790613591684058285360882601157603860590316121568781844562583182791002124888727054300776746744872831695301124657719844713714603931490264168279426491283075101927636570276071843728227661393710217695224547940029554972140388106965139913161973835163463964873094480435976031974276889109523093139750096885301175502834000349505609486700083024444103176289229834696386609938133325297355778016137643693978520558251642868009764242548533767981214060320664107830478329291463142873175263947298414896130371954052758644694815760243125746485021135042359192672664940577694182346653377917657036571702829606061307222433441389492120270986668385452349142122921644512497096543699943136996290830059433094156894756921560921549511746145064897175248655315096381737136020727196441494696583606840108766445326649805736799863887794982015612460229424050594404007000162389468105533708436653343444231765462455754388502634441511062434779785384578303142902483831267999696464131041154696436238093543979119293876843068001778024637442811832015719664936766329680101143897229988725356171814098887226989771534590884437072790500578719943340917378978976811670549689099106119725873592497886972236538108043842145864168112680203699320928554510523023397258059272390161528476241574350554713253605977956286521219842680100534549884662905212862588122211571723986454255439915051173191338279190871521683232357523852016999100810759072586243763567980002700213953225307867070108002977271050607990498883238489497348168131402206861721366136797295689021488516269007138215860592280353835567026718303331782853622515915101710484041866873383309254195439537133827711650614885783034123718205554137915671816336838427290028522196534599242777186538118645938787384450585950057560108829654652400322814602684807676112724132693329213221497973769182493132215121245385785125978054312583558661771347305694757090097888653598316670509286942810468014481693916558690429898058552497150631477357121983504631460016678295784763429729480507686907757216255278042036775801054206707399802587851663614823229120638051664568695303479170341146755774501151631084654957295554770958656455793500625181069143042052427803689856979344822640123676785085614359793425079964039646438313315835982328571973132162249856040290461460287072126187772635715530762390986986290698107055552467682208935164192796143034675862088270065462110090563491618479861400166519747229419857234138672094337950905437265982851308800293896159102582816002135864300197777984016560022916631631754577710592814583814411471401358910571228895639746892354288743420576010188124127147403418251088781142622286731627295464132555934851568482231450142355146324753344556314133029592583342915632349930921601324331227943658758221175514123323253981214869029184868237360214567245433204218706243753689858033305913552854667932596443913157381603228651812268186856850728481780731810775408601888593295640030904653605698245698134803742678803435782784020050728389297992128261511598726283151002239023784415306091669838498760645374102258274886425768867600067143555070671013496968485717253224648026903529298185597589403106862927335264271435132389358507262201390859220138041070968185129943480905707486697809718356661640258517597361777560146937810334844041759624772893492227236675635255985930693901325240284298185317763276088993133962806799943313061527949686572292667867074972196130530324148883592147062604337363366267498900117635131063042172887440965613941680605447514977721897719393927850074948253690522533349431672559662060518658798159989639617017764014644412173316275550503154704597026327900414103440255199687231609711240331299740668571913777109434610877337342141004377382974849799403693501163908609113916404613620767957450364825130023222103511034532065734086281838653030696246851102160655768698895162619668469184200692209878452667437913358336263073804293372794478324978972580734791484609086641948631424617721112599567693242571029335922814583781530695266327292963226040013907739018344873832397037127620265678582788496421225741577253616437738395963333151395808063077083542823888207377633459207048970354751238107665803041778306604261740286337454541994859087924503272875628503561276603778212108258492776426010366383448909442138341847499106836767983948219012582423997855808761522708965721946131762181127299472821689192565535641162889096641405188813199545748196255115210471679385102427075168273578522024656791232498222816539386350380327494752948702959663501046109341415344935708448600520158170717745181763145933081323582696866324773076365892498706513959975754653229509634603201499242125812524307121327157656372490240319165974851163485342547385833492856815396470178330861828435106803278550964302348378804193735936410454584936000611882914076191985699183949963090090396569046960274819065831909840055560309453070390541688232776711716148783144295098270401366270556407186939389858422499114555556231408361760184253673646645402576945875955094337527137173176846243948935183212440867344358476611317124887962977245325254667227326908563275097342926050027357524629294909549725086171569343051402543818046556818967085644169751409722339235929722801583162678551711152749048228145567060609932190040885550328961217882185482697208832736244101138974514027478791405486048434490178037355554716942440387879181984964060647876057238132075540269132287239313782775578716563951883955705250684248073389122721341772623653180436367191277850552240370516153556898223752983688685439399076521584299326837295933777473553185638853982330111606556705492503225468329604000321723788594263351616909218423866799920526387033692901207968672850168993521573226842741310828396732293633885058599783627019907586842752982964123265179403254194919641643189688573914043385669944747291600657913276692268264488679192579988078925215356900675837858542274688369124477901351147476868685992151629453468639996222784235236839395409962870397027198476540538457569493481623431999933919334773807608429329706065125576842979048921808585191791153342586509512405857432258809640705423946412054517263714870637154411118488217418058737970429158309992111503289160985821574441818703524793005911182624089570885266388431909063722978330878228422098955550628897357451713222965189973421690210311975659454758985947349202612821391883711714947801903283900455093759795048084419801796432279826647040363738759041993357572400548622690980917831109431760809187412337980286455408067502181020613536762595547472345338198265968746966380782231813941505040357026456050702924188079136645921415711205658871446700432453622313991666877185947461198284170225915337412073039145130313212939559445935947413794896188252852283636817156023941713792795630594356339479765581017498056343099737464343708685015692877349546655726842243572402301823776014709892170004723122664396833593360538201665791851418179217199001518938175849569083727110311312557554187544505599927694157584094000031927609702852511945779407355806449178088695840264419030662505930750992058031863009221472319271281140577422574722570658689670725948514503217747416413320093651707540143370144185118130952331429201801946551268330690158880787931046298688163415187927873063158429702045890394815491012722212419141481944675606234132605409811573250796260924767087314144127643438434501667197019685373584746578473536772740371924662517143775886811570659720187301296923695425758551408305351301317858276764074005612338584211525249832715768978435413803469193432941771044849074661160781869260434360578974354698596469575672254871396854280897519024354138483205736531508589327812949961845958292554677810464036055736556592918264448801605191841092605690268571233576397633898921985264350904144909994306353842056967127933968419498405663276832196280264377841394225438479044209402305454010305009622718023885257238700131581959456291802805010645791571533498034732324712576689695617063756114650413091789240610121800088736887423696442926887880557562685316190574519959378016800425218275683019403033170008365952973083518961934010891014036693980343959438665875249970729272311745923496440749791110982832107618829495253430566608442045767181516080344435876583253512200935544752493217924141399348591129649656887813323098577679510872749883862222297555692948261647780344019890646507769879522786044738300793102366181359921919546307594193796158092950882027199601497920342675095644649060065831757591663384905008770892376798969702132356325340994035001924453761652676336659968097070689411342305267498692796325824030343999097219046509462729329742840855435250169261320401131050774019458633957498877362090759879490238494511799079514668994093757544076756401012471627844117216747941256530676416602278815776587301396654660502636301306940094982395455455117829763712588933974306149550244113953304773176289259561801439577479409298880727905240384950301754398087798969078940951429553783379490917034378247821519023221672657348179277223378354740455899311765806382378190163970634822849871180968624931650839217733378649787347640815653891847672114527775981773209831186141806390861141162789824830169412092758232361915680714194917182606990814683390503801775818529396491175016865769901038338034688135614084432150301547160448574583420156722802271216379274914080362493364442600789638598011281685332608668164211620039681927763423036746126466706704082372666090227344949665529003014381413596472795520954197386943957564637696741624139664811844161170439300591343763397853618775527314766141352820437414981371598495012215649549753092945013483431605792087152141678209214006255553587658392307811900917593946143913550081869115947536483648358443405230403801699653211627024472990591289257882726905797234677140275485622644595977515911062764462447510122807011075017247709282710416577829129302488761761548008564228778294699413274274201126032875714293606316112893303617587522804870900621002793153057631623291211109853990606284642706989776516412478768852383303436261440159083037962094028423544215785892039954320280544241585840250726666228802880105809340251230232330227546505456422419154757465429060229359613245845922706566184917227811768366604527299665827997087400394320509804906153463125592287265512511619935888480548634629107340077803485799326236020264337302959081660732958891379820802418449245132431118025948276740525375088956553168830512644859916749495727725214309712876559615727035577386503145111928059581876918243260449397069651945113306519030591282322528881726340141875405920431128318623424392974322380066703004576385693729935821275244629633906678533044596032042535760377610507707775187139563423028337188321910166422428209575905112800767573261637532903301673599799427764866343721082682897115643631487670790306387525956773998658990127848502646746681213810463716000360110854716227024743104824468285051038996190321349014193990060884429969403223346946067883160575883987040403177119426160106344662963390679097783415694927204545023388813426208153124370786451942232072730692317715667428717812541203424594366141751800790297970838021798660583527449609134176694344564509019391027960660298881291662553698922284582600075883828101398499066599511988543076077831314703275707218029161368777551741816544875676335538391687110392600995631777610555827212146669330952397507018240823348866324808584046458753764800132471352276763302400520153349259764920964930913640528974657314220483893645492575442065900990989581653396229072101511608128126443873868347635750499822238266488616224392649100431145860796544230386272772018437490628405922635120517346141832671302860821904581138375966749808300754718448021832109977058139290052148279281167867692081177290228501661181541381483501589451332097309573079387335504411766641167166050302731531899074339545008722713984847315886727551316130157306333588979758210105563656364279770593044822574811952643788807737452093652691882571868412003651281010956004039589475717966755752384648518849548940411816251127262205860288576516431961093730562420750399383774779181695615012556015608260516128226881395613920200455107141845103876544583560328072640250645176702468041285974002760400100904508939306672247971118979360811777577206698868585109882903166899359290161518053023590153417795840868030979879002756650835286033411129000693071745182101473741516454244143959088248002119818866168422439222915322535692349700405766064157370586353314960133496810992553990919650377959961555862749637005900395663527159239513306504095037094068481470100646711727626285629823401147106689377943947335832623962258196247191941981519446088189087977407807516043534276266825370744804430395394976238835494439053883473884952539241918444568587446913163280879503103674180671562580007758014263390428438422403698182577804234753143058555698080299634858296336454394419157972706596242623655748734327658384700667910251854493928957113128493525716060910504573985450357070691207730692984281238874129259214942263257352304491754829675958792159720455999550784221246846072784136348662051583886799999445449218537020065331089230669501983313444548944873957860501008494321554886671169049738362906576521515540284741645877611957912193033521214058104549510972047466878759314289651895120982013025196838526091197072700147643055036346777123895458176042007905636842404349109741664017772726103412775786071735131845021410977351832729914655046458243711459982500106014638402292553887928430189566281174572653251142855801051024222511451650301437837589085132733195153647084409767252815480564049454611070516519751009272569817599729341404512350239389629709854254942090206363522649612051773225442270980335372600291721674466023926105234310421242727963402830108293125052769096200254684875872511852800207070580258800622802580840570200550393339197903971034998179309296495846447261982288749694816811462818720661000885909088716452148906736512961362907621179009430438599166076812390190466329154900811434100350511083069641616713266201329855674160496868842425514587813500706262266870233439935964050489182479691233735319385340691078066025663370945566525363192015417537733798891924403419080407400163357461457996786624550664841133099298869458633318186354358572361653532993256265400185506349952882766863123165022611839333370448308864090427862217536202507920797498304606439183744346137814674500114455227826409244365896786787666966026162172409027050727001771665465654288853237650610172305173561803380302848403048232444140495939006842090590513459404867798798429205962597319612290965333646077624736798893214683764715561464885730099590653867267897562213367385599259084055561630621799924845204527709209619308087608229577117242487273409771013341467923829388375799526370470061756066530720202081335007740325349655282160011281655901426142881906546492527434387059054645569638629689563885643935584578810510304644817448498933105708098226382653216993175691180949103319177730109552107791605943102856409269805198596774147270511889564100338881554972852634161582010377710515968090809647648116672624853872282704790113158855014658918833893664610170382856605163685805176997432678200692191343062361577480083056584560216220333269374793238528333086070843748053276157791972492724323330749204780444095943465633174991732493730913008686580248117944458290014220342183753322512272629776806892289374341415024850116016060574600605531480069095678730397622234429696458342107270934225099018223397430560849821821320602044535077496886589270677225278655909274238689242295291564163058271040408094864999894315079215502012609884966520435243956875749846982208340367484217570355862055579370497475954308965641895385812024600243469117273445948455753256345681984085044714711511039553068218850321476134255413373064945960448478369521548082181477136949211269441157945679943786436313232480214090827308936414572593608724845658392670225542553861483958569701074860839522618088211209857662627020660128481816832760774489647924502830337393033315094907173477939198973200163095144042248680919713462828637049381855961297586964363250247250633424091695151181409414072969496767192538656600441176658659527016084368684374200618141615475983808173234997761357271894808237208793632384855076301405113677662310879494639915260352168352492153080693975320696794904642738458092643412734407911418878636990675322473806819585514444001684795156287356991375336056739996584282109418062928439933951147780231934977327010690683096201652630184654352352186193762916681106141259606721198242317021534863751985561418771040168622188913474131330567661896874034112855713698531515529789811877036424286161216002152880233685805479249996926636654369722633258965161683473221524469005715281513945374279872987249486523276317751351733642316505088191252620060261424288831580458316291067182880778376674344307512700216234519157169401179049162022793707686434940747573605618217244232035243643557695583044372974454020086094523846256839314386741475683013503696356538605238126680938552769980068131884828713486848512491772787046058747872059202346128336756955810068649923449005542055768951499298499493436973694799347294860317620923582622492276770714645263277058884598771675568976685063502457954911769157457936878852808503709340982803054374322376449427626138644843507359336317933622167299213029280011477980883565942793629604104223548484193762281149162209304511028362069705225692067028701176378025267383153291283831173130528762773404269271156178034907566748356617775401955276153913180804390651539425852274903583578907345387551973249502007725134197422955428014602488983398857277752722682280855929671756753699838613426483895259359750349793782497346327319682504710935970938540498209621444689558219377298531250961751062143044698983091764317638218882735296783882039161618127624404591381419421894231919198721189994925790469158993349762315280114928128846026678395944854551124082937912751797777244365904694028706928141233560410599318026837839566382197024515580826470651709103096735391582884084073502957791774424816084782233329124660375217897196173624712380817675755937469511669056237209722852758335191201127860396140283481116867085361776552058503994098593559593890042794866808363194890866648945014273140783306450900022441528095456355041510037267531630978925479800424024389061531058958757074410584301699344175228327352979508613223587357143274412273251041184998242034561124321426842910828612403269124101322419549085494129206232114517896132440363718669020188282691363573304400107253753031082034699374177486194076676996769935044955469206080965825241894926389297593495814653214074587298107080240198752620453026861598421441187284382715071054154562016637886462238998841130890464120924247460571028899543659362037672858948036687649190714634184234948595420385512693895442150315226955298534801058624063923837266672677438635057602666457686875581618934652151529845382500443534693672529769582511677682957630790506031349260686769335796848473273634830808302932073854150055159073893896420853696854288350357884227572866160755976656000906632240942716625055632660051256039231787065356326390618743678300697438906631238401650842043463201187773495857595182457595818280217374965762728904168137028735791101777308615190463501219798893367310568395691488310819910793577104941041564206391487176686204731632388283979358796170744277904174142139606334585657864610021875409122255188068840609599566636572551828600455489319489243044536652574404397637551309210880865949825424557997561002668223016544343231886127545715197032725414227562740781783931624779851617959108748236633229914978457593632650251491893682579800994138192502600550053549159852796227683243383475224377321458439210570631550222585534055599196029812207755269515596498059150095148593863655899627692502137418096854479217385656714270593840472254038851989950063737116185497828737676059815788963191841825186349564231796759192766730059549269147209545574689464211494569277969251413119787571728161879906470166034259962831734306064599770206404388275875846922714397624117071384883519227524143600825155421266711379171865780391918856218584460809395140887390180343832908009615600071644710825642851639434374451020105562507102548496178109903744149263970503298217957867552150445287433679119719018740250646932874976106661323616555634665029782497522311372160106559335963417152674815572709980278432626053560680701577997090587150805795318957766475709723459642871817248985528886049113448004913245793737181572385053175478210398931711348814358524294065106674829416944630791429328910682947708037021549770107647433127204329902605685659811144203111051790050790345665534592869419210936848450442028552115219196248049546881729462483563977528424457865440770895299111693207645280977474411564364794390351576074379506926767818565085492232745124956879586220854085582235216009392534397420790106547850050964794643512945687454288150911926987990718999381555798583736698197714745291219517285488902595112388660399299985588251056468047894591999998420352329559293130399453419655000099084551287662761476128173103672565367136797415922504681167147792099935066932675425005036135780763734470928426452759255532908080050619797359015480267668346319447413434649845085984032109441829784286026315408731528925044024722393682684348451798586540919082057768433550062615954843105566349355019480634478343171686541535268276177735765569253563408989253048726504257058889517254010666037110144095200343644229526943178413507639309683121787917334708700308092581275530781545241480027817114811655590650116129156948178385033703524129675237429476216706128824256819404223361750368645030727390503912992278664693095061917272952173579068101676160313712320956209589084225765544807744895727813556529635977219327661043829533005991075106153228491119356630037616955228345563305495101456902688002385957495451446463891426578943533395043085159230437772118628143272143187188440334876168483425435281596461892403120314206884468034970147307557832989191843725443215351003799342458897625968426794438110151181359812640492250496465953986005969414377966882558410969750403330702408834571788371903378968686179699372762983470161608395786595603723497342321891445731945897750377061264772475901330706951778221618216176391502257544592618605930943499560123983558981547705983451002812594689735323985816510704841438726631036312687397911988760196044475626826975793529673624189397827788778172601163129675384015356485766924711814173765293397813875828673866999700580575519199018106300043001819685620614062559780984000365354659542583549095305732676694466549281259058035667537123158074622863763984914662313943409929423038032657682654546491606369895547445341876688221824710172027578501362190085591751113222680722459520055891607608633500392159554083345454878586763149659035430861695992321269415481708542749320532485038733154156403343520115484066195431125610200276700474078861425654975590433628248185714203084984727263135386060541050810757976682252436884915225467979575504390860957360267725612185618301986220967471837900675511833367797470512417802804613239044613071921410871331425788990007922806491952268064461307594952166857331914483241027738008915584598771880888986031539690876233464600345392601275130819522690113385610253644764647207042546720032740600621478431637789268557203247435176163100980992129821307815809540942361211332244468721378357352516680210176454211736909108370507348329827134603334689675397898989462332966711244625530696289002906441987753475695575945607439533318434490717238046498481631700091763084989780606622672144758911722606414213771969555884718460091326928009481600293970892894982522934125986309110976281300231227281366207075521300343743323540407324655710877196588465289574581300311526866139770662959167689101415695309075358417990826185228493472247206423242119037119961570988139231783990373647865623712679728579210767227162087819304727866284672517554282630127417475613975194244613439061951471768580387822765321430018579816557455062702640610160609350177718896696601231455238064073905330188881024645824240811327180919266315542473626550497499643758523506425958456500212344523186203670700876167521864450859671800919616440996611436120446924888875122854028470039105048514210882529548008067858853354540173571824295798079454881636513622658061230081995662334552725444584613216836255757893212291596156615386705413971822490488087976215019689495713610547722125925359147564285340109874071119560165597212778925185709675986734551507390125394436540112685928858551894115735943652800581288437977972302591616598076633908680560371028747962734003917360991229366857485391904382516850593815125798865766179851079169474736677923207357171437074829528891839537703227484516954028067781512245755974948755459487234619501023540504759557875643882477860840296892647276968994130605476860221862269764918098831563495059602464407704482956695463360740346509083938054988576914196420043553560013205491943899533813857164812200967677126041143227173538914015834344438302794466652184601408254996316720696488508279584164736467994146854671567399613521119340409770070237669277385747587135837355233876028112067465529329191544577982144885872281978600793341152723163452483640961174706132229525074996899835476743179899920285880054991804193766501066880693343125488020079738339212584299944347375642100681669415440060881254308816482848216702386956667301645562160883841597232460820955333637344762767281899718373484921161814888549287914200520347967459824078044097284549149104967032182310543056647184240653681192541230267491092637462539277735869236658354620558991377901197993978125055459713651813432828651232582417843608131385436556844710115068106664074674372991391232206540163168380673368489484001272784930193004442045807624338410231998789579823520580418262829612825096476285043144641102572876786117797295364465066443926610815571368635633274603240886572574662393471962083835090081012451539353270503105996727167230162497850465344799492320813206613844995448592323265846669291215205611949176328767483809163748201144372199090969442156512592036783712071654585720583815838249467902463375129675309071233741795068013696273968426796416543792681692442765176164357962160449321241516585265749621343182314452987967958585395654588806797632145956590220220646823921350532930504113527452654502183676751999652626295840794554595167640434627272650486298343271533649976559733618152804008792044530819781890644849747386587407912627737614569702805242628702115625006404792596976282176066004343792959286761027956416831526959602669312217874675253338776084055315621882730192784465708479903900554751837112501210109186378864126501522876021823311393994984993969317705415091306885806532615509457241580190968846234631946424017165346744950075325583216982922351523787481184638057357599369378240432069491055621188187317754443647324206530186464715901878895893734304944216708008845816200044589349369141868173296296869636339857650556576672741380204671209361444612774431578888558261376714943733300991916048812448763665273576816640307983627442772097856659893072428129402685397411333084908617960498852740999006070034609441954940895578466614631288629121127761371000058182249918468920075630080718170717137047831823931733166108472669765153170244922140607578465520699460022682416357150373951688481147322691257577139559078120208008608684131011016849163359614740887093996096384917355605289188771546839571279120999879754908426296547499397208955942076906782646728188007751252371288168854777761195429020426630491172430831837284838218968434322312179763114747489023719093456001837760741030888453252602805560840365427871382123052777780781426742485727274644901214375668914511347509610916328724151907558942099290674903244113607102254252568237654775885931866927805878463276783328433580720328371441909243812391983660824664385634156163989366942890976541221561096185681657820030727547085150915689462339259861398413757016126196875559070311478356315186107907709851835317484518990496969982054534467612032199885618340790437312087847836397832828043387643774921881532252765723540090808159200507614669424056669894939153731163719719236485294110242860761055577925329992307965162900861134933479684678482743496665178588734806388419026849066289331481069237586936199282661039239888315259893197593595758091169164509103856774234291525002000814610864800047819489331249550694014489784836405244874983436820120231608952458585292979534856475718669408119161984546404956191473411595067152464175845590745820069057418483939231766267488559930817730681551726731714044433930291694774620979783261300678212190202002213032364264360641755202658316940473533283423338302412834746866158531536445904259288055429061620562506288251624961089226375020757464341567025476968110933694339524174619934233645080949813101073592439721392340585048309105758806712487443855235968175762375352461331948644212255505811614323945444695312768833895853943536457702156985373395900617406878351974413897491805201671982179031053229877351874124262143372882602893155933691377227707799355266291190374089027509071764337525719371484614838186333052364144596360312129045788387483105961356972335249980141799038058287680612036748084185840610563216233057201104465668671724736455213713673369156172795103983100526431998731457306947451542942708985796019103022480266388123936446951408661741820654563232021099223027201003630412760644434754251372368947208124903300098786756087713747441233804953616259770058042393432659177294838433781065755603342026497471284424321047514960412274096582271467628442408607434718146480330130534963291706450458358268150869225241167553899458679956271264257510164401283373426870331759184044554229017277458695897237589158028576260238973725673694301162666352033356608645453170787076763161442705741861078876420611110724290363995028116523444105273725526793468029327319379668195596750897926434319935963907396893673943083983797202875087388184171083993688612913560895837811715714245113796033988789832203845299052746704602842616909033918080194905034927870882560802538028616726245079167603441323080013405160666211746684824805566725543158587910686041861292537016674885052401309275121781803819345142157435022275729973817811706683039332545929251353957715333001715088022854842293082796524493304023647203157350407296593324080852877962804405143632496250659810178958219063865224583297438628964073388740385388585189095019989578165371296697943410849496767183209421073606732616972967084853263547265080049102324670668036895092210456989099245068893459722328866404027407802755418767098849586426924299925427891719751292236638821207310473074423517423688631923201044912784093786528675016625378966391124084148681650609828767518372162747562065837839886263493012577029551771381474200801333486587089339302214985525148123678324838654457848089351515846614174648672981043644850885648732641215528118119336256597070137322329185279646057444473586795257907747742443788471223824703092114378628087674859789208093284457501490624134866471104291915716756498366103752418556024226724235605867548410507386233131853582488888959632083676619816687163964109541076969254992581228071478695837170859506173561699802186111441456049954864857878203861181971948228644623133150160756754832974633312050899801714275280163227412075160694208353558083919106038152664277621557841666223039699062619402018966887664581950985720015953326537291942688444228648103247393194770288168080803046459219374115278509843112782250043555433659322287184349875131351648349310549544393972682029297008464055206790507724177883326139102246207926406728368305228564353578443574364177462009792770870110437203380760562528118208730932191926867170921465800275905197698512373350032384672286661709110406073218111342771332360713136518996082814921519946344167073770316052693967856455762257031488435850680171268847478642935895328868975222736963356280506707549911840006563805772473018441922841196644178032269608946884108570068176958779744156992137778171855962878469727335144276228720700318794636772064985954572226557167140817233148409605382652021268258282892388255817355377694233639703124526037149604703841269792884122774424809933723864427260252994296194767726073771285858385907121444200186156538536802398310026023990927378834945005457743380121577170429368055152117057559630663794894121482557770090041238729646502913766292706668228853110613478226960986413165677500375605089961357419365530380607635727228164155739554908922739868178767475862329813854002111584366848603847841578489500151798178115117719038939801554115764594789630449641768077301309810953777824594301119434494172083915761752771148310842035925374713205871046039925005065184353383565387713131344750009477733451246775844537902593062847803541073457064480323749056760718700442198683987997817863233841800915684398522970652059345062292447760723175637596828884296758142564210689793426608824215156488781066001449666660948901696962480842275631604324794342128825719918664748991804753822745348292324236373906769718359418313600564349326697751653230243953099255488261076822773923447245467048734915304825790458042204894448942075321946041635400519497379676824525906963353276767949893035882289555967427314911033899608429150663908022713398765491982957811474882281447363313617152715250799590894869022033553378591280941055635333894323553881782724645826878820981290946087810430211350324593643692023187586443222325509166774312376173342766514201346098649083583397361086152587737428328425090375253880990556811861669749344670800477319598645424403146809847167566323964892027403454207416236774993683773740167861131947860857775367907881599299343964572266600866745140419000619001102418276337984147034987363346215031253337756198719552625870148398470649113248954506148890866709211448180406369803123497392002777386763475009103236824114297786648846035534561661036550441580228177846467743496830928202516350228813110926408278566587829003272178522025287629299833064767484045289129007421200401769973220005926400543336253279034431845059345974312356509755135301826896516405443058653054548380552177955337830642489548311833321820952528034226595400902203152636026004776007308469753970405610603533274837473916580137770165205698134462611023709952330298467025308514360021856559400109706663145908004200567369181708870221385409344962433298776302703690618683393273147575399424250404876126928263726226747283583712559751481843795112122921252597146417568404748939634231791622605248853335372837959384432607861914428413083408529015867088523368401100855210174259615413378416622594826632583942211922873962543824726492009824734640993175585957487150410698631979490895905552048078188568433819198675199121371874383695321572996047566911392880203879129508508919066692898989023803674075048119325450113713046161436880511010871462069078474695837920506991869068702635295438390494061230294375470554367525029467555122223335948365821787334952988897976318751178145064196553353478039854537235809697221027369754396852218604802710889956653110337255055363007620409153853205153888116836984521883629611499930451762656820312440443069765446830050683344199715713922645784354398390775995033122575902565123971244973227263633928076686198772833184755055808008781160957628388819620442914291286545936962344600653572218142360276734758951814885133046399831468706762114414681954865989050736678009129168610672114521563088551144750605697178343686027391229440194742164215132571685174919224228290632544750068089898048610391236726064445239965785918464204276731270426738347280682804233022375952399729508104594290207107885423023731577900642636945953622754105881486370133526464080778592078086343917413856681723504504828655428940667907790476571057445458669095291318201082483095069699803016595799393622542918664534529916289509920562578696391003579868676640833883798499249063722856415624204410565771580325788564988420957229735254592651691061301912501484742540120757878719632893789885896247248936939090786849173709461725043785227201408122227412370570462749090281012054690395791191467785962137271279337233586106010534863539131636461615779462800776438553911253316552741107555767738653600504807330774887625187582591772755656879924020980361913811833580962879529630087924135944316961635150157778410826776446437720957382418316201584041665624870492538687656206213114841245671188650217116734857708177295563881618224077307421222018288866384508178091070486115241484706019385519113066207978314452500471025239637714228682951406392381527269278683641553399983684653162150223000209169390034892940622024213655120063574795989127816879636837415370930870875000981750410190714258461246013060206907535725624070884378315862598747002054562575627980740296944267420281561126467520634733480427622208763319445694110693827392314323870616988564215691796882210824385140084364008141615308198467839403095417641694839627249623682788049928739478910434657479799655009638815434769576846583005731009277201084032605329351872272795359144367811642939620928451383467615272225868890108753021838710099560979770163284378413293878075334366221108418867151157269934384897956092774679377496067678252074692832312652770934159296005923887438031602314727088187312303027866824395145199657640664390811964976370009241908169774361670376521525709812673434598078747189922347282060363253143994805079772066418499639905089347467847529236778088258942515399153012630296387681363705726980012871225684794849772794756904932859148188900508025720669391921751180922718245046296350257712771835510272792916369657093950317084603192301403856271291299225926023355404589738879622865209629156548100715164276648596038722338214942444415684753548251840767630641732074475571755916423054075162763980204511473026679303182175906127070313520960029228113072367262974205051277891524256745114866653070617749380045564905693461481520275157033268777573066517070945658008436689628722826557699839294642702115764567649434243685994115413405562502526213187230090388963735867034820305670424711336991654346347680997813947352639435263356947547066742756345439509027634733305820882494413217658877812997197253974009937072088779378449474425439658029696458630222948171739241973679299174047532984814043731589304004809897419661359353639573036334454200039697229469638065136057009893149586463541273695493158306639901477892388952150431536815098745335440396062000283503538464814278675876674145558364211518514226303701484178191145998923151619880666736544434518492046920802164348100154961831413197531929695039753266079577410550218214932079198095858249576665389128393692733543526473165027737952701028853596927746858235442609620766899812432829347875483153689557281392181546837597539104603781181540772483798386409375787558133230316477088622279767818993161755501397854540499586668277404962756044462166697029905463778810674253747349797413396453089091155391288881386667227112310871475394505808927222791056305366491225346111869103560404949015199665613642623673590308212299585502959512274886047300445419615806972096487833719660983386465945090117939366272081805947069130969114345127737749165899527821460887835886260698865284822874699687687169290580440205267064605614883072221720920359003966625510587924326253604529493733875986118204274342563705665607966355913325744343349359362328764311097180778820624455154094086647886007013122923478526291895221873235760739460852797773036091750003128949537360817595932987508998840154333449093387984972819638765632978318328711335186264378872666723143477505534164113178405682812175355298008001439824510030115993033741381830439974195953223263498085945378763394096740833149699851555643508368726940634527038634422804844310907727392508566516126233650807138911933959311403510627012613213382262577721028934739976533064902855887739266491264211654979998994593298167641193172410552917874395422357207922624763800132616344776273251540116114220832001600135065224590179029977950548667283597227571269450137665139137971106440154503527594036821576405058225720757418913403407620091367564604520513446991003958282478204378508549128763871300030633288518753972598515916829106223373670165021658571283051570842134730211444685222007679453761771384555781730526839578430182725342137101755912188991315207790958117227842438903598378359192119614282402868396210942164710441120216349723368018695542732748507180060243769841709056314989546930289981539679875158411057505822722030313660075147495098739310267502315788233516162591370475550733652394673433097419603805041155786162630589130697026272078137852830185643932916169191606493543486814841413001584313569754458375682676002609822527994749091510206251437236222223054968297475658455433927998653008606688439372420114785645294884926015724207727998835342800934206479841064972021298496891438855280917714983170024972187195170120285956554145446618292107060839428420263960612573088717882373484438489049616292194852756578779086187651263172342216588227237165661528707071257874198686879775447953830449001461821679520243213331764246542239326109461976034836418406327142410930456527588500344719933405102428717697288959394864397168206662873182135752829864279227056687063877668852370499294311506574031625543431306816052767130199727856768842942351240333594375178423126086806444613567442954082284385754099434289709062990376090898617769550580931364634772528925368073755282675929793271306069294944757123857825528145616295969387787382885454100668131064967750226323354098949107362871687232874998328763277135902046022253149789824924131545651106000894470871801092613083438665866926223748111342573838060563676087257790374320057698293346005045329079326369401776296537765041729990534185615469721467528019217860635169320900386789939304861916114399782912118070501868915208267715034918186073174397916956408020701999781506378523286177242684792544809818504990174362786055247283821157910976367635195607287767742718058150187736407533231146503637546424091369691728844724537072706682011544649091546259435259901802540573494892794968366202271864445261239764769534732857161315488242505618528865963610169604631058176186760319701741201730418413785696180855684452943365954876345019490934001140193909595483830549959507319420696100631938656741130701637897019065301344854637382059940942225831282148306739193340123913960835099775848915075876491633679444808677779104417565660504604785059238359526168068922739923063560829585254848727152529629930151574156916992110175842488999315589352947594388431108834916447269502170079480892347834733503459934543127774282118295064018748383583780171873105086368429127403747956319478077004827456883384492883748025419317459715295150407797175329582591235705121309804799013338341391251962577277770409510233432220024233550863838210068338361796453842188971763790939736233629213528974146480612583687490379809825717233848742081064302476389461875566456100161296631344199478522611720531576726177765472440630592723708931588948158997079688056408840611860173967874539124800727102997926924337248701121451667254323437845107414757163531262653654446349522879206839192994180117167537451414820178207366914714480234565007534136743182920005734277074416853809572208822213042495608471443681493486352907581652411662338867821297362780042500819406133574799865223676094819694737780227551267998074723952202955467764040769482158479336165782488924639658616206461222069674670802800610244052485135296985004994443942991063452114819622035292923780164632086935105810118530576761535468262274260736101776346878279264268349302661975392653182882534917627320295198523928002745607469108041311459302402896657127911903948440008682120506361669622523343069284991614237425368272656784983085642065303258163430524845940313374151356951212238037719136462944466878973666432711402955994665956633776904868312552391848332503925325994460912084209367898666877340069710372432273197191686865310221621478463234250840572610522165194200169571322221650511143702771243325337537007343807768120051631939686999448629727335470625559283879367913390567331933911380596162059620424347037669476559369681482368645768867999045772613686375773877152713396807186796981065573108504471558880188819831718237653144767400736542721827537131901441304237491550304818891322923155307935227621403953464942865229748351332851290850555566571539675992231319842677519347450543879142124673435735447215886166055620038768295379130324371709124571587324828008695611036526478511669231668008756992298402799650735076034397544973409558154349018577066695770695207283709567706171961299838012026437217414438732349377695423278179042996253779472894370327490656261274998812572615046774044962421504319641610065537212679330838883256867178672900484931175905378346056864066330792097919164248308100923605607650649586383199706779534100549765653797670880911308245191154195869826019469114817249641481733260037355235752994630140931952174890378110920651728451510450344999769350172784380420091181717561163307565535306840727112376574563940181338636607576508908129127292089536214546146035133705166561214906549576443004614551325383542648814938633288416882128423668973606797593765857206077506703598408201978311137230623882026037270041558646214979667006432485514368323752162409140110234949949175344823489168778688717585751566453383321530937107794160277686468748919757579566220887185284883492295472432103924697426421910197860340501828616640139333585614345729764713243105641334918191320550276424137181798764212876432479493580381243624423005067924271493689850856657242820198488908159532836316626209168142376589704018751672863408333291637255168625282100594827827746874387674085368440686162061414283934443200319624028578565948288538880854680164942707731839934851646650082183790294047184828881517069304457093644072360014183663046961657366085247003228560843314900499884885822754061507632520785956599042871944837823818730853772159521044987208922012221747352236087724586378418888541604045538456740535484826151905083949894346859657519468427491638241798849730875670464897857406717188144545888174122109634355404558976155538232248835288396196694934319904008552928871884688872431057917292765996741260654785160801403940464765105332514805129602577901991278410241471051229507596992006407232686573197672974804231548267091488387132734376388440045681048767002537466784410738931440221351396753764522301995326315046901169416963003370897032784644977176106485506797587724247399209581146066697344641579791314545011689331098346760837530703490365056104341943405632255698518917543705111400293761104240049337980375463395154327009291647333372444977150516844061438078990241297977406740293024692415034678099148113172315966130380174733162308375855976844938479320241411924907113278343795596743185133962811255607428589514866783335101240021298470731559799880860065473885103429123316240939969121974509714950820277497246921154813148484707777475717137735716412660338154422206989828403773225100116226550040749662071885478017634306048296362782393993689528219613992932596931922510254624741149391091900732393736073320824630079759761269994333248819665350941417677056184494022792847796943211526278507126536358378767573304886182692413742446294663916234576975989258382323526271009877770398193162451982671900128246219130984446900558327136384456239735036046830504900584433301668618306553759425342254957458185369092675178903230637302365194193771812435438632826576135789521718168610908875802571311533668515220778160822493673129316273519557497347857374996545222195251421348310631849193753049860366147585509260172329824935684755780656451878030681975454228127727956048844235371330929039869998412493561051510007288116743472469861925158319484384873400078042829321844530118784912924700195049347007636077261569686566266643245059307216682148199056284674788081403363457427058896952418136263078203847065308314218670043186119149839215008070430018555895932905780954787987119784107063383490136924724470748040414681481555210219780885608679041956797777080694499733417788420003278256564323304743361730693627091629927976546138643836788625087648264059622051872210889779532959186941104954622776641750645125612234450297711214629962327146455596141644741343694817672394830731463664470529722031624812441925798711188955058626676466359455221591856786741146359288344626873770375201904933380781054610302585284109833989760836795494438284133078926882719125851996070767943541133720529668384884882613556188203984834622672917226428523229280647270054183601167048380150063552646495320448652217785232310921305689698046775650812220382673331784965773987311784432080291912049814999089814914054824223485030935623125630536784144054296206831324074926618283785630994138562631781247788544390223713778783498251864957140821535964580641140101047413353211619609567550867535240446530181114793742606020311779220167953904830787654365736370754802878097188883634730545983749878986106715264068975042710770263547442766195877528731824300221501427821842026659048334994908171853290897194358059842330903085963647130310090213805198816453300582680406656660848575127042131199152738324590231234114643527828311662129231560372780358601528931484326814880612357350288665991200902939400569539514581554264151553872813086569246426728696624214390984602445079484516054515032874186403243822633731126112673243050982826511280769307787784973497351387535172927352875887819971236401986019685750830537842845705025130930697319048353690594707159347187121732892865232917311719089054683220363426416678138765075087199677179324960688523579116267127653329772130623209380312522126704853301748919008608421498664074184445916195155193652641262340198806745050119792698015492098346478082047086070210021767811524074440641864151879374988119604363684018836180172060177737145942025834569103816098301682662830147766445981830366587783947418738818343251518320106116710378523663659457304741536428237650821066883920544292190531355706341625436873085391287270956835287183729962395753495763878646538150309969453511599565469124179727122093249735280070081087609974737848825071941344598120947883701586777038809710376658640458001814970723731154895661925740176287031742910090417630427047969047163532865626103412346246241011073315322553453114832480170295219053527726256394834738731083917192059976087600396578178003070783435237072425633197889499556928739002316052755317468870750886837818980025988885008719337846275308215458222863635952827476651898289917777466006792993089365669667976152953594262424209085638075648462065189804265922823981458786471209691629986834412537828787450176194220802708853921339364680211578040690870801453940147512189864823131498307184231177310566734422180706916090998677829952770773706126951994463452832557450130013339752956633853907779198836967349968919355053412717807142933312458629360019816246373221434860930519954153314393047789286198691794020454293977891334033139235891510230844346380105111678340436992656653408947810570132229354684493905434374285195082808116784858018859470816754501464030574965664216102564797350259773518985173906353160902437103920612030909966780718269597234942708080382850088462955968039760287357149767026226190224412173136809539479746832253135203941665994841583567204113705159431708496662465049311611760587978418230393866182362636828237413291069726134654083014927256070429278020542265606754223862125832911540917388307431873704287704057877528506300852634220578993850801698184962908208850239669651174704510496586957943862254931171860899334666032832206482378237673486336158054948972297648798701869867686105377422657618484584886251328041796940639194734009233739320402024201525289558591407880640874022475249040358060357675068706520335745741872007531868699172294913414043900182636611355585773029657924611006125895721433976027824593178659286909132659922608645298634585228784048354173821359738286351699493151423667748824145586609697728710422087903686753390416200710942396384085907335546404674545691116264811046855202893053307740565233402743286148329395019633691270728716522397657292872228397862700673454445237842602605898253169131847179283067909215917538804971715816741051900136880802052383839357567649330424984041488784015710929675829687299948313010789281058117724825215550909607122336702044426434639824582853866392720646401332711718520629134829217555439118118719202276496796684912415024006368893511782590963116762291838439838364270736979570815881802466343028660805853146273016114358600701998006044726114477368830799460157898374480428696417052333607609591967604434696199425235204793784587046617678058807408089305024833989767422742838037007467280649413492612605074546435705108450076514302758143695240296692101764046602017887580304326275528818047798236682599920967598077498891863027797245228901726386632379563629034218600786181130021667731078188675176874730595780177627574354728248797479403226439373329148015473461534119268139559539601379504137663001960000939514639028784141839963667616330618502370713868258272372771524581343298809156635479793916221751408370019035652396957436513904666507647895081928752594094691394206838857027237102115310757613438961019248596052554436480828128246904007108723461516767076675090329342657769602288892335156677483264554444106809590393277408078343096489074812470420014895134589101095849909863608374220073211735928205995155501657424665882668119682822188577943608643505313866784252832173311041123882692677478900056640964744720195823528494335731496216976650044624051990710183718344373542466462667113073808913590997360466447137151878030347061834253002039840923667790965940193734788048049198047002763459154445783137704411463913148830260371736455417170658424294076654042608718347747832393322087204354189412994318821163343754682944479649476586331786495285732559101637881001211230880675252230722192002018957200985512701343162078353098109075050693564936913402483851258506242968926349901089945964635321855159725989878656090635031153815394266954757804258772971526944225876940155117578189842689778369493210878805715269232619975657223489378269887136539296154160543809271492591770242686139277644195440046612023454692550121937567129408595855630800764681283617738961022210741687539013009411450117790703096109088288039696288439368975273536594620923603856014535234352466144240894181419610025188350855022195934108659126409212955569497848843332405386543473000668497438706552759878813208115679377306627386247614995149030867091203098474875896188586002103827212618518045116993024050451708839260145469633039516125552911369540393662416603290694214718877273187047127039894871693304141257322465842758581075895262127678680673587191920022231743964781718714382161463443784906639621205417460375885210090382572990558676001314253101053569094747374331299846675253042857349495222934337762862035296835440338460630184382463671200732212517605136270752448412728805100151949501407292562846943312788583212095791103472264676824348871008231043962996429825507006597409817193387470290313647526411543853886909088306155389601794385515924966606150357843371341654254037424817547561910754854975606367229343255888142319283422370701514674904684806949829818231749236447062172759330017082174020542765815970438437800530809829815341653803825983960343870611106107017598176761889393322954573352828681168700066407487849923759025052923897825182413176341044929310137461846880955144315062398966619257537891365358157750688513002074186782647705987267859827079124946060267768362738138178843913036056037882122030574312851526870613279407280467871910610717603488217477113821745503188288837420246412752579170309036175320107388418126505568269679050767753309350618707525763770106712876548479597658818196917064432745588547361447812713139845450600742227085883718180799446817791828164988482418281377939393638068486131517039047639617330772833258590974833445982584063079852507422893299681164621305880847719680893497510841204238146208662144582553764787369132898111398100927166123631242691918685294511471463807888509772554629820482261081840073961477910128684525591996341667295542132655523974328303274129095154630939925969104425026443721688779570283096537864418974974281149139248329341813441951480376734418090929088012683216946609551048059149824526664618414781106673920442217507022192510560395161267157963319626709969159389029314131342130047267127426325014312689688259712232691380210528203294033888021558564554426062182207516167475225625514572114949730828986729446716248297476822144917357041006139163983746152257320626456715678887587972364100250894680040869041609374718160281458718326573722843927097697417928655042566426298674125313031023745418816629597719758601543969477793308463859049949704352284993763133931453520537431477806198517797154783658825508906957655643416606078994269074720856461809851837514423587429574993517855982565451982717851164087191352012619739627292600244466291386955524889221767120284071464439964825102705215047431844877526108702930288701644628910899899538180782654615806345438888037988884404910565027245322513713865418949598275824636087896884750379451409112560540144979257962168496489301658449306183941685582566457516051298047665312776698951309765899755911986790079549174284224572973524433727993702857441462033947171207056577652458866278211382889684542658509646188148688255488109537305651599855652977135842875540926472446351444870710269537979746025176218868487246461061483935052756357298141969773404233029535818686466675153914764204187025949845228014309576012835843337757264076028268341514144981218560518355544865602339084841462819431318818307681522240010958877743368143184731237092149471440649442143049020534485259892762031817148262533732037079211265990462589208945466717741177648741345799784336709710829461958419148060767936487102396624310061308348279463998768575587121643388010553911584936592893835912575913489392533472738312618918781221092780824552195490023075082989982240977264150392779794269665739075379355067110899098351920767797591251694051973712773889168747344361399135408350381743398084491242088193942141058288992964593282975912961178401021455826290884427229393222048347380684753148148121064979691333278709792716308875747419629047066145400102246240125536448284088933644172599652873965340487150564454802219192240100362052734552032243336122719040095837733928459343355715282777215926817820761314614870967669261299293832473125539457927581012883799516993302224515778084864155044696228844476030618559064516453529310922650952187696144314307945839764970857526077815572610231987356312206877701766203397587968651608122076222826679554341685632612804714763759711118133111809763350481863395652022488949792394452021358671118964245882424282815789946804794632591121127321930643490742096111536528383844126729795629436006563590966502253956651043364079392810641610699972155181897160203579714720249101422556068462634300984821873160737214631701263950618829477041879508763035345968265788725277597465406642230189621818020229023902717810726998675519132802065915419401204457868421513398516096806869929151625451413923280936740380832199683561758093739874519575224719974138933384495273224385106075146125410335686356312570954872649765479777610808210731901550582415735449193253625061052401520693678260254440351160077548067129610858567359054379204474836812966711267606437032462882772851446583577246359866773293468322515217699678891418724158367024127296094891708128082082029869233182175388638067695711172598501843249756729767830013696353089655104766852909452624722896777133995903738124269059182666508972146990938808839906937162970622593548335057080157427282761896521921567736501511074296186441029572366305699267802386824854344386618648238812871369191439268419722412353120587774530141688589086533922404359281923526260224315458459557116672760173648645950673355189881901616507036940127249134342196224938171483912849748760083978407764529927400988827013048311144675894607398987183921118258306240623682042805668185326463102269760504227144345576764832247012805960838020772464845467536617275451008278055752041905074643823401266001173153903109069270723097687452417549236805732169317686769115613191515751857558387390059215107182822271382347223407060260166658181669197552011080396032211027185971212888240019350280777961739512491664026091916857991659707011246098202935232708455243636935700823739846027901837206197651199409056493110665984241960177033769899356051745790273107683461434713444578225415121305086975817965886781731625075413048347330006250417924660840597388695859556786995335031978372393015478761744491769613357795675220710096955838856839977635169499638824639465263689023725898357577279829825510800684525854329262860217201383078380814325286754730964848668150837110230945850437644769968570388405135960941608340475760522876366247765115939132194712788217242571645324503933791555116159426297301014674550791806280510173301584101098281744999262496171964039465528607587329825918606740923516736826084342174495670779359766813997178120607837054325961020755729996648645170880703137744115972388144917966052824232565158540539407412794493632891318356716121094938206827168516627064818930935100599153365578462701199125561278728680164606210168073802427274160080761848799807368864126347318056491717031431700356456077352696623885160670804547448320042839894024751502003109579956740448071371121821431045711326638097627172055187067822463587616989456513623913434421663844651641992309583769530613207885948718486840006462502840295298959576601073242262964511059720017213897437960202172553202839478693889549176270825118215367677930127745747061601744575274293011514678116113011067565086993572544541113069337219331473528125377507562474741142702053689095003591033781438699966782630220801432367071127061900004025497451753942026235509743305941486509032040774908143393625251335381346883836980837542796901876567233629417817520217822323464472619532882966992136152045192758323293592274238278666452970280355722546459503419982905063486157002847974546531328403550575520739977377342179131181481776499622821563927471028656589124270370761673191037012164516046026750641051348137615318283684842664068123922687381971789166578354850241799878233650029270690881585052315992803936634700308664100653564196417281931763097675383728423088035846954984335525424307015147746294711473218729960838942570833818228108535467527402346306411682772661762797492816033177170521348036161557477692066804644935441017165787917932418715635936390258559142455269592531021701333881837417506446600013547604855435284337287616468522277627640093427361697197956094449912787726015742382676423332376505328110265559403002072041307054877933239262592382988289358645919586757369929396013977791732276943167177498581672385590899002788351218683503659190171313556181724010298566591036007352666179793695479287571387569423403875232720018142674017308646674945668598996544608819457600073456173680588885847773349986637540041734143644324303129460189592855350394142138045679852493911162630881997219536470455512396462412879447835462834669673623042809591441525815597676001627821025086406053947034586250643634271849793078889407526758357381419973090045745357879830889031966671139979288849393758114053050915075510828844045637308412470152879912271531967545752428506788633140011101964903832413709425558390845535817242938951706121828836458689714857847177800865307742273749195096779831018633697041371801333006280541372223747267765468963286564597232862495854375790858028558692930051831397282125286340888026899157972519360127679466880535178828071186532400316158195856240163332623872736597222527641364595464799131888175289369933491718566814022623588395718024634633014678171202524740694798333522237114690956862665661081477793781168991086596467589999798117536745312079328397959067838073591819932357503766880545948077186166562303451515279485676258714181691595847877602119386301794365046330767737146201405863330149976222660820753999289125416276900882278177285255813138513557601492225100427855182307851432882192072903855059724654131088762661110552272417914147198034240597173877781561283458850603575431895208731746768558162471722349235537241279905876477638886471163130286510776982413126778811498051306158957431220204606546570941713915879098691311834858344303777637668879654920752051643128254073588306570807037055872682866825104652465153122029758786334199734939015884765882708490461100522814091947549086349101116542568344721965971778664158234692878513610891456944662598189794433863139531129296377496219676406765093851404108307011843186202586100871233171823152060784617583302470824890232390715316188322668217536851573709512538799960634143268183519028219973251418599795408410804340143798496538842069055445749572183230119387511240406485878415659861605927561774352618350604611301334590448757525038643604590966404399662237672680243531489956739599892137722163411842340519778016406013895261511795942897075526042051195370355350915310008571040809399954651255055835935255916712873558497315853542558881994542037973591794526555917942002823732938644678514498179674749154870229904027295588340642968873495634523624368983696864299513389204474677011365454563943191922769381990793619723859935551883419710681754692386423214904261860345486599339603953394774379004956400833399730089612062314974652688245066222897589024988989206290974363659868474954062686714679243047097655190131451163465116067913393635613697625130797871819541360616026268087937516945709692180201413740745146730090895752431238574059409967818045185135070488806180690955145153028898246687686801909717495616872586545977473236165564636382647249482250393834588088284099067018001963452528217745574481713063174079475672279881545114520435102667633400290977346120970231247050348367721971660865386555373519173173282626990671859287182541019138178861278838383278554330775008617320367896847379733357672395647080464898405932167581590587652184084068650453711745573290407485090744182843546700975986206835517801229145772385074294028878596488142353684034346927917338399967736273335914885321041231435262395121444542911327145085052170002567444390594167179863269197005779041431323027757903211946573446890063503268812053844034530277211631697384747978379906571259781888492831632310623831903007431666650365172516996415183421144063331617447846768504572676565823560375897716207902700590407978605186964212284358201086703671129153414624567311534270180866521187908481687483985887637774129983353912755977259593759634123228428972383091817439537790007408283627312758087880093146647762536952918029201919914298446783783977152475537909611727956464845285050431003327846095079254335663518218812557051468610494176881022827343342982060520798336520409763333888649914589748013279370560150714138067377416933281535092341110428048616258067830200065327003113059586018131715941622154793454198643161906141830462473565946057378325458480287518691131731582778686942866547802137037971497541792646898637024517669644383620234089971985990635951509131582137326403002527230643435990412726350469901601395796007617566917971335453123261892079001422980463753804633704553352078775429357279379519723744538218103047119552722177006315011312298258473296050029085836358467172219994363607317410830938914230793340051187064064761717805825083035102116735909169315747647448053878052819716310380088345469996777633377672235067328135348558740689825084582079857187318315403410351227634183834404781097879536572735575846265996825291246079290955693995280463935156123144398546500421913117022444647635307223432328264118947618312852340979990155548845035309888703891512191340570330525147786667175933082187474810904393551576286564762162619221866943409953843631981210602316028375823672156359459005779496635787124366117279833856150194098313656851065054170092842730781809006381002325639352833228297566470741566588828240520820162372824635432633852245787755389842839241165952831389866439255289254532540669280679668628085372807328443334077201573197134446950501328014243116505978652347836899522237448114586231832103194220080452046344328806215235221998539122381144912445281700490079908420499506070209933761318207612974561190577441699811653405490029950410048351638588483354840936031571191980641261078250334578052657989510635396477833699563025370201663601063750366344325144220750826473340449742284661123085273704434992400003251335993149662888483487196145162450950780657088879883448181263495906896977690403436305852468615638103961770975846401773185367589172687609286458963515713488138465578384528116173613634772008493627092274815836670781560929722345911853775138635279219459793745849436265451215059389458476064522546118800828795158678842758569454721033623031995982508342898960751134183852139718894094655708627271961173726974989226055501561718634131005410338772930904690484029920507040352463260442212012542962192106157613214195654584832135707688604003645591055403715185085500723188857074394816890160590938563231438869621717718847904916276886111046785604810613663154590667594639296438246250708248938769988889605402686351919403392268900859464161705634347637582445461107296183881415344525508557806749127396967280442197077655185602740915929099643387608880704877695215162543566607290980405626146257039902059443969019816504201170872343869452568853581436279285120977622547793245068488641107645263386418460436495687403732958876130276923111348726435939795295810704049776708441414808944988515390330802380915883351327707906463358558776722596838897265598140751587662099937113597490666176819969761906639736739294225321043171128977248762006703051207732398450502113936575678998460231008104825504922970431447548738139252969468010492123376201549879379291137626111180698054468400435864975800019437400026766807909275118239323775308746109634749302812963153607140660811799231392775800791709558096310037278522892114859708747387883828724460065235712819276221842528316794256131633752091815770195999084078893480615940268855377629113943298081370554374377021110324709528290413526503018642455459743479906886428533425463135697146617376104036599887876711885586343436364116375219716219330048071182462620811172019515788297775996111954287721884484797039161222049325065687510451653252959582201053230266952447019438386289175168795235800928288751382748050724041271522938705474675045683723717518688386828797212781089261866724133486303865871131555195080111213607572289829006858781687428440937298356107651116539974833510599654295127529132924332261504204414111107012295521975235642924164109145747849175505053195012798859443358464190118897334469349007487054436215113627583181730973814587341164154158877023023497612584988512885568809263259458135509787020929886719029782228364063526875950398590892363168394377546045550038409489767091008323667833879830319165997763157970790914061379461465133546560291521420661725331664369026373402077360411160634646771885134327215560720658414128230128413990924049776549945463583840209271213600346782026679462180908855295639969540518170534563953097849176238161748920754695138427441280849049961901789104858119048958080498848330610413333869367254868515889404760359392521030072943376825171365063210825042982160885568809414020437380760751113441182932205384268909089317129930450415589321305972864866925595970575909433268080503560334772127732161155643143005887938409397575734851608264146778328935752768839688655445015399694815573484671363859730492709342488616039742706380638557720369625697354764202504122862534258668347603992970784046134281346325519360603229301799354915552661416546632108491934107801280308335429196563089039861066201743820059792254751028021376212276008267495832594255320861504296934877287353418323031630130960332478310894159088721036668065675827556421699469084888624723675227210484167543489188992856488351057874422346696217863097365579966649509231830423209941843591471249284643331989522002314942377246376310721058269113582912571374766014604212905409667083694250135340083856904950398584666453868240317463792764558613436858990113842145674927231935459253441771004036768193224232257994785558843835373192218883220069223754682391241136221678110733023377450013299144863412342186890436765019986600773486004679380850014805343048124445904249786492144558100666604571913351622995468793944794510134569330844419384233838115884397099843753854371168536064412732490896307553419942510773139915694584119999160117996041260699036002893515398600012991959919423350763366835309029991269217706729163073230977961818392605613074082192764472817811320161053868034196181852967140660778885524090130356645304224475625027828359953060191742770113752980578448456616394929057481145873378229960608554985526550521293062002328971030064875722339844781443012584432938698998080921786487527431842634822058635823634080630425322164341178653037604145879416541258891435398049853931829525125067896798208201500484611078672509431637768337132027573140493649665654670160823347014929543307376762049924930915760713524360420161131264509728923440615854286059526304071615296074748367785525369904544522002794149950893816024650787859225131675417417576623641339594709179788915657375911866470947303873182688755341714445831672460403429694686277418100598389147957860065814814190698164185682073077278646743512626153600708291897494152367404182031485476471834261541538904675259592348050171212348355610570678587505140911597112239614183313393186683136495353136350632650246577296015490214415501535629138525607477731155146560474296750343356245599783881272604647363104252863830998294932551988501665366739568041928342033900652723905982353617432239482505491545816516245827694342354608826373243531353116655354299208730719432199695474752370389258729610574012146801224191995990463608368359590427410861281791097540167420239298682430646869253082003715034946349158388559778318721980982730187746249263474997980565054157764974096772631295040539267455870417837206941336378363818863990232481496755240857461176902081896501785826071785251276609327559469590629367743145078800799681622522300381565053896442990958920514949613967680159391066228563697752721182623097336195648092535209887561375317221315489437275482719154965170366655171691874300154026228118370922547027330584958684001936669376176863165751992304806290608927467455726184316698783706161229450973917337664665225640235181499789822441002547945815923138128312471736079078347274272050842682192984900657564977509278534808191684252199796937960778366133247245539794278950761679968412940321267047631712376432835066709463346523742833017632991766615088856346889324256252922764595673184958987402614324786931500045651223394354983438083920931878312223321049965001700862941968409787670126816565750802639586532036408416964950515947806225112496355761280562027890339554804812227283796593524827554996944491507491862870554779651369344016008130782497605662800097354642138507005806255071275396265570016757193068161004964884421937531786539723973811263662974797819160401758817710719202423354470358878080286365037445691485395475393534645429506372589170524279569190435968589797935437752433893563310035812083498663126448013000143827931886883481812353139676327811197543489690077521177762729625742652073262810873013480071966189424543549693643296927581953764955719649757172413867293641916591627448543071167019890734784526971833671869644526018522343055192788865117500966830173322255820533455216241113840613981465970619870216226186897804770766597562403882078230176852572799551504169453796723754829939279442429999202847129357937651677593725677316445627930193774225228909588012525654821780528773490310367723296234934613132538024465251250280792474531422247954330848797772272108213429821043676437661893023234506600464387952100973011786508865033338837195467849538150541536041775274404389802567712408069632286079999554070109901692226706259397523948530223265173110673649611770833946243350682895791085463901442647843073742162679979531330389552584324862356525857426652889945957933159949211688479917643557094890425782169522572172512492534371109337426180411510107198213709106350653852166040082143059833763449633714731997864503247606208651048190322504472206047400048236606612407236637333293821220897926435995462868554087886956812726928925834640031716915359306411639243354709725721056897922412227357515515502931690106128542031285960298393586158803803285093109036405749394926870613405572553411672735114684789601802913592819701481156653241394261594584504746126872206372014391246542023815448803742193670437044413564167224099460453751918996529157726658411505847785302109571961913049353588439140375547455716131619925705347029893891311798121563725860769749131069006888565276427702176976331767763756515045977769124859545007829840614031929454420677147684988137730975449453848894932266805511536847746015464010214455705432964903466821639662776412224952990564605814719695086531242226328063883422445901021728712475115577324684402465487481830021556338080354801159147027169809186110380794859579202692708263185816673358822056483963910325374577013344816649899718807412806504962649661532143034687383645512813939752524692284302216267349204801765417137246175197404225442378194689448616240854777644734469445451900790920143262201995211140051959328549182074815310127923201597869802498778338984296964807933252779989870791847944640717992735429891224814304536751616997793916059183657035989879614061288064014648595460703781186928558830936112854770174130228394861816737664939143927624239741635058179344394594504178009947958387364205146256695122256004022331920983485345212026224446091686546017456804851282894938481413062134700356135963895525734838249930799594092583187386254170829354111205410953708330741457313753844597628429003669357373261672828666480431040118206823772994648102161560012116534286742350149100152530849774515242431352387256592366312285215845155971075587725321710721254680438544989049851033570688362913716426878890267025529123175194025014125560827878184319515338532690067791690350625416778071303601772396255050710619732388553238815246423631451382189323667610054767013441097989774944464801669195759255972443668943278326556085452625070713718031947895120005565719464005509529709881355200849427257938964015466683383106112395894366051175068172164469845523194208875801000601642440388900595372639743386365097495680176342363536636271917514124626090006820949297074977272074177825523226831670136761740101256730185608896032432618947601899316792533519633824733155208380580102231546078009506282955158399959760279076896759320205729253893925989309390026360463081621646095119528479273335334430760311616850358608088293914293672749494010175527272824275331827052957508313265691164631901536158844820465038978968307421514410981807455813758985076505029336283146309132174269712967480644763254570376159337736209228610167928754241753528402058655790914863808460867012197577033841903338337539451354882349394874534265002071070644069536884518863769567635971176278071347716605009704192653805478380291327200614857955808944001986586751510577313327152513203159482491826461266592920920865971130298853539424213145061042278145478678595996149688074416237428388913170069818292264475888036728053968829918347744649935456968002654983324947914306567746366952989123192901078504247250366570411663417815628128731046375696319365921594954557058720853960314414627763649924683350460317976627786041789822290141280234663320943452573728196316243721475012209756356991325700140806527481076892672131547749059315102752664865469402600639380878103073105654318923224191667568153641275506977569209433709249829794572364241305268324721415296034787922302918641634170290412132400136413640411984551154451404966952144000207696471659251526412839157564093310323885944464587916466299925366268536461890473774470918462928951333313666721407522183320308899190897171741797823566929506470280931049694047993162792557157440174913704082251597858051533934837077954920444920154230975405945773501517867773299495430063226380317507462850070790456420963404176276700838135895424903742625098796024871740568913430413891338417025401090121707120261166380642685241418057340772751437546269152585307536299361420656011956865389004093804829448029516595423544160452939703091892642633345079845185859661377188770813385884277362752299823907589787171772439209284938066875599366028443307373740755504927541911946237561188304786447243369845593294989816891770899122442959930859799103143760365616334321839314304549347094747121691276832397869544441861947060851321890563059255637717849484465388714015561263994942735136647077336124556618393968654019160668909242371397871990535641027603280926951836283813978368581895725828103428025926581257816362942742691339703810096051700997587338976479915249123051449376507918275432067849228164515792758260611607849266881056581975990024887883401590743072293554853939504579970240094798262974176958805255549920431518486686613889750616448896552171788422871040800712002601122356541816676237370632410552410796074416549491751881940860595924176837822626773631793403917212170735616378254210277694843181290935420080819888827060497486549157896233800478240755090292280880940353430479334160792798225278801428253530696857448643078924776754189672431118200286105043790454090444116489992176700352797830561327116914744453300698149351501155585199452075967650335796287503262855081985825100899351812576845807313826476343012197797201610230800181913251740074350005472859868444230792168805183440037842940911004392976758046037014086016460320428929557422548572463466759137368919641785388261658432418425399264096333495873349122046257005016944792239302751305912134222328837707776496267532911091254865155176131276618380405531650953688324295582892360618222737673520036270082548717090418947982864398267413946540020319998295015642612276311433769941544224795836487985545185416204648369484950423612755757724597696965301557469952869458237944084744818686523573586724870745713869862791242863202086374823694709079376487789643595141010455935241612860675017224222703806602527262806473281698703095641046526974243666488963548687662444407437252478075753667862268537490278044707080030038386216302100458934601524507122692638736463044973672315324205831788829961352059815415808299652170341749180830738811344435453700818954263752163749180113554355015681545202760673623828126761443736061802792828007592768215453421054385539274097488194243977492529025002112216726575154976351936460229693567127067837379193965023486808070452310184160033077949316812733057621218272481138761799269010092683414301277911831013646771814811039056598883925289560476211287736253049899399584058703338463221577964892715929027285649589243625369106637000231932520373873112121230513764695477004162182672744188335686025841781200616398013342019872188117083221202378567338281250606116835971593130391820756610431556014164438447579049997111563268184035608821261379297139664328266847122842827202433213305273202793325331061356110797169457395384691576002509508031112682899310439709554202438700354363140069033590155061579208437847521790522930868380523948935427536967702485146998496343862698947681691028239330300875384326743945155708921106949206315320808864959026725972078472948597166918985897393945462844668007614263959651537992614819923141887257537169097908017747244942277518148035759332562184910108919879503900559433846358508015191806713741310492092648175523006162769729828761182134977488697552697380636957521040367261725722541016789077439591902962401884951816594181447314297288176727920656356740099584052931892387751247337309556678983633174617690925483623118974217975501745547871642465591670530061517528031609658335655740934202108520203666844148123433946459754814720074759020050327841041768268927151067564669537054432282047063625467827547870527819926648625604997068037465073858506765691167884082061879976183682201311352298759644952934549507865964810708614882209546638165477492600872540674435226532418550268008969913933356389029449138359186510731632673672453937356053439977195588749079078869630254000112973264093858148940963303408958275177431705900894236086301861108993738436370132862878199249641126344298279171495076057349007760735768085272219080456049253155020613596780081142043048147724816443335324584529223151186909698142224034888154024339153349886076970316184343500757712847393882640186167500555424158183374832272835495441644652625191675920233492628880915234697568059330412762091845542832765104038140065712813085245118397716434013830408223399627847799376080215896430536447250373043650783633648767817024664784043779246668764633081298205322290264464990386288467765543704937618959886109098433287824261198921381135171782097409937541513053531314149973037342752128538802186769374698838182014133525956756755109421215287822827798448613345919899992359634300948602687143488079801927195565762274781758167623624585066827381112869627717045597637135117192564123559884570945109085541966479622084636525245153737200712407413333936284997078668301038162986436968724848995703273952773880806062449467304872815773555985856691540546444724516847354911369572925669104568304439396640090996885582173100541533159137427435064473609882770731486685143524656328208944490415787706785800861917884132828692881225906456648634809828458518854040649777906698686003272662173591483314720070276127137638827393355076348637140661619032640729964448914435198326459353067867540331828539348177388557404852355438462686666827070682549181610833222826881781924503803144552359838603324418225211158808007050061364803955657286870180824265481609591100822984717860122889065812397665083606970400274221267684129393116140145851940235554121711496249391450001766175447528887652252149617230706711109152555097012338738910889045185100293342941475112045850521085325827780082397550596916813693950882545975179434120293524847413115338863279209743096205814233393055173776049680869015675348552566214629355198452428840755340463053947632530238185905528135557731656568004639033010940065035323311856319856957502759932846188652346857169284054245580636931644020505627020606549959747568373561989975276638559117182650395616036147469376744304302291766416561275709374974594448050796304935483328290987931102174742693327564591784657435248363490512610776413694739404686200763720172528595968106948444366501581822434088587071450420057104542247562366704606261089291731351300586700433103767897432795992315706067368276144174077983536193674814573344534939446374845298196422906867461463873755820274357558074138073451135048523242218448943848831405475787143518667102161100948984703900230058525657853223701936312262978675869253631133019826691224698628297269010464769216957294195642722222038585132454612992585267549259679192553474782928098757554768485009558685822062968265985318135138150687600049243149983889394030513484604318892316102951537018269222158194411793946793243902253229051309926410672807596500175619917952469176174298339723777780451096055103101845274758906600743591796069649078436664574866436720637119126109397859580278458538910653750026880034555072104836846290309839007165408356017478908479119144540932941756135012648859941378838736671553495865564107075205379905511855083801822988335725160754406422803005086333822540829907476070286951444901267496740834693743866015880583905689801232813857661151882921316909229407661331801891808852858607446237353818776388039451869185896590661334656143845416626425410075706955396999557315474786168331278549448102779232532235726926571896635384893144959048475969983661210482753432114857841508578115738177379956518810699814780025149500594065855121547958900462243709934445981949421914882704955792334328979179640464428035262253459718498236305656664983308930347034589245067035442180700415737989069249381922373513713521635128705582916104891831499633619680245557573809173659467374733415685763050447221282070631481536858181646087215031375997791392476605552930731983005187012316189839894738620855532773257425780082453029905931341660123928484715670523922763498475621138428626268275108657959177972320753314982421377686053831506544801343762546113243867843657539713881668785468908500436335722507058909937942212388915909832655470837339101510175073465235097648487031677632437071287487785646538981435619364181055929288378284185624757608782632051411601929960051609940473212266463778850931858134298775431023284064785081157359073862634438244085651145858254861906303952912692500113818657324334186715151399555562461995829386515390763148994269401654086076851242302029958160260226042278927530141004289769177086850304684877530853201341647187897806764879367308992295031673223090192243786537975350402159944457452915450807574517624271587530448573587393385476835341140208217298616816110415239561651172013193309722355390155801384109674911509433754915465298454247080485068522328644851759056138876554437091264208868025058269553810114151184021267588359295552457749047222594007657095204399124070324216558352616169678056604637437336286961954380729903583807667168664581177643630102604535430907424716766744514334821481186754173399292748838493047264557293719879276285679616445452869188129938329558463423624693291366912430624544479609369787397836488009223987659121479321953243707145767640038235733357584264687342732301870155063648515872246624904782230625889438614949335656119632258731326875150535792433852325519233414985325414179407412589888370035199742408690838940171799026663086867855484796179661820076100682507191382127348542524833572826556000454288940072383118905150361293645894868576828677345139086501982715856477273101859530996294421379815247076571050407762662792095673671386623022813124168906116458052467380870939054716410249867675905294496670323023902036587167995791036031593043717475596725238417917693954240912441709157905511440435317201054360177523298804297677412252710877668373357225705275311482686671634703969151465529510290710885552359017902126003154671526814626925498376211178245037157598117088226732637138101413786037352428888343906123886864208097336735189584241230378438896936013820178418380364254150522395502083750603158946370721404421987466838437329478846950097573674277736126920703972430158952911278365004797937220163648569393739947326362553863038942883287165770726359019634170766240544420634939858389438709367353216098899997619176487461218078899030487493613565699136162597088447808004515654879187998803687343503877406629726017189209817108640423159786668283969706565987236338943340266721248612422799523831963774261883173816324098312919258464357431216278830120241173953855640852376255528471582704558751491952250028524549696278295608922211203444937352645978408887614278483882302381493572330421694926664427298901144241802620827821288628316902018431824197917632860014773864903490111203048429712004583981489204635651206213149969033716698805835261280156671058611137833867499648925484584595153813132578071367242913750012396058320460499985181985309707287838891369488905551774733487918072726867463280359429999362665501980909396370377678770417020106987323051158385004036522953885785754825452549321531969686747561246204277031364305159848847215747614267382484177887341163078963503115897278316607785900542075919715470281710859697698372026806760405643145647056582296448730667516500005146633152528391166837362318387970048378666625165242416103904275309178777822436367425092950478800400514078253188878909433790901053954318675565206121278279354395601135610814577716418316958880118559958539351637292779602450943202435912257518016420728301010324576409024171053615375911383471294727562071195953139816320700965304244405811937643331639891913307532538760239029739144138145312179911865860877065677200842568266477987163692363795817221444823373692925110707681306323385104093200356974596902437572752296661789398548989876580238163217235346374765188490177806803578521472457545694765243063159518558387196055901570459344394889463954883220118836992697719973055871803828935809520871363631096987026697999980285466681978374666435553954434378610341428419073935380277917528768526640282436673150463980516205678726319365022522860067135810274992053381868819330053701043307739880770441667176938104627056686093998572627649501783683448990596320006165823251469306953114926975302208659495809550961817309021981497028568061342343817228903896283097799035016638937296732306600010881939846153379327295064024841402104432291803958481806094949066658399603196165411545778789341313160684582904738011926167856900697172524339299050305504237118872003702972388240710616431746057375292818042417058939734316036223964447736212208565460241280771624789366142633497670015962631202139084441733159133695536618674040744990194680578904931232927665159053249303908921478967148610941663783973014874157286150743845190252724063034514689511256626467156501879559532273105997339131789752584257969807592542148956196074412708463569091024240382989572780684676548985015663636602721683627938455763836036702192853734320917381807995049065624113901929201985261031876986939231522863538221144225250025466620072564777422433566659422672935195078893242858981712918454377968996436381385941153931220112325523742589091827493995140601379846590167293185934092564786472422260808875557081855408124989521608573018611042470209937782399442428769310255162889773651071479472403525223058456566717863246569752153117113181689417584060605593402118679678468969888131304738998641007073709584849574726037603497317358905667755059656207603159950856221814932513314993639498965614500213990768655368237570383172172455873912622619581558609443613179580720451549784198897882898982266039959465280678054373439229683583796401303631509882758787734390349365712143070906688655019907665488083111168997308639843744346190566811912516685957019449953515480983136334585487323405071402035169242438301894926894075503955693556112282878776110536213936397895178384421809022463360089036664026804548711335491732908283731130362885652632936532936322408869013430811658669719268221326914244362631500155890671527328549207401399610221061051696148938024055322383249999828275419281994468033809957798113389557893211074748761491894217006749954031451723853382304287469992753204374881445031613177984481577650078458669106528404142706273946340031338275616089844965306334859692583737926988488184201334016510484047774938419766775397696819268701328088611042409204983121767939718146725521644922960384889133826550402150468079370625398237798647618147081334784513074951386047318025497769646020753091935144183961209114311305107069058476220066543532633843515678763280054530279054631584664578738586282728792682717339755183272964331053916816316629996125717068888151839563825330858050363122882294507719997340514810769336560060659613730634916262580543094175389100392324186803252490162306160238160253895885334073165730535634695774966303822868814573872365789977645371481660351692593593624143220425181125062748897509033792428567621349121105311348456208134661679189897273441508927036222773942355556440118895606228043916617142367602679349874690916356996345276580231117859013608395436562941096167247753418444159282199048147431891931090486391323662939199751206566083067883830323244717337942356907103131654477345921675118930116124626355056295254143329735451346716187681416163154644347497141246848330778294696498479302872975042724076589838563702354854455716461430871897000335938917151307850727906808578593792436092016920179983492736155655585936658847528210791692955430902803022527481011337345341252956833960553534848319093812324790236461160767942585797048778542716853297245357992897606451081704720961135638732041196201236974409649547999053375482726865307926688333793447950249741163878708157346356829455153737117932216420790235022664680123940464129744936426250180125610112985869155794332380744495561430196173533257093552693543388360249801721940497599434975668574692526774921667904387130100809321449451200656264426248768846078909538800214006163170448842478056208926153514734412240317522042488944922913435714685569014046401548050699903311452353117236257384813407618219248109055554944582679166831758003726622816116144809217044318321129830877467015179651115042658416830485402010850226834677157640361855238446466358859250495246382573777013982984622185861923398918854592502899912649454864934579939292955057823926661446107802399876780526582685638838177899170539821466051665404067236985845068738163111716712171119894195996417838397357451952760479933137941518297859214245042772513823922081902192928175024904505151048540990368558034940016495081781952114525604981419578058298230506800969680084544254046368628084034661662743681715819023656033737492972658651328096581199395796125120669866349024692328735801472764739902934145727897192502147147184129381609902278604483745200611581053332738078108667839490889548444426972621562113901037108097486822536826201679227650740817287059380819244949272103907077880803447857654945699204691538020823114152012386886439605415879560039807405149195613626745238199767754104015219150305417248839308554865060396685956211326241878296089972765857983319433095277311747903227402631908054138331399418237328766133598533890903235492897586009606097615637855466045386046509441953989955200694944543472318736280263524795333163654937955887534751330564715647174118793510094787969752414407553121709852125373128070723026197910104179611588711990626779835525795105092446384048744033357777217095829067552462559352605910854793578195529550107602254787580503995019731898186117063837723983190864373556723546735763486861979391293289954257913636168195544043125290600196881602962165362678764656530869216373314709775584338428806272537195430715288086835400566916084782125137139389397167304174461052147083379616978986570321967919037431942687791189302284458034082188546119350172729418471963373438733896685565398380596300326129663577126105736203254988202223056245759457115486931866100513643104002955744499988073832769269607234318034338624480612432606077895385439193127806080726893397886718093461705111777983288407489088607172006833405757707143325106534641743651698991580459814314082390583816270280747831438651974436223107466918932143942336558025241342556944469440888997564259554099296747192266718286840366627105198446923522635587235766808997519376504311197711742924825276221956801627556330698187526354335237455082967317290136207367222229644079691593945110814147028385070955103016660628847193815300910862900194896531563605387086942172107417100412037438441842359013191297982433629132752265797011793679959646330014115879168622135710922422699852547409146059590286227403631995281038565610691131354519949366846717327791898120082080034558550764158046136056139118110564903424118626889044368863883821460096779472949837141741321336900357906150202599936194432693943903897883293193111016936358622961953245189233249283998701554331238487713549244877117616833883151210550995227520685992377199689086170406420956520230982709913657417424448183939985723391463778422266219682938065063040221339811811240170384818596389641390622606308881936702316104854522762923287534134442007706815307005763002809123459219384772642531167002771720382627709341460251846467882203799576902921245402582489659754821282967291905404618771787167616538948652409789648755448768419200688128275013665168741411786984379674239382355654229135962254415225146429382213633123483098049324105996051855224171647487985281375182089299133224613449504621454602358263897073742982434082324660523676863443677390474987798831213387407736283529611797455175609809791314239645420168244643969110007318836007697765376667308314701330605473606248136929848353217571985032827725571583877102847249516500337832064293434329033000686741626691510361207362690248064009938032028436235623399633895043259714615901674071276037188906598104247449942486165859694318627663393653908870997714111949234283413496155735039518692864964501086529417157873727113924246529801266273984035248122639294966341056161942048020094275342598987585591858784835452156407319216505149005494549113721785536583084787065823201748696642377433069168640417947335724376876651602253246130789998566623412696311148329324340801090811975002893714030835521630474565729162623837815026149776866238016034339402197198030147889226426455543028071335025504237148401717554372304601087422251445403193187051870366562662715670535858967131057835233786362677887167221636923379960181116276833711093286289055935995831391645122895306112964706329279247078589425505959554093963106591340508189875045909847394980394924774946399855347792800705822351252879267319318248381630172942352757854373977082168522402011386472333064369981930248513671780853041247632228903918392752017903907604345119171241255209080894592919263381517425912058545317514736954902878005950458410017162390321357262540874963656933841963611264260972492772784845960812236621239422037623561804325869410851773208543280419744744399244940217297256116928525255210039021376207824187599963612784635313793438652280315177390922061452871330294854610320693659397186000850421982786052485513241156354042957549143400603737240834477321996542521417367868729147793340790552340016152114032882543471511283421252267696382541011922721505283125599900409194369043096113299493090430305623324154925237809681990105801679985017954174698154151974665850992778466186054890649535245632050784993106375324918908175984417894732636250106216555315285669477629359105570326933662485384707080758164405749133120703367116922583667053641635987233384400073118856625708500067279725297425281174405575049038917792663250411606485032853000450031371373658087209025727783905568205976383554847579990178211219990794278289285506605732553158154718518435493831245606268960984771313045172980662548398557339452861185212116035480246954188366672494380442076356137464032603656674964817948820384085366973853361056546580055564309379251615850154414551431672675466244763951733451482187862086441567984403751256105408720372355837370936452290885163892133576889902134647317888297579487712686281457409728389142797805584828861625133464844203591470465704666983452762958652462565948055807775839440413412582424913701356382826999142299450225097354685700076855281518167147184734996248144034067480901946353524415118034663922016714282924395072263489007165618460445372338333946366681095942404715165372050844163737196288765158845755105404715622337763719867549352100871303054059212423861800870747772870916811202832194410269333320577963099176843918373936257137023246514018371630364676827128647766551905613949670211662745735325809133557711208972296208625985777001507469148030347953465344952467643805988966806599951985525170187890675479091001923341342575648149249626711089270789240865190656613659047114374140010161271709966386063058026166301283038786361786362046210034358563673266898975974605225542219641427774583694432650397054906283495218269942869678792749424282270120971975118068333342635978809653359457080987981993833621007166139526282141354680705286830580590586823041377927834568906977146652162208053443448812016678720722993709077706413806758529617357321309227040004951441675200720902685569586479941149724253963194636691948946172326683918612060688611091233186621573196359465421018787422267076388764950785616157495922813243985430852148611694082079888668320082244039721880627468006159918238141886773459841059070455505277373287426063312980959781739932066967014712090631889091690995296229024870992904589453928578826603735540945766679661060251273117994198149398289417628454451013867606794977824675022498086281405562601021141786761114773022538366479395608682007600284424169321516747902546100421891733927336559232389537989533557616349496305921487346775942188217267218181105201793793925955946105417965008418084727493794396238317598757311726809657280809090604619103942348261399384331931010949503697924427899423019282628298394199767896942402280824401799599956962926170342200185003887997491309294160594135263799806155109628093631342123235306608248660825023490185088542927727808272269294622685231282598694472541094191141617916803830867107697290869723413009060103843120028780781838305332790472906814446007595113726060559359330439670467202379047565516396495016078575035487350980924810734053053305168726652865203641946881870259204773035190128072583205046886539626531403064297638478600278400836268562439486846589459747590530273704534772305287056609115732802509471314681503963085499576626670609105682644106094360017136606886270464820030636217333987457055538509518138883499951558804229423233983362158626337838001025541084039300328541394787626924130534664420386757236297390831554987087390162652230463562446250855817566832870387665714759453091391587421465916732660902717655660907122217883755202923884246221767244227529452764384457019619169542374635395500009579287067527317473988955065707428074000980930048481445493980991701261365884122365205920641445008597426746471690662781166079504953992019954212498144692362786810230736517399784718954576623888450330221290960249743250705353080124384027183448968486450979259394861993565339156646724607302541766814876833488840890569299177916898119512386009271534215358380977709246819932257201748117176059924796467806250274444111520015755678190030473995280656534646030709031238636025920109197046982086425483172871026135030404522881830132227484781933514232033168615088555183651609811920020533272775305144172245717767942286692207258180286541815658312651076382129046101844915518801156562817663573464252370337692664764787212094789951781178910086030748021149380535000930757444774381742347017057833889757490368530529874971189170247214406015705945195404827694500347200661659168967121511152469507208682673023158043588751930904555278779689673756987262467599501913311501091133432045127646096422758788101868072334905950605984391483200954900957295224987046739717161997568328835413938226024971779718306493580174459393523081822849344390195671665156372657846136152081639211129607565453698558945931036347517519565501251687516698889490796784171666991490688248692607215406605052405955060588316240652310537045730146587621183746877701196453167935638615695681092547464186495834086755677824910537082818319991024235936315302238834899596093396568413572378887803663086530202828022542487517125323298253317478165357303198284764517132115772482367402830269985829612862234022260724145194599800333535094773314361069236876521067983049781409968003303203222753952087337053005144944805580246751563429962703015555757186569314904331381599757211336308904572173462217745726380499080134516120721761146012948648900858221805888488864769639810453166291931513809467414539304582094863838373381997338074545467375001960747728635565694174563042664904306927200576606763115350076308492040536880355175374016294545393262117579738781712353406790875594565734146992434576731919723523810645042174006764644272318034334266559269035802846814967028848898129808218987075352857758568539462862516836961835944290734104248844018475521902068962984590468875925064356718287988012188708656579713958999498645027191162754943270650382918561469196905032201580469775251127495699703352128319194697003269779854024720335914173699502696809337916339430423980598426531845411920916755770149690218567310332158244127647370277964752284947855693769271964146202606578144971375903923627713469418026098255873135409473033284888642591750506700420730619607424193678084644768476518147055708062854664899263618590682760767521919794469514967159310823541792357231216693189053338924770642330871345203577771322109431257454562929996454695897510817672062849615674370440074551693397303664692165525130666397271998551371829702809483469195611161644825124007345728051184915108296102021245396922086037723899540141680493147656771152069331166668929099006349738835570864258357674830754667939931077248342456946894497669032393202495966857020017629786007297977584730942847708669030137605765670500730177571896453163588029320431047423539047754266380365459896523715767446228233926689872068682818716166496302475203074997405275464283359444161011001122478440083028365789753136551627348228402614702268430025255605784757021983437395133938106676077557407556610620717971286967070148019715660342284952843799930825393194857138823864210800342831166096757485438725299518307925188957982633703559025394438553976124493616948226880875488324265313091161610412460251130798897406458060236602782313810757197218617791181196674328590695402375910706177545493008968252517599340922292548811195140384213989702206721306526773139969983127800313698457064889026608684963200931912988891305556579649437136346930834507115181418603812782437618567767906993670252416186202353298101240421324788475712169083229248455715798691534352631997609426294168530864664435406092829797384093525120043195615190746229861420293852031565773510040066077297647880931780838093915776646187261568045711720085996741075941945222689713043100789351346000104294966356224804723644799473426568835807543167831253664732678134072932356519872307200641954041099643526417728375987134693870890273566191976310062977082000596670664592734103809472152358536595779938212137344669623878486392115892557067944936688440428236529432698432149294017609563939718951784789893723052815480030947950858120999326193311078644159465163722348389634261873061174495304805477668831223985747714566025992537004045154532136445376904933273895228504445208490553905856923331157080944184919421118824459599226994463771772472525062008064542249371147420511646157757727646032300964668085305900392862590234422947017544158586448742043017245706176806191069547203063802133601787756695818281141080734000717209397054591491569523327782022855212254133507612881639869755038582211027928018249432790996332664189716596135458022071420924036223331890635302884598641066468487988844846446481478522306341833428949668116374747980354464397910904900564898197938696781036742987114231358830136133975231791808315683297851877696270435518615369605214390485589634789844074606597897024825100526572435588711893945925986044898407368211894218164649307993466745911611833790725681313544318923755833023036126828516475112480935584598294184319082164248623010352341417001207148796621042947992926893267821110786311574190160447289170858431568302819105937282194696745351826838229954398187575629437369090323255848342019746620121778780049139376984076696306735363709051104475116482884593133921603104717217808496121035405901537409874259623589987274185107285373108272569916274950192401983189641214640549973033250879800247549457967719915323225354659259805870373192854009777469133495264201209733081408269474381363972841808393257514249395585123012376047823824618317650100817050019701679223745118185947249289671140617495395228132379295614631035596680250716386847816343000169252072027638554952123407595594460205406860538771711816987068806007385231649947972219613677239776813740304972931484263409774242908777223339548520059890752162709015142245475493653229200279983873994230328078642658275175768433816015324176560107923399670376096907509533757119228012499386811687578276643975001256837134092610212641834829109880655849473055363425849963801791679107482623768595927303184482153111504083489756696543567903209388700333084014327211209866031787966509201829100480232461646439558973631894018051806878511748753188272458494145853144272075452732382768887999923493974323071101702906374943394734109326372084807232108404223299309931949860663582322893915306158280170957239040204107519822120018834725555974352605854567075592522001145742622923712508709773102654482848407281704084501913729059769511524005513674420089602266370412728029996669181890625247119029869116650172755672501409522400572344689133114062877007194144873565845943532022782697200197180700620665035621893354112276215179699095565959674195124698316192137883374082105679641074252498711383700727124117916675229776968323582739288376187355189328974790267133038229232265287387311289627866761908689613196946800366504379107646527852386019810626045416659846690989701708065184612435372391004953091955180135226592772455472469177852613583397001574405876758626809081564253584673190074154852468690878041123702947408464364266787482873990767020670341429704039890187687523222449693491395650458080919034631337400800351655222595729062739265630423825515918839354902121295544965035662104232036221232075381599070167825291287496125566447902855852818404376688464015027598140969324914837746067505971939872607342776039934313667988297095637434423556865694780407800900302845352202679842954140876670819820287847944925374270013314609069685758339832511875236427918313243969662906131164478218461662840505266994635832593998476850267879074909774581431485959192959402786096144541335982654400684809939272629546407646269299118945679326428944521060460971864527378482266101944670413718204181186698235051881211685326505473572152788497139146809897820272703577767983594761211310546813328387588762045789305122325349341255839762709981266544294137301567868656337861831954799098220635950397667827611304218614243562909997462231568201415946506019550510049616623045830365286128007800543626390885158342313102851151313737955063536083569477505254482971560236516237019678366494581719876767465281279185282427668254462080744505333396201351399896758635639062470325479353466377040579117939773238084563715894096938286496696152163880198605716489024429780127674602556489416062011369298565890026336052025691758622363717243867666908462147772764023807327455275408323126303846793176109335450889103929636297430166674517343883234563531685177086413099129342390466884668819432262041061407348344387947546710099443855202404857542217839210355667442207587892587556021016721291939171823296883394307772227495179432516056614178608862743524381030503165166449322496725638560074201696766090063553299581023897852068421432459306430610495466969125679903915405997555477804445823668412841821806576969069018238553277651764751039599694709496471684008388160187796977877738098796191579121105116372326177064975358116395258258813016500782711101718143846742944899978228261325215377255744011840829816489661781102949831445987561462528266558720701157437965533242210337086683285124417966124906680711440548236099379064828417549854389542380704666248626006335651351524647498039447204211723239757352884043159729933979697753513174544526825954700721082114957432911986045758520850438512075419599763393793814107577577448062184256071512651964614977350879225776097577548155793873135511205512462654998335494898103582530237357007392415071023403836548144826296093437303003222025090774973341377466432014032398530627443921619352759827148834115126521436090871647355036805747862556352346526052568997040206969870979726183307800507968710413346204437093918850477032241181127320488346288991915710520638298291899803458722488871485117177817322641814374182065588376040684550420929874970843585401974887241179251760988945186912665083200391615173546852321807739332019566540976320810379423744612174879108418194256075838608456654597971785015127609924403399068197594675537798051958637946339226660082819422844713965324984957403818117134393551708429793325070322255275033822183617306310510047614049786014754137431517965207090303273085995144985587305356807179613523245047348336183935016316153806908598823371840269271418899333735508570991084336324347892764669488874161647135751628851255771035368069434433476312089549159761174839578850476090505848740471258123889058712986700096447250041656783449939105751904833642028208380593411547115404293454733008872455218897911872913415678584495928666056667507559996749771970488811040188189795196559623019550854982597104206122108687101895876425541845034270976759111678733676066310189446004488266094143939249831720015712343728525145649455426108547510140800283855079237917993617600510378502554713844187969331153766801101743613101653158701365412619726205953499804314493853945271703131343961219651242180823893047792507646422595646138829310393614194952405918618193754481253396518127890518978151488500222840214389844557622891210681044626432897506702178804755014484370203730123570597892156902794275841000917053257333189575624311986929888259367527408740557622271851778487627670537024472841557532524581152994451725933377783474004515018418243228505285667467509712743183347892927315731818983210670703437850620402321038415948962362904859849063213502835036051318470639423425435049166929067527683088325033552670387742206925802800764454038157871483977582435777092338080212549965560687532676696781136719912748287827072635930716404528071750527832716178375947405704052737397056575371856355080995380922295960257335769449485439354354333550345124551547738148290427904067616638294153647439994858321533046046402357740014695855588079889388700573579808044528113290699476290049003160579420215610349054375284643891785955302256372694271822828788571539145226851695904439872725692254304004122018877008828134481782111953540928030009158797213399772488393617390116792985344628968623068322366955546410992910712194192083433225531634116697525278502153477767786437824293804424222852749948381540639819131000404981554984399967490126827110816206304302607493142277200004065781222463128249510538846654280115209578277177344226591573603095621264532173431846279201533634442505214122180468946089998064012117402420737104921672923156885761844103315276799808063864411304483847514315261354613484177592848029016117925001253826954409947431155180804139142337675963528533664794665044190847029106478441428136470288727778570980725413285493031430528871654690289261856175762399608982843970238390354922528869644048146999592931304199905173134232524275818880503856070603863935343857271812049886088835153930885923878862708719762540490139926463690969974447605119275510905486792658601963337097477419510892922808247903099127234973475010273259079599756848346360237212187687989976638471617209036903609259057434406532947212992808366784225319826775051002271900217370605731101165536320298760717686061061625307333683338653882646605723547268412803598462602366131654731113071544450422896560503517195820469844151784477050755011510964883887715566818871541847133304210076636853614658286595562774325476509617233427747023994333010879579915115137302215427040092126869989210043454126671248458213120294328031105884244231166978462300935825784633148706214784855165757634680031124277351275995655100155906177252472639873273072532983752187717417009127165697413207420009479912180717224539182512087401560032260810969333480270588222022994485117601243517724993002008281228721362447172110759111293967849038906152631421451465535608051023526453748835613181690025538996404574217643240246248535584537685417756150383683728695412307048843966460849540529901020935106904687438029880478935005210871509955257773755210436412677458511185576415868468176312981600465863037130771498743117964167519264333143646446883433478133966515234170144003789389725546243544928525172520949179422894826422368182915072241822980083377033242008630245925802768003964386016496445613171599197267917395385259869886790839500554039778310564818134865850184611076561758788452527931900021993352686859109462666255791165863841707114394648291316103322291887929332765695927926079324940330412066845286571841984384502721903659094902927857277211009679542359734717516859431767553806628401084141021752263568366105311295547370070857024285838670109966195861658152273590230650415703178800761756823360676887686618576331894869001171204486670410369617822481012359864624694619534247497657748235093524882359007042263981911169264289135975578242911465073105736785378457629237648514089086679682169996253534220922510996006136011587827138233492829273023907411778571705670564750051198703197559190335190139648369741618467856829783197241468122949933862155051102966616356104559195953012769700367201279541493281983444465754703619035980006240626799830433221013684382420618015666200650813384787301030959733169901158058575776165312957312765622094212583109071961248064780908320626412078787635660549410269923853729469243410929271872626685632359005812938819167840641258069631912154987241944667505851439954321939505483078547533000043014659650671378556971784572608395737673905032129379059089667487682656068270594027520983662346365928794104671010470392048984701607604657344820434053141180982217613621292402974234431127985952620399547868507561929148386571528566466050440169508450952068895821754478070288307519299684812563690302639719615269749346777385370972034954355261962837737118839106874773865008153391289265849167162364893925673382077812363037895660216497024172337912660070139847949686528878056343685070925108799843419188598355720639010832476273674609263968908511625350409837445403988311781157685770389751450983011303871082092333785647963353416799382067220748415581135145617823852506647667545712626536734147307490587594779540873199156258048167243379462619466591378046952883655676385135981138381761496438932410736614315979236500713191418406062065506533704179535149047054576252681566933852396208143752318441039981319107923060417790867426486754657983388115339612835478500730558441107652700332691653885591355307238797541864455811070632749023347477744108988204182842278598705905687759029322440881637468410594905014863221859921781275877347200601667500715678797742367750850212983703513393629130505862128603966491757287887252521688601685756045910422746145600866940883139643583190000995880466412444422004310362457372810753945840118931896589901163297408231842355369007354507580810107544310684823748692191033022895781549283997708233326261549157794474606357598435719538364737073141356913751550170396878154866249066708198816674047692309998417832445541773914453544189867534671898918605056957678507326239419841231704216128143065118903775493358872034994413701886496746641541105349873939702925168659459069430546699241225908117365196746163955727092931705791996067042103054906854154041558058467397044292900424675160244077090224911579892790793987629227555332950035929520497235029667558669022648627475164169939630674589261715023548008722949404556524906604540456044011841326617376729883794483920655872160244451084194874471879697175852264712028986741722141157775668916664887056528173337601835640012624077180588475634079764443540279410350152043423985207536290445795578996588884933117580381905628756242493945866387534059353278477612742454831422298068111885846528719700396369832114673145882822721079468006355714546335726285949731201883876818797816393095447292463287985471486498888135205829539598176574699755892918413638555199023449638899234794728302726366987593955453988791285346570617927514093492215955713038907500114380031331631364571155489033776942151013077126484412569054427437937429135401549925408576004070745543443136877055531148023708802074994019324390303571943229448896345494018211182245861170348666129178210225227740701721440735080374595269193919953137695791553012086531634106162846465762068380907985084498151961033781015724170399816966185084954431398789595094887810168734369857217003260933300418648762247538297669978942993092700813782958278044223465106493969566702409408965997401359249185258836589550129351711216766903992146543628879165886851311331033349814215253594493799737991935672677822115070297943560423643505426313462080613990277384507450724093329890350302202806929294650066616894723032082945907844683118292399784585180915727960970838968470096931860527573549955862231877354182223920399444108063448620048357566101285177962415708448357104180894696560461317437956771876669299335038406602522147248437977495316668078869760547937319346367990687722188774628189076237654547572270084186128271971814031426555205445050122271773366817031106302034051850137403889172569576953141883755392718123977289081289720135908379829573003060973456975392349848174292723151429727029184914254108427120596181951573875513726150095626589693243551799353916333586502352620995115412108768441586565176121494508408519174867650003371954861507506916397099401448710758335701895421159255860425703363911082695955525815767816640455739096246031554762881893863529193016646788188183911731634264987323662276673577663668798782442729518301737888431110610524998986321580554300289316919692010970433166318025798859947304985172885419942015422193917721743779839900109585912241719087562858607857922057124666401614574883380172502653403422730537311395192095721495486408868284860494398044551788954306696295639450800476508791326019735366577813626516867233981676882512502897695064226556415694229110584109252651329579096216940818611937600112515608507411529225370526953844714913423987318270491616292492782661474767330534647250848472110568736981751547587003302027367643711704473770597624211645855654881724938539251303813659071787645780420714253579526664316969903148940770211564453516501289434869618972072722207032309000848230093270931793836977163587691330888501878200883969336000828105290547531758845183424008502675700536729948028917870782282678335305442860882015273606651844669984403925906098670508287934158890974919311487549245925548401963315153511432975855108076025317230358924223425882998446475900649347751003559472892080272295500206451490717447099788844340670043405197433954452711290655967799739116484999780266985396132585787222855010389004266676586915362730994902076111505966654901081652467653348011309753812597838107337179176001885020376991113119484771974424767517054911662443694604914969183210845027974915294231213933460631587493102359646098283156081242852198439577516454466917458809016856817602039382518452551115639839851009362384047931985886375576587211171701391457101916132676326325626745359528716210484771119348443112099623865976240456391711309802101795787134859517313838912152849672155013613566921504703927541796784184350325887362509446965222516390433510829617766130425834865100219269517582603202732993519758435250483802020818353909254177440832748153777720084425474361268790299346932064560116730889575193889999695268708772055715100455489271091769179787118765369883831861569062887160989780330247820915332786367381939036607757132764863679695168175019571889872986673610348772294297208475154816198315120819185355128862756603085365498984515982875997996381832850602931522374205535546871960404957765008958114676702732403428098302512394713345946431828868154213308675730807848748024663564728270287221656695679068002785153603620352266876933749385851954762042027234699561484395754622135280000802113357198732704979429273048371346615923879749515264416262486195294404052342823134307283801462262046435710193837696503204305410358240121699511683191061386824814241297447727617923489751134735895206146030066166352910973437367410567776562854848450046793813765957843604380010280416148033931572128736342988599539868906592204429708264043621656899368981673689329597926651238845358950920437534183394251666710697461650592571188120552512105555776007813061757927989860809874502340852694279403913684818024133308121277950467462619213198209228824897704900943212201890493032768248241249877014767066952355389222096042509534852797057537347881535157386872617290213801394707998264085997621089891163668571795726921173307431583993540032699822301112780392711228825459792349098591611414198063420946619641934312693371461909404447534232873096943801204851642219237643278765622596641454400397625983679643651762855119869539783961216497185266075057266727181451330714667664513000184031044798573485155876530732981694670054760689214678162220795812517834884344849757050524184599007314341117080916767219396389757337881225516361848016005389216679932119736102589337742274156542906734260559842880422583506937976698403234269416445364216734123576640446670489725855208401749363554100081250057729417569479829367089060070688594908446489536872551912515446171791075170452487994661474228334430954509025701533127902051027207691889781692898125356690405444107789062858859253885888542976831188449007790342694738870816823117200233350834969996568536869240352257070853195714662279707253568245085076245575676183433922153930738211960200324226648361778061227770230300191418592719151912367070130939348869851612532067630330756031252938137164665010794616190688601832151923351444509909412028314577517394226009149567103069241250691222376855977741734080149701418024617142679588320721001141862378961794205277784488323743182074106403024661122671801016329432688080363325544800980218150884875592648103486751540930768774206124644568046255381642542928493651011353837211457761641155602293757666342465260678965064213207221318186666252791689280416898399033052459269057202111223648448211061824923351542183979276970097161322790955782273001338476282314224731784366604338328744459191613764811606325293734611504301506465247888041721931898851464783469132804633946126717406740429050682907143867006300883781984015330749651463506077909053044665296183237472328340572845254974883262975424123241600584911935865132109465798635648936896516431776214657224479465633720987124700872704251778993760319332441605531030087339014782573276706467961040736280575790976884868512993472776095095707803664308477530411007191603241196559307669451859359636900424107828992678573582305697682391939449768763419145451277548125469362248797130224604291384009481423768227944726383094674489647726791983173017071091568957845123819412770884946769857033879459001420850473618326662598351582915924115362515909614139043177438136314111111474632034570100375191885855192974929016284765207391035451358167308743527744480915446616405182976638917474651262245078579883497783652466902775520822347781609822635712430543949018052348525823098276112353706370219423939301279419164655333676965678804980675048678253595878725260074446199754373924213322075877419148561732663998789160513225615219671557286741373840208643432949765537514115187845930370847844958954277798438995531106969668903593274948061983481896283045360090178502410677645242531777875622090327991908750303968307978727174935113559265202777586391910241185983660097042924459565402738377507752871880472623868290935195497759474229032733697276034969726609217238435344580694202409466475797704775900763526890520377748513998870598478159478803224361471739383354919721233816131042254099888876453179345253652773528946191894452045887364638947541396099505328616722004128235220304448246842933063074244606394204925322524832667969950624385533089330908119195384332962584368588866300057796028950952242869043788164607044771831992837153532090036189020288035243822570802632288988741942870806381055025566537021176699893202545698202760610133903137907700479869844452264963521831026296611912728968177047466556348195793948317025411135840138265256624692970537429862539905683327682717107247944210952253282749414248355789709989941324958886928681764931053176019360629605275736057876325757513349092576256633498243198673766597503013189196027600788724901699417249717942772750677860505698530806721130074454445827900445261787534460552899962712792323927112123626543506410346847889661716731368839301272479066475027007606131560021675034412028414291393617755289669455800371451860795319559781239512323777172548827017177249652777473482079920357726257889736564768689169813899769786256135545871667257759228692554004317337327389970342921865306896856182595054505721080751474548004465221263108006793651129415276671495400167557984092924485771980848407778025689730353676643246057184419786707558213339355537623608669906185411756294493996073162208858369405295593037256431930714677231879010557107641154851873477393733751353297285151403168087626571613475138144222023550913117903381352832835248685997125079301266301936594400761565163020689705403001490103546479272754286511028814667126129898363244171562689036127719717043080338062961505844576529487134913232099054553697911009922990861497846656379400847013143228716574451771469649167892005160485486220315986021137446533563600850086864482035281316043373474514109925379684224931812339089844552834144222027097959025209898077900783252044561278578229720989817313934418714108828597130002211830019400598324283920356555343165084401096114091651749200947643546090500250008488938147065537012365068677833094205632064792349436342102079862002685388103167333654557729064095630099455577855084467691489107081380768508554474762045187694521500467686515999483343886795093721634815276270024563962525382924303236697454655939663671648924940289806702779850419749744526258516862172051468984370913826573527461769717581432571936730833791326905139815925839517249510016267455527574803546868217768103375631418986972009353026648960085859876816985159362826891359125298080692874347995943872554683915186204078794973280205123110797442586448610456407800411296296616567831621847035769394701006478901570319154948946568680386924099975271799618466706877944212367865427936858336386854228225567123313912091399655552988019313420411711449140371236218727554150330109882139579462710690971403383107334123228403606601159806961016661242857214371144540518057221298221527440148422405340553802872616510006657068958587903978614455793215874037941505416563010852694506905989202840421694229779098770930262939576419442441023100075503310712641639766881694448414653324796401479017555718170021238878518876380264457355178670452015953333077003922737269058284197687091511281059889817778716360260801720218778645267393409824178856844467859854669727262463984567642195202045344529243936994746850682657446840331036525733482263915437465977754142655193815543701707966313865801120881067828228517183476452154379681494020796720403084255520996782236251398733612316980090462493369736026030072919629381452492802030254849218819769582597864886285672007045686025975483829840920825418758877640269975800979814059760559556243062337099409443126268050777326025409749589264234176868547171091539278021979948731680888752969072321849814908242847529076034953407040589100334705577882135356566758237026687100028819136060516881223584042176951945370156952770442374920338793794159174710563775022186598080796377043746902792795195919927949750654134169582776298113730983883867398489904986174360260644205845505468915657233871570402032845787914330212948159337575134619542152547421273331804625345733165927591338230386941201529940438419068888719855202834555942503018969253846409047607757338025837589224630189702239859933119649871258986731310636836557278473812737900109820347008268634665339466953806632821029387041257280958210663345932441637573924845570099678814244326430799040770357966655497603447947713941375797447294132787910192186110284224063460235122851506873538377640427880958391942479870810869200684054885326476517542232014807249610372244667937004129296474256755317956483004290389924733149065703604145721628488459046065686766162135622216876276397432205396203235473436064260122957331921506611326039972365534347926979213170360207482331900924380207818938820527165075873818940159762469161193075374956979779968580927328550938836636599225239745596506113470565321714298997547869218086095954256122228505316461629428314924481967316849120870040966925047108982285458116053704170065492794445730474164713848171883880160507755440662974680716103657480705192508838973753196745012013365089232162056573364095259556644675632685657306588019231487897353506940728563814921608544522375899766224859969673897380145160820985197835910922716910678791368673266016687212106076685600591623095342721288036225189800521366982411155932994979383150974134277569936685149054014908768712810965604319904559272819942248399917467401116407274133354410628360340827892320525807925245828814441434934669897047899456590959716227346195385884606076162101888093007125634705699240885323524523724837377570737492811189426785477263639168918272653943541769433192394253900792252095252020218696589679540908292597026548695996342682697079297043526462942855071774831884435824150027868310403671925496707191515011819716982920140958446426026143291431982922915319695390697474122578806454427842988900171070501666677600837192094486006657579238293196049178002074109437253505969901916847135691364099282616453668770642358688502218903645250012256301763302996263879027714429149905455787311486760816227082126626809487549055248324715364843905826791294202239911638806976227742323623667877774256778564649347194542814668127967761570355604694004088249242772025072804694230424008826849643467381323961460315539646515258722037554148920208842420322927620276822346712379779104068364565104531949460424288688579923002364146425457565094314596821442452310734583601411270958579516920894448046496225873444150051952142297545883574766150707198594152586839569215086063479858420996018057786108774960421607688446149765813282809859836549065224009386837207536621099335555233891651491733559031695741178353621409993544030961595741403295185486681959230519513651817118559092314683409816677754823193427738778987003409256126455332339138737399389160926010221467968595978293336002825879917024113424130492476815007871176683746016342362374190436407197207129035998213773328160886088436451703219255019908497750761811801449116903865454132933747505524208598959445020265108551217241356436444376899939295533735984749047131133491698482731754099789839522265881267758017186493844719531950351016202131799691429864434780117128730732706529360957649247454579632099967959564609452375558434965461718904697967065502398271069458951264066872861690474688324847933056324189981896574792008978049891319662805379989765564821182285152747306940817712194418890777582129667024869804716818886151430248025999481606032950874670358541167562675900408162906242692926000865885315703999421281510604412008410477814734610784153959077314665737765074816060404266886717582075098443343942224620826686038809548169003961661213375635870193487509302304756240903410596633798988717577842182818640155798318350853314552183533781370314349571850430548964092035026136289446402044053836174179366039952585876170981896473566257847625491920464142239630008935798078447155035539698318435415235146564128021606587688836486524989166326985598785002267929461767910229162123057559057526428353510467274227889812699107463398881423359144994354348443791098199999109395283872478201106934144254398121216309889928020208875084070884375225199515335821877154572840870401169999397341502027798752256756699987378119443205942206601623753713058451542297696349395676122882771453365771937894366777286361988141294050043045049672856579445971195444470059546271944408743661046944877849088046637898151144864929624051333954351995244228906242153812784055471739256497599273744345488629691015324264474231146120793932114663508146639121980509353769435033801435753672350238811088972096578521742011433082900431180144112007036985664800672265574636943025497016802512055491895319522458405140675463467687752518587962262301886225438879062201694322424538981452276923231236615083659674070356574911419219552757058544875336237301605247917237036713577038179975463282323013677511264968261422663127181424972017191213104861419465533840379191602286965242213251051478321979822026577319444972987218826210419480653096802237875335083511562429251085292455874363288650227593810794757287524578493302067451345347144085721339372155901625922361751865884194278283291243565271845736876964621769605636443557475097921377794103402132855173554962523437424579923008075481303624852591478188238243692421863488558303771032328154048010834163143828264131840003720016794012883482345143505956362222148995687320282192433433015907000445862815374677582819847590720127708031387974128065447987093946474880328417322251855646321918375966930613341895327463099475111578188098328542621177903528000904405038191885731889382850275492057858526855444175985999166809344090018463439722537774615339425470885454572537477340630166790031704953711794554956677687998796494079576143772568804707535857211395292635601626157361387295948582714863334297499716970972562358169805184850500901969010083061340227773563196849620503165315147026157880790219234369681311316950719184417752341437401132351907436577254714273257363225000473099041320006751878571252545236935928010077613574119016206138068892609661518196377400709705716141929331491266331096666104323224364648925818062561803591566651475465462955537498547857766504155146830525901793463217450527024937520367780157322949404217317046318380311011836622732319694098898220644621637226993306483230993658794754752199848888002623036655946574995623883722822890009112366678964376502033774052305574520796194684278598951294410444486094634844211542330040026697439005049984813717344739542095864268823852499001458234877949207597125860045198007668923025288136028706109280105935620198969194535918575053815366611125449565270914143096336640819167251802753360304582583231394012595560302040115921918172955290291915325862051052780768878673165843605966499051114984247800065205795207281469086967951407577320835118213787640779971799812303584912651374545286248099238771808330936362554690681366127749039473650520254896591822267681916190490484219115320575668532132107044752143023497514098591907072224206168380280027390159599469346565007992161331178658121432557789803726217022894002662963217172163271617444829110495148420037274262979904077774221227553511112485288125236734159758768500054541770607459995545685565021950269098818847920865750118301256458783985858540356149882688156134920248939682823171846924403709681579028499994930298428994483862006593757775957353445427792446990700081260429544038566045520593731039470345840680683459167467460665218019228230503222813283974501427140570784471409953925100721430902355028640791659511844046255169864145650652320250807360539381232377145698172283745068987646109220287643494112489564427491809477986770017342986450022862436025519586713547915770351723500864046096757278484945231714728818028974775030200345749683251315340273118226648006198916940246816162012694811737480168499523884517535390463218940203995485743202137924965611218032809585265467346737737523156233832687308178305267198408425089083932182738470966291692295868713641905524616708447274829195297261175528080805800527539153312710698100851128543833934915536911544011784661171434810266912982320652390404951235804712549175819344216131338176473062943781112299600482486497522377996228648329385519989812357624765663967158361443140353983888079894945280724155019173441764031602082162897700209174765785669702504323542483018776996898792283122207310424458754390120730448506144503668652330086802105132302574468214488738502506958314474200094996821162930471667736862312888534920613535627857987011630294881107720884413141751623513121101539639352689512020137270115291913735362084532235936139393706713696091838443712960947953266654736334120281864700660842164739285263989087002913833075070111461655066873839172376708526282117944601572664663391997605189868244287796494650148257119354847260859192586222392106836641433086305473425466351459784335271310188963225386176496119081155467071560236551386448529923933037829505549616152418383756773676278903249910838079356953943951818567737333595969094898243781244074285515692847245758537393351039260298139090197143686665462771680432756742414458704568388827303341459598450877965775677373423631946230926106043705466477948590303921109874426185553020630549620086867739914951484564912858484493505436333779064821427827054256390986260695773683996283957469997357397667652094187751030596322138142165248112309426330490720005580114100816612412762865799325701886959493515819748278754450155361117704498574980659565489345892312984079488245497545776736557418165279039235493111945340636645722154698584420488375639200563620107375852127172201794519337191662503926014402743080616519645793436133696292380667396522168037252688216129703186335475088461227483231221094954268524760990623771592374428488760858184081452108335651135246352737592458060413770200442252262029103492526070142837527898598475338429891590383222254192785781540181221975792391090108565573478237620794957761452147249921438819675329352863946517769458062535799542658870339548503858909299294766696948886577194989668377294510682696337963745986520455557600402934282261084918066946553299243308326854451297554015152253322788083933387084788113460381962610452008096526050060322205851123339945516578721020276539193236414204260207642765189807696732233981769803020134298560611812369807662578539502651959439153550616128846101044707306716217779811004206523807512907462182232982752525220693299850072418675000124985744892710498612997807661271252359704560841870763604675558097529161845445180072149092799176072508637780095774909082104379319151993230972646991081992812471898760140777801380621438004395862342577297359590229410682893679499865269237731184506974824901859521065459817970321910017919661444653545770501906912231841461470752949745383703593703356778132327152071253975772092352190901210236533256962632314165195271372952979609864248729860972465597594750066031675102737780108401562102375188477663461318699957876994429075258049997149342308042106725000192054054894895206118660268680102399483778006066797099098349052855181803331370153595035175048192324407372015987244332988647924367114775600606508935005603512477934634799863270324024081793796006893832461732562675914579386887771382903015122873782199104826941479950481917147458095798442425617975726810416610857532181994048037327567907381459197388358373745753509919853079006439557538458017400911961151226492247544178416950014832493017791680222323491400488523758774704932613510448129329496891961112893475975742087042949108326496894315474293718315123309770402075064149773080569488733077330435316784180843782424599047499113202089551332084715389201780387803988067985068823321350882346730367424229826748594082740245156039526967476410163488360469325256533714578668946462479891476307599149093303980327048896881038838472946417374512144685298002900233862896743011532405041594068911257467696064489121573000663716212455350215435540474084085535089147858660324371146625358571479183716775405941414397077342686058781138951094670269376857311269036847579697681504001888814249442378881933296409030034713069645782619585857065916446765314942735406898039901677134296260021823265745569628682684551442117800619072563706135861729210204714208984907398869112214881325864015013540971965062383345610989067283293994964747386063635277671852401260611238678662643449943098234280874243689472397997616591683820820728913228714112410481156099548673954373376675199411272188069307792545122802189154252326097989859190490818462481532936397439014718541357353156376039171217687969347472901837530119537430042287253329381921613734062728123203838252351217204291713206309735539368816630412956608995882825200678958304751514871546779243713424507302783728881198181295310219253307833589923210157063619197151049086125689887271044307448428268587617460724821563987547144198696018036186445330032905998969832100247833948635672521988807412192114853811716093933992668566047987350311953153071107752522982671492949963127920940433611953980578809818272732119653879208990417921165209085946416470108887242296471339803196824827149708926273729389733298780450365335942015764079959588790577821992203943215468402126827778712341890629524104317687609248522618367339873446098048133119598670511523128607561916693804699122664587692446990889346618526330414281779506621275059442167935669271072665400229368509133246826722002725556494831314943236707408131183070221941793522695305945127029372563579116527178253725759770849177807737135699484873421036412148712932503317976466000538984338305872063412306428489822640825200046620482078669678810834392728193702977240286007860827087608069443244819370164486241342720679005720962450391833360943712961878715373249250049758417464975310509675371515269052240835033943076804257776434411605562194077259606723388949577292979337512831389265112125328512637274610034540769233084976219267987612240173317729905529753449194231841115424907030041599269916399758023327198836786870483721860330202252580794180801099435876841971826605235937001447170635601079418706342529884717482761104422932333434857460034371616747804771574326869524775338244726243815040054839069469977686393869099319485144320261240699004656635529011517861896661577893228760613929883513969514418333357817299417793086905422716421363171888299366180733342792075580226314336320362081942009928195752215611344205759204008674505905066053767630065204038271350765030231391046769063808893956963731608251363396267197724175423714305438617393559206804165030649232497484540133457643971477880564324595630034445370909782497330579826454897813158733794344948767975023700246412686434513788276633298298861130419552955580123937881236640326368446177075249295567283999698819236630927014175711995042785818626121224078248295750977663469819148875523573497311375591392857309983810009687969799948121238643232232174474007949497798361642091487208711442349346500531093735577219910174970399203107849971270576171294465407422720404064721377850184144091433768632112013849359642957347039563858076448614146631781817057242918437814861335368071014173688927667470840272886332570761504277120936543794637659938414478429075972025083583883553999428160457584618079354498625960693268217760044644111060097448255254259542738476920380553131546448020786002385933567387561834910745078948215971148599374254896808538191871609160731664377489361958242229293974762578176574085269404439468759346218235799217488005445031037248717243812632221402492067650481093941951069236543571324178228724429962970245615888040485358867078550659466519000776569562063794072244453912828160856863439172969394467652201274834831166151420536254008364478951607723062979274925218542966035736556814496798914142475596621114831940269803839929653914304349720129011152312986323476868253060053710561690115292448869280192656566823437596966313909461332727363022733648874723504534465697789691091172271515752769577093327738990290514763977616493061020464869605938425617744041971130571737182372652776576737477685098427497845758609901185451263276517850462934493616870728153753872651679810091022712284070795305713342947840154763762121119321635806002311729203860946030011514898445890638363396568275345308589786014035102056170008737958951938701016228286233103926344339995443485840645993772446629022561722712132483197379452503962207775502141832220426523329597221431545599497742593105063574188469281715200879077983462265263128860028220949469139295036903473764892161504272025375943277430230588486798886956330797113268634055475378577072771885882356888912033912348180609764319683997654668655202032194063296051622290021136540215747565272167932412348978967076862775654781356285182695922418234402090351221566902596317870182020469490105195866046500052205050069120396333235522183543778511055957557677273157222429289580281144543699856447213213502387544716141070415088775849445716649018239991896406465075324939663319767916600113462653701342689558698725986709574923430134146768030643830091554074072498519588296235242980113090662154419977271580300510667143146806350746280979855256251842904898592632822994853626029528042983656161639123281352703239823949697484323463760871694965474546554417668710280839412862495686485299251263486870672302040559927018955120476802909984211749236553589675022978084934754123797885223374211647299053696837346677066979578164575242802452375341011979112897102093765489677207024285383268153038660549637550400006417945599686043031810218405137175327209175524155407657852268754437193196468839245340387404443040010906574224296931357648795350646225101556790146131986525546591110428640376405987686583574002065730197553823039621579889178070104362765462607734322087097657036575699815648500354687692842598806039896618322845776585510587343000618021066317924180131022959488538472541553061790483518090243188223743062973192841124696789830922221180117005561284625464410398136283183492314471008738970279557141540052361094043034563235843588593029879826865037136377752215006987106320163662026800351330075408155571341098447013237888395894166037258519774846953020858489288367586516093992265513139889309387540142716994599892774823071983558082447870627163224422954310768068381203151121611245913567248765766015617749202060574011096892768162699663617774202044288964063432930675207279013484873644094720345062852610400673265791929737828385719000673011109733883275120525611247423145131169584187353501093106028212729293745094005810233853645623839899407088731750004421386467670149765221286265267546247859502493713068055727500943914948906408149981111903305268904110987783122677728294451441052569065532231405347387743737955240851761690652396807232890096031556335070011165866321087192654602714640242968142597739546646260450000075258679154359312598300741805902906851525982775066843231811392329821412408728739678640493026549591782905731257151480411678646507019469625018813097855115554241719004647932631263676105123708400080675610307225133103602666663120060728114552602691723718535494855205696840340835269068325482395564314557982026697176339083147150729192051098317114231153178084589646033728200598169911987172330427606764708935135872166139500915110021246105114657817746440094045810381942448629550285390365593486554378663074650282589671937735255924826571259333575360811659020958364026848980943661392672364297821589229211474047101804874070678652595041475402944443433266549899630718615987498604277971067658106689092491694158451582018520492529473613551848751263028395163246190452116494612277832362238772800348305655993972181856703524191426248064084188727030073329738104981587824675674990165107039462518554678895500138947497586639922241924680755917343291584790855752331727383373129824356755043149307496198888678797664114654506945312391926499892222239818563743253444408589650285078079171719563016433861872687738468344232444619603601074208821043198441435271629536910147712199300612256343572982648995623467947639473083398656042712963039403206754819309949510541884256432118312428771489619170083787938094562793192973947191282642117829467851109024711988663098079647545251840122816276183619461914793050058628368193547912595078591869127710220436418186605463715720452689664760550555353955903292745885096305001030132527474755620868497824233685583486370502648523314283764881668609825024047573284348219759480574476202875663210749530065922200502924499441235357649294083448022850418026380959428617115265388101346831399602498323093083548810797299583201906943390760387437678198453002675733371189398158883715880217374610698543519594721657288511413167667478757314220310967029601187006120894136259903810820986734177445164613042541628443633287752138252817344254002447134992688317845023395615877175816637042239387818759851659284734831275390012541618907349384600550325212881209964131184559199004109659447571065724360186629830126503571742569052116402305364547919268034860217097712856001375758490455100644685150397340858932185571983218498542569927163009016818466461515490002095810483703441707592152876370808082337009855932171191383645625645428534380478525177327972699884189991861994718090282819020126972554991099509865507461508308982056077520981640783513413126417907263859162476963509065840846276590378259399821828059992027001474814802945115703554109087276142113512869114958673207128040472430682299242370863042167536902068033208760890636853435141666222706794338021534393634378055942723850741047221827757356204700076626634677162249796981471940294329954899751884942908650900676674601840454497411004167725042572154763602226505125980069215392160269456010388843718007374845589199590931018389661753846295227584064072779545738539647957425290463448669819947230566575081495880478546189471756736003391838989660510014584168457842475344756986659229743442111824591887500480392591336542888848302502888935762421535674218236703732633982730623515350333545923865668268490287057386201105470584729698443176259707513863101939001966443449589087199929896723013852065476436987971088296730150501875016693746567763865537605069549018262744527731173633648709572152599628697139681214308543255297510765177351177352006554143191565888463561076371248982622607470435382745610689564118336965430843322164285820935075671286110227664261663983293669228900803424574281449102456209740620498008130950249047410886339858768837549734945646002283272171970173745039361401161292922687073158703747536024440061778095762417015861822165207643555064318945591711616092166581128545539701415197590219865931752796807615559166993547803587033460305386224106593246195671956662721280606709010519470013303589015444218094840905362500034325568248112738865954153911208864406527238890006904787092522066182503097280631766464623010329508333204687431008162550371364805703789532976084371795611139786019190623462506087099864527276235727129116432536627506791895351093272002517220465327483664171936017348845894746131176295439780762092093221233563786519722571447931623906369404002817866656679413911970497334734681414749406651242653610516843386413178129963245086516665968457475333996247783181240896505808739041774759783519048724321599949098580503881906679473089946267927405184429831552399352454701913005951895339013636666848612358930623003199018063538950044282905630083162717422573972798657974150944043506113455506657190226546778921656863427165787758642527021453402310215231230706509053924395141819760468890448980440581950397511909031561356982963339652472590086422144287200742668555124130817757090767116246337565337399712231137070466837183604545953344498305018552342184967412644716298661529587807878474527318475594910149255992752276011539941473074697457800509657816976826259148017067643944627130985671912947951335734550588912903402503594917400119715234154033720841667129485351739050178145226556233339595530218961588997483195458958580322847327463577645423628945526255541669979066535132203535744905863200530392367089699651722300693844237859195845442625498246686435086787212298335490042242978593161708202806553313317523095635462271395695659742788889813156327457068397107209252283817560789747181171982849803596841512815020443233800521355423878435199543931625210989932188118834463952857725903051573249506169100919202869090569169811049425455600514088379002484620438209926861959739950090517140551351016754801024295692433105222652880229773309045198225776345653164868191779644629373263483887279903073005695610174482831208339547104874570048858421976385478756833783197799440811436891056575354290867953874356299824068382815972752580974297078073816547534640601748463991389831015832544348113220047959856631262085080410966650901694916654656073557233955187889041548289582321157067353023887027752135290438317355006378877394277987726188445821003315877092781416395991442587730470491168506597896464438198142876557405139357307719938599333619419226131187162751369263018262994542656642076357139599903449768377239216603005955026543616753241241698131475202617721835516451518494054486050915254765488388286184367475134849820373496751479625920204993245780722213628726435555813275100185260249597962047199327102121628115519649375656296251810234504167595714233001838256394975445777700032667658365277224439299063517580375137161621033802396363579741937272789857742024445210276613743559411620550920619704212663562062369106575348112812213953166528333813022638643713976870986451948507338529596585444489117001260789554211859757782089847373863744399104661877729630115863584643411852687933442113911245103699988149894220645171901010483081580165467242427399216374071664968921006557999056344846323685083688121056515994985455909938906820267847189810705710565925276461927179574022114017039518201814220699010833722484295019799897076827711409003460842352266954577497799411279376748424643937306541269419416756787248635015889906413570106187268170074641808991369265568038181037995562575157985627172654150327505963545756975852948943312160859885352378361205610471420491844725857106240237752702913916712718489262407691472198504855611309234195129627818556300323770166940065588759036379340031659606504476084197619745427020298994000620744678786597949595086711527456877765746165251443167674905645501677450643087749643671322654307499052616047795586783582063795918242087650498256882111899438077255621639645290404590443531496709170551150296752681888226878123645825634847924461247164657685181901545131643353230563514424256888573401376895297444095057084149582946240377133715754011783016016777173263000449104049179756684847705643361613636595520798621903474466090580951315770148709537652584868034816196834481516698356942136559844653313415663700139857084958989206915276184173241322243769721228464027672306374674657854432722390961542626204665812585655636163247560773427895473265395755410764072929667425698442129045376350430480839962609377196172081156899093139218918951766547547458704917253258873758365378586463339461714521190020071927349602187229827258430698864643371848061076776378071109476943346902504272221911262274148177880841493417123612144700172835643716243417713533609673122710012759277438235685879177082815016839088203310375730839491901154804636589950555237708746774338443232054944491759954875582556501447429227503976483317192308418135332381567385175826254196899109803425204794754337900240711667179626363928016556514607294000795347348833131682644649009059930767334697554267925825594528670065262619268359569638964943331496885980585847101456602792324121472050776339163980806127388971133878010629836930031947101807201136463953285594100640810517122466384634451713298937322361359553839878874538586325889120619237800101432222601066565263340328410510897680721745367366585579314953380829231587896459062861718292281957406922656326305421074669507340241339889180683396562814873752610852068152440963935547894754399321004575827363625797620474714795793089928788601340705859051684996421220637652176994324866035713354115661312556663739558118328911614611371712628772506661665466763613582362135440511398677144816738339624570797361118095322387051365738139416633160722218517791198248388127281860413457356346933662902630091228954491330382310414157177782498370579184719382463768024237403086883026983209369398670159187016953208219660904866408440760693275001685363595625563828951441261502525631505723742833869541502395023115896303938102925371022410710684412815014416218389458975972009614248250955491895634711408364882915999413549921709506080549949018493289365595154022945483844855698113947050742384134313123426068111819727193324476248475675797596091732428415640274922791862483948148767915394855051568788627650088433210295289014637008704621595381959047651283588610099811852511798179131115653084339532539882428309274784063912038282250116015848886409897243556525572197001966232207890710865319225678206149519161837205879083574829132791658638721090448869677718783043496795872249997077526397171979849133647603786019687432034059219314233879363163927074179537789570527825864374987078560243254451899291395033741171453363031637707066514282777052892779775282978099768941419141187871681227841954357270351433782481921053478881950531860873450562313899092630919390272942567879745137683695473494706952740796187078688966790598609214082711683925223254345394963625003510883601691765534119582491666079459963692710218580758711541174053175873798431139279807663746054904920303320593745967904959751617364803569257874204796805674672030688377734202126256676847156778642528646779956084736282535862863748704082425209191437869362827651626880160207156635553451292535270362555542309437281615487586760069065790058964975274765907477731584218974281369887645668374622923239164377129133553635587606671629930044512886166454704830592381139593066780388057942336551814768559377233167031899570801343544160656380108270733891156116850993472145928910840187804571688671254643017789699926600631709178097539946408952685955137992517061006878525105282813018547175308369094933350434715529168458386296171137112434424597427811746335076938107783792092883030612640515038534326847106790553615943661875267168164015575076206021992373800204107262387368101297354829882478027517052055467077665370603644071015738470530785154475071297203389189285618910038497264307846839219616416448549119126578689150788777062648987709450241559536318595366664862999520062832298739330927295237249275834098761822062802267027166963262127758046350245324154020909045856111171633523952627069615184794485178271168615970267020798098178170985053287642608403751584465222916947675760280598358751761789146728591053531358430713661940031706052050045641298900897317472188681684085162967775975022665200573711731264055038993352575713117185748808959320587865255911045920279091251982748482578242530546544740770697043056162123973539610693971890306071628337563265207806393016431610751550573549590157775894306027257205568680434443655163842401007853702501729442324186726700976971953876278793867744432549282429889047823952119333382477902949448164610428210983828341782572691040235075099982616075971639171079291819676625228394066665503982204712973548836848811863991961255016991953319190779598081833131602773859949405814093370621520608593020983217367303657224477530606136981754717731515852060427356929000356571888495594945319095658706557622498694697985589672162929549534274520253313461586391225644959922111883369486293346656856296224248408442287483365854496043617338458960052959682668078796077856387195236502042703251216574356636174153406098920323307099329177619067470927938454885252079219927669183940695127715395317959633646612148756018699278303786486980695386991095567756112636556869742751459753858312520779283194065233732487688941735942494526384067029547217078946926654887212294429776975379601720658624530889376500995450238314825544960393509256035256405415586988884240635793011567729450156394754552194060888486210461856024699649093900432243516260715917601843891645349225603299975175797998375173783335496296552605932024031118628398804969175880616400300768996510664795721810192123633978229425318323331277503951986129684980475556720436534494489549183080036554501080988681211465616899804706054357597130404830643305606558561966628637169526374728199146295235930817423409646477280718528089243978422831543081081865051993636050704685821938926320358318468430481197244609196082475203639916543456333611172487011005044769630696584458587707936364543387519824244655119647793250896998479335500035867322335502795974199151981975136010261625097103826672654068602310385462432266607926797264637779836719193323128145903723257691938917697833407713855820717890646303313843011930081018006350235110814359885778764087090714283190402247521740829363634336988488881166144489942571534088404905861635528651288237250551107687676959366342046961564641412797328845066417350867890374688415873578301820582792362225657210467408554656538589941920951432404592092034233113582175303347616348947441624734799121722779872039020963800944806279085561967168512478390945322034177191473491507727408808131215412478474649900728834926239638104665272889283560037062644287877205436878605208396085700351636130916686192231193763074080385694773229962430719297710099178067541989448908188481495136336694221305280353064087349755122336794835650523771387507011928619416179797146459610871994265597754193497999183329077700148570573867526021550793040572201993634985318044036053961976218187335303092595039699607054026987646766095557949903728242870159553469848913468178657488312648270101585479331088727803098013825978788051139361910746069656281105035799719715195844488600653822340324958538288508381512121286260527555002284292795396401290447811383797415415715040196641628079810225336566002031620398938606620150394668056541925454315690643187173463047581654148583729891109971025637447912321286888102807486949278150024538459053448529464774371451546756562335782768360526661723364799780652202017567578155020811023875580432442065029031466890390440527967148723521725057402715602077895545126877645811501482759719372457771583989084672980054449911257923243659046028055067199170037325390621111272260900616367998952647181567430353872735627326216204687084508858263037432831521346132061393714319065594979642113624633994006247952647404411307931755667694820017539359393914532784268971900297942642060139370877759984981704487471213683628741677334455812486311309576935722971865479782976691688483342946254202624244508021714174268072905441006406100765330163895626196420295444712124300829496131403823412187660930496631415198023786746308806206965534918636004459532742621107475266897980648728058442227845041325034763902706652814294226278570107957645885129147083168287670156411017237748470756577419596232524176700684462230328511749467693900990185056048231960404479718432496697975895987788882518334118432804071184234892475383644089647290501793973743280077330168238429872568721234896844691312987464860707147021473368324005846180478522302695965298846978845317322775149209913565392621284640538751805306814292189940951387027252107551310618567291291658400065905761659910291140731032871846422957954279608826662528546727337642331482271817944618053700807826601114268320439893193613819455262664744413906174743917521184593326535763670974904722287877286981338399011935525478189419423380318797349865182632692412473696193454313101414240802880658776964941957407024008967418525581283472487338482746267593529651564359535580320026010212657919479789748224168545292145460245349718358211107651131242184944749957323710977000797865143470840823143549554708453088185411697439701965135319744366250222327490439341586088530641813019065404218970598579188914411374651562810154774622840908144214470451417964657770297800141357723360180494091756651850851925968261988443648379932868621451977443013342792152553801909727457027628668232938847327244788895136063143307747459477178275485330902332522523207786798411998827024377751745871499609579862057930068059693936103794631099909525103968425430242423422246178316614288559891567154681003989177467781535325047023517688808555780912240470858229828819261242031598460359786735255767689846389347334960845803735822188518916808343032075107878115160937655795005229515457761454849108112057749004891607577482751089983305869129288168544794762814789655459286526509546950819663332786504295162189900507332496071176129839575838582811984503142663931427766415622817641905588880917206121058776092574927656405542968171594640998489274219717202618312958776390930250911649958764368236275442858094624580082947040426203736746528691665218143380357953032623346412339622192157942166438688656590111964500121017599094015049747284066451437046637003696641884992046686116012022668328866271202997542736679705615061836171062744344246058262058284623995245333916399881764033956276451258070614134437528743248577066217718563008255904536783897929313209327933682446803023438899557488586716909935284138268983642581633517875529848270981881859466442838918481927118790070314631067876417320102609936805891821899806823177027860915805474529766940592697199979307517301810694536584985254897144926793042459867890337425405335656424684276045835251680726109337002285209714551909088367560221245605213875265253131752082033473904942803103930390573755810489544815532453918433912007622804218837709180008952371977773017018655613214358183964925618682827886698441156369334558499708822109756321041241284882844194230358096630657154195067532281407376990580003125536371457384541646361988257771175857077310934005864005623841193068337973202611159819589003705909202570694100030960022100350103003306876857793606964755993922346719866819861113187957883750623171010700086791913759284986398165339973788006295783161021361952169687575142349355497474889767923917441937793262526766434026001398296329692866414683049250880917732317164648224453188246710358143700453303856366823658675853829167694728029675313706801973176299244619652497520141324172285838621339746115929272139863798918924430900912984250555018917645850993788535301229130124671687315823015168099767095656575912437234827750306266600601037014612846227143449025078222625372247254153535837399877201529128169841529905435022047639494068539029340589732762352370966451913277405560223415724232961487199763697281060920684078135523361280005035622870510904002419141058407399333051497385148218136916245255997026731288574809795022987533870602187012474958013363589124935734159658540585080501168936928746364396065844416470004032809249839801735872847827708523378780041017029772970356014909928799042129648141850341360739006877108771955446455766703923553054959615061651867586195419949979869430413491713401793519243294909449646677505313409837613467278496307504431992388073860646861547649877143923477232780890001118061052320835632446143647047366021836432987108771165361655941909680929513712953972171620426240242795048657221012476673301204607328638389883095609380126503719552702561745708009011271520347074998707259959118025657360102289452769010640341407331504726225285387278716700301280606409665804094452663955505145513681636441137839790335423048401012517153363010506061405573914007753616456628530375263856105095503196327898572771446804525617008088574466492334290926152329196117405379359059455935486164141027542292309508366962538481483293131092344075910915822159781184342419429446096589013007336512025245843760378246544295161053228985000046953302930515825770023368478590337309656194554925087052815802451099121234067295013845765150429132894065017195475278864076222983490238182322342054333079297366887990432546569104200202686476130804246938140398506754119912980657663324894633857403367022218983041003461479898799305784165369478779906095485217584694837606108435956162499391637427495679840346669974565779580087175231233562143020981796341645906680702562028940097194545145902764503157495883027560975198737259010469557324244892816228422549954242954921259278854329412037860050375127764046560203358100411306858208420846844764268102936676567684154666966822122514035033890094968668395895239308773746635451841353180350518347394227929200140904977767280426312089729428428551241188382069504673336600084744699558313585134361092791922579180602615164936491475412159751534056524863251069761083649366105426676365779942292121883745410137054973355754443006899009202773617815299557549077555923958296533473712582372725162221428142911608303568525324342353653199534948724155519950069469880449300140567406541268837240465048648682422371957929698180534247028543851716509839916647742149372652578255005124616867803592615774573034411910750079807856214725525522654848856449914055257054302957954794041663346682290810425257351844363111879978958636784248025017089332406000948192642054006426625053201545221078235375888512656457491624821380003460409470182087675614407582198136686873283825956637534926764073438085940301438039557297366661461733771204496119063377647546192590788506258600738185309380690307602975446253117906954686466241023169371139084320368676774308552465191427173549446931119180164594240353553081562034869654580543152829402574612182667670766233352369055462140066653946938492748547697618979490526005408027538564559944568421824890873678167154948627440825762573097156742935236762154288978576777839226149159058824151397588293122626426211455760436967849298972752917614210898546496783374997746652116014123483440494800249109413923777604001220410663210220318058397501859922423848380790032875789288448152894266649180750308981878926765919462239749321247580515539762856668917136063540705538984609929901607153656471844331219713167502493811790875470927752049677856263378040390148641805337161958259411768867576522145359181324260042020956388833498080660487359461555889640603990675079587708400795169857771252974323764069655471875935837872467266194725011330971467147461113488914056236413817005223774026952165509122696080382110652361120807683921261205585517405383424698884605052060776985600663972729844041938571366221418328638180270255019594791872589552568826462804707841556898518909822455575245527167593944601902348549159711333755478124201138097625317720875612356556676427932082678849118501145278991092441423142431119390166742651170304303043382077201616840090010685660772304221030625309873635662602094184277910299706955069341221790833508113093510713124128044750285140248551402787280270674414289477866340976742405023436170416570844339567081667945887701338243203323682184825362182648905177372007235723540032450782160182955223727725234242342231313917478883239720276014681673803878744928772465260894337940291468711548874973345288099378321238599799480511128232932509512519645654624345244994414652309471783833223476562731384086366469978489949028616122711121349041783342400914537761371304519616748561352203975018100664569172303195585945642365738027139011217795267781425053002645335726037328308629740857092738137915925511202199353274298476608418896010967702751708100445706882431517436017425313720325608992199774412270117079151247103715899716500213383440388513613758836412964245956519328811123081284703792179088968515689351785374879653931768892244113626785488674821022014916048753962541268147399930636009042607598487256778587682202040532910225020210481786403462911610074183551121080713472050265047435067625096141555038892477031401256006259981530047493822025368728250120871525699395514433862911303955782255462795536139424970010562204237690672327624316897667166088335544101970145827170165159876224148665183671087077963416066211012145675618655647460273487755836453880224266031829076029821211743908385714575962376890273379418164555514697952531998039940603359164966530517650157928648289486272002066949854367636732682196866898647910969134051570918212980819704024584549879245315727958903905862635622802917988563617854467796826715696104806957115642577357731995884346013754627576127058836665370421274240692677097871267936162231086015926955911312376944284290172867975084612727594012037912429434328159061226077466716917781849150432577888144325339630100987565142709695850963466806395185014596451834988237066253260824247776729661298199204757445134917851173171708468587656773781185984128307407781642392988998490808062555185781539057248968300772448224901345489652361733726971096699777920622023549874616289572305846745379137492234307094579409990132141619742735226727104225156915983076989491972682356689625442577925741100682004099236527720711531360668230787000314157423641146161793715656054482366578691038693295831793303783127516982918475921322341076832287648390541881824364948358473747735257972728665726274343847780174069469780682115332123062993468860347845669469045288691650906889184208798366311182313682923489135568452184753952194647995516982690774721125231865733114264900260121073254446184781762552686476898154930682142728365641504526781328890121544138637149589911666610752398572972050171268886607254118082338893416891232307538309534579593679086644172374358163469967138030479329012530325730648323294884006587390030793203497140242066384403194232751504284560834465658254887420777549016170895145775801977831068009927506250919224475110856969080911868725313128512853781188342002698872971783229769793442364316859539424957308771056347735885257978098205277484547339925796272110870590231244863216561949200282659152279893109188079886832482756852817931735779049437310277062042895535866861824429923213770283138161593343733453503482491913423385848384343411277798293056585774434925729661002005702706462618484764838744597264315535327906785867817671588470825602715820299659366068159383726983343315449808687961417084007825799762355065786207847078648949372130270699826165900814054807958453294968992240426875679926152934622956106084331728673497300379794157357502950934520666144697560606674698661218947246965224584487277865806538720012203747274281379454507114124569649532137022103975500275931241131977660249416871163154152034373353555901690606220014233562960709783738592159799166159967544524714919283602214956697022470462919631685693165728278827581136554061965727843372106928007968178889629282711839808614468060154212546094867434014373138628769024989390261153202124643070277585710157792657582567397493477778619215409815715659232373561082164736034312314044489915123206452725968493142242069690118448240524764891682868601572215275008095104513449120160635238102518364613398956790815796022217334677105419599882370674196024981935833171950246979200342128418681854221634342161934471847313924732359321092302639342194824632252402676947043255920636605781114691375248907517758471751368406115840258835538386411499197359068061042107790870622716221744117678783345578348664817572163633684604540782551432556794456339856672102784363620325929057453515111979127644438484877135575168483399260246142549142880615283253885591550608245063483079929581747608031220236635198307124827157392907465199577708752775413876690006924953330614265127767816537190885560958383968401892756801770308578727636385821210486337138021809306157034862231909378727524988244532050896433149955183372593758462630493295307479469346053482738567037670682347022505699952155323639292677570922298774041385770012425980860061731892920510982083024682361146682432911798752201985835054907204756059189694016178810613581087739179660510046930445546018079764481804164394710945863138646841251113052555538973112410714729668608601788054883648785308251954757146113683137599651026734987970038585041672946259760497597813940544117795129200221369974311018655930238745885211565711493179876241598959226091709125949500925062090974934101063694593056444339935477120852863251529062382522603043213715863862224536927350262773372606244665163412933720579051373901376348367769477213206391209300026713322589067243095270969049561470736380808870952592396884883479149412744916296923180963239028009128625743437150762498298921344873599755234546435901848440098956271500398426665892976606081609339752003223251533084522216680420445148695636743986804726829025865409754406041475969861135947730730406694267193529690652286994388460945023297948823792188504726964480470859917519529101121850498002151889725333739790051426746247427752479568814451780288604216019825035653051579914426088532630778548877392717141281669982649222930977243663222147089872222980092545666845670071615660635438792708021891335029671124267917009861083766781981068978137258256801308776492606154194237766486589708066109026143464304564582707063070185673031373383299642078962331360463814210427013044452053427094947604483370200303018069114241641286727576196365043226241747218973601087065496019009767159763552171679412177378721624882038229488954577190143816922517134418379581095630112734267094276934188114573064307980564309614513099215393291998930490569849474814607454024648608669847556846785896487221555827362783016731245175406075930732847462926483878128046082717361035177589151659710379776058609750476143322089798254947310439842802525105606911455004458909899853384611591524563905395061687705264159348906757031620060241921742120173548531246483874471249422612155498534055599354235362882199145221578163166960566205776025897723734840408042060117105824228918439933180341857908997587112178449476769105474178239560008895871522535590596605961421461595616803067408401577528383167655701579730099338153638036517428495634525675308035553980898711469515032710707561373588533166033651681243413013759666577440037754560585864853291303887376279659537668071934700844644780953784715444705495028631041017232982574469765887192531946412327421161988293843916726552611126234729571833235229537179341957177230590310293087587989662480912431350573671526913370281457602928694035942063565932132989688554824181350083018988108640365027563168447055872286268815052893443913413809787298241614822044975549986306290091500014578577435409258073876984656970214629907073217360233407612874041034619412424209069122884668845607801420833042552752756728181942006468281259062641599376019374182179422856818721325157548902953860181928294500569857555997776429123841847516527106174480079462218560308367905466045308282345089948590003622885523028998723517586234276098047101081629070965686632591866745765461819562545638058202317595888431858635178227421728899940112444357568349959701620698689587528561021860085924120918720543782530101686158530281803207233742655233732301562016090507482203325789682291729331200656903890482614431627243696641231764876980960074693613114408463061291664324213139676415182196784241721918741174502543575668957165149055615884176109838800408214607781337576744400351439248772451750669841561410889238457673753903971683308358422273268947527511968667198500171743085271183387248519493473853401512242250056819644570511808373588919105745314853853242073545881742342879300656471875942070046921365416139571941893666148584257681730668784915906131217411715944223985899529421708615144562468470812930124230297406808856710840516718163580305851734815244110719537717960645872145348238907963203109411502042149886610743376418252283353382035301426096014772494182228884939161954133622555466652326155409748706545539668536262717462741699389239719289306601151146084649646344622237729991490239392489473108068138730320621704187870914005494708834433812517013478546434398897538766001601422863336532547027699608267623636996788075391459756417257246659980794742100895635180220343182685073489283283627795180545767526590390168377809272601763835797091941316500061387451645360861140600165432161717621318456842016526602864121684125197553993793549931694238003455211974147364815600389240584747781808474162976234269811347004220304418485391998627237705620557626129903963808659705339473481131583544514742116485376963740168250829679218385690909807761512437141962850308969664398623463862427063194359494122153853940547607581233559920578253286767305341094400353295546093588130924728056904777934111586445878865912350481324498148020184488426631486003708515242305940097945726335751839622480741575456130462514405010221706953890284351500523589837297102104210102339521863940043638483510429775935614228233171397235536264846049023692687090380675288171891053875495484174654536405522068806204410925044891965418140748972313005480576026196233743526645158632828584232690917542866094993994629923935261135303975162255377223566416422935118778671555076485795218307194677915264836511684866840262920407703867431940504987141348616092479131938288855868108053789103424208906954857757929643711969840156431141933757817609977387536178187390532838729411848471947439939424263720681626468674543441094119050577623631660153257603187420646942773971762900735341782114147147612500882916126326097465854973545614264547587847082532215163417297118036313493828194185313045104009783050827639424471326623021953440983205492731309018013636864507776043378186064675211498286711104652380623431084281344244760395332377971115078026849978309017237947928053031623790353247742550491823006006572478036555642590738872434975566774775713348197219605459218807602507893478672317757743404037140271882196786326121490574848660033789635605420247329179828566612877821669011099067267831340878266132753142966989546610381694640720649106865097945887964920433710988004365938666956462480120646266482329747525159500097050025501765899566626269503713637366382703951670545795517457254581770338919771716971910033262887525574418217662719281759376963320823080720925778517197998062301755063645475777855823290854247961389846863030416525591883517663364960738767599449398756249699551241630650640958724491188201330617898197204224896226515310619104699833338092746878167400330163287444165357789298133988262005364794696683914017430818402011118512690647399697505566787474887051202377837624761621949891229866205102307564984510265545512498245292735428417618128675474223568997269235924337886133825547924726849802880578800769810548799562042668716900109917329395560490963644624509050590453770753532877573411060804700934055075200305749183400910514198247028462524239276169681148131460851127746561122854903775167632288589152817926029287594398149076119711333389292934926272954294775231922216690289382194009417401390584642628183857862698599318856281006524763746088046042430944061118164144134134299691057439869070956988074787750121465599165236999308828402591283549654846592108102440524772007063537568259607016609705777074200242453965184480459402707191710892411643837656016691144545395032636826502639389282340301930543687564368690648489986197666342587207172945046029486015747392453019895040220169118663996859737999188047724461903468959299312501184284959518689111941339226038273799830849625923456139674054223017059907400568048777744878371479270891719464103680416114785873905300707617628182044091712296186946209004571253132533484554279509772803454179050819209572618681492916894287023337339621460559619184505345737145050506340368299619556026758255049639005768777086655953246082270656751977622230804612623864975571105046546350234129543678330958454286566369942400927080888601599643596519634781480893422008849128029038767279660714249891951792939893227186971801928106268365077429171683056069508761824428938951952829881795359512040862434316872321545100429680765267207232124609872492294020357489636235049474780735577828398485442831736384710103108151833259055765668429805480002951171499360686101138340773053194118273854326494942138245036604158566683127666284765261001837624760054776134433052716234126067406774188174017979317597609422345979631783406851230088109294103581285283590713688795318563439568598892797376221115841001444333541339089912991033368486646019746530949659205082326715348245574462292711584890800978392098300789932943444505954487253462250307841193468236438597314488414006919154177172412470689459102404122183903802976351515097283036659830886891251283061251431571651425533659887154908536916190782283309501254661804118345627781587390428754078055675474669856685978084164979752019962648789797957914490356290166618730701660814717120398732594222398426669149332389828292958758665604718039863311257112165838003963589002622102348282109332358577165377714415436155214106725148260712828711151411212593299827089693313942447125314944581311045773676316762329703160450486298963005672615689908475832607608349828667755443404713517129100704309579745555947874663980413722530566934513531888113457665820333879273145204394974523177485197414028567645246888773844326928359867685230466961173547011114439435203237478503800471471551439497681119894826498945120036466749279600042799210093996262780775665324387758641209394766641874907042692385383725507682275135930799866355426841939470637516875164913945212273279167718058198381324234917810515526923676049439068272327005898157301662728437227353865812883793522748850879279091181665884832409709042321125681198462339330907357448184639304958810606115363866308395260708605717698223217120732693561379976887813754499771225765018793358800862796401768970008998045840263283813041519999975366629616850530794562862129816045227060475322338389453944513550885348249280389466510496111925589259503336277617067925496148676255406362524943225662874913149365335833007890375048406373033750861026264921700148203031016425171325733269408675399767336063658884651656430639263772742781889304375433743740529885474771370283531918390443962458508006430554446157396287408346908174428764422782568505231828442102764276504962071569054231578677120962732785855609716988795308489207444487172739978131638236910964466226684805082336743432522839280601446940160208939068880942319819446972557444415606897243235868982688600630781897840882136284098423820977104612453244007096090132573644293871935261278476593028392125786465473419399590530065890109569696144514737369244210761609454049182413206714122238005697407745169971960445715663191078114693839330970238365608634204809712585675114129995519154573124161371019899125647155093335469233396513512194215464507908385773161640573037179626063475218889839425953231479451880741882172206573796742367516155183640307943939407908689304945909465241993165602356670514992939425196125274190326953940643892089151629063990190268840960801277349857446401018401928328585657979424702835026502157036648221427551611131186101620521514105379581476402604819677903644607261066619053818388866492672462425914131627873715231242109027131745949616547471177144113284581746564273384261719330967402632427298603400794460499939590121455703037287141202509962553837430994475722267301314946784341608286226469048099671051132774049877146168927756786776652836004223946651821841409888713680207879315292436849563269521605628265026910282178218995167829287934809401834289262675925540869744529281002741284446797154518617697591252089795259608668218599968628773639822886534273566255107145108719096406038817742510792874670037690245648516800284714074979803295018412567266697734906376703475619569800935587004890089770979522074227235260628434736963735747776173592717939003102460493346374694714113259327193238456081286268144525359641386007955287907485061327322541651160268657337114747311083064476746964230614547342665746046680227058487242945891736327668601393692663824662940215974403303958669376311450370370319554876104622153830176771520935637010108763570527493859970342176651826261458221495068355388014001639200816630653940680977266052683091667910064567300391360564410937284845900375018126375707843170009210759622262904102170331708167126335265460316783951391930283113942589879300436053464435991199594661372347356667656161215789704900934598199192278206557180677988891247930725685464494277489038826159487420467347640290211137160307085642993347173057923711024857134385778316596163360991073478575114824615315391845087509727376563067568007435685232971734696643943830633179115348915222670410343722089671381397165056941818425056769883852672867245785176567106766137787628520421845970553729800485950436746925574865056403172107135984699338710754180532547938283714993318301616302210201141971963629164066995442117155620018647742255609701032289177448350196605623699123215468081364894761230564212750800391150190861880593043706994757853876687262059421340612912417357237807121085686192154443548452882542464717022446147545569923522216623465707732723780444357932240905055632568361297840198994093692536064844309478987389497923851081217348955872717017567808115140293974537332674641119069149566096667948011945416076485280258837471616744916229447867065908951509143549294577880341087805997050891394883811857747263990066352997998645158884562947340353516866369748144062828102104681108136873156447785794716994228962194219887894032137714738315760980329278831824301593567685752485982755289948628807739668430857106219080298858291643654340202653697587311812299354367997861324804362175777549509226383056368358566532123027984690044882394284135162662180184417848453658667449785556988040939314607949060945201466232146832481984707158041144252532641316402446021100997377451284254112567943947241766825244003221605778635549216493388800036844803892310235446126233929664755996902854629090550165252787575600012232934479167876497737722291954948755499951535984135100309098222246720460754377767288047675851365061083852743162721280389967940581534771433170456692631685657604521097639466900345359986350767085608279728047609876955639807538664982954998544688834868764601087697991346242111889695813965240062277642850791354429436833833221994361088461451888999038350977608585624587670953943970550797021073130338345875538549870384801653175015124513799157248346937469332047300013652436558222346159460546227639808084876058182955901521352355960870658225431084672838289009837199855662013221945150777362349211676809745550021897334673316142492885031936150118580560243127638897840086819197290707393102976823453432726518802444913490462037826731529379150902806474389716018107842596405786128270655594731092927972725705219139300495053293176996749549191717231120995444547608498640127400270636399445919567007395534764445153704082404047584759400346253269773793400768432212458432420291705977241696057890521684340792074253427023326107135123250774717000921896575173194184205613201036323548739146682524142149040625332061040944125799931879719717515188505180798831167835667330770381800054988824799978543395325625463282127322330328939342203150740255133401175148729687023039063910499863662257820751121582788140798963247932809540358915414593156355530333780133887567831207553588265641864896282865061476598558404308944970476687297551122213905243899757525907054325214410139338794315041524365408600931034806441336245855497202020206886501329690956141582223440816106315881355181798221904152552127853686362608365875966820846587235999680676466811213162137242194125398895036842313496088922521226233401533074449952946945182147467791870670615845872461305281021299937974781565905864908322190385040071051861996639340007745911075642972546891790339076941449601781037147850071183238056929112712986245133792935352567567124151670994487025326810605858054434883846656336207500777566798718297067155827765385294509807929672112109129217981562143902209381284653995697783919793969999362735022359058810542134751889946355973274951608668023480081766144380611899920821600068423098136933506767096629584944477107619432881438930559899055822737407314400056219322806486032153103649019256318072431686255405637773318548073028486046365195260283662767433614182065093470096754170197739920433185970673416182588955505160844743299166537147159618006097409632474788567273729359133131926272031119531176662992054236162644389604879618741909178657636307760171721930436800018203448017595644403852696127435931267717792539122287753532764611151584160996480574062286513697714725397280892313257718188811853351703195388567535985635123186947503810703358624425027507852795216612361684893657550630016578489093460810818446714651207171860998167160867249185959068954037253816491391485816110723972697203169569887761703962733739058840193521673937899001331257947907450219825010177987989876397629087529064044235130695441798183720034604128998311885145680860946821493808494990042613294124259434116829631871995719209230658631320560915345355629197612378572948149203675558430102720429360463443358291228428597669442044311325176272565800533714238037059698085073021242250313010486519720716195612686346433084667206431902792280583838862031463883773480296292630085840660201550228680223217329883936165787402726884780611723838961352786590587927861092218111441832384218537904885721969496769388445879426826661857009989275821095344530068649426373029796693064218560585361546969817558544835825860162848410500732651209841853982939149726169808265034015362900393136235489528488683241456497643901896632579178102714152080948317868040231794525972949227033743284773764736450543269778409652703104244228665808373318589661240923463408478491693311594244324707643556281368288467511062755778116922750347312147364224901461044960919411565821184961588957315942376015812122974336463632272174079951492478816982801731472471572833383043791304521750542029472592808069665502454951188605992512410114706734653113246458440968802774957639437883463927575260177090974823408696596317730718218470307660212808993529480315092056851462278787885956767780194753613707056676385314294956124646568551524242671765275345577354406300212281227197167591171786085018492621273548279941343052546135198012051492022180270867497231624653774502859364384774072326676889742986243254865176751635677479730211181898685017967682932775296689932637450998638042521316214007867347639244066310452486531347182004738684297826857091674475382662427854873551436904702070905427575211711394876451549898337088642853146976171799433166186846706487615691095980849526897914337960708020844596698243235390188372049398758532821382396513533568349682438897499618148060729102408989717613273397522996480263643812506798026387861942271762034610565574807331928434170123643070879166792051866995146711155726771810611781946911054296556898094678999722779436832949116842187299033803133778240324451997456498972088766350668794767213684578005483349445856394742581603463472081981175612892344459984265773210156762340530539882917953796717623819781752584543176210859863789323612489625836861775780090172365554570155880447807796452844855042921679310433532906885967783564162655348589833622748283078611415798957935456968030608088073276746799810309264152301094234200398591410341507548994808941290873880846957526420592599516927972766390577878473283042284706658898130399893750484190543841156024449171682773744674737547860788100622710706432368282549545044369629804812145305633551099332526479090070327461190794489392194831547646600133540878393758012124155297036149700228346321876605860063160294049725674274764775962404850136217654331967882203822997124137087866493842577159522637270523634677989115856087950722710692090529891686208219697927266214138073511657084017657948496245734777944697232432309907094666425359773635323478880508082109421001382080196680005621235815875228941758878314692345122730326519450962421657283179491713831264971045591836959087492625119377959930496624030358339504927990554771130914778773913734815639995502185984163143080018006643911710307179100711084485618094666569106913587341719564458073036348296907374530492286939778867517818223535633486261314855433370704794081286894377377570073852507678152186366327319298815292237139544221011852243222542246396536063101811120608687214251994947803126044349358648474943047251949569091452684270171956937771135209675450234056076381052776261820889559431345186858404999586134847699583188296451249308174350447421542256692517338249679985173591571617388579247607363028130743927331780598981480899516677882186741142808144477033543996515194576307937374855351522817948045929397766803836890835956752773233222806795823695816445142426892776086553350480911765273640166706689778627060163086411503608530977729131591861886105018303430967024178022776369296656605806889469349479723922339717496452701225489521491535758994919255400825613211460094126114055675255660692248014379339851342295262416754217808466572447138541033929693556515733281445596366120461172774186428768991305814261973149184499057573246020354082199456470176551428769927401963831827710454673844189319531483760503367082867727130145741017983518190830941327498045660223735639798799143534359455867157443561590693727092386994956795822583179674976531112345599066638096155184486932870612654973228106069553862198347151799023368290249274141781615295050107644852023038972011705837401418518907391963570023063949924040976430850498739354929744832143340752459968602107182488765625396143693734085374063101959147836052094075408553679280551477098420130583347714530502242898834616087273203075233927980101165523284549840323757529727716917047372914044295189204724090149133130976929063861920017209324135006805025529698916961827694502544742978817559570313284049125879408480882696211167031365937465201565115404120067409300212344714601108593362875829225572713310323943453647242060478742012068984878817633799035845700543065142803062126769935225761860107326984032848171175458537662167551470862810327585726000625036532871112099781870580596264271821513646809733749405494567845545272311418790913461698969425491862259342677936027086853759097433856193853760694117902709269286999648254379518723115859820184924360205463015213426793979112091077550294805987381408252811903190633406140516519125863213104873078002275500515082068330283433370623201098130018018416331527067915637666020543499627038543401027258510807614444248004569764643753133824344772717337127776612187431407515640815888046247421599514847849601979240904738292844449662925342472159235987459094918599331281400401746387065531553038240901217358903114116222625045686365794777004035189988124305598182906343460594110960266611225076483774169766639013611320904660046484012838638250921589619877258615761839215832753374713153240055103456802709015391498000915580754929978411369230912217830237641715816299131948414393610888845666093063666749095068538613678426678668509368179940469126012208837942301854286304959581860490420179688531563523069768018089359564682238946033362872244754712431312698310636107356393372432866394034617417208727331305835751669057116482755464416123847657430880319194879874386966973997371850176583537570241107068812984271399210470065489716161452937885553201078059196620596708005037195251296763402111606063494082661933587012412260828646687053260273503734867997674638496955122014450063920956312452685510267278476202133921455334781762233538650022433066774442833602999710818204070312690216406162372318122351515886193220690970398337855757093017126174870727094799717883412695663029267916991402668538430047332763288799466046107684175513285789628288178746609644241885373726564800245647530760865373003790512794829701640807188566728563958509059665430740653791617781666333552661207620703312017714861522186260718551221030980143131293464663048334199060630733643876111465247760284973180962962748117022254725074817253476683452913566224855900743628162913198586326117909286667309672576229220159875098672759983897102952539234574100232421515933715114166543957140529719316043680883098141392571138020826490961173310324212994590617099323457672682427327451627524557915644606301523840140302852168023596112984543908861747904002608423520865092537283046749166967610445015674834828138429321588847174630731211637910978075307586284108131907272741020803901421520091672257325865513824395479442051740627007390077196879377569053788295376636044222699530270175517616908291862610086411888316257679540203594850954041706414150519269875683512279651947352472543829610157563270549937457592675610282310259466715425271519441616433438012951130776839827641514856251402731614237362656340328052583831883660721867147994830121432778265548720350141955863974643354940056369177599206499631955977312910544566577209549458399711353416896644593894831108033688957114179791034012089555149466775877480644313916038067208212982999308873851535606501634833040427335154994310358867974114719943787763805880093263032617485528476032282944451701832240885333322376857134600062806850412247437368719251418320122969046139404741701432737118967153008000808223918775249292221100339781482101004020673770735346890330907510287660538383597239113232774769910476857567409334636275098041659783584041381129953876780160429709278253774088267229094530025796189865955282031796386101153049711381943917254147281448235801076976770282136247516797926195972936931356904292271875933549087383901123846227658019799511123202785154636108868710090658391360929695115329173959767020554582814148468736461751503571235752648075624944962039340158074823652668049850048919074253953306744618773445963099595681175756899171235596548096776034702382011563131023476477514835162456353672398579482308317210135359593823197082589351387308140366421425122265586750423564699213887569059498149404086160568740621546091756602071653832522801420486470702879949314540613986760996859474667962971251308433938572202005377567374016706298497507460059192933678187086135732184249251614999190570450771915537242100172352409957110899789163056951408814564025064545297037986393575858553203009768837278007146238852799739548041758012496364583118953722843217615522629979346334738438647511333432895936621146906863348708974551563725167109498699944308477622721490647528431893225373866891923877380654229287205316196093504479547215853511401611265721163092725024011778773337496133964357620328379537339352560391346713779300928722042932791917044520491142209672630181510550279373879061427142588302419822685530978365254745300977774281774093136130470350036483322321219797950663316012252788286314864921130544946849938028356180732945049155099674040306738950241625695073270420906533414833398558848850590346120375929248877311576101758892113271730589486787436185983570765847312487741265567317865654980187018996139580119617839135301776513734715923046013649206887328248222985110183369146253482256218312824825504108804510072950023785163154172207163660072598132770549463522005603820307140271903731662923470261814036835001688058171453040171536977243722230668125916014595151796971317387634900398285770772292289610256131693303972119592974410196299899700504403026966202986198795678822407200697232044703618794329668481152883449353059393210653997719473468993183524076505712302480038516028126239540764468005255708364483116977115497103208049231362491593580823963994953642686958969760222140451519912217826979709203281179914920037474369841083530606260446142526627309303765250735241062075176956357672031649487407925438282741126583207666463887896532702678952525600988082845437439496752293420939061541215625964233787881531859433385369622352578665609070496372636429489049226297112567999162911873975577074486452753185660481987250541208129143898061385797319572800409282959333695931276812507180748694864278755236752367723578067422534267044517943963783864232075829091671509673694678894366762009634851369685757701783150059601988058358522485625036771464561562870023285455355133169837980800788878101707848325099732081842205360201264989688496782662660556422789726621335638698931754136304211677838986467451774883587201680900897922887557302439499019693678615924432530025581598639811946414053813513665201990476456289706407637545594742884442740063724926749784231884343940932451380542649895606894503372782918201802350709656918867082885092604979104747924646379062286230310767355032406259002458272225908967713027744321014362023724647946407999527629955422892916860914106186339293973996650149808374573136383752513545805738351676158683305516568556020539036663697107787173567729134856104279912058187424843218591253632962973835299155201584690682033445381471098099661120810618405847932750389145492885964973231639248764914497939107366009659471794941322331297584904814963080461921794926971702044523673160905540424371895880600666715758544403517233365906487471349191161461268419732534927588697963591126813968309500189518076233346968033906287485424867603273956701986437731976411233701147572844925648346800307547720109371881396807813424907658635680009589502636918686055331443453432271732572531747180989412604324188184876034333252577434665613442081582392957377404843985189423324106438099520589632685038119694828260384415345211553828405093497227629225661513993979615682966643046314011646872651819963633826192800306000190902968293676437882461227598821596187292228294103512227305313163174233712881606417801260198184280411945512110957401802959764613257172448781649793476802190512369041227028616658953922437252334025931782909085315337194657151060175980060294581683384457125286440893788532181323455940663757284092863304301670356185801720763301043687877113916337343238262154099608064874704100143998219386040770426496196697431032357200170560518575522430880920978056177614333327981233050260546064120613131340681463181576821044995843419221418814357813839510546024826958824558021091896238886270425047286340506936694352377314313922350867364133479881150707305263217173829192547548956916643158620026939521506251748094565376602932702811319929968450386258092879986262354817317036036123820671117657183847298271827713351833210426248947513895446001498569331809380889019291834728537224547804430915696992184584161720750694951409559600093236938015330481715706200697451505022881733233285614970374928504059813963515999520562279790765984970964463190061363745504399215918043747818140590270261663939903516706079083204703090496202436293998597411426211110723409547803072061797704262485205404710330896700660123936642806092380533159932736496932265786062704873297169081977452747029080082322448525910310135534041991993886995981206898019307435373960420880163641558406503316254602285322198782543093620103028125972826681165253168352572118898454212345045913829125750280791759606777378394683233259232506147244985726393372416903245958443901170107291809248107277275916335624996364706715028901128430595478788795058933314078455379222279020572482594502001119838816972490570049583159189981282044209187959029920227789007975985711990524418319206146321061583124699175778133239930246007917812082205688783380121202469285043081550511714519179960043283079483234297199326744586180491006130288846096133412242109004796836384984650986964477608344468421792878794430354366734479006052847081312542337546131752428134532922595502221246106316464998280821812451059066387958191101428829458631995698717577618545733396498916502405038695702318847237850941873807010613427766135046067391771202277864833720385564550268376184827945748498084568719679070649596765457352249691358904760356453747349312325776200923912177451618441576533025283394415109118944933412079748573044401826889998474588952305201377977681538017233423360584165711002974257527245921661767015904091064439208347150866072521792939414522169610177583264602054256991708159580944539092294251682522552843677259002088807426866053850309046750976800010405826138112684131224950654668440377082009420328107524536221231992051071827480805303770901095960815105354986096037016565783225562604324822415719216655769894737322692097771990920335014572061496833282476960120844034974264273820573765512515661010967713474519105212482532708101092284579521851066304447296277040789521302110255368554818494443463961594468334930666273805856097313946901145364906172374166168256700992865329641443076270754979000688754886127249389488755841199528293133901540809523442341618145334759191761095129620133334319916944937162462521839141386263109875407357208961709609624640886189618621400685664048950727146852161858694385037215887425788384770860188249828864315027437304942798444261564864787384196828241179097924282862283876356948709976324005526346899425316023496746446308530984558435955837029530428290186728378158019084304625649358797114643164725153666267900668374136320447657824047088109302936023824182247518658300010538445109638749491834118438163508065397683287806663570527158679229042522885231048874378488904509579810028249272283269609193032446005917358595949241808514039665272639128851431929164520949300954424078455362329987671448027701316622730785828104356496613315707441781363642650681417532294927791392606480087407999909096686000013602036750746944257493770455362983282137465197630788389042108757288001519005075813872168658278435996839967768080876712204465407544551189900608703199646919100598679033752553472735760473862391595957085589162399486724250996082914074825018738929169851335207786997583070966076430193410891933942372397526441356286624140696294955559185233359318045097315842082129133085212392717321309524853537803608947262924880965232089097769886089306701995652592874732118620346894008076916075116674208931453812767173436534673658588566702310736346269397773888042845763094861923145066868133983635976003789236124953484122146537197857817183697272264569921883777639096347316918931477615279450362425442835326829556268060835829934066217025772858705207725527266746875800237808752261049785902438814959005940719129927022319112099641958246482948095495839610970285592474105062382221010010453207308919050274055932410900676098138379136917620473796054846655855808013534523944633544706319910100224046527268215565305019982286664616906512172509240201712415139569651513766901033379702365226219470385694061787519507680959553050772198817645340449103997245393476025894990316483113516781363280993497570365086631230051743346988564767152700506818314200672969624290426998336520130267923978655444159528802384745404148251182229021154049942940050863154210655934089111203996135307882264845690773232823995282564038624726404839590958254699537854118151478850731405102907473350429142603732396568105871042615248344418576069505945887190638657882664288059585606028581374936837442463437298753945847786164642853088329060905496425449554037550955568883087825265367801451822241252821565577224567912983124291961772476413597004192647536147523751685744785928930158788116127511213965189147572732908953674987169876274758605214719390930450152683314186542683437498218741149278103292309543145073953332508263676408312091578543988106333973593708731354257599391225039666381564291059170187908081522849786145964086105758802295948213811814757312617650247739185468539922936262644065428444957410183281516949382033050056578150130620212505054835889244701984760281625179396275070862441374955673513110476722508213555045041897775017788538014054824824250620109777505480907934715084412977223642297641651751226466947343490659943079099907334440429443715137015794176524090094423792079240045735633741737605300458334599478257763981679350539747974176092942334814205997548730686470179333254965120617565033071452465846825944049113877527115628251375803317674303764723283028494237131594695409507022671021904771003626619947573503433512238758197364894385182610921377865551356618948226813077223631923633448812799469413906266839127774255960289400336754041177488128010696639855263171132366989480896033889114578222909513831914276703380520317544665194446092586639356682537872915329741441707182373673706235196218558911650355602664969005888453257503249128013537056119657223386493982176351062004205299514745621440389792310652837375107295995499995155976726025629139623839523675886048113944082299474467985119836171355822272291233300069616241354080873679704041241536550761942508682626174587844674266086009260497301780052559843172779191534326942734380045450763604542591837039349923146821977399717427792765118097016805157660185061780365909281044244116954474954708819557599613272725617646984285284180481731056447861408170592193628093936399252013862095896814718220631983240243232882743653099973739856858169765944242173039842045413285921050302714454734887644725207486771023760805471383464060859742594911428073823205679732912695356860250402576717933559741160258792224008096658521661437635462718794694375873865534776681862069279789450204780202747713442465231636181848579888841731706360562954157191230944982893012731653832401284308062368837085206261059976178069329161165961101170984401670157704839835046132310504937660952455090620299175052505759989201051884529663143659877636170747590796921109557003855070241280677789005709893846366228943092692919326835735665169251550204334568963931772249163192782123719609759324540131483201177939038277572640687826810982791403141200022236700708562324704536196279259272220639876735024807951835384810173518351611494335021243137389176189147743056401851515665991246504992603339205783178354694498038771105118541618710755430562069236270370705889416248000864588466594050658590332820673039511628292184570565400102343026530301571148192967705196662789189704530778069626985411537303401140825082909932697705149620803560464889392664575765233431798194274218407151952925195244759589440176213493660065170243422639147689646301743102689063657115862264437025769057960143936301009497251610105203812171505067884124061715391879865994516093121350057884073468124183399567338806538600935750321488894696509887944027214029028233819031130466610036275876671366288321649474876758096415576445424207388578446331672502456027180550455432970551658094065268264457063030062264606249188988102382175398997701014102943326929470298075874373374104782630559888613056836345836960903292841524760983179377286243490692289046209886109647462679374907028856016794916695039491848615345718992927094900419199035454197066571365985543521112590406397343546790535144133674749707483103386113888298619580348756256081757345864474151183709484416329867923899586504601877920433943407220053558899105462358252956949252895950686763668988888288280275325772453451777589238467597921854516817802592250392563343402490063771429792806465253378455785520417296554827045260188044799745387432356598864683328987204315733875798009140629300935699965590391307973928221378495538150382342314080096811964647511872223342334824061412350685652036496346759141768886597042637424245267882276587988406960992023338185948655650206186766454289848555680919976520728472307764767109849213972911349663641228818778226943372968421357366244452828402000576837388042300797385120769637313758929715276791890487448403898612701139111910603649592692206946219463456469875427740558161004901713607419830150288988923806652979512035974942395923275995879050946578180591783096988754770992963844219486052879622867380060992990637224036002727158234151882612734513950600832775496140602608398854403705944232017126338962292375553395950589747390034684265166664915410352810103521449522812432058521793178902018835910764673662907998416372062132755181226817172247398661223591283717858575887203778768316181179401452748016415261585944235641818264930892899413247544551499255361548496534207047120535916361564336270502958107060432203042775855123729144654628494650438787878418291334994048677428589848108238009059441332339535497701554749996388045575116212469268690372731700747506262607446545340370219161418997791840641966849711762250735624182488893163626915887401790380910939183567782507506170216936226084968869642522299699703977885714019791211901761094064614964247972561643678573376452081140113086517801004439052652203819226281637468189873909620348507076134883483646477417872460747202876046972191706348306296430874324106027110633469316723251538682631016399909328974541290852815250578963803741464846503760320832279063195386151802338387828441753786387730377460413377988312249591185578759655056459724528243583933007308048288573874957245930957407516029245539789130997429540419664035062483886664674972939033890650594847737589907051068703831628299586452323679803950689834458401822970666252984407395275563929012276059502470494388661732219097174562057852004811862225406221661937338818613358890323687440681412040191233016560110404893885596569466585568937340219198285065658420027744772188338199306393803419050656605662130827441400758002996658517870364102494794909646931624449941996218854593230505196571769425198718353108844651634166270231992282247605438947624988070442195044426491337307951395264564069471581007028098172326980343239935251864047793529546316552020782139855018877325223466609475573318293921159935212393304422104375695624318888455961518621300366338421727673930776333447679147106097829174618931767296829413613561361292930233924025255075975982906964270061575841963003261126659366398821861845858447575495311730009828827288820608338283594035132559409853263651117966443002510869035362111428848765346220348447877329894658931507093195890373649751052726096038603787399093781223149925456253032310014917405881652986873743718974131026353823774709770836987994904010384173854606330063627125711317682505421020021408766524946170890484183576403935560191346082990221641095318219809499150478023639985684921217916786776592307778984653309296209466067334491410900504204119974094908145543688690709517224889046239966928109897362731188174819924769129345325524699770391242551088398504769131599062233146297362495350955722827994742877616007991189120261409847782009065051320000102815306650981612977492771740290831841984192573227295441135458019890610530618311884224435594713363938851797703264089555571695439409837005438748043042639213052178256887661720369737535895853299469804806967108934735136136894223354828672743676759684153251648499660408534475436391575484657732407282409941777462912073328646991791240071963146664403750920207214039067746478054411100109681531942026464872373695322884975795344810985470419588699620401076644637112852691841615516016679765621862321313746907088173646907120877259584657811253732586991556286731860904848039546424900722771591679658261311104778249961129792376995554156016477614587406500105621112954378117749938624486193595663799282122268012306696948009364177246667866422087603159170081006377723972733698157082823042089072781345109032861800865158185534079300754120653342708543138629644441454284104902552201690176955756397679222490207750275153061065359833488093258394989036786509002808222167471642415522329944073954897390270983854384934332051984033625691610880376364428939208568631329398498529189456157769145100027817718418180801056035332331954876857580787399033153339978840234843820522693995811755527806069795159597954376095041312825309837563670817525997944074385285286819465976081823449810854719945868173681878257987109853636388229935602902459835534450827836700365975007262272085397811330175018497754218757999150102307988654242985269949409288483301526136780639477302142997768013418918240103635406053106978821926712044782421511200993169982202359666373541477817895867832780974666581326444034053250778976496866515540421557348226103605099168169244464222362160888951050181569637791854707338582291794066469138962541743649561742140963076801632586485629854746641004356348772950720838582261332524470623464405599714443379718949155406292011556858396382054529545011454627331968054451571454051372289252156438632428953545048552602180897100521811619952135692555855374556613183766186693146154500438511082387533381600665260377868541171335723972237496636954503431334357825301130605209914747285044402803361827582046916986125367834752011314338035892609683247231051129352622468605408106888377317583211305687195952624948533164707077304647728431744236596789625140556086385865615326333165989402793159585617528631706799858514042892919014769804843385986408232714579365808596934660540222712931447098296352180829971067865878554567299739945961076401535634524473070031237042043507145211854583983720457411092339017674001130905685884121237962512695375529051434961966354522361471847992588718204308372223466502061169509617694599980344748380139696305392658986101576219786957025480966899834872998912977502107151003445603579116862333792704673725946359346410491261167239189567949572772740591662008893235869768354557157945184754309125674853555182883300114264215232192352447850394141942899817828897774906221284599364038234486021752693668012551405340866600710772913846454613569360323581531057885136960098086082075653846453456546670656698418065533507199939410567529014776914833532289753649617879560198367204246193196309984653378117368143178872132886853410909436456316693203993255667628660285170998173134455593329893069951905468390495689236990579380365493719734893660336098350017994182489777215463921335910826489767120814825716237357794231194808121129082226168448758546160076120518222287239554817889131416041555548323983931326774911550106546450518759114168074568213946853313765373263108537509173990613833328507200431516275189576190009229499771986443002863857143417031171899079222088439279347696752109438221869471813261393243954090495172581861965530137002547680479787918632365359716502902186260869924868385440244919821086678271636656181258789548215018427412374436655545504955329635029772742413519149283696223773534681224083330892848507494642210820287230482020278879224537111006026055098932633025912162225954639684750576665620459959270417325818048631702040160086855610886008167796196530216964577377908326237809930150441975123951674951143297540440364302621775959920115794359949031744209165064793940048516747894344096994259127903210718221272991677466781599643578334446090011145707905302638437185789736514191791616340733081393839556377895149837391175415524250396563679149193768843179200354409372793640670209031331033510798887292184741010860605342740645720514154269576781143074724131168086534407561790437437331875468890647282564228979771410640772450017901799932477759264315453228937046235184653712133981234760627233890860540245876605983925516569149640959654881235953631288616030603298658730153965044954178128981348401687547357444056623742899038022942880817218899483356727591371457282516203941417299135736290248540819997064711716611001293951960441248601587952509938428815797943503141667298011423560182884097360462928922712097053747125588950451017904371451064712268632784334430790110106928287353364214779121676621958294395354101264244317139694610483437732046247862201937552509346961906392433700264890652631761540561569534910356859684119206018070795699578652636550456294152709765409093060789485409929564217284145999156172709094137002117697863767205114722474296021995245362997939230695742896305299317366294858860496158108872726665545110308317743776731679167730465082660321769348989554888165639063407731218867514538145904664323327286860628793206532559499038722590430587571012645071313837680359299995867367960197480910152146389967221817954134629452581169378093098038637315315256076091119865762987606296558358834434946030963908124115579880441283336146428819847668323582036015229619200770169578794120112918531906827874472368168294289479089115613715198239575609978975739143315630295452058391925600636505066177626633882626905001703208570239387438871531057452837780159597544041950814238791550416063357139896401229388465938311055037927742637559193677464667074353557216055856552933068072041007915735519678297027590290194780630530329336016553663187723285685554163154461474033189048268683633514596844723931104063246039774855391274951331374201878179741623781582656254416908567405118152207591242915725948154368163673113204967316467496435669102582252247072177270747537891159232346432563849895357534833765657496979128748653222837944054344661045160286495941751751188367581324303262098293724677089191072647508902938333361361824110614396554574661381995063003027570172527575541362859978169997186749937168905766191598269487431013066570468647292423988743915651332137384605743804246798876429845662971814134641595577858382415506106906695132808782978210053792428796139993021992652073671437348453563673210638214604877724362774420789582411520816018491810714550587820075484400353385916026608736823742450350616611457277843624523796920355694375192116317681434477119923786491933554214903956136990936351222613873897232806039527285340040742330274926186521186342425347720187327218993619014823966188537744824151259708417266208134540718281149716565119561370268682779907461370214448381716046342318211663274012266694010003656459833163498563727191808125389682719783681326311959578933823807675305364015574446288237631571076004796945078361282833993910366055983108459982225118520292842815976634904140946963418690878079655267629745010580241525189866905705268199123246842171770917304322977993188609533020566801396728303492510811052634707569862505575652200291886743803171896514095774835079866853176166024296277331429950791195489043304159930312581365172586753932273914039316239604871929970660936938017763819663455924084547059541256631348989415492371189033053008656521668836284016829474781780674763649010382837167316887044898502018617251785122101361154187432149744238021118818447742315187288038600598509241643584264478209179156035723928174200991037072822053068452694166737990671299330030158801175903316361668415402290764853144455647128760327734495332681506910987822565737445160513345693076165667500608270342971804494653941700165304718076154250760143206555464834425045901692119763251279055826496097738658897775210486318206696092839209610180545011489538799317258676130129150335079392877462390989941969972771603083054969103511221377957490030450586814408356008074425769163932508756584783540137843070844602176699891159156026808483135556336651383885894480149549457939471930220658805021086783643919470227788198378276777463172682352013599355847409404917938184404814515241247055644733114014754635023493140979046812375871570864418281696966749268447726525714149571774430996042228756357168126685620132607307301042100938968991943511883393893950761173041485369769674484638574368359193297260094052720842090654715828380522089966603393560378222066906503802476739086059866292426999302534637358077562885615259349832903293320626377472607784041266164101713450643735746268956645193309378635118435135147426929515140534731584112414624005061868495747057561499252143170492817287025444202892330194607120405785344922632398053609910374001620485819942256937407496568597400688834922863578236686030874372168075697194140832600345189541625661733384864381159892117309182773644964601825880877383567327412446322367445545642368167476241466615060653148812342939460728613332028909828130096106640048732185796023200475863772934608510856984606907760676772640908703776835512415251029871927081822841933227586079893203644126178268786928883109129823365946014862371673799404580515717347134613928297964349989401687016097733052116743796137079855990645522750599567780085839600177127765420561358951778576698355960885427290970114335836484864789408954494734557490442755698561695994903535901636673422500306531751344376540342357762346113951815718336427196764991355948707847096510238356253651876037894758730657300629251533831217843287364200832157986503454996091525766510106788485346751135913204145508356248948908512779038155212569960105551026646942293258725826044674195117554098345947014177654464223440744115893722740342097843511257371246213675052327700802239391779253746077544426419501601987053108237916580230467179016484289505924838904369453353974570010191634358477694867460294174215491701419721575181652033522605119593858177427677405212544991356766955590579792428501276946407852434542650651975896557015642549318800589798077073737897223532241082948976235805826963232348987366931914197645981180025347157220724457969040492148517137178405697255078764317187297950568898612890580635932607329783472951200065080209177064778681201566676121524920810847788008649637744265631667803383678043641677349595659024814530733577519177957844981262771121908258925523097914262567755532925054822526089670589438371631498606166223498308453681419167745943075387023572259706124396156484262899439629194543448785362549508158519766475048837232262263066778912203045597207695750130382782333010987129223336156964523067569161113947318505573709486831525529001926996275004048738749194900425575695149582846081736079120830553137656313602234937982942349488957723907807237205919443738063943097195241596782317230891334298014261388392216676563594184267089667284210538800959192603103427184033176845528485535439704013601013772129432029371568085108076187232421979943380679217859524113161234499368094007450798306863397395048375053475598402677064063296833805136822718403594449076709780077828950329203487645404478869085249931805158094372428782848476581614760340972140223691798634654635106384362410399447831730807642677840863579917569448689756724644602259083014792191647309976976796428432568135669016367660655541699635815410036789788852696278953553802816063768373435512151714288593081071743460130540363017817447357826023477726715897473672520240965870912303047436167904083188831026373727478122800350581163553819948138133870506289299535032778838484054269461658430343139269945387706429591214350822832782006457121317249927492770168709515183857109530174870294181313005545791964476876790029270056761417471555431401663258867617614991936522217592828620674550089427334258696035907154354620606574648311072156987070001279657541895068130825081217695688551836707413218120954117737364424938898345481276179646711416619297950068407637293607298528477744705377368822527479766358855143106235855898143681518730022982478685321703029465886612531038461236915237206620557879015852060807872648224606342817534188484558380533924925381858301252532587751172338890151481403001283844930274452530858001078414175553774000401479497314811410588066591623307399156764313078323357276424404063648788111117387789145426838278047870049244237487994355707005284578092597572181295414413802518531586242820383787760410492330804109169481309391714669681121262658681980342919985550149244742787472000819835787892153658509766157790313272750209624962493071326993525556362297793506471288094603095628297389143845611790025352475063072901421628579966856905665587787810929548238304156966097267189915869790128554442008615949786801571993724854602269479475099228698720101557317362513906031993996214419121586087529673149062449411438389918919474818571391806656821940764904200855888560832832855578422733571685013980982241166149211132420174853170097492794254098859267515619906114963332637888510210769219826225441147801383540633087455900809475142610693850103986615225441488829575993293769568390453766575184165705178947759458147701943979700346582087458621703323604932848798247950706807106166102344165283216992412564365866742993267761999471385702681791816907730200061232357736742427098556897192126900645599756118336658593611020694125138806662188245656526196818773137702736075198689618554067925148598267529513943755637381425641609794050961157300934215790352749672287708831344340539937424466745558713477642424834527531218592013118555663129038416309366184001138211330530408438129116521595576954923307890770906549902112100128877526581102803438053169192252615409333566719181036020403676863173577346696681253936125704498557754174928168122713620235331852321435540114155440466902276982213831748942628441486043407266835024440179873879049369828497431634695787547263930275209977842870823902931305011821610859736163524104897022611769494474035120324277962322276967863494756483409575235502354689605110900256865454618371563260900506916177610928729245377112762582196352473989304029145216882534739698285053623938698126024044636016845711054647887661009309411697430169412557332568755079349615994769124558049465731374405399200576429228273531446098143266435818787851271166152425384090135244566914056886241410591361542515230042316001564585933115415605520638902497481581155819729011503699735259529421802876641940490442674101512334550410300134591532824738290850639208568149682757669074317680309803537846281654064258960178352443931458646137257062059359241973788127520916579447580915481040287578943478766110072608403060493768498903034019654042994803623049428093883910318205398844035255197681917911843822918153596019814346259203511990451549184504028492862972869519847836822398806023447275334416030766044228745602908013737530550458633177303344912064056615236118164655974061260649414663642598181498929545096822258673774485513849495833913351197757720230604481518122320120690217176071120415486958017396684498847473904777828610824862205537575820819114422020861878300748074627207319094679812897631137795800255882514557096545425986776298476010874186230568647212010877290643512373706619322841406258071273989775070160259831236953812237916499118658719065943549122943602217107795059289164733947175589505862568421715365784351174006786206922737125266129610861272717923359339794535038693056902800325646050129175316008495859482127655950532270563806333132271342043762872802349361596639063801147626831491149920671474055146512197103167696131291589860924903624653033800201267712732952349919492839082222089068469368116927820779786081074145272444123313354946661024426046050317043942320301864605306908351949900166050123818898210239367451366599444552842116772944498074583835507929037521510243745691001525975820846066727412392999785819224067635170893205741186953489763767219334374059400408893618080076375524654346295442951519703965959228794295653072167333481529025654920855783017040428204525126209886316400306611954508385848086659358256575651282434192951518585765178254745157718407825348080801549631915076122013840301625665699590768317348985025096196563614836298208512426999383340477712884734811461538224665094373718046967692412913524931891133424282127707159579475691435932823525714765816648631640675084397542301806413574710652839557551107388988653960010249096037036129805917962893473172244141342785426547065722852718930050442407502360115595012479887326493425884889638346241542049171415649782938083619562657794371403554847787099978770207328926729288854951762737742702786065164458386178392434255060856853225676489032033165392030787337360026264765046197259647587643852564089070738733805926660243305390940261425103969224530022128397675409424391543132587054880277407764428126390563295217877081375971986296033199242933843461474860493508953715727501719011997766090973275551857477219431641461899666696068361762028031199485724589595539461858513390441548973306660542821942694848867664425538152127786136518454923078263499895810663144568198704103612355615303013519010947643308047717708017147688290789553688844168143156382858136982537108822065075455256416050154556670873601678596251504858269312080759990554944988549842742145434587519110467346559099354580477337085786626080833394486021939098544798542708923144663499239902960075779315224441166708077790252111919531649888794437829943103376363008730395750541773753964879227006273962279446450903369627047309080603272659616297844140578237085216204682658125140064716967097316410761717918496498408576466764138675653103354603291256410452829400242018536825085643749335395280260760858900157039914375284383819964385531731463519054233532108809156296187175704895594089589593587887993955862959901208462277389602832402155482461552234806160422335633627768011023707340842418679952600547270214871646382889413895725391076676957881686297873645094146409350971174649744938895882342431473139715391963938509506634642594283357679995360372083066163040998565872850980209843057854075953487672779674103846533345332921853021301317248368359644912230718677375591278051586623096480130650942863758314097710651022876278140371015526739910290219204707256026669571400383574708752627156355865540343779588335758608027193648377127991563590085756023033865635734953286199588954343505519328079850333479284727283206935483310853655897751336108604440263109283715526381867555021281750438621572260892032234725003655206117612830282337526171621843002671512878290482928341788176747177843011115199827933511070545593986616244889780121662571886200389877506506975703113922789302437405312173171430233439662538234796823211517910189974294575809942394381283660597841296137945957614591506850034440544116061984427111448555148124035482804886769910611117000009145365792963605075282767585394548540392497121204032932219914001041951406510482039470469806487039510595773284594473294393259893496823873889988630307174741244712990859533350818671770610617901582216733768006741548297700698502755869202128839521997085146422991070381543421275097573513440959481903785174002381322716628542292197458456283489391292670635053212693922625807186267140638423465567402251217037131906993539809989988721012123784178378351356313400528266694669148717455528459509023878801035893317816770025731528390809341633572148759506100168354677561670272810129548046028664997597517403651452772208474489014828809500926280606250032584289803029022463911139561351676891251436161142389488379946604299002141233915860385553057699440225583426472016180918704652829630800660353929369468923760402033828058651786293855178555700763796074769417120631830911306935340791902776571468856170113966582991383012292924141949110492107131023355466742460141140180979544775613940129739527201666186574554996650485202100690318518135055636709121602420991364878681254643688581219998552901382288680210635421272199025513631520840100638581927706523568170466040592560596521234821272097034196621799565322238949429778193051486136784755953160516025888607427335784731467236849680566343392720334283423513420928852941037379046072557173074631925318310807996206826260828183965612409626013493381772985279709069484299641623478869788366973036631535876138718004264295735015512629588752822627724879484681368097697734925971633395917162733924561640266388638167813413055720928867248098455398527304784816627466529729940184610782281547495353819674750929624919682267564875080998240335884738490775622948820230942281687580813663497511131193036403599561667933382395948452995786085980358608710722301337377497405129862840650264850922219488008188888807100500704768572476724801213908354346113348643792467014775306687356186205401974034641884679216019431931483725984176814455205366283629060236676532188968435936495715090895513651213444552875912087184522432038280044599336569420695345132489193962072144931262427636836856291903989483449745022884321263177567908762155121202985165334004262943333727793167659185940326550279402482271437925941964982748394738455051575541121515496503892001886109500569118384817766896257733333906070138256042938609622225196663502744031036030606025695958830360001138107113189809712156170210003566324396178244026306976575166217259978474338220385406040177889493996962638616307958841917277856912850813951853803636724574702722089087289324794124983088794195739966448034311306267145437156520576607830148896568618559053281117709399859298165689775091349657398763436828315632889604360893491209992950429719878440240359832361137060791001610516469881548694757565587107686950603365656004905234296854227614478686323646452395865227539972874722741414771328825252288558412063892064357336207205251872060679121751160874842831657375966531575702763475621369158045313682070774984526478039180811863097548130270372127601410242761989981899764120866214326215708629351556677162913112816320929025612338888091920197405545795553963406123886089712936584059203943480519382403081649259028862106400599185887261595346886047707046456348310007398032373036941242691132016518987042730103615099363717065953755863059767638869471006054846003289739367031415571496261465495304771861231130371579398537588531560209986932086576208927302786401522877816588659499884320633497701468174811595186562665805607457760097484410799175802600894870087285861154620490840397778871439481842566707925755187586992411462082668821880219720723015883267997103546225815163628285839281169289960209223437152518768268466843350184084175307087005386374539683794738974951915370741863086084098377571674628679232061022413617990806794640746113062334454510257170327262466285201367208284193235522617936870216982009343646876104253129746793104461596534882906219134760348704120635210019627230132617426235069536344302866561422503188414441093044539115445374979281653465270970890584632345057010104714233576919264160958178205350439426689000337790793284895706076940281625132025841022400722200303157760837682579155760093295946339765833377721811544389220464309354150382245054301298505402873304034348904474504335383160471262101614463529151599339913244829133424393909885210522821047001229307330054522116151340164853377136474858267326935603926890296615509816487516275828655372902342150927581375305029195627410261825356278397817873950272579872147163557087411003390180961035530899019765508098687535158350452780807983104297704430659851952434112118223437629928677807055244309408586120687723141340204752724841618860106391070609990771346595588425009982759012425300567873715115078318778965401016231168997604343366676047028761973122677486410683909687060080143293905675097413344882732538328006880187703848322253868373404986038410846418449116760157201147253505894503289382411755822368348190410577965310425766056565974359754520575813920491382203180550450373775648831900196245513693690424621231504414514686625993319776679312510601024403945540540544977256771043159138194388281589585861380515248258711603796996765637313660455974661175039805812445974646769494310350670529086239812935204298621466707249233508278553565150067822304145147495565272391030904173603797340807098215994082896905149561410887385486444039683094978222143404667522341421514096110855870263083529197111864393298034976937955460644097292381016601865454219141466160185841734068858656526453111452745122089063885990893120564622116548357839309268929765492418056967915405651937335960571019187649508770038751596572929813746338571844646053884537447957522515060329731630078533686894566057190167994256526006585106777456708187534373529342324856393202382492171889895827994044274574853355694183678409690529739263249501887571949528830154930196501034819792170566933185197274912233095133644222122005166771690726665260750168241152049822114628424704973640059487947744536978506215782435742707940479514396625660527032821514351185517380445494607134489200741639028673745295121829834144942966111033926432170738860486505640175727346409128191093278254577587094457734683330429985869379848658061476564391904675126555534340083173759689130694208422641385673972192323349051297834466940545952165697480476122084308385293850655664471420619771137934795192738353467244695736363407528861131305349807210786309243694811280909395976577844777504091435301229720772472929856626401566335179095536001605628967922881030449835096897204202362133432065686778867096456252243614820793080600918460827916255266800092614724840874887905162302236129252609653332878078745360299813924209796970146839772812632877912904599831668968253926829318764136709999981251842101748597577003621753323459621984220037364862115363451700235863082720143414570766444407948953362363209514183282468898718208353087773187912382075736725442597166825744517826678038984178572476355951173809629937712840009923838957154950806041046389936125012101440278390016666591552149597529889019842297882526872800796715695326445736834384857742328306492757271749062049197972428072574229726364766868821517361615633100831722775776015524161011855557373935393737403388755183648385867197862733477601569225687633898124249067990899248390481559677043865054089454976931392166117266977492881323220169229424740486844767671607175682307727124216021446321676540785735631811504340086565703908054503919714974601745055401353325906903391620461517152038132313205288106141062652562273874320870822181803766500476538309237765440981686936813149519143696229087984694218833174666349561597518845080796974333682560927757061071346551859823272771642452827615525451289203321525117041218648774975524917116118028424345998000438488158133394623277363823551827333977394357724686778291818623553856045160008847161273091536219454833536755491798525488153059702867844734222739001575672456669243252584536927410711731545880851005670215269421695077996779189068076602552459791032237732679641880650234111094024537199290932783920638042966238258515206429224235452262119495398228460839470398242997880113466679508002250098642461414562192223772116283952575662005169802142747300415040394091452167523250428101783074933345140204389742270971719252169435732487896887352195964445391116850428330412184238233957980730390764403225217948967440872015628171426547524908325432101979757816841211932123617969963154086290590529436943326088981347151789100675293094424098849476527962768185305259627715647176919859810856382276254912578715648584367960913535596804871940718183038986368593122282031898293500916669623057875375777530847254149778374137252706638436005001641967019597752249688937678769955920753146402089571258279091269693832883297741234409310953580506011970493275690463719954450205638846183527691482152385520944389479556615725343576514613202427003818068611370785506831265892223595713739169111405735282528488855745743867239522568176121204712697760227559692878713511565939722275897109851477951816128044242273211024372408234511354874341259166913262672136140539656885755001262939030112694692071116751153035143800833293361645406569602493756453659416080866153379247836888710977841804001779682203646131207731352895670289462025956205826757588243473308662166405733161403318617418531721753109548691676287534311162848201407602466452339580491949946932124213640545797928520795131682518415145718058157250320578417662714031848027308139752049024898369459634057474772608822111409355545165870052431631150269214493548834876457773409083394374294561918415366445900365435976111059662286162013227897961166147745821631935386997735096027884900736137890195360871403348840376581208630075421552374459886810909236614840892811811839421685392605255281820755165110099733191672937750081461515769443157345651175259673541086259144670018200877937816887469647980775647462555583353185205876405271215401207668989450904761425247354962717581615899091629771504829019238461999767646700487312669531931507937428112334330776059360543977283438017915302776535085357693336940684931552653628409369557823637428738639629699189000759234030509153989080240456374819952436562153975814644000730321301713254417819707975202127086037576654092661207873853801578376867060622257778628137239822523112398941784268966751303628223765585599629541107754846709747776081252303938433051541221024756167594220386851458017271437238015873755853347652444491719512919870242016270853315795696118912671716387626628493488156235054609732288392983083994841250919873062036846543748831331621101593925169545369276386608601497274479733452792071765095074899093728417214174351145009390766101291450570788071198221366308032355069304767562525301355085124903737076700850978915421996568392881253312519283937704374945404194669288531684693529046074245492351932116890054708549010215906075021356840775167859699562125548862873400918713480564790428587497439114563784308766267897665891496078786750150490094449710287907265157000303968077871026240094894900503096808488136507263552472017088061990949426658812998399378413701162516334767924016359924050415957527200641459982378661515179114480334429498222653378403866234683679720538725475478207205289942074174333289233085137235032625480947599654784967247119343502387775657036648634953873638061031476496512341205822022064229903028763857189358381579889253032673818483466311796768728059034358628295749869351348283610962585565405821049609684018932094485408734566133788072872972052711423829252133016067639007124296567488165920002814239964980001886194179959652506096897188533641707745998018809468585225987247692846363820510252526739352202035311788537863230406331292952955702482847307679681495116237557798185128288225591951616738948198640536853908896222722118729240297838887740322334093715154238655429444486285355934078816095973579472852124710750585232610292571530385058752489793242909308456731366788176248877851055210422759200793123376726151200206414393099854334362074052868722583685137700711403964677853274151679147649301689186232894594660752290304228759371901709773325561139686358841144936268284091433427977379810016776725463846967254341043830490640206397265749829671752479061621327027498266549276288086551608908176083805607848420561621625078425643867549711433991593162185655183638321450943448924705536647904290329132859503860348511498334800667313765531558124261330793793933235958100324133912710326629501552684163476328813470379961081865266348889413464126310764590026627344323127255451537847623802564694305256926931197314324706685048322211646271031114320236097475088081336299248227291557142045712729805238723396011771224134416073576405234427233090296562669325811738187380577198834733858143024947197861256135555316274988459154039944780952711845066239117865205083478429065430421174043929130178515474028649000526884171095642464026287018905635967527194495129889560874603196904087523795562990709140113123930647548221789570371135772054652441877448037596609512597012235106439321936339348482208864176284242598019077217705123948810710549793746423629930192505721072090822106834069979571681374867079361113794576163222892449356794114743522057129177349749218319394310367325107977316358283256379586599462753101596884708063120626370919182753388481107937943723823079977704322887285419317791172515351699107169407527169613561495437774198135382932232287833387244055422453020990115660710164971712215578453490815030666389925465186344485163359976509233623262541875101498839054716272329398297113871689402357820871422404769922646957356583293242282775996630196782061688226906990278611114059955209822761417951800713251791360097732700525471732496152656736977329326996482943273291911053526729511480780195210563501799840537467022749571982649517862114713562749273089200331944448918365054195280142263376187831806297796542511929014542283249482124645317440396857092176665802700331158662247783042749174136220632538009191032625420392704842912328642113942908903039507668383127312306615049067174183304530034875403277102251050831233908184779201680063929150327933133302431294476999175160763224925056073229131234074346580676144183893529500120344922732368547770800811358755974605966216181768358118674859589684642402670462284011647139112920126876703807440890808663134338733346895633105211649138778368499255667588049129698427183029068797424771733336953683763821031228253649417591765935326223463269448672531359455198621906884366001004356236098755367268105969781007324876645092182376732507830843386141014564699353487892293161710668104476728899568037261060822538153593828850886412647018064646628209613867971317789524541429242608477319327834873207154020780358359758419986935848856645474273823892911559350068382298370832832714807322339582910208260160701637540885110017972016849229320340903988624034057321760816337170187421639981143492454616817874765960381888190923725494732452691305096477634467361997053914666238362917251936386998132052602875925309674903441035615740281899968546273056123815720471920455074002913897167564731945399568894506675730425537144955111116407466531968060357569440313051313475864851033440298770910077740381281847805311247316086819760413716988103300176764869568635612383829460767290384752787533714477763907670553756209994178675783044854594373853891325490001812167773151786899023502743097363343525724108101706254477926554996984675625066795232942102418581972700575983719597692023620475739843572301202243241280519185123658753003400992967972800670725578684997755847616483432609617753654845513191803462579935393328753093041813871711708781786473072830612704343854608706819712048601286100236612477044365351292145427859652245985832645254786386458358251936397283072315359656098414575556174594172360004473846344997327924608528549473729788601704743551261325910586710638488978832968273167316095979495091440225173784169817410637334191017462132831700207156889993110180633664044369908482503094139027159640026402222601946978725950691599836026152520899037909038667024736202168855285060220362527898903213450626208756381943244987046865516306650662654649752841738008739350781041678947483627705016166238003121250887901019433133688399437008838366974566896909737827293052057642517686476415069519626603343689336950518696103741008050176445093994803116438061780012848627811425054243258873230483365843503156693762788086492129454795051792456609542312432568331437232475477766297036343954336853670712252304595919392826021551206329334775674089903918518140523104048259944968196475632067773290934105513726818744703551257474444093771509682108663358576172312175051446773138268665761046433072865307817311133148057994820623406572818352186938619918164221559824739240618291981389068545437187305957487776616492041760031372792874511761611170558122892471481556057324082929247126408407523905864292195299503176399913241516156242001435620457331313940578026318406594235482098967187934779591661755249866418878264584482283738479244761968638598689553758445413617661655668194948934578250926174580791524355379063572031013687740219705168099931041235309969652725365962696880733911242735445136385284296942490183194285151765931244329064297406234607301508822718203848895065480084566651184037478315333677656446427600172065776466199884928095035428484109784685428302380397459080529377593584772523332292041992811760219314685183496789617187538769490762891597503956885976439790104744064283489576040291694231303203552363162655051612130389224541347824108551777589033600731508777188267119891727312118868514159083563489500729964367842046266168072844705022213986990940301759401732276791603353509430288882250896951921223485423554777321205304213468846949834054622704021332828084458578378107249479733238036680964055959095992645259459330315054711897133491475712036425651984806369653287055254758478313064308969109315555684909309663491084489473628321786040343232743883459782559566362523971271910783202724789055438040082434592249714536815430820409344040791476117857521051160134805599952543627127824547600832541759190644955357820245768385410453503679041744588808562699690438165239591318750510045132510574559769340005447166478741240966093737163229547176327616644523742300504194459621232844577283977054004795238932241637451698517902094386986386750647457175488651815957235116294177265018968968163011682423194266126473502617853752817218429037608811752076013483227091671026535403753110799906114237753011685921436632964366627682937468738463058114759855521225263843401544150618830118683198258569615682416671180030255506480888588262158378779034061637712560832415815544384380993695697279847888329530680052253817958790841224747138877054421177216821590224000141486961425569271847888226158887152674064100233424698946371881618673262254966565782197564424272476309948614672311549023122341035941269818975924816215345389269756262287539349515667544922735777486251762385853808241902631255731881693564237199717803237898675950627565787502441934973430032520058216328409440684069277030796566336023170056936062944546990371551211316011788332049794981420771917413850465875434869511516593953479692785496056270021777336078026724433425986288227111162534123156303288164706150047122489282280663657470550424796967904946369952423166602698450719281007692151700889659987810449509896622568717220606358930153852273549111530363805239215087562491814672831886793255295886350054735242902166181435237471676722417353074928692545131908616266803611507042664073496435658777075700153173327864144170713816099960433657554227431227281733296012917746209157728056170830506372876516304054348288357454141008310151694519963404293763023455038869982877270124849509773322096168538130631631747315482789301179635626065808960873449827920577841288734974733117742014913686040333810926660784602095363832307682858644337650832061079746521660062419835572871154390657443945620767983069307526811236404959438630913305734927912515703513108771400734974611834858706881722819971688800662201671311929885296459748238058243884028651333477107706405695847258266104115750810375523990976816117719618372454255429207964800162825333726929504214261384056450872229605473080273044606112611839629933450688349074276927888040646032707278598697023498009308576548055273931536631883989537243214555109626231109043293714336366750555728833464994629074469615137532233534746474423504444038585109584053420054593540749888407103091920510218014120666621218044486458118939805532332227624835357810801722018403282912140456908057762817707430897345362829585363979761370987445513243764388834568888034499192354773612068544552025974518551720818320969066015195076509988471731826037311339895439741865921285118801920851430675405123450448889770817211909486502980132668318556054069161090616497185062506481020779473438298406789676170066900333319549622249605352738173432123402995189040273896386526810038279095441780961346615918011623562572432111413834189428052970370555114198134989790721804996255986561188100429389439403062298913387188617763824903333902147297162406539466407627321575382815250385306818452145952277765520576260490983219012814026425345902954569246400029089651719172472782481272439776448975830374530661029927972198371979220114510318810987802697830535007552191047758793373520569282966808908239386462168871184739628480903239308804939148303471502161473356546065937002588132908929475144555740794098129721952891035989171346462129207921749259691346706757872516912908794897778636143242066865854045185169420984464661244408398900543303479264029483584178488339896294519331788361759626375570639881568855012499761241848428026622188495192457391578553733531022941461934476455027250616299301861699100444632943183797302554123309624247114676497004314345964869206399285279237325759035978304687631611430384139552247891103232311692697388291069068297599858577311911020646321900740079225890269957239461238718053429070300672481828981359580400746917623834662516649504081300300806481853892066732099871866221938854246702137093369701440709778115984717557557021149584218428578718199497714101340739104573638229935772538379527294487502789072436242275593493423024454494976765415939093414094761815317184071439224596885016919739715619853434861828394544182441257090904327640707969650129859672435475208042831653237310923946858124018146953901433551688361995111948038082027243407177619902590408208904075754962078399833391488943410800715605790412434277289936515913746642341252782173449150898135690759694158244296953006653437524633808756140835405997592360342357075697884560730140003192762377886175904554654405763666796125763411784348969715640566935191040498959683639545377332063529060989913512897604071093637813701362213977265235621355101010689919726774909579264647042505103157111982440839308178718128138917236154562143497683947967876763268268382065975754728081890283452941285203826003506783106120835201008018956423403989220991643935339023640419733856651258916375183861488539937164871770953094424675763359683765119162680151358670284377373699402419087532136597259136214005175010511772675368496446706589829273087080407271809247092756819237831047495394495222510667411923520743774029025077156934001031469427990237106550799599821823831703869772450472843313141217738904657726449766105683328433347522165933421077527532100273009112454653360375151027828573994748292204377267905741572231732724449915235166857820091208380372625163138663038888237377502950789919425835478403573774634128188821604298696914398181065878196279067337746661892918773791352479758664874880046007106391765381537579959786798900306200466856183699528664924047053721735265451323327812014177248252194221185011015618135459551223430713696446940885828407681936262762690190415245695371223617137491653838724568289702022533543426948752525764877632380957489652486941776599545906420378336891844617225893388779018697088459463692703920709311700122653634626607823775078328569971187645650413942795911798078297280413053053034350506564938731643238141530059774473446314137224997575496187340719941947296952649339242519049196598030795217482794543450330564180081283660660848209177975134577336930951123131560460414133257726711888285723925959113348191710144873757612152419881974155376238659900371477089270622823077052319958539355819909092187559512218709145460426601476824360831297684159522003974645045498092846629975760863555028427566673091600434392904906103111525299096733505186589533728180936489210378385280284111550665640975036918011021183267483947468999871865964903243575152554473011646514691078233388455597291571956817821472851895969974949100788430446747648830803851167343672243872882544324075435046296455684268745025909091066962675820777660390416175557993130708387611258623022040346845886570351713487910123687148570663440959568343599262112920288187906074215801166939286897124674383071999292317658515164035597883132688829891062409098868555901517023402077859909672747166757046179077699649295617286000605967469467149757738467695880895442338232575926567381960000249382494297483403940005564004441339487804561194852726845097841066205094023310446157452691503810808671030553292522817995697094325884964997475403801815876037716855315295962606283601381027651842731917690168662701601467509302006028855419212819947796902077916416653269383620284970046758404885120258931673858297303211164277023453447179636787945627598212220112690951514104365220529124073099279288654618958209489705667375587360022594259650930195213594581181945864539725750576373002394681772138581149207528483301230502928923597073066897138682549587808137636481282634252803986326436302360190098461408442653151749192376951488611295100968425064874972297159917373646552772712307053388136809619286051541053075805048340234721046705644373053115015274482689925210476876063010385353253430477922562423422993313769161164486416463554780222012022958890308107164580851105500215947582475311917373120822054748229498848343826172235974892020228230643970274247642564615471706793770093359727654621576025122430350542174788436150930982310527301445023803181509817279230623237482123508618316869706340677672822066503165088874540892858973422726892052921154470736342346757133800134545044662287617496073338872243369169929168388701631377607545176338992938747880340609786247129271789249823549158163696290986046406381787147786324651030521653877482787278078617173881489738167990836077507143642228062241448244286840554246060390233296202915373307860763728399492788879122660733130171288085577762537490058409119642506989416729318957092899523836393229199592501678324752954115645055020845513535151696655463895113960455233450801239386325744245520772480512867654744261573632558295588658126866114808906226034906337691186026604888529646133717171795864906435627162607557408714384555398493162900979787632216755897838880665187614448943472082135044774024809971382998451186307242238549318161107268779843521681069544730857086991873738509467464928476009402309565963265705944949159205688236718076214261686694370712390958227288943349715739255855710672310682414636702574812114365241313499326002807143685126990785006898272813789870408158012021066361952762784178899799975900758503523555554703789160209759386266773777064664897198011937581497732706670631411468697476753039416251967463061065448694623245559375932601038366086587004736045755009017660327049325727796039945050281988859727086844272700257033484889967598630044077018264277360160511402485876972671413372450681265024362809650931087525535964060376470839899584478335745024114920950394705912942067602252718246174202586214529086871491863166407925967530597807518079385788132366959971944713276911575089695974561808272739022590072870295219590752048615447070344180864384242853346846234467766556004578834264224737817108014912645059635175336383993338082963754445568358738299268824254172407159383739526631253697729759060360331247163849792762163937086966351508596678744775507470722664342333080504544331894098106552950672810149896103279811315066723753700656114987940266988632492861972867977173434876396555477885435191164605538069629558114330739385899359948666938252525140625458219577746599982951946200983989846651050950648657227807556136022877140747058401698480524026401028074267828038147324372332031168664082081448833739559861269545066935338831598353955182920746842925850295612502049019168439613002098022069275568814326214631963367703016082996586815160628118881525363185102811973412658587999664114708407929190672180001578685995381744276830122403205651906790520221004341710255262361004380278687582866516654604231676908211409727162640620790070889552186726488846025313151730235573630625853729055341631750222657691131787313047136187354533421044265959366746395950929794668657793199259500625229279391210286513413148691693403981014303590782842199554101471955415732686643426422527926646190092928600216532211022897119026629351359672019988999072215735244704833452712637392390459550486352757855514683520410955490634702297477110774528287008305925742450961384581693220112813373858798032220346994006244215280495521700671438975594930615865065483505593006574885218442178250511609168404966761210144598869769504068428207615103329397944995874925685335662577935577691739962398446133669435374691398872989219529506647664759596786707283908521108470178968656569110741019265687703358570166932504118227055876199383950774197595493412755274737496102597821320099251949259030082436120752051562812138620800888243413000150326257906072148218713003104109635717823104244489191050616326586489014359652973846083777054270133621756215217933948139563898730518371846004752228142181124267801219937589804465297661324587619901124282442614229797579700165373653098592826252718925516634966018848378799095173442258820993896010510240394485884990473775139562442272244133665361567791481223180453301645469198281555396644227107750098848795927299939975376611932488083591537300245720116681201815416898133215813304229656238190232539057400534111455785077879901979496593888907544423904676159712796859740532240495694722477314819892484272633439605130496243661498589422424030596474689517286340480266358536852186201752996881394910436835014547838292420285901465365189822977904035318080972235586572772754778818694335801335468757599856123992735920716430733651082297454380049571925186707380962156712535358189323394390883767159495982224430660615287863029269912887303334908255834871127400566321126530429101381535631194306222188139896905174516653739509364923670584573325178642440404073694841510051948878267757714512121857858582352891373161482216946293209765461929742807552345545195174357323455595047567715835977366654540575805055073077884445123115123680771990342193447217344070577534954604561296144898498854789814863712865165772767344073808876211184549486264428986219746350397688019124720519481513399800006118494357759876774264153576359386067498739807782877864674817276674393741534271546269964173771126764961320487952549957993130758723952293230747689306718978222154866797376582081259275393571196863037936876516604888294997144649115147961918719952116598536385971045496066011978783049848430165739403677013148093704977713037258676723195185351918024267311345768995220128149927936162744726237198861441212563836075575505112752284781528254613229476212730512313223368807265429609040850127822334283143670043176540863578690537030102847216614776259534145810240431321123944550308487665909197164130106406244403577523664133074226116859874324080803298648487093521057110250814387395775178794619210755312330189838166353047858908597965309549070265702138869007555244264687286071065487426959217520244217481420007063222421172240626459210768600145439646550897273845210910067473549167939479907232934854953458560137043995476101378929065393739408153452666301334260259614331690318235406262077504250419686859616292132222379404780377778325635118091457021018913439050940078356902627363689702764975228905099257485878026968010395651761481181929214649060319658025039079938720506811242612831992704171936142437556870833594219844733748420478571808125461118972061955624858940809265195792527354103864874740401540075418360235411450451756034512297606751781966762610127595690026502235373409444055419517165580331325687706734222990321357879540309738299173549099514223240832487467933510442429583240829969337575563018897201801617617170118063711707446010022129831812883196873894593394775162104831331001797619903562927249512812897180152017426134870282950270729988415187829044869581214622876930737260442292862915101308386459252277676582455803263527458802352209716653482989684385028481548605048820851492336682411913435845670230690181890050083930360815291534824360298444160813594848451605449225456775421806597789272169937444204432639936842502788936153765732327712806747005052081058066744564322568196327789567338285473682992278225645004443400802663981253348402614158564324497650529888824043280024821433133938554220747173958312592477877158154502654957672036792410230175684641454126086585600998193237927520620899747181015296196173391550068879755839055462434065060505289278187084114124559480107811578417773237057395721793740378787907557939887533283386165743405687060957889758008465273869552337420639132646295277045809852714830960683166129993840076912568345772281114591863336782723907454256443445346232901325570798248873490837904650997951269229074743364580182466027929019306627095973064671130000753913219840157355808271191358244524193104761232582526790602441423424710314551545877800230030682481513999926923264456714500665457008826658560575192650288554367390429284989995419631945662204059945303552423286963411609273185169403402381776532599908780392619398945154557689246331207871914328005285770450656184256027927104940823410606754751179311889364494560807160694118881398747277793046781588288591781430600328759116614035988725043916574444116513688106591636473521715845007160027419974248245956439235795595493951750195706729661455863190031553659885156196167516586035684843937416229583296366906000772548200420338827804571898998350484537634431306676848901929490893196242225520099376430006463225372308828255430570166089742544182509300512021923061774107831848604541185780024529517940966977997784046029985545859268530082048077843273987949026285308585339582099893684936228764155288619713306120031295968231948919820798454911711197896606872728623730600473270498965715303449767911244268893338547444800228956716128986848386053664439868849118899179258106468301518879148302488845979724077007293830486604478797174698400617019529237645688890801821001720698621753312514939212605175398975981236043109484883693313824535933075418128824044327744881741206503697204612635815436894224132897064843907257117220442067637986017833151928559117434482752572731657987538049884532840308098942212124712754546741198386413825733949784728594122841857990262621880506399389984784664468994867668434454633198092899034210211114215038036711329073589393180244069029036893970361980899941269228814973254484698442840805295173118432342180311006870119940931516641401233746821840316649974221065016667069133291991839184771824223525561393900937607418878527401342010316831333427358816943200225830579170900941025228249718005613993151876770354299215825799369788857182038212692222137565178087629789786760753743499939286086540090873118300738693611348316752153242726961909050411746658670472154650380899750823200834011112598997408443988010669429322316626158569043488896887887465169644579956137904876327409527356045325739959236065178390065584993323887107600225026821440410232047281681081556918302145697852628058373084535040265130092800675533788923334267398240443289842921798535505118206468796603497121048059995200032907122567548356260303598818043981857737640291987907618026453118199692941982102347254203588029789815592595659099049783408977061672891300678686330843452629142574397854281153302673314935052897887835249936943395371614592318703708991808504712829407524171988583415715608428510015588080079734997233506427942010421363214414624972754322437348459088604542834999075899242684393337605188110452564855264334844221420557540643739501886370713127348137366143917064066091867918779792700455253354048992342896406851188936977604588423651447503250770901551027111703735364947507844794715939899599455133272398053077812902025441892261638751256686586326724501905057798862845073914601279353157764233344739069074250329374409866786489672263946410992032437943703317959297176499731536028431241435022269330789490779689032137298038640240300932697957213466005483754648716031994665255089965427546248687630983404632124651851301911924307040542028967399436969776736768970105199691881294628140929760675989433696617179201187533100445123556831321717077737309990656510837812856093027106124595088706236283908757433702411958870718505936464017896839907067568580107612286937915508059421859260035210166396854734163550375887950799665632842417523842530994813889450377817254256782989483172036712428726982814918491586982118887201002458408555061626064862250302661418637449628159429261455644684689592859219275357633952238926535661894526963961265298117404883242795912116953794145013964023521847374255624560269419474077017901544486391506243654631346569275092329965319136510885237655745844896601629841661981720175828198461396712812461305782092844251540681389770443973886244782250592737971754654566088811518150341650153255123960950748796906975306201626969220944427387581818198587239849322860957155145400421389550135877282565403773116487602241592288892257905283046175639678612854222552339757414181210706743018537726544633121704390062279889564342050428806205083881343249488028416805891411086446966992979239523107745945978656408322890768291746729029296651350486635684866330817201263838115864732887215891018601108709067922319369105099851883561467535418538225960259663789384998372779129865845245946276432339463008819081113590443633381359499785826142380912658833299508712815486090960894562089239225929089312788448741713814395898183026094548854416185131067823745223341069999714579284722939097453404590839412439686276852162642892714739102954269249558426482848021479636582891147011317421178796953834732265702157734411520866394197813057818871622158688780999923213497412976523184541193746032789880270234842730858898821283904542989818009846415407930547183372124227196080791129947089925327022399411464388741259563712655346229389951776977305739951419943302936666392168247801326932844339937331769425080706175831848290960402556768871705662633959828432346824255199695619326030733473948611433430025653515703882340567655341013718004251223627017872211202454762678437432418980571057104955320413289451087320335662312940340517873405328988257169143936828570166338260907534223913343992187427328593272534461855648992801097000532189324519557226937347967605249446737472062054652219685643924325898495103738779868769435703086045372119128002125568608955105876254168524473771413190581642064257172151472117237430951558638230980585463609290302069801349789740134770504421978921541195835167060654179685404150630668837015907377831348755512465880581332952613919870523828641056442816457376433712479640663650221037630806570977070190613425868944726618033337393197333606760584839001781475806704162554541925244953735087669830721326578169552290880912826490883338884097336232402621795632767518081405035257016019675754324028153264804306425425870063214239148026243049996703874231031401267088473252400365549679279849590277921801134881453065152127838942921844279050237174717132851391601386431736410957386492585912308244392541456783794386198157038735822264159581919545213412736154519559481492587985599601200832665928529954017434754691475282990542944358437576839686143061305470636061021398076032872373276901418458182530480922099095318765746814522528260735223978375949757073956188978869465304287581188048616522228927823000680020787004372067180644562974630484696459284083668399806302856126931218187131909544116883134583891141563036718060111268764573295064735976030084690596160835024378165946129847260298298908412390099583685179687709691019177618109402728763811646311640183693144883333446946851608150450328017966644413736343695095108235685367890062229463528823566793102507496355380887809061831892054805446369513309618369364348721268647700166646831365628295813686476057642188599446078708881716302331864011496364148165944146026830083923922108119031303985025982855830532465252755235045802759921219274525669594880012978694392393570558015384604643539204452756441514956614716646162837239726294116852615739755534850154203790611015217187437101747069362218975907964333724532131464059018876186673284145837391765202115933697087902787834788300412501368120613678100120104620650488308475664080133065586891002181401585747369997429741288602324716134313697872606106648408388269870330252354825909397473159735528533185599799918126809352513550034308383860592481979101804725318138358978327380310967603230482236379637927438821256189077563488713888826270787634850073554576502690596971286553299552297740186202428951581416470812809336310633624348797109527882848659297070809103020348192575506696709753018334659913628044125130145457169350090209899029052146172525493042834040404750289447481574145050702724652468201440864878091627666874968312126344197345863504987133179560252613105416508046064123241696067879829786347337227184361499297168518882941620761646989022789035366966447512731057373076973756158857695885499776042304781964358987303861874518278180345185512753730631969146935026855562193688771896473981687444074095302189766408134000032622870736554612590889760300674161119376790821351047442825924434154959528098076615975063134395678683185180794724776555421227770200702497455035764910159023696851493950047285099256008614425396541746131500590635374283568504385187481620262395700224692712850326754652128734251951725043628925678699795925973191262738449230977880984779610965521441434481549276579156145885584200793459137040346430449126931462257456458553327339346725076376528742256548683133625613231231676325099469212325121667386423699812621035490871671834369375761046573486455900542887440028356497627076570152482876849875478010865145696872295435439340589649289311076658386334470955336691821473985075578470248159947104717625719160599011698386601255267242053418045499648864989284761119096094919361365470689110007856253889775505875868704504924217623648829823233418154581370619159121811484460163561518701525700679463846466910581359374741789689801322590115106474132437689490431997801676646566485717641254877246783003118276932166319530563324829140068357419645588535223273378199786223108249515914550442800856739990664484105828584781925006812664209967797027407544327569662049358784229806011384085230344182212853755237498191708989686811576452249684233534904317170708047191859528631673529473072843470989589292523194175945124539987996587748371242479364560449223459515745348552054688059825681168172764590991129273605547955773648198012575273086282907341746023052330009533478061174030607132340222516651537342606872317707763771684902609842947141532049845699703202635424509913097349510309463159708424003816417102104265616943175265523834897873566473017185241456021987953816360451367817757090713335370987302877988294566985871623470590743766471461536750262381963151340636063780897149849221140963032962788072590204866890719956625371036715836247460625246659913761191250978014316000875567654863079232363780798711634536679425540922859011336261703872804319942414282883722614170678355347572423184886025982059949298371591900944025027299780294577697803299680704556677696206003444421372835198457157771899624662414896456536811920669446582084357121769328891198245760429720360971302656192297921835846781517130146285543897867676782728021989417635696352752452247212893403751910935692188110542979440437816994386285376634067606171199506361491746211125289906333807119537982071467984700872616100802424067163333292420178262421628004983509037452668277514320722291337479467490635776287390270888299270492512046151508172836492937631463972761420186012690134552498337809822456469312645820167283814800564680542608146076316723596674741130730203187542943580462843735819366552353020567591834439101604367502773297437989202514974186985131892273868718602653676712587915519029936648707546042435065221231286193683008273208805830861940552158761203773569256452363584824771424328866950663710480056424301433886321445393061746030192112785233371104323727191038139501864854083940115291596678297960927501298938564167504501105025746332634096752863043655127881559901589809448055449448630265932695153800527832502753802160180567005429885548975789035107933100217504307348784200137575232299003511785420809305735382397483086812236247190166206738301288435304061868155115523101903224142997078074655210018278457612674291902970536609384910500648939900036518041530825252223751242067731746991606853948005582112831553111696214747808220878531398919172321012988946216303360134542159242288664160964249742557567072752901956424850383418056917128997309288513184387094911539294300566748536369533030531450310714124650263814153152124779120322362758272669317753925693426482017181274056252168088576278820632381834831908730750891566063192881860693052031635422246912602931619926171161718027309880227568728477274040249327966905601791013990298623486347993230832148371466741482855486798926125917932178591115048245323674643966562700281358117255655965951303245074540697231427675224670737094971002801097174319779307002850735117814228130315115780792577493804271775959996307937860529361432888394717459112175561069973021437156704180695318213967205981631557681289482607029424234780682141740211466053896514835258002932313130981437862824727437437296123644411687433479496873740325675539919196297871826087573648812205925178496447407217303953696148575247098959167426035241309852393172510467492966815537740453833209540362291283979770934011559575029620249238255253596916841873974453366292097983040471064690386499964381044952646782364971023626368585204641630544353824121712003919891355914049563982179612577976274152539456629774579753396936057004364722015772933355255216336356622157279238125727181100837415988319711636547819191113381379208028094135409345812118020219042494598436352080652695182009004863290528990969845762706387682355486119523344509226179529593429200881937543625133104673584826997622722566577937254084823519695466363539036327110435273183582783173099449614534363856615542237492123122459876104914371020605697208946869602949645759793752870895997226531322024690734683594695486362636422473758204105581666399977561156386185305604812464923273918873706998427347832199585161040756387674939371293778780177611031193500760613506869482801812177739348494160945142169012130871003797444977968961916694803409300013929928890999492812563692378929552780778504527678137772367062494224689841375369763563882997291482855208404031111677814279484928752318643567822179779769409751529311317191919205951894372159795916456543996940997488199202598155991644331168083135473674311869496879564952283566882746904114044894772342299594322170651671245399130204649596946173839160186245236685497107568186937645729632572818372900701628964649153171833610249395935002908748607923573975311874823624829622184040332410862093498781406546287544429816756264987178209903644533314048769607606638403182485596137153123015727110991635046772182312819468348689794413870718563473930028982005960404630823192533313645989341301097298654638211285238939802525687726309388016664293272529609978528390521830867234712720414584990276141830074474069274428277259816687153743205876760730531334126635642229798068097787106129486746609249323354321691197555903048154975447912812056151548892550197161544475894435420792817728725872310562098020292301900493038288649144234719107838091637165053854263948079693517449607034786550146169764392734086185392443837021695199232383694640801714809140598793978099743122526446619698239875638027155870030785822856679431298689926832958042330646124515735030982519350409564616803253670646455928619924522175159558206340418697258100176347426562007522604712413417144606751044210078937847584209837486134867886150032217741734697544235295256529734404970055457701585370704258721661904663940079693499813995466726566552190619893942293535833324823206499377906897621313684736132781772823224522626764416772269328224834318717254002819362048918402908496067043501228555038488885987694957108044312316307581713180239381444670765613440139814869878103936905815619633971518443129471711981680098600075468185620445903023711072276148921177647406939952018915675761016823510431382335488554573581485294671495666062366347692508231925077532764851466782269246463153168917033868368808808004828403344780811407008102987211307996003351985980809708916820185063140852601299618323542830811599138268578926947738065576932096533070979868501538475175572939760820857465239955032671045258263827272455507621896246663661257691393817782060199257603968299271011113337893562909035503813460242048734290871796296536097522638001500032659517638814264967172803825643541788749902509073192963022186614428907398282724683463607745644948583531214948328951015157469672763234518865873467484107266791200654670471611372852485969232278681438568352928749885484046257465692726421583243600621513414785193328355355678709481755019200073743560351209479495746278671559304670141956286193308062116407545856864168148753463982131676667845113993934576528799658562331633299640676165142874528953608937709659948883354651093144493634907662763234028094766513052675707938927113497652123297588380587588152867943993413599014008723105224337970662687618637499914153886541717981687726428433575907187596865042578215073608071135558823662959724439857550470908477128452718283357921460925874882395879388782717969043365310406405566801225233476563515469978798466462904411069507214512298608295095953925529925575668587967340712249697115641183883472318384800834987417956999910059654501141204305378313453858469400503221984723276335125794937019184979490363411495769078698355681908735051147485104198025692901224485587517831667041026008241734203609028615419180685649654834979932992693644214634330417120474905471287356766091430071022836550195380554012218983555582534304386580666382528778945582684886616903654781350549341840418434028845835188631836988438850558953135989350468456024299023074232095632202425026496257804359828639004984616093259602418143403054258628893497723441061668451322681907320609963216968811924507064409829473791493118277158486194025452957638472118370256092431706452393880046474628255584305071810582514897253994225400377525107143493482941633685155450717427294760794643272587305033631324478664882556775789681405947867636690169266707951367588773366798216666297254364561403938319314588676663385205778223605047058680267162278504799296944582702075275668410303276424469897163040096981547243848974383676112687324772709083275714898340912242694225859125813608982107933042744103017704522862935805179330391937415565875697921643574344447592165074162685002354017868740089654665851132208230083644642446712365715574394081714200732352407638973971865968985070414317717067245765699067637486001958180544748677876927322060669724981743127334341925201899118207694329200900874884974914790039162075055813063341414197710766101460764038738573415254596192782764770214777160372795325277342767449509080949529255963346645798663455395759107320199050255625915510952490771837473488862594772196452754765088388643715920337164611601290854301410010646063783807206322757001338898512180361004960408436557947715113352787958051629348667653562021043021083335551259770304489657640288270039711213145703745922254990720370230670393431222539884246795057190999609123989451287639497275725730531817558638024531824940066118891179115363334370487238635945451118685623493161717959739142832187728471765130675987902572117169833111901157834479408463069047208609883880809662228230480009306190598037209444389869336973772248181946577487274088764462224315495305944623479288505232224427990779884807250333278069994024309509831425237028448470930984723688234346237272120813840388313516072790651873316871382927547860848485315409447267800780984493083267136299475693214335917770238657365435959232688893993749614216186633784286891606782391522863437440734599762580120783713502520648961466000597931870907687526835971189575705995714899887374132035325462926875680443946012615467487761197408688349361966017414436517597290300220093258099926017261970896100431275891254647190832490710134057159709915175829583007630232118832458426007678212715361838530928175584503730403108965042473622197795100287171981735719384829637586498325157548279797358906791042872242069695497131692530789926785359434099361934587555548127988436278085607540218822425295116918043358503839639810712248470776093817891941783749020552839661162738651901420909243740969776785401410354155108312617090009016079679629346436001194846546822828243589860969625295619126337813528704084191860247117761048347422378363966194678856344470460737701362166006100385866303831379457373584937187154585433160529935107065978718580740589211020637609055017182034861110041635102977827542458877364253471993966075259302443797380317469577968215616015173077851558342296651313239028713380954421400500758171077359091797478652279002512707605517866717581283499319225553458352011126419944386491346023331774410937288367736483167938057307694034705299574948358749495946043750933810230456154615223617262775300984823120441375805973231286205645999391022273098873080239988449839686920102037877703472169352329889974845561754449704264830178263232291432860568979679325052829516787103622791557544502307084700234912627365384350172556802527479016476658003019839350901662655130093452184887535803699016558297736458328636189512820922197013375323901560011181005684674670798557225035306408816299291286292186166735680483376342344458427511457387162095945509001466380314999985390640769800468849605036649389507142682670969063057151139213110509003526660094360260652150466682606178167926233844186112677399630359773552200734504374587159056443875478793849353395201016675745751332181028349005716288926516576863189388119262619537659468097910919505156509023772949259863781756680756915798383355568064542562585480800303298408374333771418519582090908370525583515071609863787585267402996723042728942149103727801165663905598378064394075268708043745844679474923715570880368260673142133375703530100749839446004873963712650326262313683569182289479659098588213637030043886562536830212895370917893115641155496230532777633875036122265750235475741460382335465484709581398162534280234158158394044908238405233491476707468547112275136535031924300844958116581792080411745997788106099407216643670937396781710023588662836846640988486862399632796565976875405709885781784942449641442657743521659231203175612395995807758511377156231727531714122735948533254635848788021562163036994736184149325454311236074163146411286719690318589275625519937140165167124678573143727656846831288312778706033003304146790331855767776559465978290901917357321561728982747358116283380166656883892722960029026905947351001103556265667663215554273002199245843658239544303280371517830618861664084641123934758140755468161055616162861031307476119545601295785740068430521278036948051897244112776890076807668357140001963480324091977701484476802801530751180314424783117115372120558153821027628394716812442333531562412807707574133940280234301765842072328582688669869435280647831222754723100700834832404284828811004528918861123397881918433039941600875973409815409781133234848012585713461208881900899265634148759613399527248984061769162450745886927414747665562473546863987480378088238758079960354773160487117212063268779221599276476670153195519696875749247901105647579264573322784335795255017136373235387871510968937855581781309620723794119953297337668691107234514257166226402127301983177302792341143206732008060158047375656622867813341436370722675500311933550943952800533993765071929809957906144890762995558799415174677456762590180994425152503229359533562823220243971864853738951486960273572847123769994691782299839783061815444712814375313415132876038981898427026287249762746074972780808163252136427341109231092669756285794010496819558521443377158439659173453565733605920702435402144396604042613467270579264759078003576478510358246701304266697290461354528040091004578411650360934825070861115024229594456662234440669398446267252642740525677752179921651269817050590838327260725709548551685776977547700116318781484530824795378042155535688015510252540828475523480827727648839451082686001796044466715155768042384850844884936282165794224552197835888013658614971249971607561078441413722918206894914058425019366135431096905796750819226728983610971810340587159297932716437886181984180309468116659669267405640501576310925631627979749162469129901513514752751671531130676341024860090564809578280691312434288336717756853521021414215288772789159017221242309907645137681339484534010792832551145304427547038508253035748578952846361966159717649173579861116062037216858874413832808134501852856617550771525223833396119269056609872621538279943908833974949153454863443539613466866040636446284591483416178432211711045004833582497835866210874562409977271339314666705487802723653356443123106293170667658476247773628364978784308115382015752584433744136214079076983902109340939629412966937761425856068666409939005928825916795813830781489721798200738969073536326147811072968992452172928545989430240726984762394874613707054137451943818199843832305593593995279784729817377079140703481921755547220306249236190704109007001467353713577140741267148911891055253344790629962781438520736025550276554265342403578891957004886130305530908510131768722282328436559064796260597157506053485799146195736771698626157399439136222462906640000065744370018589782504313773099672197323385916483544090781295608894197418136795277531319128883721558399832916580712178503194404433314219450896356693188043932443305190934609376755749640943522518872657970564180472668755296581925664977207694497495496826191678443709601457883020552032202494115214566997576370987110631274241730612361417820803148989440974796111792529488566332285910871427840130536744046251858678887151241290440876377422437200518304845089445130323735108972317776674598311956118528517176353678795938148508286180827510084734601585994059939362956041531788921863202579391852736206114499858071006720746260944925090041895023691203864615098896242785751353965233042934525810955458125796240899890490873756943267790375065515297396908482867163044237639094691047585962691861720344850974594276283372481352912491568760489603519153162270770416764994928344385991218428524334107108314200165901353647117641844395968843058510821712949330553105499927598891768463555524384012329444031070876225140508138451793154665568345513780862710098156088059468603326022626878842719219697924872182897010568414046801960482371758172957016948246671175480670347748470700746802906565503916858719917020535643696551744756229919965101852569458231010937459848204400894139878279134872728462686126142785414923130637582391598021555629229243688833316301011717926261734490381512152319260073113958236789636604983098248437187882209544736970288205217763180549552876137988655205744535048841653224350430273784543106209348029499807601179793161421010802615842767209438433817996525002353112593306797607181625160014773375325542709763607780079709194659260139990601509982231753007783597097293651188997523054141223199400594259901292663865182970122545129825617409313593682717860022841299205145547159752748803216392551922087251072935232612034709680968811846311048009703195139659230398151305464951870139529560513524313269962561373313010985415158196706940528169613991390316922889007484822482702119237203099303903120184763189386666627630383731274686653480778944849441702755810407184750560641565521606823347054080195237711362371776459404428958896977203434904820158949276464477930106198983082759178140250620551213603629015110972061614470060698027876466386586208331994624675036166334478805386812903458989816035020350848401739727804588216417395219708456023818159260968747847444085136917660578747345644336606320114832975417184621040312951481837345159209592865186006217147137992994839059266471415023240942600857130633711796227372012172261668102258496998356745275629415956773129684847724681502919250055997667118137501866469498095063848876251987115074443735191449475135532106786299683497785264086281071428261160996709005913607881374430348950565041672291616776272911428303177343500807224336000672046009787887580376251186231234916059624582216094633582310418253291897426479790124343477040134711374884970938798504115786727381545780219273775294458870990835229319876897598101902275558614165363198134251767351116254121398852648377787518506035595230660712085671491074263979515209683452451875213185919408560952975866580366621124695779644509094834066792405620956454115884098941967071996098497777866268908191237016015371989597051145366868413886551011465024599655082760209414896244344889595239038998896099556444125251498108637490596256003325454561022940785355078809366609116202958281814509163621678531144026454753172604999285506720967714120403327147606328864203257955713839747544953858176446609405850600709303981055945591141227681269913855322280271330130496105504066626873689160749033525082977016802328993586000634505150640629769805275788834627585079665680405671908076829205274712588606168018686872220734597113339980617271482951019182454514983861321948930537872213354027410126753524176555859266540835703635712678364767121921988698222486857090419224217984790341153151904142676039143486332963950832206564634163970248411670127542714831045665570883201139810233151122146963019247594927542925958249784451100069431082674798872996466419514589320831280940183705153591703622408250304951544447151429281483110504452415485973245975101679982344884091445647260588080750708356514418814425036688122060861348750368213889762093151496529655469310414239789747896233881769400861933492837622504997380727385394850886619539532262773130902667264940137549550583812698082704215927438555797157016502044961937602755770746827943127620343732919025170106811332068670216407651239793483829516886673488729980944946546410236573315063237762485841472051087740303865267212628915860089948554950082493306309970747529057492956982430835376300626736627180363234404658168136198258941366455414804606415446106326269867321615313696933571087913747954874558908921727770077657540769990175392397855288165599178723649495912219260478028507875400761866895209326805934804608596091023233361383009506867210780665480306848110493729925248970646480932462550121370826409385536640817650291134310905871210892360966192618968018602017521810762955558466089118048577549466436783527276193587541240441152426774454683876641302012628646988714078932397435593084121875686072340240288362883767541833709222138128951013603254689401521864715085306587280794352061594084912031886634478744399943239073992136271769089044030442613281610350232264159411557252552275102791246178351743477205385879331113106760151846942201238635343889782589548243021566487562539379938614879729816585996536325212931210931721697527765177235425551399995679630143202605977589000982443705988495889882577047980106271723033525905649092585717572996748012288732537398393504825982751817259868138743020854184192387072590903441517252975842556803394540560796987851353665390890744824264434364207586792747736098105438486987875871579037962563271302427058085355218139286561548333404458093937586412061604124493831942479530221301342640114229899236380502509054557015321516731552076516659089266500451926553620527661336483457949625699569144693436904895547186993957762768687846082989447912954534841741438233138553649816799144744089958806840466707882030069379239777983485610751485480213225289276231781497424031312649204173736500720162703475481115627538935348812150258715913911370962439887355041691639808352146937272839102739566426097159359372910854117616268980794699264998379242877682262381925729470898043949799216126836664739831117720390946565977989857601890969132651491273313955491945442408522177357066975775121411295068883184175453718790288004077079199332029349183432149446480680153587662102266116454376679236522647683406801068463210722944704884125886730584669614688793949080346318837372915478804657797158515126441342590211193902383608335371914413755466253239030214036642742883739748317947535795552998769072371922007370862165859866494307154144823908806851934966842728106461223173783071353286928497941961026530641282286826368925110606753945363767695047774210785505586683949130919796875471524858898771979035030078423497912140837104727965978683325030149479832209601187403274067205245064749028939142162321753416420811180882569210702323484632386122165053225572012407916346353154139103867052149197968685997796019488012459526255561268118407185477045563087416212324667874732501751316442435619455599844188177557738620753773211118674064817752514358083244840861290328736167769169046331255766835535872610920971361531692984566877286850427649310733782282939507937115450105697154957202148351469264741469891014375146071418260560685382599743324705547782710461632302434332788640953837026011220740445344258018541530807485036713296482855664117222960962553353976289677230231296652365749905456077183821630321082178531075866880415505912902535946852904018162755689950263252807813881114612164285734522957622250040622739238988347164868954985732736053672617308668471809021032875647096717688603545542065189464899049656459545075185831005030189046624622242696726641475215654313462701745459116648202667568130580849338948926421838000530929737062037541118636076206130943583115195042804891728498145554591779566501737661299664901433630254789872218575498282725676159040192363924874946804595206019002231965764677665940042535137030750341028795481209704836181918183914402889322885748114788340389962622529274073926209210193142083363588883301209180345344312443229992602856950744199196848379212024966415956898848761027910332231185531405497495560989249301397969652010265600414009222270119194635072114232193206119587426537421302724936347756809394277697845450489335106595776521849616880164957284392533909825716173627212414444035373544026351706717264223981594831732440882402365008120605184703098808834536389287683803858387281376455882511470434746327592764048829087595951047054436581871190960866538767951493569744729996444446230039876266572553178910738527191461951857106965640839255218705077380028142404444252618850730653015364580450096847942530158217765646834089193471820379981369997781025310331158519619063550851999415359626543056371247970852732833850002946349991004482915658559539522478916225774607832568288224684201114893560659529409646105585412111559471644221865703329033299043540349127619545837468543895625996940909517265426837413422592256681579336484384748901962581069394628679055405646364991266007515108133885375977820489614363627506306999102844847437106839602811806972139017765706161233899383583314642908314000742877087830542067465933661431169586979545777867664185701129330180985767720193832381435727904641794865478239256060502206853061861045628786420354773260991857208772813138422734879462122057385212429005120443278381212340206945098832737368818434338869004753852175983985740516807082876319436774544986582254438128328281529497809839775737376109273074635683677295660859827671777337968712211356052859832097393092683372726855018197612772604512971559316517307666824423389731346448369345497824052080286993579936416987345116688582025918433205724941426094416594565552565979836606613214332523676009063534126479196514750570724530630283554691169168749213234223724152385250885541013718697688187001662259528605826770185505533043535697879632455583533973241200055419312833629503828910096284451198538637874144059658985138714253695268863666728906359584435316497790098928336522681401228564362232081896257290450089076342968811137994703983151476569977922334946343571633707544310812705264117930541410572982047280431320987384276172596047854177386741465666022798698368576377564883799239810534785683751550279917354470209133674031899524619211025933181102374982153176885814146598524385739116478340200052874130387238344917629433605334004766143577933463955829521867443033975826810128015852067897164561005518967754667415483134886288142974127081814481274013475081804470066644248742348796215538861992272031103011872890214531620917614762370447761933622916499109760318627189452673102293458129776855991628104444959682008466888691369280321790953831354033835898545956869375100733693871482254935320118561558876950767378633900033240114577853327289060652649790681665994542336983088273758278143699952987086041665037213965435836080465071690441102310125098970453819220291837371062308499833462903063977953413937117112144055476165172554316961698000686414565804637679188109589728238908529536710378070111366539252788931973503546026512804226690135305308225420278690011274057610227486270684994923225964530736543995134527100424268930505235543483814195132517705860013423400623412641727879374322996453906926813372183367276363253954125916876784063871771055185868269902538546452260636161342410810128761524659332768488780141383685784448655920221938370917389301747483565486300317376215011332878808957158672627637716008453646742113367474886516325835841758272210801781193567861660598576070834525315769028969767618045860280204865359575684046152777631025494317569718666771887453023050353745044865792778604534519906724821814806402696492643292325227054175808461409844406643458727899553267806179431548485053944232741017987583426562743900063306666578652052627238161798781519749834055247000349172018316843281194924487843383246669231968925142662848157728832474144259050248631792132028451392737813747513167074341753945302519045964063838195681102298503113222010278976210600149643289356884829913921002226194781447790107524982869815341107720375953260179149495545657235012294559217468883034571916600027735440578557773641443868553973103079011711997732616766763095137031614964318186590782657112099445719812046191034512187472740369569612146323268342442351863271564614170173280040069336215198849883033909937474977990641767619837016676216617278926042801764852854608112765804636428706242047413594443011788397755254731252993490338995136597808528841137284162470716429167957599959019719017694482036784284708354879581162259207821247719873580032620043489733205778269391959647743270137573270329334804149866671905006144553869239963266148270336235815303085434002493831348417790052805488355349005692687059210670696820788974593328330571194157981692957455789067934901490522058021120995847947058189278297602678075864789651673922995349413452203286979153819331623120155126002665031218814930107489915792529847136283044518953958062377979246098986754435582386647771133214354108874970920264028362011398637037083104806678182430890664051232661719313942961655520470486631704304982620759686621523193879754419583787200106784669395133396717403636126700893511453082544492707328607815601445966861761648358465954982224622195071436914490238188518556502005944132709957740737299903448833582245579468746097931024743880652152793589416352347880206243844544854966311054056843564427788504004257850344504396243045818275825228563189340291421574036967830312246020186692803197429200022016044735051941884187834041437626753544164321005989686758132455151901213301849843726824207843768619138695732841514593907451426025921322676177096806699436039176223517468062460366863492726579542838000229674607672921309437183905427882193142944470985942981605250450397761862192378749663093592934530297563326838404300951580685786942031874832753315014594292700750375841853487927799095109143444593073161949562636859227549327135427299498149021122876946240888121318298903641551568762247153809049946342195775214229653692690977161849480507546174798213421156792336074992452600909305715928146676646677492812074001532687124859040729067111557259690848776540032765887173813297844540512721823203402483313220067044534277554675066504073070806976129156730257765412596929660287364098343347053653152623284545123748439401662765553533681190564215914590136286234177278603665168849310430100963410920386350311134285056573997605563640040953677788119123032338151368247870462368509891525289795628811817861846363047135615422056909917339717678769222354939916803263298316792930139932219332895077174466992070967547381140328157147497830695283957540681602302202090409192177404351040091899551043724404347561762547212953933736783928491604099503634421076556856346012161025934661459247121106228588840454445824087840774651901464378162889357757184507608009163855996548935691103055196433495796698564239070337267882820148577764817254164219701961508097138145821455624901331438305967453891941104792576316455959694285102265462690636564926299277607843478191123178183253638613631787478745573604235717670980717694647768506447898008418808865951819583944138457773664178419318756850124686025964482109873769508530465621968172988191063149229392005281299779225346505321939533776147605602463669821086659849084716478500733180013862877282497912102049735282993037905712718403106755305714828072075919433109961760450885955784626752057138608678931987617673245846370101005057226054650830109539663231704765266225191159002743039845900753670136705106321953149537332649334632787693912974130222810812930141994871033512864607909898270910938137753005919736692528928927467808489266447773502350176289628186076027477523914494459619751033536984306394648996405301295796259470114887106176808247720670275246710078994085306405134707873212381438378424292791739610742620363457964996653976107813035955240714269414877662283159078310928743096485698201463442915904017408438448068970920640795819685449916116441347357528560471452658787717041990013267229659941052659481524914636154884232388363677014247485367463653125921327097587445781314322610599645734442330821267579725202338197826483350275483652984716856650387030027676280957581436724082515290295532888631282396255738347929101877303904886863308519601295753899732465507875579424488217380946230344990008411435752557078067035919216078789300937847186975626617560913724905463222813639925265581123197051927492660498858374423066513003813162941078889391207443304645125907815020120167046352418871672955935752949179527844983359592015194240196036708187014674727556876593188371870287758880639621428252767805178490274556260203146366574528679227717657172431459315229739111970010663875577448119391058977942577254083038674848746408910785182587029803985854450766147122453774331944999997856760551047143313202661169753262268458385315099966049632984232654796014449509879325752527084534650146135717021629829418242847156929668498852927377580548799441755011149736442146550334923767458328070986991732037034174580967285575226742640905488213834931609866599400330663984987465463911094763184890775763104196512135745712186257378495004246049626724036795137164910632954143357434797136530877815167408348245995225743828543536769821780531805634523282096051788261667421367687360357310983918481654149346212970520079773368531899287451358907893408967906954527706601042445247792508709878405889980913462586241013271585674728469614340306763794218103453498388191265935624441037008432106587696305485906685559778920671873406094288906550347601757364229338607056835167778692547594502408481272005242726142827970382596184770809482071353882140091109321445393602704653482142293016704785741467166306582610510010731770045476665106355865306361382806440137705730768405614344943433986185206143344500927585233174034181682444906374824355490789528711681532785607324625072219970771893125257851852596345956315716574268028584465731088038769712834418534706392946298985804485469738623891193864334082611003090991306759541550192975672095725962167023675704772115925335274582640118102604839135565587781372304048047077273247027893820730802888308360316111339947746003556058526000862965585385395090656027281939478155102658673518919824788552794869585821907332734410633858753914099401826822191633259772742523890969312887381204704850855755222004885461176779211771344984664553468202503231889684338856972440239372676743777257401839688131792102720794337164118830296235740022184961512249692982705053587174481967148276842463459942980245180505605742413163294832974387035869923535844737123709344128520069425492563736449448995593647528122124247112436759677068193313027706509321214098650400166909105949652993723806362692502057263585670387995184325295452850321892743584225892300189316182824313724867506542852104128837398609525482533017369011479399940318080248218057331636257663561445760064666089258514786576548235817891420426967389704790157917279675986807899358447955167596553206398953545024564726501489285295587342539772956702698620418086945652702239384390056304380536205205307324411419017657524347454616419121166773359105821256890054282869317487431464327178587559065988962293089705479372743522237351086101565600237416368505394119973734933487986758385542281470309426574419650644390154989790542473899001321816193127742418010979359115501812987609157772555291687066254916553017949326124315837660840892572608192721903705871825830760484479991070697226138406721189289985306555874410646126394401380562773291025184046205386272758391997489553155430511928012345380108681230517491379898644125626188317478339576790689809078688082928242868060670283992711791599183762152703173457518912822760354975662127052478107067808955130090423698989834763249403717218431128011826479697864117943585976086717356757562544747081144395750617892072590256554804944954445413506550824941265422415748508553033333612496216296476199106721760210136041745841339279647447015623432185359858489333768055793445489091832596603782395526288403277333742708299553190384840529589791864020262785431833932938529799013504298757915563392557526401983358634618532213491128287587117224478891218346822787786230482901483627800985181530861789403187297315297168209816858389107286801515589046735404853374790137832274375360838187688420269592577083048600440005905121051332791876093783682404410569681058352345218259897760792202351462021519005892881120588464357201354229964364223692757244879882087738336445037650173818302787138756793621514382608821941802228339539467289686653727686164857211240935439021273830381247145552009281564754070852959524246263773783782551856353116263474941320293195839558456054254988229717754748030084673092285144317246617969901198618010955526473529666656124498924566576232906837910159842070807840746523090136113611092289055752043886057169441725898804246963357137193180575326785531071566608399199909714871723480946251093703317278860573037025399087306037310069207135917729355113384856586664861734645213329846441780591750216914371446412765792419956771790309199659830858132636893220265362993059534466767050994120181253057785411696002017120188498224177810384009042187215179583633317631461610580315969260059159125388453655068384842959689611329599694582064573219699127926537756034813999073131417157063215494662599068769534326236427466797685952402070215791972889864379218969749518056424818715121175556786339765303821735563527555373480020712030438834174975262812880130833197383303376871676405527566982969048758178341136898002030491460516132780242826719671618441183866194714165937771547033343492943596241583552035063503106304532172968581313082656051023509096710470055461871063753856239052143232730079795662994440446982365052149876292902634154661408800889127880851847884869641099863404178100976336395389068696181500632121794539283079866693404358969508778148201348981474746760074219363785751922232308122814282858130237952736758451825555621873264956733332611902594191526408822275495253655023048662341837212663352923735900570798320664148096702929196368607443409685004097338883007512576456497487541292307426867015989950662841454667551155453317004338123506816710383588600380176627312260107724269065604973845574136846453387796375798815085448206705049222655922048063189150355087559030306141541041983006694885545178366986865859841663814570769745975569268672599230463545869819935969173784230688670338929952748937142066706587770186496946611952434917457093061821018733369642622728132405699164457516666989863251992313862038090859607908155098505890651933243752193793897304952222399319880730751349344362399089178636159727344509625327870871387608830144122931900533884919681988400111812126694153710123634898849223313924307681562420703928940009465367632272613194893194033366185884342187357752168358161259091117260383851672776548682110621312498497197135439109838674000216587863430803647323762447751485382835418677117072725994939015858593246097062036206192460899737883861401689944061330431296091079683802132351165680826127397843124963760473517967404061754183601084143500668088005325918641970987949504256809584916132286879704560133533565802806531966427441243447772111171634602696739713614856647072660596322647025536676362653022475893685837968428787950552563642741152170633844791966893785409326544306288399185651334761576841688719758097066913205615587610168628837250839241667232070714480946361580066382298541713777208190028051420844685327382466868670845818803687992684132699281649901074388847412332569732169603890231285396253704398614096322513165988640237759575775642722824804420379920898740974460443989524322642812048819686023936021434177708899709685505497182024218329744545615939616875497953918046449082998126604546513802307970677948570608312870890268083137868858336150704838336501835351767945947037947398131866978350126122049571731010465066837352195694193164984758981398098604082737766551510802313105852900832612334355183635285398901677718202188372074183488734170189570249559688878564021713751029354152031023589547854873435239340751583301842023782531968563237292685414835158060383772743461082933766213162624889503849005319150484124441219631599014970684518299843364148424711697642019066344846148988099039436464511641299309297293988000118970319090382271014665359411201059120311808378050207286640653569507231604921858035693670442503497227645886581822712417570835740239398500384539570815179071024597516946494961955108773758973251978536265179720479540925922779525996519039176293657986417151278910300320701864615117762748671199376111906864692036434793552603910520073940085297077371304386621922385898175772634530246303027303089110870499701768040610066448694407299044403781540158374478430033907965837236269576637858728195633772985642918059688238578869705335172739278521202261482902793198375881186419680963930376681924637003913263086837409550054774008755986331200515871691131301242150151508689995149649504083925888416406800526476809651416859364278508683221275200907056777234275451753151176814330650212324256049273194343054021408341509474321959378331270085876363037206550374593133949305880022745139237406784280900354831872598616930756178299403074101293370390086154813570185445309369340251338441086755442332377836833537501466334364838378926234065434855869175179414353153740977513869691169350770301028350228250313585981979820720848791967694578560419289871528843301337758907200666157723035545764661522136557773603488038529473760296659419797772651614971140699738443979632986743314233397337238670717494537554822827590027648020799947382977062207985257316452428811846642285065169658340604964009902074493433222965358742104752477391183429783354714817307163148326412019230309939575681173122274430960808747855956566925200532730111365332099434313600519851257684245047717721522333169782616548973936817117281101478179784972125000055829700784268304059177726973648912572463519279180719068799472465418073564942046662084194719765219062124922077675249347424818908430513417855227803723127664739876002625003808648571410158430187806533741549673536837657552807790084728556832085779581460032424568041714504577934959488469404722433243006266339424483713504708085965144181661998584518614622843672338819349881481676571922736337153253026050096718306432073910983901803282370435435003805174642941461522365612978191613020928934352747445541890904723748385267409070548977843356339974162676679311503729864376574143908800054195931871525191957933762718979228647812680608984848435415253130209505540413532019159096802697891726551770376138241780964832374118974320931756056296223838557883283659609842690335205446075931701085538531822093720101614322599946941848040982202938944299671302366456871761417164626895857084966359479810548257944445078796631203759408293832765950132060958041622997905306481218289002362425779290837984492665172092010230502573741975802291345448997853837110689985463778886059297890514251530499128839559159476431250619982423647165923425957413575149157734599087803253218116287996265425591489870104481963958805220662611642124794284736704843497236627486310159342466608509689838204944938405981481739436886472519494911128801488289358503885943858210963970264500010910609848819968536679030712613094871483461770101824836717802121008073243525690833560328396487338807919506866754976793164851138608807739083404371389551986308809328092902206369284035787322061073672556529214964385515531967900848599849776346108222963528605717666484172604520384473281294352094547849358439227962452426206259681901089396526058968726207773000544311928216894443088103239101711099731580340865657694793988641763044178782510043260850792682834202726855307448823131136709920574917112688006973950135213715287951767201797889251836017069905072811661323596677900911148960850224213282349814968921633222781856163599783007190284673613753837817278360140289142294178543096157560099475914255261402539837153745837302080520430197285129897981944818098885622309614225113297760729484224174441447604474512947603482461698371842706220697183746039748407523109884289975020861002556934428012779122236725445255918036247490343905778774208519099111596648236311517351983623319660730642786485072144560075699557084479579653323912409370899138746250056130687332852433924626701772445942062399164293692936782723862581186497262350667189704922053038338409327406753833418372974368416301012714767383153536268293885769965928156377744819751080951594156913454234708366846527356185760404634881683806545769044215670749805700554274936912509630002794710260096252244187739284174408006054329891180445445243353327618812852739502276418884386422993273100112893353339054128194752811343061224668413037633749168293710082952598696280368238172657992324487910941910720944437638109485646665637754065746491219849628789596475045911723968018564311855835418134837867713164630798088084702437411442122019869603157220388517247979619303538936603972248754475844559162430378180209947864459738621953573711307396244516106591745375870157372312631876460383323375430167437672256461312859779046388651634198488645112141704029921492051344543643666919782664442392274572310073347543249530238822528516253895433112119613338836304590567102031709978205178367542416793633936853379295437807940477167806578539931405796141961296413997903168314768052869203436305381029923450496221857645664621349535332788913770053266563450255568542556872953235748810987037551130956222649329517293440877124782766815261208073592039664717293898037843015464452111371971621575216411232690179789515140271333498429173999444241019753106430778087699153395346099109817622756366908771289377778508822765406667619076555003156464494087597607417553342122520481295081241764658232058936403578205510781859107596982580394520240526719121185091206662326013056796653840196437294493819450099968978481691768641410504446158181528265639287875869395845520487956904742952993019320395959327976229151324756372943692467511569588282191347604102139888284252828509733817424049440878633727484907856814247935411133511522138894506202254585787598893775130422969923466248898273843541683182938857735371334694870697518666912321080554986354359251813735163636404706720011654785774122646963409661717108027645560271920380440904415383471778981536209982305433539974308156230014266147288465878734448372377493663456627450617124103524492186622144381715006245635890252970073006963208716026560357567543769994707173294810627071744508555598535952072553552080094762113859493924775274057262214123775527433067311953509978872820722316648959631937668520452295890767936219821034013042720666958675393603615057052139848086415510992705124850314573488568930033782699433283901243106031935999626286792271439402293601003971682406875691304718397289278620627048153194477178375217214810688974154481666464751772187104907448961324820461707067636426398079588936371067168007347315553415077649804969448186446273834480293412162093498919147382532071242133969565888771833570649471303125204972533334457897132029858886620663656975126206396412939316937408184121621894175134600976003410715261991888887989647793604898924658065297120638398473387738492184123670925039643817235176984212619668738264187790434348631885704142418618145557916522056944571788995466545098612009991816752219047913187419519179220911171638309017686748330625985580259907709227686019185990628553378400632040983631771494125396692400961869381727526391485699865718724155699965834457267196142725806865613070532513526734367870532980784356216441425447364149895766838983899721693699191983481286901906113874757092042295131939402356494869571796364263162716053234735191382144419811339951911617384919081245187698268041940167333994460420356247893973995615296551222473920583220473720086257179559198672017968535039839409062250409912664939806434761544483140559059628315016458968552937024058559593177964898949406718481963110475687886826043881148978018996156045847735942700940017018713169626481519341210267946395673622381890076247514244913696158449878920569121548337106692867493237324651094736716568988480083694004250535973464305217437748723136818966842601339424419707209913143465331017127173817045335019595026864170107492026563365985406648829377545488730502228761923230918447122465180669093856040660725849453480420208985629197978184292793516078479294144577217776519549299682099180469508813613004039690370444481240165466329055878875445316637193156446329068461284550384417563303209998355091502171593541114388422913803943114005956966142733867553869236495795870622063452843749933298535785090014199600805041795720642288776871122820807136623869095191837451852077915902648155202898095158193331314155903671276040209876286288287211928694199291849955252133988140120894019000683869510569425957522415940106094248772641228639244904697038629936326456717170750738308928880701844015619027111556523733566372460225991482556961195322265901750835259453802588001324373748649596009580310067967079046849649966936002499083915150198520086495945633122473526278315891993713029885877944560479873278063714414826293603178240652258846810551570534766056708881676715215842065504836836559341614851274497871784098476721465632071051088121340453873008720531517177211306373956814674148728798106273085898457131986861210629355224060322125029112202191954304200718818419748169652201088639782572804825297307247625815495657979914118238965349084788305374898605749808028711277291682608033058971519272976803030306367003151554720758256650178458920083051131674207973724368039941330012889667548591973220000623765917128467001595699619817606100107420778709730407928392840912346696371046975082390240386024769803842119018441005810648396639473799621035015087160941026812577228907585322496158310884552388389450006634336622408102928038477575809001871226861181066012848521551285494712196322257246730964815771872948503101786677896261711312575073905819514308073926026188100736488197744202522249742271615955560203405008486542779691069228355739951853400272437265044873395175901444162597657744619117913303358666870253873862825825938235212453830391794537441662388586550886430523851421688652259238944991829897325542976068469409479628673162873965579248539579401881755548813170045560998630906646499147915814300465492613441657801478344207162439625135789985211670266553082272819380689046761415365537210438343201263012064364266653861788519212314914285281422254285733115116603123266421912664728246175959335848671359841248838225742187956679178101691314784769039224717430052148583658508310350848000999491642100529387655946875722671651757663489694809739401891308194726814637187885819402837250337232899338600158277430199043539468483322677344002532451543858370286836030906580029362536129826488837235860328886495437366408991265495518936342383424418755647828979243819852658903705939719653109075346388278573311106881102542088696046133282453211808804308121428534138802315941719509931611904252506733603388802278300427690090613211469225714267721301034296913711553146709623199323236473482270096783005302752638631270180796021137673805602338188601691818045039643468169312586851105738586443369513209681404849686240992485547909493302280050833371028873342881130471994920971723006438331518502252674703311425110259354130170238678668664356020073033252262229974629083058989816680017296915660224628489634333313737517044292930051543264945737277940621235587852432480716653606012746376322744810684611135162676234338217458411015899885829028017150918151309465001075197471607624340258984093420556997040032104974967694878346914902431899504805279023881945260275234739760059339178825586825405870923749165024195771442429415365834136632510065841584248155183909253424501175248008558431959471409125339171184299023417633150556911926701730436013919752986697227406242682552196269167593134033254216918441871224186029833651549146403907460551664629399231953637523487155174749383122096118976007719233676487515489505938590246087442519495718775552102376929886737664329282856040782857449521234500142293407473858599658812096014389628133248858581706994912643202607953978603297368047442207050261250840248663613149697388557335016504500894544467129080853898572913488281847510619439455389006908169759694222586644158773342858893517405473256410581322025520698384214793475454320009668615217458623710461833805549276103793463657797901811341464305945385523269709529568196466563510690414087611704618077629215727189422849248591089389318011894492053949917094233536084533290705621302622273080098099596239519472296175212743761954324564311095675791690398441068758913116042142065410094747007558141983781413615950801306132540186834404011462932265082876865724155761559601843215424072409967435696260942066771315857706509569723998089861924924791243950528728725447606929519864443613101619673691628597688481500115993579227120426742610404927057247486308566230938553017637115568877053001424435794327687934331562677964619502597607246468842498562709855854251225819257124182341306201003028771843970494924185207105928182493711956593265773225392202166042981308643351561929838057279664480095652829349603910024420501455248092597224281112309736959982411608341744102221821694598911499767624207150215542133122802450395314674252581217399446804586198000130048603041126954882581990687542763699554336629196894702320907794069814955068566448063688996578574578110244136713087382516283200302563074592307096930422491133306762413133575363093329562118952083399120005119969164021323121386531695799339046533560042956501065649197899595212990488789087276267453807383041529092529051103968419693759215705535996919810098711767404284771841859245179669228120710729995636800271108307116720627995891532425315960410615195265804077713215013336194290653721420298714276129382021721890725381660780940793926634822324947934944239076614911092112771917324213060453289457531760884649125534910196681871951268457235445283908441679221184753326512803109941076242299005881899087086176329126132303639091615868197505506559652484411775987224695120283331683526818843776917578741260052589974968230383215930183100768501217013669995936940875424705164010390391867815517694673776231245568789280145821078767013518029910408967010264566411034580747577653667181178677692855128876509742227319901509222376229339216261853807084806633061229094651683818757220773209680164793497174868656504398962900905900933830119505260288555799596621304988796125020676837020362982384929096428782922971917481539937047102569668471540115728535767313586641671055371777857199437096392983517326531826851655332715239176474344335697860485907920515196216839987606577624091345431993923636131766013066805046493138345870245821021003373572545009489922806890101700308085048273196111954236541274248842924680433748071463828240568937628283441571949781286417549529645320598236164931841221790424120207714289084079980087977382449735927146680999509688067152241055387382278844977624519815984337191351930157159490000087807636121764146285709558952228763165778616205412482646855480000630391037136268659102010874286310736397169007970150281996460732891506408863625453752645474816476842005600243505238908565930168516261001583246570579527907374073319712526481840407171058379687402412389045356861938387369714243802671622838868823445031534723926939391322009728783932409223819361326653440163740552093586508662757961709688694109008705739986471484878097717245831742169182948546688482199723517673197786656616528167240625183991761361999330764839349986071477978459006425799483280075844029439933839812945489839276772097804303156884168278179804503662548340688472115018440678085238695721406195947287438385881415123051257439389764540764183659788172185598791475002783600921686067660191924708152061925798573632442261752117526071124306295683846405840624824233646679581374135318115766967523753175263042941683995327359945750045273403340190966374969478207022892196214532924577385780239098225157347071351267565025877523410546215292724286631419023733995536374466065870720867739096987383322871828586013078206421354625985914089435584727974657336463678307136818081496071133897233481644391097993411290290126222098139391148033000358431091386203783592336172777718170650184154584827276246730920723902782255584267748803754671556228684399928980150230379790547537990335351242167453893114211341046308489926201549634406872689923270118036407044972670361148574753612098153835577863849888113039308481605856871038093071131999904669484778876223294039752197385948629622238305931750552751305859566415087751296174296541737158126707932621258601220570877176257769059213535358856291538235305891001757295615040119519141664068935753783161385817347823467038867348683621810171040252847440446887891312501148114500606940125068235315881139182335450028657784669858413123547330389530550706256653089327997506733731489131365611791000494481096262474648293306415891419445827279729847771260886723208010824681913082932715577774657260943706803993921419827586041384418951350147682341876687898538723889378938148054263377704285141805322367559365317297001377183054772306249086713307467684590222122647527451680453685101639897429369275118353331930798242939399954524521942315639575769536863447951024821561855619724450866431358070521773325177767718532749149907853289799838387567890661023032810016230892896393283510644279748961596071306500392341615671849511435081686459671081196055119085205815686273441649989743686173825185384837532597055659813925189521899015717968045566457755215566015423041822515069722665304370028843800521410131205417120154286279703630669382094279560687007541046176867549219953356583596394628462654350793998769855481550649773976011740753189883706546785430972804988838779851008659879037394301350012003611087374335576201578383671335031019217318222844746809421965809309137281590159341143411694914827956899709589023732820253175281692051419393103230607860154707856587014336391632816531918524144021848943420516970347110371229509933950650100835676060548405096801186807809750124993671666965318556180995310405012690255405708501392442566254780356119004214053627945138395388694449590497014776994797100941880392773563409441715183344538559912924686991333829677837102885402245558852007964585805943783577827392793232481180432825988012696513353896881260946410576692048408969027165478616157288410365777269653858229721326611444406592490788679046188856821444581422350559899816223603935103513699481661436901687661959336033526933238691457110508902433214738807272780273725758042829031500504295306495757460387750625723749380392340876947303959275637042528481520534448591966806847890295297243603061048206586931976085192664621484647941195893686833635730517892278355719064615397141899810377100141978481351723004131506899448347421245357252803188532470339772696278473201638842888317109226723582824683573561015996409297163296051738864534911622591719273304578859921027563941506293149134705350342640397274034462632477431064916132625420758048468947201036620323575358938609189583576124949397198184604055277084887643941143277028122266139610582629564960187818520162383069807650281943772957153260533333740357486095703011222402651103550831960336690918355220202009898202187805439820764233229192814017725191383587480731555150070940339552863078885425512838238853629064278134239924299572372097226353362068554017574419824378177798815468887491855073539286662490229311557859029726509305012610597976728640302464527079751297921361042546300005603771103798743241148661701034498690277728311631098006639638090181061525979027827979226408448462766154501900248972971922035023248907255318140142786870700315743780478936180389148768111197685498510034641218905452562029799862161479821931358713283050150958371836509078681615405833663164981728875023190872409576777320518333193449169061238046728638251708653630672452333180855895734470477768992018064433064745447291779914511089654669140196259885242774879037594138197014856667127165241251924839467435138582983862203236043615393452485757786369408423376798354963439283358197751393514298940737953201271288649685085915307463072446491388353209748266374082710205259313333816987346394466224349702992264594532453758789427126286049037015753999778574318191438113177896627260243365880363221149736021743096913236892942935910184096607953870107904423571136200406078113569313399998385883960391924998961777273724323565968978506837472812174655324429917706916384469075775048284715603146826084927035638561545919822591912429921400823765188193112433170503214359004518084566562514169630550399495547455499733736682432697242942377511905646295959176940108069692423305907784435003560357132818054879546916676183123907755812367845556373128713483708314133550946047251178987453602422376822410616360592899100163101430672559872155299261998537083124824222863411026567107720720570053844677331231214511023850531067678834842230144661663807210246120421691246835865966527600737940821034042363637933519637513043539008047091768655957304441406358626043288810645988801046713541709380903580062087997160379861014995352211455737292400735389213906086063918947536967886576225498711174795349536300971761020829121324436003470858999604453565735165647948657079410888632148924190687976310134347405138535815941991587289684074607777478277939919450149207419612656592228047017218455443769872889399112022584937224663389430417667878008616567003365704471630162489453229721856953885373460803641284185524570816899145067442295183003140431006018516648836393274732607228905499730455512484951289538603776433825241747386714364530540199321216623556821031912024371296345437154814954651675720550954564181052451003215689815200168885705853558477854169465485964567481434348754750728266619768676799882480417928281651544496254434114596762380943675731844074156069327275069767494033409515748671188734576957456659168329030333719849428308539238814195210962701029479459856527833301226662748750059053004156619219900486445539192547212805129154087648561334113209410671157343286539563879603481939057355113654333858306033864826890477888012581619605729944419731889125603749339099226267528100675531337163813758778010385527400625776668528530401130532947230842305055576713614253058073389003194712774028266396312908908269088883109754791043296302273137062674085246979037357363859143746952764904157188349432093172261852151319607889156984845933255123831538717267021308269118825708284633344044905008991599933347366384765098073054383876417218352176529574989865729250678366910311169714654568367174264321143807616822648906500175422652990186042672850753566957216314646578467684189225875904187451012862954546096847650033678074885472674409046724942455197237961350081697165560167885648615888571601308572568486513153187590023351769524483992258181190842296790797511081834824094368947213306737917730325698328469940097555745967118762439489580313795961285566321263430887391771524581416563167891517638419297083290564614111758527256678630106976093443380796011948666680606443343038457530092226438113658192538142797625596935566592707067313631703072578845166210060008415536958931835263478007933619043272667274496556403072783634354654004045090923573267723645528574970832636138336613500808997230191457961712750926789825636678236333295510943173697525881251841537137631389764389303776107508879613473448217532331208235693311161025983876993866483845230916286095309859378139497164029844319723351859479032829590912623086177198265508081033350847980527558312305659635596708206089867978609544081911276641590902542880030717955764390686729577621463011876914066548785744672445705154766861312467112345266821579185005563249596642203770212007096378167625630288918266287487150598902697102320529976746798216684915362924453943303878227191095784230481715533540628214378302741252081640769112001207155135752439609779943397711334263271177056715410090112774046997591699924235981094729241046682439469236840482314765975707069233948320047567390131966124349679361403569565133424911482364846311345398500598378799800580720206177279060690427819497078296336874784765538023560189606855795163899115829069253520068530549982287798593309104790144305545081264563322905530857697303777339561996861244809028624054590039113701964495547980440270991381260991372287559235490769593423631387027564183813173902279466419892929789866417770449627992422827469254329664822607507298256040460752100195667275399614592690489518043869706671033339547024138337128283054776930130650038239256289652945483882024120203375823005378407740887277953570970220202916892196479026416882364312246029390716012846091001093912118009408375403503121775623507628640611831188911916563827839109880614706219067407923410343228640671276336074478844041742890204168531341279800151669507481336384537621773125611352864617137484356630324098242245428364050010559438128198680764093648752973119868020331127389440067625040595336768641681259303401123346500382480824476376122426336962736663640878224002340646794372731907192765607633874772901125878439340013229252461525085430962726957763401676552967188769023140525153740470153998787909369243552853167302664277575341724551512532725501422602360626504475935300267344819383466292764856962278792648755906661581059180559797664505484651123243954314765843020715105548057270578606659229154639069577949392140044703386751411384316568185709881038018655290430553187383013364648442267184176209458311017111854459116471682109309494445933336774019287344919695275376100639230572497798369334941385431073442529543874780867329341724852086436288984680189017773036563865310267093795570824323971304817247437527144206437982848554906369279737812545867092187897599365010270365602875048736143054393069854098298328685788192149174098568306756668330376490843156601371478730029781216835754224540415381916257072560640585173691058738601089962054371927909807713222563099151038838735847942477794020481629026919723256695390295696688561232364725203238222783485089974042720370472441741936716615080184092048982350344327593449357189384648117847283237572807216300606143265039027512021085089079849330020317377502996296424804158488246640966105466990864249023404291169727394896703093741114239654746093781364239089765975468606656157897195690468376181249108787046399943454892231064486603885299647883823248865812122519246949731850239226289533137797082586226058516912216937615425379879057368089438354677630255612478907854317638209843550397661920093387487756542353291480376602468118189782173138150610200369635724783983395668794394613194563045443464183735713310471795538335986031426213987312562733070254059770915332347888442466791378193541734291434424312489696098602585073225850340935095504652061510422960413415285773869925860106762747558695857637946168933591795433343801922175314261853840887760464643051725566783655767750939417969880734395336276215970485673371074914413150201316124033468929855984554667122797594265246022395955035296661173835871272357111394877730155981208013605496356844591841140682455802317987690459668427309014208324100564759146140868634538255919443908228229879561921585475657802164898972180785347572569492865449051554717973620819411362663238001036276676238998547580187965502631849666693538172471812944308564222055149286368648016303773009900603253300624299889585300812368201907094130423051121410826111124853854299072283609304783868504110097413889157850409245913156041046626810379408349927889323956463328213300179086523667674738209429664569583393774441202267761306762281704281934080677110981624709919516589166250174042410507006484981445405006371316889903534929371310625100904912756386227534419458414207402714344472022759458538843185874518332131994981167341710883561652911066051930502138119371292166184136216743073221915110563805215431233044267463166987612371348217228105545153221671738228077868185629464276219722833866123197938179645414696122515466789420833312985898266992171861872385818467782587698080523331797853439408089668120090016307118523397741703563721068336011662454520566662632623886776396886917523058888796755878762785852232578672197553433255116812884537922392167954185615350565731953854855269010780478832411214133165527825228485958283606300739154973104295737005552607119637137107260944818854044534630601127152091509216400221100808020115735142393698023396277223233205573866118936291662667506757262781551834678834903523175630695767229020372884842620278583603967990977028964193896788718479199444507777727246021985154729420486551701683955956428710659329278659034521488127136753128475721737910395765720138718338613394230667204302787023146732754455436806750783769257906253139787217912723915218364557003595369274495699092713242852997283072476599546946058775622677343611072628058444645651689777657164150076463864619059562655170968890430872007350161314834171802266922105216339622595194878586410785978209445886684270335119700507074864372730480818384356771538331716197057135136423367881249187417293384887609888832997245712613313343725527951383747443446125919057939605154653572236753841329383606002573648865759031844058716186201347765997005330751034254696746411432374377547974163987531910375818086102681728222385673566661384117338253429991790082787084194760203197112263771542689811349719552626384062368489413334914339372339167543930665681730575978692111470133646397781467986887800923884382906896880514242328408628373512265166825985580278831112924147610661016000962344948488134793868241276612674818932489600653522019244980975049333259579876003508204668483589223385618923221558586396756795088868331820118695313271301234681359194357094499129755426103642827602630063740885182703513483496467115887913337075372183185313587061905651523170343980592890114848602134390127805677679299509823727750493552492404813829032405206510543221929395484374164480942788583984235796565983746377972911864847046032644727155244465736431989651157900601584860171499381714595382293888534415760871950330064574971060030778378856677202926029240973390754748067701482426519786250492179870378161978393905523037058734860823878079105751877587190384994991552345074359254288531645440525351127314592217598867933093284151959596050109397087265162483525640696258064137549235466949047608527437376187027822828817512324182747479384259901608741127263887166927178557710591771886148977651864719236060415379982160581544810737868128816284568692158320606455176541670884819066508120335850999090742576493218831392291049784176786906352700177597478277145688435061224051032392502077679830716431795892542000841878673145777456611546256134757129223742230149797326011717851665424769155666142291415481493061537088659556131098809005900659215764864420095779775417570999974355872616500851994815579489748158407452332945196825745855060603347085295412290225297185463249758483431177694693188424264481368297748798554901250492268104385280551963300164220719988061986438489075245687292606274323775615972707014350583968559513125652584893681188224592096126391540903957183312371036670756183372071243366236874181523991397383758598087983799866180564694301921967366339401052881436294275869518076482308819897843201830008891733463552977817903664152113945665528608915471234504006358364905237585173144421546170487464957254844289950297082892253469137648988682305282559295694922141964805193466798766096753095197109111080487959605088433047636498412258971082520645836871582892131418813028173232110740289614615405359996795765739977263607311497123080977226926300269061397729115913015103471508027036424434777069612146356002900075706842752308150140533835481424803378131023251163152751785136168009497108232911890587173109906820684657046224278199633920521085601010057259826580384213715052656667210213898972688727879474935150085719325998390039474413854221439695105879216569997041576841963167149091197488549855415911481503209561044095827633625941777158794143898705827379741843110769309321242392445657137146466639178499937949388517091813838330159943663958967606816650416044244733331102694178005046558691329709338348060856431105080604027590355425980548748985128261262353106001426733812903772256552699188223184355984786741814153753173721706623075235081674007250566903482877545584216489766348960284377045530451280257397472423053888819424901638662923068438043219551819342520110335082558642582720607406167642116260614472582175294707880827956526219101281960054104938092153385634003791545055467499900439650549766968853727986268403153952891406557423313610412355948294354372817990033344642055450047350303670161069510631794207113646334813289894381971540819101730171814875770462414397087123238966434021382859235837567683239833242227436823735944401420882406710103509863839849683286733519398395316641246760437796543070141018346302917313512025973670136120435484092531504015928213816104730121857333044016037531351259854145723617422744367140229920003278669089264594029011586267160550054020376869092181424657312872849440416751126675462618789082285018996239921636401337637801611107571498000632269199136242678203013626042292526812546705742985304654414239258184044509454675715188049090534405358001671276230441093977277475665380858169270797041182361926156068715610466037125356292598946533206932646411394291244940097945695293199775884462239040295697027703172236333944348639691007093421074565270549680491293532956305291377879985562140089729932830793959628137828924688220389765603094128316775003791355622016932447098665496010613432989215228653430053256135890330408446819617378762579540023287790325103455665437628814046911322068366346218888026642299104495838722557109263029869622546717267813697886599883363635936572980391220605075725816762778527634746366224822814521694913620357664674019295466007552804975740995572705234775919961312089500710736211807907903980655334138610153307839196880685751146585784364117134209415824542957580741761901692629901135606182345348318495869983125612144105123218981221133113908225188881426773795093551551504932330656218649887427801985125083196138547600061237437071628090212598400958816284098794109403741752425225213081742408577723648212725722776013737570658921701613519101195950107181792451928001584614262462827790314405856329357698095327770175339987998981867608555067497150316072754993103994364271952656205747500344375723716899535736580494343176040132669174071596528208028891223104998365081664375109890064015967235596992451612576428859014768414838990429102009461460647349264258159933590812103252758408912076562151358348636505496313436762440651533120208425085733359432441060280313280119565332682375706539885967137745945164208156529084032489764138703232586574219649554153514807057873407105082182022727723487704382245977944686085800193392749305062715046106755070448723357265312798983423330910233968260833325049356623539835882009858739483130949019641924757558490152382320883570842285095534205239184115524421776656401703375707571345913849507448040870526330960654651727184158356101996113625563421935532452737045562989289652764145083225547233837739545813026744837059396590797266253866409668200300872706312724986522731377083009724673395429868781698749346013028575054498115511311107361371800054234737456055294045138818493514267027112842691035364025358130899808917165595213448619001227657953746857768350919952742318872946998787855101592822123580332070150375098904030309332448140595517203813087755538413861461717064297263093927637272130526858641182062386451867886986457697603698387256279877653131885704305751769230690439537722317398487636400182586191821880154988334094061211598283795304160890444091249738569754615371291875000573715233389254348465197810243661716112289948263341531360105583269927900864832895212002907211207309636531086102753455587453570096963105652632195914259694620172652438257432038984157479779389109228436081652937330541455113653309590076794083616637656571477654553500333825353707420278632176771361503602535167062031055187586628337183592277751437621806141231439705022840154814321392114369375138383759575351675498246713158082205681138565512096235283827079632119893715335480089912313405681763964456554764997015319126163182775601702165895998552619184563956244885607789524090637392863444989262248613617470367465606234450679678143531221781319648364941875806233055003484429909904010664091756364220276651479697797927885171615828858480762169498368199982355112300816706647442565552474126099227672146334516703328684455575590216524416299568924298037903333999832736017887226078564698345019666418701191012514251155775678970801929313865005885548465120377973489273232926320114002918118486613673799212412390903566897594575450977542112519239773474212972517141043903718526905149716838021599370382677040135746189207641139120882837329265547288348906217302387698762353375366039454466296887072018671519691125049402554920861439718057803522086314655845534709876575675815092378551796854589891418051611098329925161283332724723534157612682071661755397669074507824569848034613739094196357018194447455666318904070090790427894408098547908512748575036614761690608421701744213892925728844951301726023348138084515830518367209453775182313947869737700079007395910104705412315477643150704674610643668002074387480970958890996866702018410104284155196917506457754598388905072762332811664032275796325271253634006270022741562376417214914549652019623893379424282824804247389530613764568915174944473752155133521285025046666123021936563371272667226719697765481741812950949598050705808301109831021848629261674926825889125048072424207283722451008820832925199291603391902861701794098009147239100977294650667691285206681021990037824915696448416902563944347498211869475002505282922501441606279745959084899211588802548069014864870048971075166611357199860687961093024544271978055702078467445349824502925480271553178086022949193091400010024833665382494902663291794489957056259484845500043981784255227875474024189194109472050896183283157414074671576981198357506206038445572312534766173060332170202700297809797038351440166403550860580615052524918912814211204311208305838984963825991306584590296299500015036287143330306385460781679105591509020057395737341350446133617581737093252298184288597368136596423197830526920052818869618260708338090052325698622477650882870175328540369611694373263745259030307390940974276339877899943831374972170287265343474247996444283514179580340778832800688964050209493542887715968876007541617146209766366596673869975638648430356144785090550737947484765116053993478460694481995680375072675685568711093118494333765419318924807521443161313951476875821670594687259360917341729875841231831314755122300278071149695625599210843104406912531080222718103656069391111708407056223157226208594960741192377778853575503300305371108168122149922759815084398032178694663788651948304854348266896059484008487962627062508297485532490754249230386806743053519003762772188123634889211946348748597337481603037727551559720014144834007677102069488514685552893593105394162658027137647801993648995103630267283025173968394023280844264798994982295580010226979129016863775613064647259953324169450317750610224305272581647190447721848802556672350524837609987559159868306866829915110459216116886325600335743374239503632566561016077390676478163448040503619368997339090535064769730460908121646850717552178295549178823729333654033975637131493332792737577588007894019788947198237209572890603997912592330064517976549670667666760271286777170886379908541818571853941351246589056804698885585281556892521279473053673741031098809577737295880854582149773932889075804376324956367060679971126297725847220157002739175416854905823073239131450526198065254260980208030457733213174830146837976624198987388784926732384352754812306149429794687903907969570089763550125814706506663255254681183784805938646107366482153180375585006284729345658159866716204094028058916065506074186697910313056258808455376288101653045891111428041528095545465862720908681966775795586182937297233093951513718246787321381987994550088918766846244123658150456822450227097979463112152018957456482343432448951277076642043391939980643566483785203620789908257268323409422803775483440743390726823363445815045634714807777302308913859710674365080028708205168924926754276835746230183731548921243180389508602281576240645490391445435261309314433690631161795204411310488729702393870260444270120381786528862318679813413885749456354286231407586080491892031088624029386510551311229534659523100308412710228758064240594048941684056742276937676024563826476259733094219301203451275020563235962250575473319564468751705746546472724832938712091834619272020729684117391008726218078716917797843948830201444074582604203991415327146008983305387739420107220453718232406089883019282402795244342374386315417909259772200707004599196028447918412906688867928098498913327686154695341762333256680004420885316022265612951424442102764161031412240263182052305132688990889755429749077113989129489067151175792699072982133832865290502526676246868461326672063804867878423760895799239600497142723375387618818182097334722535025348140898562638377340275634468244339826613246716581653385474436579463148486458164752330922209156373744347411284109557789636644694719654689333059249036881691730857214483040585251614282819172279189948370470322219443375269372752498031347513596502941361911887845020121455921254482224792622136382212574880374910978881475024307706831944126508937189278703495792846440796745342715583773756623498503140772204099279307219599772298313660731316887211433445672795901789383051150738559650659922176323908089903360501553594434729311516904800426731095417612487613841812684317277288370974293202662054286178375554300072782064494770533950138670001288710167400529290196470834030415832371364753854281790547642865151826911488386555679888508709093612327974939470034123582760241266980620109598445078659043104072649390175176571279242323912247630005782557280048109122227775546515792688489469406629414329863363756703085237837063384302769534595010169731736888972410216707129752716331539409883310961142667533876897775453365170263737527259355351396641317356637568852442404622163558944372173219390530521989239945956360752827200080236539851552312403210146912161039098677981925784003603198656791388333359553891731343298800783855582468053549698077085675859319795345174794670733860190728688782108522222620660771268598006848465636361693379799185813047244820838312586914412097901944620857675240608653626532843135963445497869542888453825920978142047766722441069725925412555868201800349213706101059320521271267567799300344299119729685028599492790017192547314747886995684141520822667504713198305016180473550549059593918229465891584283176698273888733170797574576341064313602587334315989387815039491782743764515624725103618740557070627251048249547263679563962875402412822497224572197596801024825329898203507633035176215647453370806171345773659589010772521463741895342864754437186994395876920131764204094723344487847828633996926913009209085552299783768754216923061560640970548469629790973021317537692235903941489283216787925804376099201807971447179405519984359927170331935112835843039647250511905891572578803964480564017417034717162387067929422453991145830561724986656204173576230723841892066351512880503261377713497739346700194844837864830689241835735443080090957644371144984651098182732311790369257187941786473311683781300129929849562550391821023748033496775690278788042272598644571622869131285871414183303906424533480988902867012577112080516455693704424558014236233376925580349564937469127598040193544208812237446079817794815660013055328522573466936323209058868375406498422289944586822786825797643390249515260936777522006870607102928966704375383698246369796040881532560418497895347272440279515395187428473392962240312752177457902688037540849648939508410635936180938680891495015905737847519722135366775757408332904852006591054595409143390452505184023465359736456807727999981301753469164323487818295754274864330221635705134290090419438171039534472536114902875473360775877517981578833921485307035546956813774630632431640664620101998199493062652934785455927778570913826960982467654084712709178981648143709098802359977154967014456256221841450940791846760684995315076333782369336205010332435159977316826056190514754744691332697389350808714787952918835436202327375873519529163885205508227330041719134231220247354062594983029451466794242768102191329319983455335310204576959081243978745148954039227560264008171488217836891778594509462304911136000987288424296637203105662887916989945398035266702499548984357999061867482867137080206183357474791363500859963233595099516163792900479123172399167152090882584903785585190394457912098360608792994043348995901723152472394135951776217312357830624851794937390018160150469567262749283404281347416901554744437854567766479252518704697047377064292591580815279176847053755794854142814079283347314666333343150391983235790355419657290237791653541431899222748348205703215087807026137493681438863725693034256905909657633299500130800493746502830845769869490942925523579013122637892475358655632474306573725949209824693790511802984497477870183008557577890243278035209996362936930142597249854441930520481503161102747340106027686806390125711810339733682934548487823642181043698813480258469829464397958764209310010132153156870450040524609790172673688014798015396749801514717213635951177149413133707428211583086128267756363217935028831576280222435951584723790878173600237310739452480865934835059501288854716389130913479174631036682921963874957602398592188286406123742382153727005348235763609371048755452684855845258296129982190879540637368175979065892304051226247198992132805791447401960144100845311007314402319937512572315990438311394916968979827237637235591547648232021398348085080694026207393698078652978263303663135417931409868602640156930887181467713745272734150458800114569428406101293801025258499148183963330169646617416326766703696656716869912963374521885458123238409819247444611735196925797778956514871555729882876726578028469285215674269512881802490107277208647726862138890205734405540597412262782544485279243403151157276129391218871723969589644237475825704789368367841805362269716822029927196388129510220267599263818187579932643443743742161217422998977895886844821190419061583129871784954052963946341171505412501452361182533124296265063325985806964428139202067708435487666172108480197830509232063348867020767210523159437127366127007046133706315204760265504293970544573084728076462042984576974471257388746218421776688375492507225239634203131759329608622739213814062422051075175770060880239256318159324839034452308562252619690135643615662821235521938735429862467023739298455889329530098678995903519215441490692650939893686678639332637794833102384291646961851679315401355926955173696451501378029189507492608366365268501192942951413999650071505170037128161966271291677189258243434489257520942701596937104698430051891498927023648229643896074219104656880547468523802024341950096738703594872449036377053902636251447226773254434655505679342139141768949411299096398739039300154256240977940377606337924690340693544727952390074317966232538282339369592595551865282576450844839863882013211553227559937418417183365810189713214766352588095194360850029494482154213621175147487763972751631435108387623124624253348328465910683002151446586705298092155334874511358475187121498319973475403435312768993567290174868271071106650765378184876484290665487836819094020402062191843940976050579198135845416621611534493385807091241401160935521901311232083244351489552828223366342560922973432512845773021380350191492506237125733498525634887559200933130413631019652267901229520283933842577252292685570305997882250524953430189561888826121619474585055479897744046061677678154057378186861002609408352688836159656232567636792445956260741449197375210391606103599653872673309442581639894430534899601280155514742226382619085100032219336547720754354134374298195143127711620662276827757022421074464478690110635017824810989030506370467223975856321536525095278358855564140863433098236729668049834997780238393738717966471749944020481942854268323684150419841434063804204940814433117059063455007848270962442320680943859526676088948767889942620423010116544439719042378895932099459400855215509731183239985549669036336312986371474413989793724172187666445356077359569818391706636168393043458221784189477791066826263507747500085695706611852131823641219894100873220683422506413507143296014050704364422521028650212270801132545921399337462143731391225257027424099130720555551159151346549360520691304676511975961770150711625600977087718108949358547540234832703960429286397335596148491442704580167886416331624237961739631487630143254303630431750400983908499212497235556019416260361324317153080488088281025707697480615132775902348144960696498358253531524030186846374859740658625600205374891632523023635637112223965858452575870564925450517556773144406222220592067208395868928035432527554856456369484969683029862878888934421465685916765128500278884140733125177345616695841193266821657154120195307753153379527176674275916096722599754030239201019253012706749775669634849711928253710287487481304192258012570194259237084265586396773473459995426824393840756787988707910361181731603702412138945978194076446646965376444899265462192139298360689067595719819776101800515483196133843600555548275855352930354769280239980177287772069509346113332266891286523864669210359195371884524185705303503511737711027158018551935961078336217999728311517805068259020360941220210601906990981665778557971611274641913621068393977842230298202735905617010016002552292079643157716150921988511811105519362169019708169586706049862937658962337517614607227757101001801185288356581980727157529396877282824867629950430626480365653655479678550281424355700403137811794567201958820017930039737528294856021968294337033262763405114398327873532627058422395234134298951447195883976141322658262424613318165637761796089054222123421729277833624430347034706262670194691828630290342607465080408772116710537752211630196954527389527045442137336559145154703477248912783739291627937226324327238490805294958644792153910442494165835723283674817560533340441375290408218068801820758428274078427157116471826325203591014157845962806240263859559345096049392662220550797323408021621207934319145078885703859669225153830166246869803206894126371159989057911947123705474617502042711439472489771616969102240383488958365749436993172926074232882746200107587797363596332816835188174801904669026806686644392506982593084031976674211286904898690094418592416948079235176029702397491880267299767966859980594159074692038324162899395848432755823180668883321000366457236411348259815443244355121433809571876065182322262529528893168201197242544147745203559056530205957732900075705837031145761578644299617988899852130093217167322276961697114116664390068523193153338298956872557906577227535892571493104143317532467732791067591392991243055289237366644350079923553706531757271349707385990104713253762970310853013040704578498937875478516701566117774402263365209096457981614641998986151092025228093539497064223442859721769463169688353679315900066408346943886818217902147460151911979699649059319498582934495545733124699641529503644074042099116844118124564684588508546579287233168119977518318042526320403013577327055729871929068820650514758797553338353491241934608064005598087886565466523875252298637854364817438527697205638477198264207771090488996926475701443189146202203043421431306859063780889111213710853857759512867450939726542672280376433668090050203354971014334166173568873750243913502655746800281521513709135179468625766693920169637417525819680320701575605508694938245731723816822963352397829578138870540808591600849671313650052513844865309410870742864202608496949193874027592737608433241850355916759416956876962393425857799761281756411251215940103672306645547105108538283890164341479665328310952350431974539422421752385140952884130253736611896610419872481986265772224849624253119603188578354261607860637780395734708604233731062007623419170718818690639064202557236036157424218473633071764682975055403963443850681672652236861520878126586219156616869028109769044484277294055322396916020392683003348788521451121089077516302896753789468114266217587550677129074753918612310632791977024197501431141523415724476179677433002056996107521442875332388775243028326035556833678398939993034460511471965597652993691902904417306735578227281185365934454808306323489504180122370429164600730068207251782370496518196761501807796445237978622835383275592968822187603303595653824177249576018774129202223215726034712467433944046504220720051067077657027300864335391087949762701166554411181313269581772247096496239696683710037961771265573644107749334280814716124533069963378785816745050266693676409428762035665963120688970337652493778962805733404589342923959732945144586174642194681663068552061210056309448250767499420671090535735823155892246473619126605096898570852058321141572891157400801695454862505577769198554016777822972767906966170668179529369629910513873291738815606440534082776012940792386112124023939773050099428199171996543905585603580749208338977212502827050181138067118681271325860601351270617901634060753892733787738226381950593064337470665643652369665003995122722189679470456893522562478253340331683882440530578332092221302451829882357571976328376040775626993671175402739871516950124681299108873958778395434650374520971560567546153518107005343213826675433828344834580771523829432959139328936381121673906413494237565265100040539701655156208339665632219936325895930946636220678340841728450848686344581883718346403077724155037350357839354537783994637881234993988811541936648877674496624612476088111529113984953307298643101179414613484284725323190604222840323323850144678931797704338123858665523864516816007439434719572175313377995590654556838502275555751116853349311936750264048100207732290866107636746937335440352437406695392595279771017016609859405512169164673278192642426096358105379572027077795144091265508539834082561238346355033737499561308200510611561466451324701837757066287012251459969170154760879352333687412646032038570286468495165937920524515088266997467736578990131915781264223581642799708779397528218601986858455920344261259957178405221495105193594316869342045177253259594389660368586414532715466286528464165827836448858969656494037998553615461176585454968346372805101401462314324721792329949681586322429578882800921780882480904907464868918854546173239494735157592406003107057209352602773635570699000282906411345035352680435333456045599930723194083774660832923972716248396245264355669363063871728762034042772992370296569153173004152298160747173188517954036529209430985831692668008744626719732112700558940185387681498814797021152077348227402139525114867789413284539437725873118312579062529945340752747303849562988972336271106550725137373143774812907173867258315847712440426551219372158822779794883351259256488397701473530491141303028867079429912617424525686888782914850655292485601536056545268472217993218774900505201085033111460773640661334402678621120346607391126979131407172275745562182242823926609409707457387774642293472358663022691355022149700970706588503706233913539346253393381835626523724247254611736320335531973876789207265646362764843290378591211403283335185956706119871667076326134987318653841457307117858559295554986535760662740610228943552074956149834428363360342154801455820001656820491686785459207502670275492707669671432731908489915795893940080813171197221125268032702034182005976149253874937572038819237225062951643566453337365124541848469228036520127091064605067853754635185255941208987655824443553392843671711758246178442722419897364942248819735028194212851904334046009287113051696676600627953774453013094514786213028894298175105937559074774159694572855176497814795464892567060146889891853697037181456772142557257007728144118278203649743632840326703121361027401205267141704931901375395614073997240350839704098100359952479324939775456648315618291886828199585509003356833213465840530297110438035493062553969865934082363759450763616371696574859270177360668594545846006593885713681234702071468965628236410340445284991014573877187914542353602195469412447507189265505771871064281785185162432425958668890302218313981998177739674930841552355421925528270824296482810930007343516432425938229422591520206333433832037042308784683704517848969104037781127331535032766314301662811216147919107043890518729568779054516965616907573262466473082159137748120706042700111330406853659839380087656543219061828134206248913596595016361950327908713289250454225670563662549643969205936906470699967980075282113786577951137826763686261862558609538399714824095086963569847433006596161908157079891468687564990753598979821459890034618283364256556454905809775733625552956990306159154060410617845163178973218661604240937575765161655673765438186155850451017620810934899617657323815275115338336396624920206835678600573520411424142940921264071978339557853688740846659737667193698863985505878317627662534648449385902922036763815200811607302103605610676370693457315374203433682721244562178515682728016550966109637601420298943893703046893852549735373719350352905163225005738573862122953446817066509319216417889032250471733169613343599221004620590615812550312023850759029947182316768481860728173283299824755286265704876831806134108330882511565977693557413172366134177553815004044127043087022165555280441708906105661517962764688067991118619673421429972175830825023118208792333515491290611973761419756575277395689618468286305427863433726061158062876392544699942474413943816519782441981189351264536147573491353630553477339607063202327986755791025799461405638514617190019200671163327824604945216772346214123049502117919746445988176012459112750429447351900962444642584708411235956701632068012462471897697397747077865759957095099781202705516846573240712126239120667888980499675457200032484030223975704708176150504433880851052113279893164982084547289575567723254741656311590261573947855331093512168951949246733320735174715632493615672594342867194129941479500689596928459956767969258753875977880847928824822286760764125570691185950942642735208786073458066049400493442847595495419068243127305126308679723968314525166072504063584113925022798946225588878459397450162588314030042192661764412939091656583148711640830804635966274748748444073363440924007896948881705329156926215510350590195573497672641046209449423736430628189841171597238993548428692888426937106748524834420442470071506840452278996203543431522850518256596997938004503490880762264765060135864102661162214788994083936915932033916395763120976622146567009755315542133587472595996226994821928883240700145598979814063546998353079318487357445802583955662679358151482963123370734177644874037672341988999082347543629739383113901345717481917010558520034842429931357457745335071262231193489870692395087367218110010023521649865196663932743837717738354787542025138628911718468017221954709532864218188350256443076176479755851845699710745848132766472891522299241541756751232129434735413260183537148229661586658219851991411004124642461743697308902231986669568692627778825257774145044606755781516446621624896914965882832932600669369060936258851074456832927260202069753305053133198107962725486929506346455988021980868357975264719112564355457503228890933406921841047431144276386134825961735610563048057796725249992669241908172253551005959507777324544990236066026348927898075577641999776054811532470980406076679949428233346594692859166162934946233969440315629782075971061444714778657846268732851234257323365534004647714122674069138137724165997993165868806281815401456267948215263765520545604299773713431665213335502222517397911471631327081300209238932242460847940537252761188002538329876831172941263222092876187670228250764544935508846740202659010394823370511506443528138260970882911025176945831426317874460163759607387124351806453020049130188012878051230659527119185459181006525188476466577552158176151178612934284088747952883298174528719196404686640645103865622905491751099768135362315613556671071619765525493484081249360014546866533848627118384954948114538478395537726382777234696369714902279759037109423240189392898586859584581496296388156024792804047200973647793888454732118847326488464183681770712484167023884809150744024901021469519036936570921493593244998968675229294090812200005882419323987053297716988756370844603043145509087972309399411825234241039355986812773520969427368225156885108217959689897622093526039920144963925866755938946092169134122305182466572007268998922939994295084028055266924763372279437989590088071739896973700628005752581037285019901051976138608912465007968627443464669849083784840129293940010541479821605316347923297923422740594747129358791388293040730407453065242309301251158028503831710910181299082388505828266684656740237668655679231905705303271627182589392891016106151553678336605816890378818410949458757252457367908531302872076548686774570755667944203081784774718942304054992760392480537544309769266480669502174709257852801894172445137128596785508026994544070350410319813382663406365308483158242351156021381594806340873474187143110181746393433149206576167825882203974112564367867668432731442933023405117691843486926181858587312750688494828135310527233636580366832315016193570259221672988668948030438656804704612517713879455438782417866755948325543393801356479501513934141835559275686237275908510414772636282434376997042685925614992890345574282414118626279267910110320415949381684639132629248980835525051458722077468037634295114276350562013683370430289737459872362033736061968737425570368284675598651506539264369870666258500084683334281746025276940376584219856926768330611729699731414992084643409492388056296284594882300747236367363908158725553548183908369555628692106503582410713926255277670702046395626685873403062751914502211475167939349038460551298570617502200450227407437665706727328554264111225709677068471631422789251411269304891242120729916612372786435604789295749811628397067538077831692104373730255322624150484019826910646766888119332642719189280110410921873009537656595198655945579392870299777204227506246311984032887544131427458179512044867408229743640958203710741363452038066955430788068455764024173337067022434786230017502791355006358175932065988694250702692862424262254702228003798211891148914125841304433439386729510333453511883909696545801225718350789563977305804590123748519816869126385451582571183747176891924552133628038006224495472182147189099311561330309461129745322519213699459784280397155633517139340753340255569198091507213752941973360478414758200423885316436394957556183989398617524564217303971182743375635256921886150665702032245559252528332394688062959996023881117500698602710883161839496170570765052018674701136943309161248329768859239170915491997868237826147290288581249743229529709625349904573219190133957235393450320947227649189113222977828423109441098816202299598939620980431947914454051218314999783088445598090013635567403708934784396567375481735227273998535744587758539220176083513029684334293377432263959553415185316367657045405732639555305493800845694519096766389703680425060552379003941392255584656446241985618222140475370932431540890084849757368893203333769924591708865702196352590509024839620581969883150670843753099499705069973306232920226752970074734606736061750967892195701718589970800569569594445899528888574923985259450859671370408020106448299023688319491244850257135465932054153389374836408269428103537279831487300439791730973448812484015334254976967954670548433314031205715296984936447084879018608311259369655792507690223053725381892739120717147391315661163539825840856394676021901285697909827851289404339172760106599952520116126116962973065396673027115456203877562436064223299644992107947037696660350158148048649341005059692046508637391531606475676332698508604981515663321588102030658885661866458363195895656406244099951337765029604724218162246632262457251130293981128176145544910278819010402978915596247144388085599282466097736136170518641011106173962322155644591736735788511801282823185145083611671060020918021612027629759643730781785520199651089071364898355440285176265057660185691387895420136927160908853570338618493162326294401116349351651434541903236325572963780918883238747914911850555058156862574196869424561367933480456079704780301197372335377262287822824494659193332020032794501356205794059887997647923586875387028783217495495455891743614414282654019329128334972023705650915602287665658573590677279252922988439032373389471856554366403902184990772946768686858649726736749778513995498676445727234527362487342831156492211527527628630308897254296429784337047565281919368877082244957230050632229006906579187295622165074515215628705342457321162127173348988435925505460315701027454936965780575036939365331516780830957509370737894161946368798622279269578830509461645263385191546752488495281087468493831636618960919850803398246070401671654734776025050045945959864649181637921562389181305619776915668128564812741729528596220072091688696395530880285781950771300844900356943367988532332395383641253730505801462723961652738364860864016786424412159181607567968282959255354706431076739549243458322285625573949555749726712481467307696870698305471709001469294721235792020494882892740725897607775557872763913357320109159308714936985372810682917448959654620560828369691818196201825788658951765333768411438148131877629054722757560353299394966187745287325098057274124521179982847252171002302735479394734102629292742250782669539645731108908286449374738682423816708353051606660845435809090581650141067679793754308283695423566778669460111627020208317111434327015883964400274200842540079911882759755946411845285331046712110488877855207867462261912982149821944968221185564847173421346168640157822196026149736046225422495609191966703408381613252801382221514615763999070035337044347400071561520049188317148557557783899887458814062272705197058653756615529400622913650383978576187506296863894792481612587274952372258795661942732763559604616477453857143373387940340464386260655436172320529441942349893301214084816455714069718918678659649235962639249011468686064278278445898941957116772994352339135900466123887398200126659513751292209117150114138584801032580350549089527060920670329304634286394713864258725643083714740712003665892222876970681206128392035347585084719667325985381878291052776889235599211405080251000855976272251567192233363853920411034853194174207886545843196468845691684800801661276187394678607733909940864426815123136278810484967594162119457042808872175528091168469508826909799022178045482190232708986084121878797989788271508679653914017839666456624372274143129632272390108457279491547839642669164260072190586553137043022896355353393999039497337107235584517862062732902227407929121921655448588457910867536590069355901352670231553546206932522887718450748875832516920672811766468965650390477487902672360509892430620326465780822147854137088893723898834230237834141673181581036282020615072662002005074872728822226608969453506492663449027245658277590701826006829291092554635605948681479038387816170120853469630335237127077616074445644090668756951996003225127095843236897553745718744717043060273872930072841494055305706913494168587031173244764867242091825526599069704587402445960775545837944221882493403156263675280160135355383209936044377844569839090356404340981477619552438378901311352260827936370653345595110723652966276644921394009972574900939157695739032972330871385107390751486258109433413214324216067216414778073573468311629844398688065618181526126215678831539209189229535361410970848666959132869589180116898028274206574256502076351865960473398434371988616976019736587057348984330873423887951221436406133319244139895277015494138668041489434161987700327240185826646611406188486882107824219397618180046211366846843036126695592636895203448491509776477439988073523321706750442575820972556804144264366987659692572235807319564979712212363516584065934081691178214919387665051695859810905467551411523168349584195715872445002307235805317697432612610140092620738969916300716751030816463522312173649620392300925447140528461158636812556750771768882185893390650479557754551111660180307259381647793897203254850372995069895155222704272656656181307753039025086725380142722516767130347417230435102167084026270377527842588643705031890835300270788892275854371981924804544798816379412660450470145488139018506901568548039260809199823852362147335914874219393581311751223596609166741530263740720669153246166751441509345099277593563624156765997780827134232754361790151590684421478143758978795088880377707561203622960241996497703670262150006833161379030270302671531719457333220974124210940237685331806520111984452591332553844926961935188948550922229098402371742057912686681728738768598517148018238767346805243725072920154559875774481822451976478115840646261785988870904311304682385800161851384083755588510603849291598001897426137832862295256339444875822492525665525768545068933795115052704882646617902627610980639396402567460510658598617994920651090532026018013163038901242205406879425906396316043384485120666850757441647484095815156180094304999707493953417441915455511598630357714844263823484876401717816110832922754578678820871653393372968694627808634835065464370208469571705717780321614737712422122034811001240899493036268550224542242796799752763511299745060144751726552069715635030778274478804927657951854129591189312865950519273103415824751145300815600019653749307652194373547289292044887423100571729806361816347183746927831313188487498999028962245094138027886424313557556764320196537498615708193311178407811616028010394691479153898898844420463040714886983401053924186279546550305917310048673220820097159415098930482932245248049656230286466323237066055203065988069882302206964458866648528342366106132280497943655714049231342982882227859290239103653308559380859492330235887651282314679319749799181643077157384652014872521691714110198248924924060073051487840951114368740018006434285923716031422631784090639412619880190142684621331728568049385573572931732341803446285841038040568546317859476703238814122632550632290371660868953846268571491731238212439481007716536431605401531199807306699613361813325401011239481105026392004952269986102295013298385978120504406900238089634220128313619704252246233417097454656802010757866528402653635450415626556566385954477353320727329048961961212842751684894897730806910978397701559115230325030336509075416951339851081759170215955057623454958072206988272874312482922975412313549680824659586606637964760007286954301917161383354907299153443577022676026631825224418317928708984993667624990050183353909330056968830379157556972407213423413721322549222184433571627648524545202384253973674978839762098361744099099799460770960057450847983799107970642225709747656451220691315457843089913384061315718687296784565232337684772194651461849745538187446879768097130406935239176787255984545502143784828839214239342919186047710170906819712363136022540016739005107329247022213950490169859393387928220928297845803096891900121430949609160241750278508894221250988580692089658041111937687873626239783384833780039775445138561493829728332899104168531977801982875711712710820268485890079632390716319832210493406566599285090329786847447119047943507529638353003457762404181838010604011201574904365286352279959166394637918166548878451352008117724245432090430772379381849795004687614013389583616160568382909543645711187245692996419813436996955142290830643968293962887174250974517299022076372649208679680888491912361856577985010943811034544945778565342788037972704864072695852036700898222572683493173787927663951634764495792985068933269240019332955627940673119735313038054083844596391035134754548251986647185733301835721757227897873890072793492786916323441545878721095337530194996761545445580211003555977239572551737217830924213200936588275519160320168283583801005035828011069990463769697724786039968150673800445890079104733512030275918736081581218269279426949509248243851177268406309988881023494077540353506152609345190566683590652373888721708738356915270892134981950036375269636819435419589328407101545289302964016113885042370762508570102180138231532225252667119218409658521782191099949936554284768314119384696305213213933852556273897913121607860517000118816812006170149561341016253696476765481921322701066191112710568213686661843711860960986379484952427627115241633043156153440877065320053144816501076558171480691164021088861955357124857776305850659566638595504110565495054424504192802377272433895466061202626820239097968111066445906925575910404046435875181564495474092119530507823772317541814946278482572414293312611446183515227362110688238258770978547009572860020519230875360073541679147657881531598377951872562328905074797103246407651190051082276986016396692084480553950816866408657576959963819897085065585879549404678269260280201693767896249275859473677308533679442846895588258026343592022215600897953995439567327425669181205967564854974838351827932111673215771857639954091528352547449116003200945712237140973200325208321112474635704091420714744501312805745743660947773239493716352352969800514576817076778405434173532136899278440385926527964857415348001270165405679747236499930081554082539070167721677738934213678961259212630526506453541724194963991481366370131085736426530007241915565545341017216170909077482094286025935695618673912202248829464819652134271703899973079526344230603474087009094041128449324606337895984776781041622122121175295735285695206001619179783583206328785766233413279123105328761643759499500490434448041656540712791282926262897153565616993505205895385142315766844230217389882019736588257660556619179980130180813758131762412477320267726093883943545876065286234364622363892271914716741199860620530771135841042313530201423691178109536577155206116147335827124528476055704306205540049941002084633064006464156932184404461355345626154471791840468223083741065182621075138012248995371183528350125916721554942729712538663484313941407493889406105790370703669878886995694013858295474322444024671556759260875824710211805499275957366719694551297700216627174205659213608610754821286946352423644576202774040999037270560557391575988584447569956811308366339975248245359460012236859547105312790582373059476512512170909845214185314497994756446855017259796391773473122303234701198940886559842885670144052861443068008661748826714710984850931651109732168038251040781274527925419590907970299876894005032640000587005123040598727321546181366685435075134745279383687134602459265631796804480011532731184237452385417207756421059446225137825789763562705282274029661679596861944178123737788554420385428070765901923653251662334923760350285881452663517492867076163945057656856865397933951009016697203805773759362317454123434336655684495029070420204134709691449731869972081840641301243694169375702489451795983969654666204502540271043635414619455553055144906298332618815408182894859504620082064780092083379520628345308652773146202867524874126827836479073980897585050217949733306082617281311219573274430296502471172163179261504974127398905901584998740098129268496276391060323582195000888209216017565143712432344805646447500036168878149701814011249637505909892124848818104099621015158771030104357205055358639342249465863715126994922687819948375011152738958642333164284480174129761754406525778494559985623166179452219519523136036797061086942799020676304945813222486958290869500663692741590487651337840634578155419457856669797992775505816927209238345151133981765792671548058539734539902415575960224837957322233902341480504458220797694582114827186736094436157887664567061908246968672659583901372806060251730673285296708477921379291141259904608264583893882253735861275156141117779356811451862734594115206082096432750592105532739752887122403060188574522146625761515196359259339606927734238170690766320581405544905519314320141265408009350408485853639300657336411772618137403106879999016036701118458662920232759485460855211498527851638079477239398780806191604632961048238741955010017310943340164908268020627755628468579067412505759822662237401680401715038732899907628631142832607150395978086946887529047458237817647551186859149376681026264901686021101613844841641532963462008642797330578566658379491422072624923791372771753764166184978922192187540259961918484509485753644497981622049883724376233890119276651469212310827284639924718055745960496155137853041746971834759639513997431769703205897416301497948185331645087191457758261935124502081270845917515969585729637599735142600766571475161517576052285306238956001871505708659191761851932421507375445423262408204670112762960140615159445268668748460715420070619764484939356066554112571248020275133688541712271480937485104928843731515555192666544727281808379760214363819873207333978253830378680967696092709354604836044866820726547519499024082198356151376297680290870252842582016028561513469241104146071791724947519910293651656901000089873735221418920525679236152002033214893717509050631565984670271018343402768734990476478676276548611250005971288819488559060032986024797290541077450043525824940642398920465005068868596926454024706135624032171024690254508212859751506259173797221475836685319472468620835412781289053160760899916173752177237269507837264582973672728308835214502435640831342158049690675853902384303661874521730871042661261900980723066905434894469937363759298114714667191766895093749281719563857960262373062870440744465361229844483854112389988941429231552003051265813665171394706409491705250727083501010883641671787060038657434602848490861263112329163629256332359326050449672079576806039478850611816410749010341963090379492279844979895320200058346215432308791485353947850832579929595437948009337819731485163006792234943491788075468111580038514563520742670568739384949600242935704644980064891186149424625891773356820292011801553230651879610096086642379516090085682296981833051298714201105181471984618297319185186467795921716781288708162079106083100532720626402414981938528367390160501274541540530778745824446569421956091758886160696085001952724373404312981153177487613043515112789100036802894744926515932491589882023425301421510464703924168708432174214871244128534580775318170947618842912724817442475811812485293340998703703380528611514105634932413117033230325666164841136665284407159586965569346593536491089286763904936690478335104132385117344427436486576368508982644030133644339581108811151297600527225007594956408721123945722088564230458806749354282139467737060682904337421410608614058843931078005649414642253537658071155822218133058867902824778051994423468880450170618966886802906667879890271604200214827982795789482133538436437324920062973697690980354720315223763984127978656540445247527217455629176144077373556690593444504742333714577281628645178983930834284858897029986032120388274148413095932225101908516364607779952317815844149069474726633614742928197290007747460638215275829060213125222019609360861235525603722521940998866413765740627219800103216382382046158722930872969485459279942013540914801831436040664908518194576114101842597761660385127769543342170706711799544956321294118670100170676929523134975185446309698601388312051720525799008422159909600127209784585907250544177895551579021667823442430531283189253117129781516026294859439773889505254941420210637706966549809038693794931488122663818443153803252334151638488392525085048033257203021632557753986606722971366532390591663333980387898178538438560653270486473818294425259882650148967963274767584400928796409508855321425522473583757976436420462384878262236862887787991632958436050946665471065468095751262908829998941410510885719140552271969958783306224413154808983897297149713777805969375741574987499764763682844141514508416705656472700822839610244929118884228030773021386889877198584367330564345958460590513584913802709689431001145622568292549773798139095548781846322803103632559376107585591003336651767997961024543764597063386816594463689138832370109580238744916351571096040266151009217066487353173602827881791013836028880240623429708916979830259534380650013398209976608587196763187430181371526690617971698282971241160896873397364685769038778593980948940979163090982272729587518354872225552187967432558388587962020402515245847339434422660063784843392949747678688837449923769396320555879812151933466193686726468889807988838889897771266159526246218696983109756899937396394878711996944025485946633812104377575229053948538380506327860526967145548057505706854191621452467844346216127153632320577542881982149013189560999014154772881932936679965316968669790258505383311464626365782271457863319162459290889339946859056142588848933085719103271333767471600406886787230900191096544440589097344334425332069239541426339636801049194275777832607499703500429341701435404076597760927481283301937770929729922230369798680670573161393024881457180682974885992232162109435853986599687214278092352247331127820603652375728341197629507844236787315501694532260481848031706885908902686634589374157879115498321050232637672711692892417155493040022009182221681854540078994985384029115635601468654635812609775615437017002339866970852519906250941756312850329848955982498808085751130809042625898570182670262173365552030375433503054606588286867139469466303627258630363911959252917030340040182977164756859744228530442763746841606254428011060318970939656940583604741409192714239439104433304336995113208243005936725331875235613831336267592869470391521256134504219553499186243365263150815681627938037487233601465886761647685363874453688378317038851188658107438722352854855616055079951317291299315654630269292370196390171798659239808013170425897291972751296281036534401323606733872465851728702286262166639293483852077351878112034092778450919190134903020518258999256516440092259634011974621494019324990537132027615099922449247141604653109218259097325357812131982828658193656220042235447146707648964087218033426671826475681995782473889959753859540564944084379156480126832163426611384391093571838070337256845627339841651162210066493907545871205509607868114027808036548686088636993984441196010816648831536335770849929930057964681508624821674319102689408617852234769468510959641119500135320015483693204221020875118564371406559212254777337578124773367892177242880373257594751567110546344840088198587903097971416896926016472755678658158217247425517806606491290714746963390879205180497291743237635965285100135071665066982205207161550355348698109565312398977369839791291429677049174866929918588608972926756601768686257081231386347824148910443502132971275936353581522360502632348723441192067515200036195011804686456786907979843332029774148521168476614245479738595564348293145298288967181134672978726811944743097834646276204866712848701059444674709640267116172580072897881168360277891704445767459283596740939941986630919832480513814576086982771495342574346303849189349761035827160127833223556570387155582947319579181758821937815500465567104913822199981855680753584957330103003732969334116289721246169612423060332084608714351073810584064447387681573400246695471262590702364750064551039000685258556551832028926674820063485368283830203642109543350027881894452844043955901422573087108790210368621424069090290325176990635047154217519466581862852345684597454132454863472500302779875136144049964643356101805427896253889179590178662823931757017393922375041074071928215286559481317336700926163938392468815617819731945149034452266300848945080158468634412879057610830998847654533434111135338366212433514059117108504768418137172756045483339743066402187300026928697770347171537755937128200429128231034813580291022412847099151408357644212195233689057866480122435373954590389349958824681091491002775913813344374894344328785765431215554908180251388734059790444545794280705639204585684970178214808348370113083918773195814055624535969390127863846457843917799559847207272541481552821229587901538218617582499055503229608045707314498052629718416080491462743851097119786824412720889894245333219552618326990590787498983007487795763445993245458063956259824470830611945260525462964091311882332177964221562045943574591847867141825964169320745179577984197900516017375151556602123447715633933752213607440902344929881715639929192294462663019686137631826323784073326128995652515325302352312384781467379522537320363825238611130634914055542428392708453718171200294398688487487084104479459995961608938849220566397424652465505550501389684224863753688723116800860680490083341498193636922978262029034733058587383382511749543237144220877024374383383603617317110730942773769711504779146410014532701214088876709615626495390402524171698602765582225582130576177879592652191946090173047065811392807216232198679355886092224665266933071872380571501494025639259399019029981926143180877702774147458939076057998980170676029968260952745934464329412068419837703342627680541446915249767166280325384376583032715602268862430395110687574563846120455533365656903503258438204152214003475803021276995333220780689258826700094710704667677879327601040623460485668878010483195963649098943020388164396122210565226280266823745316050201668734897792862411001491482719813139105886752290034818168454841908795644280576232239299897318933815333784980631751134461251030246389611461416032073405424714684372135439938923970484128194303780001073855913074249818330729622944007588987633218795857092592245927661989929664244621394815316294325367701415059098120798897020029414742026893176267339166010536735580463670279959005425481617904806130742916939832381491206561407628472676496153526506005488698926257813288970144590201265694160042819474077216276208044132260907985122129911174065909992398460241741829338754725063528286493309564689437759499297040435917910616864921957684251792623920829711519271132697884012549888237880283576430378869050650089583539394088313203718358393206543272894789997206397239586512319882575136081607080667493339677006042454550005130418955325752356897698513021408352424405863884885841056749891891824188016425952530958515758482746611264408181933289631874899497118977979846619493317059578226498357357579304053658023696179462812447331069023588979145860856393493966027897894012871285909877350426525641011968719744173974985519577317845268623813441156752135224945550070301087762729590312546002630365182103527875405345747219251819714832229359941284443875332807001772268827596792895622958725466684358993627222886404552826543530387403417195802315831426055583287228436086870310429479419867361159093074683607987648049772598677420972266159643109772080974396629500595182169192803427188133188865505662028119745219683364351838966109925354542999648675155564361819714558561459445875638709680897888877647715975906034400571602773317551702077754476540560815087488860283621955312269812077755768076001177719100789556735712571939181033794663712226848223770704050258272050195069901065635933128113929157139201787612137065610564097465041011432395496282584268565283797640527021938599110175182964140267647067508986240089667876189834675186972883969969936014689228808710435908844787902871545805327410481443851498554842824024985363927182459783270415351330392764543908366098253353362265850040265250696253863395164415274448615475446619800959389623487746709213306117138219404383722172265542711302689245458997913313400098390454436875366474265482849407296494035753478112172819844046764451796278985876216641637364616110746824095957091406564884872390543668411910202459104377908637588399863054728964184870601049630027654809136206772352954178071000392490765369613861101012324978044547910181241857617216774263386536704792380358873041686482435465460857504749112345538873154846664653544666939161925509477724128257732712310068054288139884531675844876041321654646532781826488768409657862793260963438348538033237863201556960752297498654186955844669651844870973874991669171236174294872015022101456275099443925695233606231025988457005611252084481272081904031422492020111945826239801876006326672814139042862870501062800877551889955344411299654635699182237507905576186714806604992053704656056136801003985861733642123410285964878346150920105061806887823582502604615726287891874546598873707297826184719261154690113630669888917221401881244475961131880305194771670552044873455548824984507065164369072060957082266934457478228341597712932193059682921593101037419391941832140595623152646104150696361712029527147576688292924078469828741484077418821360881850232115160126640743485367285324327658051338939915777456261925262265595358343084210507787215531380853780080337386578333584395325538162565777193183981418121648736934447304727716486848629036955449414989100318642921070129001938868687746810646059913465524890317839440378656233163373354630313221141356262054528682147307712040966364156110759846837451479665664992646020391510899699766673319496964010315420759638088860839059653632506319621121371824225787350721296650434242068558973158580205788890052954196859515596457571413529741388499826675169318939678678912631535806101184578603528947482971532486632907156309539381486978112086546436666178741682397841183323375601488208069104281259500903398887886848575400168234537531302076300426903968555003894109158667702881259315330347581024968050158761766347270790171149480695923545994849028280014404014807873455672001248217813366332381022836068641119822865065593307497460646387078047578070057391868436522642623303216902662945030712475412006168391946108971820140921192906751739698129494106623607054226090145975529042787206645415478603905491073385036688555302370945534287497006256012982893464978010248644732937680294964104140692154211633424849836588325969728441311805940043611855394906253532350000803096634704154276425553602509876672912487608013374667220736405278910700452429587619919581368624457418068743570216968608700787419160422754527927315737020404733261080444806959330562855917749442284384689370002394231803212962783056217580541234709193796957007260097790581463245796219401465439991256800438695742593305158814488646596708961589831839111816256500797114712381038477408598410251683841839187974191315293758961365251083382429092454946807324868880039542874054003904923280058651258124454951034826621337007023329077117220445015569594394881437983007594478779629191926929705322631361741099599275971090607445790450535250140091576590336752631030883449683650426119933272477355474223163366486804507364316657922391592949030422892011383285958750278327858118358105401569978971885963178057120539284391593351683030172677183129277189057519393374498031689914503131264340032316101111729217313139097089630072142420066015398711488512947326008205491064577009687155002101037128019814627070332862928575901009661669533716493396087122064934994385655771522539903477435661112892428945605243692819687188705073109153604815160430960255084865370710534121006930010701860040865481155031544379761292121034215231121933380370386211484338751071915683175509495440625049721023338978078295564090756380232589108394070972442910926948953492404064011561609067878061667695367838478384636322680763449218122204875572893942957364678683940251970708525383358361630177224759049514734193303660312381721219623401231141062488271567392697200584808716457214864483499744727100144755957877978620036881524818209038877704522785919406382051903977761863735795055252685573276256200559684555954899478498219198031153220451004085389957094982220917125279830948338835757425262446044812557972146382056079345431808684609527321405588314724878980325249425403006957318335617660400087433225793990822775947113447172453561315243124396974628543528346497887281223837058497681050162596630456743672476040331788143707216474083221350721929929808221301046414254022209006699178828194728205788370238715341434417000957823785323444342269349024253748303799790126702824395162547501572730968726752164044889631980014314248693562792549787808393893334738241665758740187773305450293051544094741096367439651811138244297709894917555722250074481164573076814081533487401581597378173530893898568917208012982600959620244740592614548464191148687139175027262