0.1878596424620671202485179340542732300559030949001387861720046840894772315646602137032966544331074969038423458562580190612313700947592266304389293488961841208373366260816136027381263793734352832125527639621714893217020762820621715167154084126804483635416719985197680252759893899391445798350556135096485210712078444230958681294976885269495642042555864836704410425279524710606660926339748341031157816786416689154600342222588380025455396892947114212218910509832871227730802003644521539053639505533220347062755115981282803951021926491467317629351619065981601866424582495069720338199295842093551516251439935760076459329128145170908242491588320416906640933443591480670556469280678700702811500938060693813938595336065798740556206234870432936073781956460310476395066489306136064552806751519350828083737671929686639810309494963749627738304984632456347931157530028921252329181619562697369707486576547607117801719578736830096590226066875365630551656736128815020143875613668655221067430537059103973575619148909369077798320355119336240463725349410542836369971702441855165483727935882200813448096105880203064781961959695375628783481233497638586301014072725292301472333336250918584024803704048881967676760119858111679169352796852044160027086137228688945101510291998853690572865928708687542549253379439534758970356331344038263888798665619598073351473990256577813317226107612797585272274277730898577492230597096257256271883675575297887925361687673940354321451362772549229313126276435732144621618778637715420542312822344629539653290332217147982028075984221065564890048536858707083268874877377635047689160983185536281667159108412193420164386000258508426556435006954832830120546193205155935040023508351261335921740897007329784277128967365161960225077117388084262325697885465378690462227085674874747093069357326668590856162823753865512432975647464914619179575869342996208149878536663170197264534260468378010759055148678719039578315060452444190757044511382058533398469219482879476486575931785958165274929778220959774409113714342169296245931753245373401299593995004917912983680848547143925846704238528608320053664510586678151196459676079196431734307671534498300497128869401656600427062111079053164721504556329943884005211152390168773115456961028369205036896108806031603660382896533239383524154510137534165673472607464891120088099838152046695415026377035573283592996630642717305158972116351999161135954670315408725287243998197872502746797388638897056867435377857981058556192492185716949135673462704077491448799682065482817465880642236348160780950777057939313495829806602825272128491688809230325290270059917755059615835919993190869393039736611646514858219972925337106768738686235047915879737968269847878082223410618789674667450680064404065553875213281494980700209858132220620109011265903449717410801063247564712834609549284370065147450218226120415643930308859826426256828126092491136733967235933714534216902560140050169469983875907342920361729301531400405936246406781400779475613077369732409923529464794580778164607696240864595666084141126399988575739429315226283898798436350719371486573491962025428443510411472841973814933807066222573191021481585745042886728477250434386718443149128948635448929492143259660847149600072534066215387561341325254274130158182476636432111506809477451406309160928029719327606796946860926362081763442272977546326737161110302220019498455407233859679972956745318490433826332931888160330054013690316104309973777863934393135621496549969937314205819065334661573835222280871390934331325238360305287172314811151029705856281299558991830381071966308132701670498617683168329529053798760030666570203435884960342104811488681216083611944605571913973292970683232645094571537170202325175198220852151188427534658891812172660333192804801174759046131898449720722068248919153933258002624627216176424468747789609764906070479605351740205227992021112876539835381740117955267003375831396078847726709215700142824833574188212706558826075722384346836425460624376294972557208442910901014692032297634008831340381640372911311314959883048662944964532193113574956453912385456662881566099860325447839862878014756977228191151861520827628240145565179425383818619479339940149759987240427388505644114375607952021157910255398765366539323158492006532957070559185522267542845736812670699565824674762111599567798871089943129103401442549765937135216907789286769520555697938362195599913809621446502826784457775198333561874495799884353199090550456424061091609429751367477262251350611686791529453643717739913922126483778806203872768088381032267284933085939078772734728272526200188560744654953143832715829738195578665687162281676008390755269474337748054271709338897975317018906895514393940484553829830198169253659797476778546865045859640238175930139996122667668117389670502033292349080513690067470281709256521198479569202858477768560978920686214307401593342577726291016675234940557410020728689850147927742910664313694152819958560981976523216255318623764260591320667123942398310748008900676975706071323330124919595164681348037017813465191315867929857287732916688418340910468985045586338702080224627886226585108344417513498504421116568218222998754499581462790411184613045060455209360748256545275517200607017954887685549741215532466305748511978982300426960294115561663611052184067618404408420577009448304051496226563691004769069952226210407501860405189791633723026242316050412254095537339512293852038247505422294475660109384786103393194658649556153005590496471112849528802805392486458758049960956250934534340717512363180249471804716026083285325604962965630926137051863164004544724183144178230959140684196200542317602825258033557137187197749706095638405572081005734625534225409962369435518649069954441362738002845612477994044771186814090823166229647921970410366376817828213762170555058012192535855369549964352848207934382757626927253830750036250866566664777093178393928364851729231383388552304739238698007624439232145406091398908761883311503746220354304045361199620110097515767445327112293915456438047739068546583939714369184927288646389493262430293295569429737981620789956989387490887284763595899525346760045321679018262730111750509478478148743781465125129316177480325600819752340939199060870394235066830278541751890742401163129057837802020156209152646634040182798014804529150997698497282536382010250096291114802464067630145156583055383077335541091429799715916028562276123398757970754106432918740606589082237396662894829669374085990636280260544182152427735645800878454526256041562186013643859907381431566567951349889494966493735039664072144588279736909251791830517271808406210782550432941978722726932590928072492067316169201266878277559355064454982986555679755536184899978937723398706477849984610013717451209586661801786396151869866795495995973570881693026132897172526982659434374587089190488036129616141327629504947787432591791176774606337011599462602653644319023313979869598491854622129326044459949916618373629106163570597550492094640484903387579780982042701016635451092119415235198142801904716253769395355257807463753877230736625757528615689340369116774076414089252584071629680253418752400213965704615611372706997173154242250714136977533053938222631737160355068530517511138588469894505654831155507605396128525648225336964136180653159733404043749446633889721278416851930506253125833571198193973061873742571964696118786336432675699497858221644253350690931355003112829216296271098834681530937730662596151339914986890179148859343301761214268783946917109306485048645859732664349920042009846039358574149952397154174336004380995983989933378167036757727755613172607981745353359102876960974064592942521228542044788634809907075670034881188126091404100651275142204208280600165985249440465379172445689791335543257050380242200961715424247460429269351061065799413628044003253361142784089118030202525510270258247077931110315712323962523414646295949365109798453625310123080323825404640130939710330873160957447426440506313692067220775705926411703291252923275074336292293389738609229176941546567276291718770022303735517320238693362187158830149823123764914348316857007117495688185868789483821815803290561922043914268041672430804571345126668721031184168573747374845723039510549541540527687434992927936709622404787032905959753642266627765514441059257483831923659845139702283727069978439952332633905114238126082704917209310221972462347369229734097797684257946011830431359653728486086725915719189040814686196820405835786639602197284650266257660416212205528715850629485877256945148978885915907474770520968201573834968249163260909117899444616257323077521808190234276911690742013973535366149195899016434855287634850651379150931580610609639756369227177463164761742991456916805197819208411174388151243336533186211008296285983739620769715008344638071076345752372968162692384196664513983441124529813633193403728628814100761990783445166373619675739117922405314609739328756218853104230065917069279757763637722497549743173752475693668929196839866226450278207422649504418145297971422930603923980264420416044069136603856509762999320152435858163639067084413753907425945531517475401425226162050701405234312797967013086515333059068925682981902420536042999128347248757746404334001196647544943649584359267460777611298593782877989387653499858781619736778054641326227983853775974766944915955838526970902479985385654752171183919856439547911096426846117201599727845439646789928991079803882148161521601317404482083729562537745160915766989486102538869333022297932350037959091573485255800127492856241916037122043473729924132237495541395651090991275389270424700906506819588513580741659465997388225184184513415981605070837364180164702539096483823737689090699460014235118009320818544810936770665623436807834946325295029936043823140735895491214578505088779694152701771678821985095632214338609568258448361720074677071654458885576778595539905994620257164361856970264060693929305816936162590138996807358634220052766697637855103451086179224564226128239702771208827658799676491538934419668918334259157581265649741005032642182100444483635987088989741612987459135595764493454346929931473009293080432343114901582605077977287377472271100193889978852977085833995352323699069611985830069116330397282793883620169149382007197467419112787287453186624603614109414498979768387810954359442293304289489404213991891836482759378800715563990347294452256094601620469865870820084791651534288200978910174880510921446324607785422013852332369297111305456402453261228539974635224497324697518240658824162653763107743243979211891688092382676221546909347569268051380610978316492255340335603305736037618290822356276406807201838659441694068406098565244147876864919916567447276593667007236962485366008045416509551304136536191916978414593480093824971562438074068459854851716159798196253860948005491147227580572941475477993581883965383509503919050983683754016135237422798212858926354391472591942349282065027819618196699288340896085088576477215412818924970687364490528717894691708134742308111683960176354713836849998553329885946041525031875461939178284045992604614584359401376727402001065169632189335945793606640608117529336884631168578843204807560045075629995977771222036343795033916345590030172228250061139958559985257516406605385301948984604103652539551511382198567212412383361565779391552341296160037642158883107649779408020949064372608624521600656886246406120686715725006483068783232661381236819432171471683982869515105019000739668093994551357186482669659962648096453321683625906306422079655821526849468597834620698000080931649194282402173216650367793207285814350330505678114296446519206566978436236737219533235193975556725104856917302069986909332744699406070021628028687187302887712173769986302648237890600242854108130608888289245081587536780102574581818769930068498889459086326611842327392433360103201730166809564393992744902929060099753278285209034253871200811396859596418180467094665299286180112819379449830915238971967522027449154348219558950608141278090507254039464281439934627877698832822201626382771519847249056547351959150555305436215588649041026903209559417212456446283882963592471001729823728834755511787501549993302176048671764630382120416486427378475138672664861332417914816694984358757746430912726188847682678197760276723699729518177439706052469342529340674001408684399159942296698211997533689426515692041390017553455015572398206034416392733642661064392015330703199897334019020430296546122295962446191610456862966762339088935795907336613381747544658097779818353777736123735627439558826977640514893346225038749485495341232180531284464575817358355449326579403403428769395807663777538022474880722459135164569106315893831622285880956468974488317488860818691531831771266521746220924676713608734216326184042492571156037146889422302959051852931067288988153147477344031373231313270541614191666423836570227033322047244667806423291151090376257228236153172118359769573650205109863764125956780154320210952573243983829155611604876463645323176438742195398185479703543516420925334709497305989556942531555439467910486183014182540522175177700224293692938377301106707014019987315440627228655841402199635031693740941026206885066345571013895652955457691274788122516546892705056504830598091995690857489647086768127711046588208491685957069665918570898900949620853637362382820671261519273735998241873253653648967092769353326126015628486941189355256833652808099623394589545937293576587241334303090774449886802415344211087720274356484647228136687992786525538129512516785149101684845645099639767636786665107057556867177308436415309753815288675999908655812708012009753709770615015452217082213307695615311939811896796423785153770613434997452421366821536023015192853289322870843315148372236602295610719230992169312124174167735903654586023066510449740091031721382377879734391891572663346686262960892334566299864484676882535787636517079488239330985907265434895162302991675720723589728065369488077080083574157483806862708144289603998498449262084455398552668840778950777426182443349884425484407423687057942473317668831074511818766450168180054979587323899158303499783540813384073922681184069985334980022036475875759852115727703986996139390968464720388156220632333257945560128571966968541004652088664993837226388090884023197080022741232323888316697539389864005825953648583566808824276689575722296985930033714729847404743987587229186456271172528492627230879510183116483154421281777289042082806627357885347324127165179979415918061275765045786020552144438339915360164739145181309018271307248849269635519640493004473977425781737626832872464174571096440617584717467495079015211896674971134750672962944035576134124819151082631887900955900550468532969576733792319650252838915660108602921295494349543068180935833181077918223232436365379100182381308333555093494259411388940556347332863054514818631980124191272450909844920115832154224297988881636695691058020421190138472647261303427425275715619125016133918528460716583649443116302691447087807767440531893836040104937620039302209749932735484663048448395258951263943503512139324315735177146815010009884837805221186008375921727708349610047700921781285743269921802151145732520668971794288416352318760632357909293202129040206313445883813259886695732307581379319247012060820411053619106284190990834856267765954817938453675189977674311672610622780555237747789416467397752042924520692175624950533587783576857680438524230323463035003356936255635775904234108696390478848857809443749761626611313788403796069055371098960295275696894671683675204925367948854151377696597969332742428517995748894755413654369268011149426976405341045575413099879769456718958725312122681183720666623432402284584405225940820184329615761874221060267397773020404524513471113979169514989564522322547207180711933885509233043227782366117381113048881774233855506243408033489878986267374911272051435551413261969183603388194872449539338066510743477924100601261312774447941114650379984813478630031876879153028319656863234257787512387130993763053232202882526546476602086245548108917754636290266089644902108115129377789403843626358977505027166954818582038588109802693689613633590497705827307583079305598739672651763606151581664793906002440768820101049779920146452637210901248327809484895204954347161913748763063923363858991293324024582408885257026749598039577701842150708298407239016025337766649300948720092982241643891437908265119304442541050552807991917948053368035262246645277287783078289459646254021804957630729129108333923094530273753280778498927491822330472375115296319843668941738669216326569884068930946287699033725584386998926706133664711147434504310139045314701388064335593273015867222242927139362273709142377681023978373166891404768862577965161285386763815996178714739081932810862791375246519473400671747111942678492933782649999294360143391473606799657581464903675444137836415065461911994356843328423766428283344539804301319855332957917194561888280333576203006652322820052212123669911153764034214950808951833442800206577002253805400986155908190961145114776345419859442256780294473811347605154051236037164470751760299740530677936993890539451848009439198226041686497130224463874588691899748351739018099520711230253545355500581992183406865150463105595760478314385637047501124759487410109270602489069658583374604383478348484930178213964194839385144925647277465082292579778321343048291119668635474836770113760295128604458733597759226183067192328479213348449535063204606336186517048302654535489522404613416116994367023270470731218992222256386230040338828094359233786923022855762836786013669227031592534264621244428378765588528202128171666492174447867065845794196895771118311479932087047055142418933368056533942917991311384954677685169631949724795156429870211077832480491968735781531701163882215101452381703474481254099379826139661846484161312995141459851985727636638051897234888733144138975131052427060952310352405884204517158476583874657578667782376540194470121009643294650148725441541389518808517684466658385903493405465915985997583079245425741442492848468246529816572138341352600699335663092063466575684423018970920324722153844937008235676195144688007679708919720377512275362682569880338079176291499067431547924589372234315750760825166601020619471727370810776565246529323544299815024567940910746335428128365935709722529592051380900449972670550761360630789105464040800098304035750609803803876685943925157809306921997284530779965820361053326897213338054601411501474903033858259822260260081326006660164707261192235355668653692529476343233781036875239242249362536140714366953838670816426712086886616984883469245826060662789568186222860233454292604122641328538279808767763555887157217928906251327784479601226265984049355429694054746812186890353208892583553575259839115604981439699633887418667778042466321383881809496103855829183517269206953364535931303678378498518706289237127502725721962273439612724781292219538395937533339439361986047097517131250161214409109858342568419981464169295165047707426750249274749311118203896692227706181357320467850686675449584966072256238791574548478336377640433461192639627575070933363612638740280337409245469330801732907007006663592424309042355629267592226809373231960831277577158880372513608294073145328978962617023917701702973148048031854732170764666046132038374782863547584273237150649133122534226183733288659492311120931578844328275103107162964035056261558618802536163364323685548845299441088387636316531262045887381106607541972571020908654974804145880689936025867902085444816482219583022933191213721987133187973067041502598522783313851408343609821280820897561247983645668880552921342200028577127687773658548872717988339665732671465316377375975613454101183630241970836125733602655640239637092870052676799404289488219959141471039782208744020628656392930720818818801773809204021656945971312822774748816787213141466496768390162980683822974469561496601975005800671986579331130821381571979254212800446329201101184562123477353516066986590899247806861869578697549807813949237302629991120385501267267476084714062634628848264796122641609352165633560230441182100301361394348997733931769545307766668604314594240554518620851564628616016203668434225441591947996872783590330763449799696866751567565640560662772482747389751927600712936582292921380138777935133161682578395280684358971043493422365267787888110857435047571184341067738834888111063205372454559034817808248285041677258252313875490428666253625468625664892592155095029823956040498267843405910970637688477070712581813657812279962601649881610320103933248382530264473382871430584970161873102453789417256164066704185837433024508885968326868759802269307702552310990895688033514170275981845256683270124396327236348071576899033349040089499230699844887026635492900721554778266420153300800350553965454628314177969092949928422423501481327597528686093083381346074187826144549543465705302027979424455829710205400766940140641650475327363434581389379092959719104578590330711702887098819214036467019274193188964581169239878348557702646530947985048136926976858526185538497185018546853924726839101432834346440532341565079249055910255675754454364443756818889364776669571553861922451288770471769512519501902538411725690057783737444669548975585324688456909362911507077173763495923415697728002167180097706146437709854985271541376436293946147189984635466935022017899994755200308548900224968747539069575035117487336323484128543633209789089483677288953547325444270696072599457378372474875661477319511738434877030424215265376674459306637691469526085188669584233449066251795695711687429733185921882643088519085565831258398180740030743921584150191305987920084686307509585565480698841413009438777244992525267310923456065995342097783290439806716851855824697398817017579173961090832963196974607555858554131449547707647214217918274476103041221925706425108632886703553675746832048673661776268634243349438546962756761413438134219123012679131244260348537373420099542166637387241333127019328815740025439392623200972241347010465803872131779938606625954293432362689760147669219208146300873971608268108238767249478442516805460473712353311081111532820513070962794459897738223167682213073655910930964706733167354582052411381364558103213764995410731449779005179253940032437364247168458150040442855493738486672849923019976697904527752494782585309884713108065095478418337163588247689675211349272909521949295783683508316745816655691816982524379964658313343450439401713307577981935910211806200421433779243492302821412442298973130196164950687976472395367649495665540467956020009324265811415708277688889313666207378339458184986574662711703813601964842284024384988027528369976364210234545842598663852409758914413948136567009653385136927775215759189423883034751023495421007372557643130389293644061004674855113295744885965281709458463657678879110387668360832296919253100353817791420137567501451850831232532881073450629549408274964387475185809036589484650764053464412331259787381234418381716709958130757891277505861633973561683669364188340365999984034463707348487222473340323617314571102943790827285933884326178531874904367020010622580633236489540354780969413416257163454321407806490052637916573297313798883942764563516946737526126240474865607887409344581561037046857717460621566892456998298292208461879996851152926725866079201100866551037604474222158354659318703505465193567715084865138443397093548659502679042707950917904254854602202873667959195618975689306949630978202437777180995998428539711272379477670495342167484199477746833064895403141022031591991595946678651827030746055011397638995100790638145902626543036702294663292536413583587403456507593810755474715006815046008150475953237430972468880752429911949127586288403271963240612254989475473485281538246044887251366344186562526867489104572080935613353250566964754579295733565729992484601312607961122907711799343146374089366439440889050412753912179798847436396536783898276403280164244066798417266216661238075695830427013502863183188399960642397372316323790231808090188276228941708036916238606153072658381234290240073082980026012540191393019722790430330786988038965173446952521212904254386403900928300313974038422553068906062606468082768394243377374229365130971604563540924286795485433786158587584584348104919648607552925178446607360175620892293233543509100419487489911039899681787331609440367905522469230062545458286570838290843352017556232025658652089222623940323765210410473762705146330370221682246153453584130678864993884889708654935583841551851263016830809260701213178547871685589085054561495933860793125539130468897909826151815085061783846944106952555029036770791834989946790178692416287683059768283287698205513538740697790322208384539972755394020421540226849545816308280386625511073009196358936635869177954792036304974430366283749745105555873545546061057176863008148204126036515243416522476631150772530019661419354749378273936486068912064538357221067812499334049930172431396003101825487452826252847910572360120533210948129475542534762875821841154650977025780764568592290529519038847686230280328393829467243183898061923108890583858633452474805280386287309152296805964421852406445260260660479768569012695864834499091927245561931889215336743552361313066500498435322425688309274021302873930310237438475271571032468474508299705500854924587232033759310737908159939639868058375042649265601037600580902653205199242241789165686011304514343425012828563060954710385807551431515948984522672153933421230279277645222631886330800809081780918558781350090794750884273536661836100200500466151158733991779409361223160289698934116117597077204516703660486372410823080202968980252099157247595631501730840667733109918122170714734844322662609841032448261250101235925443852862714341052345714551532869789826973165543321546890493765907387839924810490900863976410624180557615733888589794213237371924443762515156681395713125691781296587861879187224143247027766631203242653737769995512924228362668829448613439916358519543495912127155393304574434054083000440172705300620060726385096119292020675578006588443115585406124684529286596197039819622477402533201261537393428023223854625612067355874257383173737533461758634333367905464826492854526848193654509775595903820836299369867430220866341001419672880023496784634827008428969679576169224314972408545548971531698694954576414421430194490670782119722270835005782729140477069804410980002587304638039737245088794008410590251404461051359803383564816439356742137259523291355380457843842381555284045263927896011462581691658479666251315659173953069544585652261127167478785866309091463562906968800122693145283998917467261767482281150847259830933151152971862419175147434431688273197901060192541533931843651681627644818755472008442241178604180920645802308173848519682857017967689180154109143438288386768050591598306597801786168579882345354974968764136927766054229392121351482153679131089950654340773653799059232867749304044736683718908608184405948650508001407933046536177733394187996854906492697819732619941419800928244640004489506893807676457931666629850078995408456620419976127743514943413263742905934517144968683703398715573864224029064232735935559881537542658716185722423335032925088632283720275328236819839702900063509695043729236637898785959775770521528926242674179042980508920563899529724492827553722823243591859528059784146517225348770469763814908853493694784067876131010842163218972781247688757944953260283346797865523978143641361267126251907084209516709382940595167678755657096151924602974191726417986091776646075353341814160379766975541122767661989508827092140457549872145843731384579802885824256644215883774278983206025236145360163774962053556454434645011350020516362089977481786640890866866038056315374247139983923853549724072264276381291236244151266816677711532370498080798254212188192467233441699091366127142025690689920648930251854714984535853733444520392537287015107696189782992991746148364820344563316154073782878313205067504668114676470317944771110479449791245551547650017061755175520672860116782569414364157256147168016844075247343769193403485899839849602613579576667070783216578016861337796497647899688874168962523252786031971334612242395349851171459253280328133636535715982537935407256953046523748170542280629381344840591223005714508761610638271806991907794115447307092677862955962347480964430883170135407856547610936640257243436828904157309078828570309665510807808242385491705157322479313224706213262400101151519601653353987191977254592639628623846105746489347755128777976730529950403553910448307619974301729175320332864753729915429367947650828286165025710896329166844073440562431528590331811700760445162484775235688762108923439760347695262603540453356052604665769394309876245624395957474744481645002462815294656459308230128278999159828228375852031554344504731325384184836702114322658583124186965520123470491669926444469046780406986001169532361548425817290195753490052424998783248838182877223076948343669447678564906417772141108038521956973802350431605216388192532849251242016499501004974003282378644495521082709528360141743208191729576533151365391256165689128589730126877984388288714635470397786474085026076006867819830276875227777431254492070736413845476334966928770889640259706198897600283825326010658798678241775993900431250617872735081156183897761925972760591033104862620429338183513232950405360122701353087144140181667788646810695858512858286811355409389481048326222149849871587124172688776723786704529721965635039484217683844413325549523979668801119839913495504464096179300041814233278540781046044316749222401513699864446515855805060930500153651193792516717923571402748186970587144817697364240254472713272458038344239242190914050152411047579844295406506101191593405530418688302201370311241329289058309212879869852548460946156410265764222229921697162583696913570211881989366960119483276547433534398689663333733368285029189201870399285266169538947533458922578202512811388707059349690946537258560748459282845785829360609691036310008980322161751766334198432647104184218947031139604694357956040130217288508943099527998590725869139617050942890109812166870131576515406110845126635222122986169696571202468071020980754287412741284164417491002374197072539825990482721002213755128838488072750012508821583129588402321731879498686704813260547432259612490651053883150472847238209193922367201436175498643785115143645711250105425218581113164411851199797162251680104554253445974420519264400574267871304010156686191857158030171621823147077214210201008310926919845935940865135390920424080540474942363937655491921493888760804131644201271970662198425514559139155019134481554912908575106116806608328908511243097220716362846157962608413182908941428927704166500468769439126763225716703789492088631719937053514878508540166378928993809653635209694824470735630445828496972197493210719027187688601347305352748474489913193562707158996306143602130048331860065681656997753197606012753252513142056763964723175872132492388787623561846224399108044569717966238815780466967611209039268016090594517106885792215954020963419490296109522492917079316435934261947521544930882637204957102195362932507075345501758337502206491366049199086826255658003865457876022128757818756018795390369299206272105948734818108580169377396508520077305805397016494264719341027582207462077231632628216502184011422590823971699376026544977709187098116189584992944477424631300147131092570700626573545007234813279709549105782684320271552425223850696098437151599114726835259081310166597364294669600415807400587304686548886627875630595950017472554908871631158591707211083274436173588683371319421080465365823398878444826825166409810183551408224901133300041712603211036915317306606860210844743246092445116715867701134751235627787493325426442737036247108605556250735626267023385871906260669167650261596916201755094814166670386250229954187628310766431899333112742559908687478914817230481380878997751392095177439643911845559551827507682254035390565912644636787233688398061329074947371682481006623460668635717679488483947833708954754489709572982917193522199614150744170668397381534410614503146244815620762382450669225360996636342794945874007336633291925898466908963703524273596170792184176564637277529362220604806201981531612798126580270132841321464448963695072017476247995340062911509304493813461020541290830985080402598279737321240201518217320235885156798403823885445139978770857805056257872002881886489568730149157454095321457290879981448362033461854209508620460676642606116237376665728182710968885202813081872158951628666525430783278062603282932329420697653546496847557523646255977688870448648029991442692220497297573016414242382518184459882779015740391939207240006401177095324930600815103567689952996322339521887804354408252690146620437679471145023328577418940249424053866673688794930270928278510497383473849415585233080497308066915605354638922742546431881270318852710409183964824989372738571398602846155344177961265032437190570675943662624606052503560011333404065966270370438068364385441337929759989946939351548475183455745481506856357957271108187143032339437279430930434327126689636304833178751732852862832765978004649229347113733547099044864639122892957094631833145706674919089478592509386454300728280393819325062289030879610159915700266384883137633353666863998382291455986336436915129638222891056970851172400738364135207960791614046305223605983014740370309491303015446875231855927893153598618259164921681878483681637331950016342532975036641473746470177193727361096651537710015832903682424375421392806726724411547364677370591247463741377233943143265395893090020095552197812606974196616320367311738504102377338426056138533640936243298600291886164481866771490584866574739661079527832431808226132197278014066266591525137524869467121385581692042195799866389527767052312087142839817124462266979113283636746694578402059763790506829966109600104364991249735796076303826462754781162822872069704886763272185259953072175236667034275086424458393967009741191803775352475606523408296987616633458074218430235813933716789161456301824861054159353476740093524953331903813743957749571024976029029495229609300210217956224052855800669028819311913543720605638781938121128543803949570933796343429938140986286424597948631749165688602947875464843632902392796858255196585491975488488450382612780602685806805778381660581497806801353321403171666633529760433116419479369751273597612533939722801778536738196872105723176270219449657918256993946642844830481093926228252920635038183901760590277547653867529440286417482514338728181126335486204122810303069545367797911171059801284824244306728038017035047968509837561282962305596633865164685246164611338345156943043816488987931239235553350615240000533205291836236168351677931847428082240641942170127963412381874968793266743436203214989045264602398279357768559847495517185712642052340564355375190701595895610683908579932899380043829051386991703786527315045203539544647118157191316020582435647962299194068736935659330327952601233382579893912650964438088385148773553268205628531570754716128328348892272467966035511219253417857616877109690256870854510298412006142481548199625764562300410429665675564110363373189559648613480051098123753842860628171361121353301659770487902392783778881062590963726010375782732593147079194724694971380826947667764038522387042377471893551516661163439611399571423779370119113719987162450794869942656319776904296026831181420709961194708151687413591150957609277898979006830233031714552014552062848111912624017742148416684071301789191208238943384168722221852856051515949686476639225524116792738678793782107751164761563016431806204818485836112328768995681044029794370646820511068664294513261484085099332421938320909246442288347495776013160050015276912126492606679535994211915938116045754131289625249866627207109882925576025700132233582019110261229785486937926559584014220795280444992254207398820211034347915468764604850315360870070547826302149621029597451900599895737856356848352754396734952485277013452023503317790421615695517941665033609729464688752036206729675581470407721202443542422996528857135615181173745865778101255157324602823958767315439756722656698438301005327219603867225276995088282537626229762849647000091672515225908105860731508518389536250919241676233026643266037191794456224640399303290522409922033317323329201394562602715208759915899155965425282161034523956618989747000352600353970410567352251094721561710938584708495333292990500473389958501919604100312889688519387872447279120673951733909198809696912775013429950127081253893724680261629956160971817497868751911137494464014200436696043047443696753828392982562931500945963789478165642951287608144221052966455881015569222786013678153681055172345349460100659608479043714586730196499954085721397565275137122907635156683226996980121536184481587947829711506944554506552634621707442891744160844235871349310764354484172996523550987279301663728132685359684134127839133915005135741266890623957132969349993619111783990211843100919193818293287210446162701929286100487328920684530440998909893609781245018986082011871078857752603647066767346678472862994741640157062556596164815222958041104694353837502176879092544036149811107925510280509622984119707518553457946560881313762677458421919837016606640956745950179490123187928882948779912868608746640661981271863011202962757897775258045108156428950471961997207310027351712603593843509127597845594342245670442220783552205988510432588104963764656898359131393832478559260596767054348367170516044080236076665813564285697615871520867976389111719779224719748098206946341082060360721953020161947199765747821050841197407931812042286006128277150664655610375682851814215155350670386148403260015455522065419533769815673863601038695782303383497508167976623779383644160471755894464233188089193806683110332534686544145006389863990456985413620931752765790074798630228967201803331243819695318320114292448371179296987430607341090482409339297238022016362490980716860868365557110643219670520362551497983701248483344824611350424398775009303391069596540701598864081467247768817575900349296767981566039039671408774211673146116035267953765614347106993849242490910478247319468636524972717243732996368537328193090922897865134007170430433264326632291405114147313868136689971763933117113744317142262036609620946046845038706844362438102397381785066216348462977027654601443077065873702768452989512287375422388463263833661982247806965625134075263305702547125168127912269274784253744784268814186193560617031137518081075393215222790519899645597123033219524303704743016746045843764506656154889921635519037315157177201046908242351262162672209040423543610287676389047283228105397107907239729022685284763344461030900011253898476849115439150611636514726923659202240406768910306503424373079791469364210820790733242248876402157053679846988030863251490399067734252465561148307116480119209768852872901356459680355785421715489660092983891431492763228855583195050140825912648279311793863208315029914534665305002272547027576166140927098191876751826119921499200444239991853407354646822545388023650406734824063890208269950621285630686581253189553841346179860896581365885135014272541401789202437545825821208317982911774880299197617397486091723286085059574012544708527535958127245578819575386805706865053073173779459499867960737410492642277148999950595451748237656683692057874448482087166904377263539252785560207220704420374198703697049323564728729900664479648184235816518237701529109465926593165501678117349517875039883550176773844712502958768559326543713549416514015727999807120128281066925296128538936023197027975512736204336745995900033611539001084138323731774688123989603826247346669092834435946048890471037534165751635505331026969785877872830869297795154051970782878787733982738336079191533763863031879764186082271965896033445631518886685943534820350121653400629674795932226631089865298422020454915268901798347029012869132337245709952859869487219596659803855903876492649443186799968002142330224760680543971239496146088090658024835619642377015191681561650182010652903124131912258030491467368466559168189315590532972127636482266915338353846285195377667068995730681162712172699583344030525618406028636537743979442043430855320447233904928440229834304209180926257738642828743496432358299666460046963444847468498824417572111468975739622323420387000439830321013674138559759624172056295382708305836562138234546234638761614344570939067136011502672350941149726712479449111094624611887397547139124402993093673549610147198072845917946476883334232248500949802513990125661085724442066063863020589300514234153413529836742266821508386876839458102331640397376824615382436518072839652318027513205311382629280823246208458231090976575176887543441519587268664830152190433799315095912138501839424837577537743610407301239899790556067208664143812167861411801196245392957352669611399122806082604801182805199855007969066516702393592869812473047408561850324224756434553543271090883071167356738070642288818559593501295057668893201936848007832383672806541865613639404987627981228245182796870598180839575977530224470383259047027320385077960264874177899898435300116015235572930645907713993995925882769324686087506659100736038889811023113458069269058966654294012034507583495936759101243364745008313979240701268666571812168900265738562849387814596322048529509042738836708008077625443922348865175152531205901180490248077305140810677014620254353872782176475139545194641741198600676070542793021882705304165648436366021031966383249235783969703376242443724656564230510842975009679235763912273497854834708680467122729155652590879935684444084301410166071459249305637806649163071410322212103932560053402106137510130860643926003573325449012534870525864864811125632031182452625384815996019062788576270927061165137205147701023120022153154321346997556116078654385006346370828787256429308760978271043286140696969162464076625504553746930739791007519678265782225857333035119559405860244857847547241879907880388885374490132729271904863485179159217307805682709311099552993194232543043626009347038839626782901135958686518555712868972321838523835425068354718171939902360926790765238481780513532850665580016141779587056498960623184542864528536973594054499286001147676864550871865834620773003530579258299623519232683652132310013680035715294572311325484711304225615817408361028890318040557609563373313084987764003636444046738419606456178297746038824685648811322350534604694255462407581087067408733731303021142707995946177717626281627201443175100616219104763366013094916406774069906400192925540557375361022983878873012971771189305802976620560884685147863226545310099480876534288321304096247395943063730312564482532540774240733906905627052388749096480488970674467425367919725391018861708670307588034457605878346422680687906981128221384077212280217850054884615130782790811843729974448916514289070393990814809623507070931467866375602441060860967086760240697293757427251133766823406104191494494133460185862144247202542486249225554953749990337428861727884345406049802154274165261443376645556919858041836570386403691014796876830208323806538935441055645085989389739761489082957743262605643809332622125482144946110775874257493993074295587226390442432060866262249309789213347043574259923589257736464002900123840716142145163184391952104295413850567838159663549604603078684012422603041747012104030566798054885125809162166957097064462200291791894824116223105544680715645589081540415001965821435720016447731563548875389063959013079754485708271644806558193353731969091580629129086090110570274472849765074134299936231512044158843626015520487949781927568040516434470695841119317503217608883468103733277146216402528030980302003356797629956359839163428722988315405030869497181695124307569215372235612200013603030884896994325160636145815042403950603760293618262178967887183174698012045682302169377541735339105505247438722111214396017657950158632919444130093949435259404350944220048839554243931273303646764280531483227995297327961296264666335606727011713597669374814296589471576918482537973188819938569973912390251823775589075158114323661103313409310827288634549160877642802071646138642455490203483604451082688715704205440988823620649940452150957803310840286832351952319171592203224697462105275005808678948302409427160266685168056819605736093135920212628823614830074919193531796509928917704810583905693185539963291073968156557873608438302927109997652132482089196200134469254734445057725038077156548689193721624516577073298852591326197500929327376904902737401161913934823187248780833469789140070318065244190066050948180951337049259373060752260372895793084261340631340537975540818847500435351748129372796736929333644241025201729668548097779073855799794845430491049055862750220663726203580348944501867567673465414477867621516847049694661873496462054302206999786057390442604356818727322279085089741541217315530875763506467746375331182452498509999182297157352103176541399583373689365954628346553661773442226146534558440201501349116185968743376864936074815180316283038986389470871480489687253969306510783505749687770666550465905047867248798178366775485655503630832161754831008232712688622594893871574360842682939156678514394095368868278601847089733956017607197044608339959047998129244632484363845800967278117448886441586846922726431112888454159316963770723784474334236579790351654554010898432493107788462646248617797662887565741378434040350896352036100410151246618792140571770561057932921402608125184031721452363336116607479137380740759573534072539752751899884126710760736716512221855180365862342382254757626122495485824657065082372833163805680102485046484622165459818986221562019706719294108790816646710289473912795797664484676838170368219800072601133864058442345346103826261698750116085334681661889719362757237195731747716075257844912236577769510328325174234558509862983630249008503033703291401822634846211293946325865644351319418892313520933733231593209531348084035366512727453141462791062919211897122087983432550458374577283249490643591388431466175526855104930430401259962422993020275366207821945434263552756754892370664803795141353853438146259179256208154682483348078688335039367120394974529909298481254740437832872412087031657595196776149540299109410980084375615902766789470551955923993796078127005630173917524292549317798088203764766407552955990473332211779730361168605822570920753317566537147620170447513771012714606330765760518433751884728651169971389456785331284909533502327593246733712285965223511992713018393077302559421630183153459114238387791867108974026341197247158000179971425180481496319930163546097147619284073101400581975182532914517167603993999258456648846981225081936536438373737429123199412116759941684111827139198310142847362906948373304111322399580208630479346829088961970521775271277092952500389604288213283611209568134379731833906592735850505418144086626625184250641393272977899145445480666440589532003944779219640069070042251677944196407898217172247074327290362239103804271376621564321863026681337416418466075187939514585110894939898613670362474685412738205292457377147011490644165554894633279129886354691443841316580953855668494554325765945900484050128649264648182318984984207890017381026280178031101339027871481628134464230946942086853509092998217382459122223368175865963890387083335591767040764589322763683617839064768931248133963868134499427025134249899281856778950552409058771744684575309478176459412131383396406252735241622280085494310938647732985926510237486141137556647668497195450204971193017312895850114311655739126812969501928087765243448515808817917392659482685875577026125074408481770442876582380156527974065727236019547229757481039333644210898395479555055382171981098450233600219721638374556504898049943096786025149909599322801438468515931853233009885389270944768831370110698138064482665371585457189841693591434532638187209409934847538943721183678294519014360900541811797148800222906498201173340129681194176398298710228118073877464737434111739353148463504883205683641334369870083270135063579593117868423708029255319831673687225288027824192931974816222364015632667766560404528584913440937278653953548212078280013848814321888968311731843007702522646352203693331215149270686277843856563759167020430672465624772032862876655143716195828071470775580539812375416514614868912650242844682721696937102520199451070806554927342767712413297111768034605055714342951316451974460702392268564794468770946845231434209478360442068721501806239771300186519159804380390687126006589941063465770334823015181983748040000191360356733104011122702383258534722745612612985488230016307057687893483008995322871177113458437673072952535487721995045131226266505912725027066002433934094187500606150348454816676745237886193614071544464850200566629551020953021435509311162770759332323574185276838476923916757573567597535003361265131223638841781549780161833773414045382909167144885874793804306141824065245939187297549329592321093416679236787132857339274281102908029959343416500984750625606498166241504254563848145252310016817839074925652141314461383727908525413999737575424061726959959020940730281439651845469011872577257381810000846177112778957625957554623335081299316936149960821580793418143513238506290662073289613862447738899462123287796562569549058458900178093512366385374549267896573796281277205648568144293032587892285647102006154949929761840383130893946114523158553611189371990631978874635943663301050183111421068524094576097022307216380787528118416309924594173931349646891641908170572806293815603811470844380798701230915323370782138119607230989248325597152921353967974030458053896480365994657848554218047126625652439927871954148175269853373302654693424145825851337197513591132997772353065476963267871825411205280056867208273850519846353566208850962217088418957970246919764074271683146329998393197122173988218822307805398044271072118937055084674202010500937920766027848177949065617655878065362194470644249490312353529738625408781827992449143523096523990238705381653813334053048639352308399767704343938469451886915212209068386635542587798127509998604843325534759542136558030698668523474453441743154221571956458825264040769581235762757162476979013135989015300923921546361811979565652999639194170414870638120509422483157662608767091259970606947940380403922287918742782906992012162113682412253539364480894637350885128828116029735494821739885151795237770337590741918913508576451374940647721702975601635654465662309225465006156792764433248331673592733392457805244131569666299549591040475135545652290901350852670102552350664564275507748690487897356302722825830011199458774548255560589024458858066177849584138572362308454383816425159021089404960125575087252993580351312530717949878312712333067193045009285716093965959263373343404397722656696080077254782941065231802765793950165307279166441804681291040587559742370802769625810704498376937721579615873156200125051474263080452350013705557598461891528455288088452758183963445479974329526907379867202289589387868488500031481201937410063457232754969239533018760438835637063052983221115135480504316987994246000283118736666946015969375544275952134809819583107425531941834496252459067086919417761356576874478677531437826480111070973776125984120155889438636629914504246670485011016440389389136894653352224830597719685558969250167918034645850496205339491056524765216616702821408067641806293687531683805771251361640602160575616042404137570751966896596497624133204076053260530361164468146704068659470558547877578725494898554238645692138305234695573635047874112986265131643816125876968524050032460295392451361759556734727943790655232185745532036110355360975443192481963919972175751677785204106946433922323888583949589989242731052339736529015995160028921535824226249272028992440895741570678599777152132231550066251856401420495516450690894730583840336754022390140214376209652966634035828082958707702924756572823534751779595901575573917239345359258632482996620281339143777596128221959650716330327159269561799574476657338160661996500860659252264172405171096168541436711949610913697242369439648593476023333470496803556380769249218201271807415300956221041395165547231546329278414075088651490868173595314429190224006979696089996244093071087948567615520500182203044352462084202717375425355020343467350112645815580370152483826563942087860238727178238858515603687851099131430417632842685016548331445660954851270444852431786445155017152454028622943019471716920976355257590702208856153898811312313625335926135015985493378474924894103278855546363969309342401414669067989459381180518967244179267588949453109702209894992104983887587653707846871557124259137671953067429145218964044697379862699697621804766040888705971877348128038891066613551632263650398121480708082069725978566632778336182664582124263939098998835168947569017736351181021475002739661980173767784796028158672807665770366910277992533419258547967728092610346911456779727915708001209986456922780668025107671151391965918433233878975700904438482817676217223730917419557910907148720852213057883247788809060310286135626973050442640231365298982024609976483753985199767658245616865292053170856708651915451246628103417204190561603774105397814516961661732850931338691090304435448600246090047309494835878884423012030408005570341975110599906439525622593020403111044698652944689021093604836527461407466611644992731979692502998629754888276714378539871024723624592520642412155419379632992219408953401480279690865705283719731220278834408674028228262156173012439448765101937736237390951982166157456913826565688280203512947235488603155661777649938357993950276066626796306464221572302270952318639917935320450961060683591994078416337832163653817240587448323057199297334237521743438819736404652509100545767381403115914103346892706759055119921447758352514584605917193133066368177190606692635574465845230890902416325028979277421946736658272003462896808794183013806068458561468220731518948467847038173947877151408401062340976285219880985569707711406103582546610356465593170495102949293207262409942260902721684122085578581299626993073255413873344678406607337186070190457894205611299841065274444331240182128523928499535171111861870326192128546260124003344113222825581566388834651642473280016987725536027472923243610872431037884031190281035128950041979827560308255824190525467536057572500453604830819677562071478028904649525658433737426715868726152070834856718758107795243547507294995953451256477604916560150604337482033067694445748066855819305193381699236414498895117514825151097627657033646221660378664420870927186985737021553262253106214521683201178673299953324431998402460111748461882047902591289756286136162539963109172200203267929402591534731415875513401316748074402816320443291784883086412576674871154869576102215726995056554707801911633592647058582013996994687260230434359318429967483057648771135673687608675872355684224117305590389639397415908897059626122996546760644347689805691571047729175063842446278961466644803160849222724088321038537984094091713887153699448448436876275260153899062405486491421461170677999002238904906694196837058507589714984127388895711857588340468573915887645722804540106904637925435441863452757485010750628366085864924876718700818382759416333641930618780868034174594358467770042311674075464606373651090691376198441592769754637405585902516375004658508196993417810823958950892304460760948615583048142558869608732808296623284202455701863999580697690847626870721597527044360704504320842346070943712861663674905348185527622194004003238159324650585458477426293134555092517411607528903228785507554028824559377049191061918046433129221969738795857246864429424658242448634312514822949901755543849779899193115462765140365213938392332872224824699067626419790988318227345312065020334656218521053960088452776500862061129917824452677500469491164384833816371429745429958577440131743079236247683335758434801616219987347397104001312893432563573421883468817621816226056733824569083912956563292379981335333597870613116909417216371232186334008483333351228369651144222612145125448514074449097488295060403904253711332447048098527582484004858758040950986796157360113682462516802390792784372273354133365680499791387289672456644289009813533913878838609183192143693030792542157694653606208428541098097354801157938771572386846811946671523761155044748396074554346212839840669439756669536107847754866097168613111080681012880860363266059228688554179195303077986158548009587085772159013573804903224500587492761949334578758267512380995922947128439409746509568312730527881884370873804055628675964719526405567384662149140161611271836366233330869540253705063766117991332142054385438426045983156709758910097301143003174351220796844969349341442653318543297714916637644143005847665430605645149452609247009667665856262977319493675691166406297681055020330388360128885530487978929471627809855093128101571949325005575375161041311297266735333745648883569631843073303185599930079232734231064767172226982059150223643617391814257558112693695812470115309920556822825192681377735532800682750598945610415891095111922867429677360060050993978348927519953990234805346686693267678915369632004654599218601760007188979786924775687021903041445198610641825663974393537905651842838103299765196204024943962771311481122470930565842025969937831292739673717035488552298536087284352251667777433785465773436725762676173538229897569169323504646841796169251496228071734318574597864203460539899520713978307174911564825695950892495964252455903658663800274972145815684461041198311654878011150301060570698351352054791594667255359374380749992373598435656884101046723658500809676430939684556565308001223660624750098395120092326461493129856798969001998875481359568661869543540742922264215813502607481067434898246050973266751835390863389326679949285924095590436518946410640358961983430809852706528589878271716622206487272270180547446545096393628042505287910437576485425829335615906325560717552283280333948292558512922541765595865559781413003007432218924612359017823539548585226082665650278530219945696220510848630204818049420178652376808579915574976476570156700971948490876394420983358536016739760869905931291909648501816775569254817309568374426747705124801674787080951849098599775855352038423742095532587017905901351449627689910858272569540581510798398688425135832754456682898975830738779749017291253596402108486775987038910131047895677835307609722263233619925728557014964637412234924940489811437155804748545951875257993531793872066345194722383042357551519926011384838178031189271607792954390486916103699503837285470787092325484832929424720390760415339807095169517405639054870270919646440941541202756226910334712942322343616633389471071389935533087837193426887553797178253264269701482533052278438820939128832193342203458761789377211754579901628319931675770200693866498433569015123516636580982737689230991760310033176260740358689820928790983829602228025577018471150316963041902461184336313893485617366342578556738351097930781794611003708477200159640796202156999130405696031596023456494292672386270695042838373515633070749194363357364793339085292517464413963006435845447073453107625912969781446686444654428756876510246169091193071150159714738093409393052186737898418910537072021593487028246945514495599102784732037541230026186376580761772539282458220345633670620977484654017525362027094962633043713949626358418744793417197838528936295243448811620579677259959182793743628178592436263004247651249992120881015224717436766099962387217234268744214651615989499793356064717778506244578419089941711943008067236140581601283667928127554617130377687805893516323682200025068327430591194213379129053268567012883704072503806147532509333399692077818680114766065131727987005891106400269650922771773087680757416043132013394483206163233459571264194610223446893571681605313242537601763006998810371487031481568844150770295333963519058727377594829165607971096491726495245415387323283748967423184192717845892451844770218219094650333228064337602289472302702437500210211181019198332036788969096070601796391174148367122955685324972560014065938515927379884141973633445705080940302445858555632066138239706200456864081294298750126833124745656011268656297205360365795677246418029489593694889319146515374003791026098917020021660039788843916098674159813839659896953274795324840033675166839389709207392299275346507667195626044128530071863643484851727343560373357514038664497679481391855200597952040165437692177703920254023355187503339817439745271323053396103827736935512695777754937186957255764965171671816993612817851183646903354782844310259650511704981530399419038143774371373708999012090718825784431638598609531741599348606485215004053446444438646009443000974270492411485069347156321866261464816340014643348593683629716302488551195921304684473935729060754250618892315097207346100873051236998524862153895082956506009093754172851026863323612278735179962051408620659915663455577075179192454792568955328451443404657503474300382625057675873672436653475962370403759524857751590315710432217574149385083508168374608301287838067229604899642379655656868189839113623756595407466717650901130063454362290200949081485800874559336626891570286047359910519833334350570811418201917167950420712832012060404611137843184834774194509912595115942942038276960027241353203490198784527270516206669599903361549161422914536660824659476589648213834236229673228859748451448431637890267052661967032515694048399015478826392254998433675703433991788339053858712741109800778443376164268385932207775314139351551026432482243032213916288365233845394057256790275620208371516700554094491486246721922497288932278400018962722344380983955710746434596527148962685369096617595158007784508278089237029541524537804015598665726202013923374411100644716956255522665348320835845086462894044249034326247404265868862235398866597169340570527797732181167667859528989772810442750779079220201686944350619227701737279595091093210552896746993614329204107627533448283906695406145705913031412038024041115654829149350088860156299737121166897472490304774575411499073803342377192064917252158673664030258131129141489443770696962210132389813253449436310492572931938568071982978347569018277982956765884667721140902195089738694978449160264230712453334626757279927080608060930565834730229854574982583790497571580196693734611119655352368013963814363934085167078012688612062830705596828405049012096777192870997800030987790457267060004320424548383639642617164313777606259256122031706614317220370867763708637456189663234605859454149536280879422484037862410762768857493976163475899055665630444675411465527396103275599431737503527851209526398470450737017522809625781809369116854519525552356653351854493759826555103385654132702900759801463809941906467284862779076482381877097697907928730645417321304616399314193862912324234924618748377467273405781366673061559688720632710412434491467815127589449871345921810976979085219756934263492980374900430407446991547588926383282975694661140577940137077198695895584564639098549713702451887699812410323364017472008232284901923529385964055798028513438823917780397895736152091544943392852071785352825947111576968872458243210208555494364006777512598666687294722676583201562682377228340572806145380281065332308314964485664369941374457568478201866766654080851837214758395665985112044340188521050538970136074312641210794030371903664863820756044681781938882990417090648340851482075606308294894211612927158835909235477173112498284370299724484309137765444328357295778456682729292030959394076831307240422191126571040195109826320591991765103158067005794130508437519531700941401289371919447595464050790937857693809822362210058830152044349119495689638739253405081284425577005291239552300329509395053794672396818664310540979257564720907255966547417535295655296316560686588043435758016869330705199802388805914298632595072999977863194474038081534657086617219668078364407740862017759919454909270761281347174896976491037626832055426903270212075997518027950328962496836819991883414047384904945275275760971423718319040542005104876138182575351991296426474609591013240483503091630416460550386042753566545322533750650496935740997128359766261445651977459583328667977822622041460447757886904281723163613733570779594865465188299363604960532259345104551651395626030473639987026743206438884119310881643694868558311569079542802378030973438792548223005022400770176924062615630898630233210698703477898052397462629135742570547579108568310813469621262726463887028472793950172626850322897200070637546049661716510448029361519849939996668910962332313196541949132342149110124349956339706033276970293300446819961288673689151822151386566773635683596281667492750860938180387140325608353895915960489687468187234856703232834989781396879085498713053313267632280154772085385026493596773656111741198542048909021752472758982413887050380096891075409167428933990171570761102279106800918594122876006573547887055279106994274417052718337232887744812355487946300442757523329935485520824872829820479518786910148599574442184244891002621035049199156052045167792300519490374353178756385754037327979865631475906799526857736709538784773709328416576495151370933324186261537694966405536815283322310888020975619424552285179180534764082975829894432851680506750500150370061984534983458606545180321010538895825359153898257310535344173774054883483218580750812735506951810113598726982023275457048713003382439573122790376782159109729989867041446626269940737984483682535597172873497033679994383660697746115579852444283503869489622215477971804685545768578103155821048782037907076685657431204177686459447129039485561965547994299154373900956412637414924513267811057415421081907136042248105019408471527093073428852440561117075566827624712072937889853736328341503988442540096845176886546507644203290043200573543834153441296718968055149258651792731033921149614498077344769637899685095432706160625019083401016661477634896988992382366955099959087606204591321419947239699019915285870640303616439960039368059175736935009184275984500277132088118996292443163700062210588338091911778810115335354836899501499022464749460163560076207971897928318735945699573075018495929179310904146960408888295538639129314356751712446014642812994496429472336116407799085406127765976236647141928330935208917636474622995359688366578175945298453639065497937542379965693142509455092652276589001174863238910160714386815963261086434998787465782074196014840845348949705633392489248952860102799570809385290113517537624430124025083763391437006877291540220579373282527513647625970868087519183799986641218562910185942942025180155794023356299530914858674988862615595278772401914277422401239484778407232125963157180099693362432731056181834516513441754771434820283213829093488525787466498243095720413918500442158330505062463168180201928776939075299922513373096716116918612088541559034223589235428279236935052078769697424153453075968058507286804345619288741712881953147932988364735982690910048941791159763066587862031122487323576457012915705009860258481705106790884342756061766864913768417117733501005267609304300363996249441541463686410132977845830396744677290036400005339447826550364058429019750025314635030149763709403590921843214574538844580113181339550474226800369299756334273253874555729626196124579171898765788169267715652292578794058242391148084263639615664590935701429807958166268003461190411891255376608341887833031978062450180631732270745995037117957702891889002127013740579818954960026196680707836911961090674412808516069420492152913482623525722543280551937146686624269721501498776119621791715572685228668160224251629582421817103282829043418233103089822595979769955288313954145593904609957678561450261549390315493796881779872585659327941707444545373611360486397854528497559344678099731263218326461766512755905259854525236765970367479968234821525602865259468373563241425986326862130764986761059406709740991487019619424363979298823424954305272602618860130436124546958474212428818262676548742124115563320421997114148119121702536640353607710549826299587274515246634492510997033030825504251547501269877868498327892127995534724710530522138295650176056384609221223638919797605313663930333424944530903025888369450788905182911078320452358243481016765391652407077888663183826494228968358006451253831875136009794486300882254268053696585883086474800107257792056969919591051671807841868904947241509102935470037168415537276523747816328589293518247206217355815223422852911990935712868341628589131047499978767372083433658269475632376356362970865583751238492921618063104790052318361579947580422724616409468732232387300120497126121530148714114349263365578063250118502916811055163853008905599796570215496684692497523238403566851222891018814283053293675424573830398024937440173858086457106990021891997195042804864324583139792321554138566890511045209824555926431390401305806358368517879445745173011770410461930161160798964758788691808238478717769917298856020287548844364817650377337221962523474538265943267250313417700779713162028330039935716900138963623861915304790297410406232482297912978734312809368689202778645590811798648839283484756421949529412468736380071821253112034448653649776438004298045544774971578038246404244192452295294753313817157035989984868136007155472786364592372766928856516989669762344371028496698557283771567449272731557004571907232657623067431104927967569142997603545172965352811702437763622044976755823526218996191285480168048501429173650480563933332698737648867393842045475360500216924769758831640732319711684324400654405606377481842135112635416121854465648969558623917344341245092168326098572814669034817470889326599834980541152490264966411645062867369165274647787199889933234825411574258008020109348398695795465188318062540030471296656948625326841549202584851024150724852693642696699039868312130551079488128006706591782485122867772192734576783557522316080014635450121193046519165747957662104730952432210887917150782386635086620855759306594343046104778777202055793412665525939819794687740811804915842125121005364898792161999154963362860026191319285811991531900373360538510044112757003804422699467464609869235450394282008251370072133468590040250056916426126784304360420120609388761779533942001611488905976418159614569416003076639290374610671446591933147869883619017579977592634797699829684924575413364192873350285679101256670550752705353888293478480622172232079884438783071955499203793812487283195754653901774910806741381169777349989256700360007112579662394811935676421002337290192586829270093349948596990242948602190410521680041171581598709472176582182060772087899223855308621736422197612866641741498467468594517320295994510817165358808175426949806937672551743051200414992534803849633152242608232965750440879798458248773859525255176064493811726945368078147736110840517531855737852465674022379262816448914446925069864967225643036554155584736628281951405311508141103997916228313908316130227075406473826796754819539843788740480142893078270130534654201664813045093067089187318461488297517745671350431128279683722895849100965886020731457170756842933978379961752646777039336127443154262510382775809640674425194362557062798983667305396723330695655933349256607672497123817727070986354920628624970554736760165786221404814912870832433632482436135442819388600499922381061502852454190320354235517094823131978228787324393915302080123618637512266387822172481270276837998571901203554581503560411719332058384537097540730465960070209996195897754100051263676901064121157817473748752013287718051694108205873364498882683210370082782852408455829100561275289837470866256829056685261776384488301514421028638430176635423474107248087941852905571294862435979923539440752900860799863650670299972190771210926326161286086404732393029092395400018954774198389108855300988143963979712233587915592870145696506731539543194873408477809286316403285387336861322393031377608087318937496625077510499120142587224655358559482665477418430770198062710074409773982390560247557029868574325462942620363467713226685437049636430233191642820013024841141073552601612206092144547845816842569357368323220316757924050715407144499164508507605403838755776989237745073270422285738117596531334875248547954901839076232435721225085243147106595157906196640093010531156252927300955769809663420732665314912788010865676057829958598263165580946450490095058917798698357355705705968633663037969880758684199295568325381858696325307494813056845358404767632925526586791929820762206242261798144802877183261751062022889552393529114058392530433568030304898928233784106652269138439545564956605029666157995923313536047556055857183607294523419274842846611915410065601364864973454926593690507323641686561811704491476065007207485897402572489154479835449878846102176387029949547328742168840858090700480365283960085643882858753615218590770285348555522206158155404445644900743836623881989859762271261674370959210972373671388840591397713604066532592054827793373835195222888428055004327613061462836764800690885453473552758060199560034151012323619732652148732778367883505383442942956141567765708186223344115847654594579492947511111294841464173388800459897972192813831985409067493973387553112066849067684118300473486136366246477205812535170418907999337205682831170780904022751349491991262660095103173189370668824969373755396938283836429985364668168190711238468952917171820466361084173136678996066405798629390315468629800067134583334320456104902740828249612485412790732277986744557661537563028458103872349581226618984981356205293714886605501616555017542399544362625787431122823224794494308906848162328110884796222718306947151995741601233274572403948542300652683216811037805315589208234929045391829391331723311397434681442552198655691656605680078232011225279509462090653313505322977911933676763325239446719486421065154828647426849999376969118736610926977880915066856136821347565923620683258542699198909533030480697106397620912214173282310133105048832507371882213408061024757373618449083762189051698522173016494017085821605734908427069574731018711788121855927076861250609555481777439912887714857294167978618581769802847287157298742121049541899898743102812691037931836511884696360227847739482594287067624497790752034258627603269900711305938203906153879970702439207421572584316641495758074487677515056804355939921009047400243235758332639376094790777802647385260464805209479532573835158685437682632632657080074003772213555736859942157443231871868666197637916323024725928567410522340831906237417630732633191431409696824121748893418906581781433677208920925391725156064300393751729445058252800184915401118530856238736846279096878361461530908059541085149281512713579918055166434525705345757680920023597944930886670383407534904054380095715369378576662605173133277336078484640925893533797956132730055010686385730676414209762395990332115676905619820429663010583639821725281927826591187304769504545501193662414518464302486518394376946281089756021162125407384413884636794695373099742975577622252396806678767409047628427049994278043482689983367980010390379002980120173307901439918208246648429008138564240277610557895989565253761464725747241422488986344866063952650116397327306004205752395902809139749996553849894605253877117135084948475572093499144682516994766686326681423444982100652244355998285318904077747951238823830680521937575431624429817761718544179477347113988230931826857909960984394556330502333257904114708411324528016987941987566955853609768899722413516293015469795243333690421904488263626933438003241956975420949608321480396992784769383380618502038349998491561280455362308257304010071021388164109652479210669526630284290454909741091932791613042269864722639218559973879655457901016395597653384166138883485867258899105623595374060287673803728454628828970431868276364412726955839245463671108688386643361511712961852705571247763055243575628305107840354516587685063926639406536960497029744618668868324731064142508428613125494029909149675812978546947241567595684092369216505149348245182963980103842919670847738639091831129099442703898880783999763953064345595694298797656486940250917452682376851149849748606355108272680631490008403636273116069076332018561352580625996709987102007924793483515246526324005325505562141664590356521087988690666004125517444569432894507732054812482006378829013729223088732819948385067959159869003043867710373629434011000575426735364019432167425150192437130093055839843759059150215808041380975107851987742562874992031899972242510521385451163354821715761195045373098994826796454949877873881352889100484389713322388524490161113362680645515717748219796450373797214370813804606950536032797890423724933636158685389688000804826116656899226385489670959002016929455127892974385715246548379132046014856893338145748567673435968463280393717959846667998617472584622782201385188678796273321906872631718053247648165968818412101684611491080121562532242601498034476336325035540188899031353062461372380884611498659723100615411663574580551526332479577792463708664276900256773342988242648737910923731194396383548560089726987740072362712383975363760637381680235303863239688470033977027806668498337852265695964226548344057226583851753865574499687398596723198472176858580051873811348668613244133997992008535056009762374211129872821168941697355119995820942775148468310909295856371184740133209326779238271725874676050005861675376524677586408887565801897978623146896643400109639599011506633633699805468150642071866516104348077875566241705394651957924642670454885961089753673264986388532139700379421090694228349446833172207570087334329411786204231986643895530428119434009261435905753321167217236952797880252833173332721348283740139467176052851268541250202994949899495375015399135848817402021610866340828650679864135343916785826385986737150487934193142035819651885626726022681525023269785262345600098258918937743149727443785675426505888894544545800262954945287224492802100019377808461948296229136907871248922459292780528571415685599602421924821996543882160594475306618467618997324622023440309068732918465551737915730518128901718417021593016729697668064276052313769668869237227658234011331685549923642394677807104286200512873052701037277850342893803484543893967551388730581790635204887272216638633398854545986042924900733687469080717706636049435184057141701162659833401809657019114348662926583876815864634631494868637502276447281055039704141996676590006046630511102793580543178306279975980859984639173983868496894370238714854875650926013358632193144439316511076374881437069512954721225393499942412812869216810471502600278495612149126976104847392239807739186783668997843045584688244701088857885582380925038083458423068041202490782510024562740051410805131873497897710732091597366755615776654400389339236860958612596492561450478793671025196790635410296320157784523714981739354476196660662044103145628933458190542815884865444898498667932620608215094553401477854078996453840471100356561282744729326594853584074790901471013427550995027143815978088864345489764818797130384327197565166582864483523386870712281653156888004069990451143924672929263431939372313688158309974483534561140097144624521048680102452917092781638768016505293217797979172924376081809412444271327896466002665424079693447418095288266581197331137910712054442303152899930612001111700115233180909774367803959796797820182647039603351650223361059416993061635925531763393499703925570933985614962186059172435225898196678363438053686146572668501900384038384970185115306787814313141304623384590075407247491002766238908030737934285812397028130041281845968615483577568104663065656779347017404778097679291817121588644538290176725086433629385708907616372449318376398532514385389592969482295174465072120751564931530165568596044359607523405636490573322379334232155855707840604515551774872463312130895312759301237394509370459440990453575123822353182682895676063786422158029022877543979863429129630476547181204045260830661728740470395628538557687091209821542751192481313402096786256713495831279994317555470151136537195575004474107927100101566829988691646433531304782722137657667758114803555903655652132109753620855690429404649593048707754951415532925864477535383368466092744316812931784485684138951397545336208459149694389068180334632979562560927739807111929930926449756502382024417137987337538033930225309522817292542476996143386224312980237218766244295474779982890252670703674413901017323537811662779901471910872528789854639662593036241129339785448439115376598991186207843285142437755289739338035084614071050114189485443446683823532805634536692774138999197965738097005056289059782364983087649788445658367295825577616932729075424241146424741421159490147626420692477400952919675013598985842537333132840193911832898292601008196359303648148248735334663371476053121225357990016315339976577778273576332562126806323710564334793938892515695015647182648293562259829408316857788685234193651585263507229644316924403326643436888772366297678905249124353665933542405978164654923855249563402102585836903793470092706751270743662166539808810370724030210339036549242447845386611473072606302982046904905942199177861418398868331306569483396316008830306254758506794832604339930482175824573861971105084541986844049980280717635753100022976076903047549242786322599732595908924542785740865959738225515204296403324250157755300008748797408451347649303947673019545808958058523723385968845866628861799067378678244624918501808015990934753867208022012784191307891112756174896843695665948045588338248510935935277349556278472755504314703968551667042415847364689609091535100760330609403511377393772695194612995982027496870249374315477981499275404372661562664458507789452729031656092126958304737945473968877482535399488912038247375178414296020099650494025803852164281190354796015774736734064624603220768316214484530500730168199837661238098358150196432197743410433590158475278554199938862677275609520766609581469451633658452815520783483301222976747046570566691593460042375167945087269685773438138825277782345837450181722845172764211787676426767886048658790691852051476272379035814885718067712056323240753123844573753634135626845382366707677629877673933565491940988755859710467397634366387564556687806447185252633886086123264866549307447035760934326773901142514602370163600877346347894073777812413024211767491776816147250971713727058623189598618772025584950804856117535790059431052621234211904845271479081973396814664161265273558737783008511239249142269299901062134140461309441707086268803455854741550950267516349631097581456843777144684108982618999629128250421079683537884434753049859810611166361624045056258342108535936468757920353380924147292195028975275088987604116114611865133666881187539959801432447301359166022030898409691587032109998083995935869909045191768855497427297112498341391070632092012295299286323952590637159832093931852332604238244764152211060291990049799715466188281976966978016310607056088635876729567675238844582597234553775148327306960654528130518986477487025090706490088837953708393492836919993742067042189079545998985740685557820227838504333656999621259170600886444228865235783406408520137103021679546249625261020537784052296653359427839260548001350518913811979139642994114858491053327443100468054736815012560166171237651321055285210736708134896441938712767893906744027063241640603857470722201105744617078692534629895127688915210890990323445748296783036231067649093197804954473910079211877780471851747254424403960892620312784333971713091023856066775271400407028935083871690510845368769651873909271579896095673796632175402157632547037384682187131010862167461077716066280595882334842517193367506767685488072634414136690437960169644108202939312822567593859730745611885577503871136427091052167812522230811426821266136421808733099631746079716177383880423379576718191060069981377284368096267166028676930276814326082850878231142368508942633771598899925941200080641068496368188006691559295665068973096243935651932107663159808572897330375689561877484527139485341702607966926595545521423130005284539938171770433657234579017157516532291601979368507259460695139023426838051619907891955314114440247548031082210629037825552410137364507961562829634973027395518174814757350384710126213254291246752956060673534267572966126970484033816611439035429757691650456651607672569510891924256346883438767852583549456291123072408265345443309758015388569779834687861812364325478444571614759234090787408447722972736396956731613357997300668229214057297898131169043157105029481763021747920671612566047267173580688822698951302965486191552736773995188687067293617522486312131667706561057618237550728804690485285597909136205219357091424402756782418377082660632591551992520456862500172812363486671769908713195888937498124307114840252514020356023549804830950606471052610777964851874708922544578694015809678693632257015441954283859233894005231232722339075901959503231616542692052301246672925884155997111215707532563351944621473431665270991447501736180540052224082445866687463987845609605422344215099440761880578160212679662210632340983326014854643927610046409603220906909840474505359672687469502888762463123644485122013919447422514830838929160731420399045952613181010617506235056367003820843367655266806319890773285931594531219675862107748426096835078774928817623738070546363721386441890636154875096021942308622660709492539118301180215637842706081430674170585450643850548046766734671983130596168153245348236478566620601843341568240424712137081164343584793012132559501603095132128871023090644967917132962964583792703598832998083395207162371287137150998714562195525939730050734635942119605746128851183531575491802902042368101091178390342950689304046905402877076709385732383889502926774694283635813253641661512940805325096206503283297444938184950418608716298296740782338815078655157823652983322205272841712791235723232406789533705271117358999673464491274336299802990455235734265516871182061534844997567000198058586616013560670803596635598261289205365069741934754451231248361624004523056655314062730850964380534997842524253896991081357368220979935355523331361965010221463908249601304993378086263919803851583863451493020247836102691812312172771440239118466817735156412017503088189264250004474197128795119803963454444047784689518163571651223012416701539121599407485598023049365869373364650685988717849253546146130535478560507792809389383881837165506121735142570502679584880169311241394667614606544859125084673681633767310287457279188329638889020672386231962352970776531599621416001309054364152185898687189103662345380187716221662425273291825215735287081211940080272894104730429914842923886216070379384080086685618817278019634975842283488678756286560353730628208328482909011778152712602016853387641992321371106227553283488946254827173000752290678828483470117511820774043087631716718617883283966833534635153022455399682033109908112774428186521002715865604533560697975547349169991730632899320874998433074711915170182484555730424729642549400572151186316815260644095006178078355483855311010515952738071724005085284323257553855842119257183841687034560559494798920089831033367966670164736769822412441365552651726732132943474017733882735668623147097343935680292165702702340829478354837476554032340263115234248457914580651065227719352739646540877399519656713343822909792716637957157392300762147249109987241810838722076737766857248729004735604260210736740716468470596592009627304912148925189651224461900036335985809974339561582106885236271609370557293237347578452928369125553957627976808343641008534601054089038223585892163316587895686023794381526055737969432584729850767400716998836966472906143767342498350735951364668616132828578595580663739671783362874378252545069460784803467262805573374545457853520506761093400010717929140065937467310485628310710426790395769594983252397602325523289777952049525220743392566593611450046786074872847486658178079407400986323319978627471760817720590460445166266302631658008245236187490809843484785186327637170656312473923776674614394353167865898413308377080573894587655699247432350069993649846812215938012446796356133276610476598486091635135214760576467278580709993821914032574313957675986882835222781220553278514650054196366635624334224368691376408792128332202793247140446491618284332011996928974360215008880205684907988516041743054408306192642593482397146950303651254658878229337825246098432857342692614427493494297457943633286322265947131843781460818933970446829512442321225059355791098599850188284511645363703467497809635251172260164517729200389400068086902468273598254322029846395425476223948550827316927895442922653285203833286720592320284992201418442605204579624451784914619101509569612095243574649943538038104802200747373829433221007072190516552605364342659860889365160232720429469624571358553773958754172479316705674898649890864878120041735671581939243737468556921731107419562443873789508024402069292592601700795083616602363570921282284874952411913229137454476224188319544451329637030659283578351912587119314625220907138395268536893665895419598764792798553396447426737547616123981204673716675880639622903909432714222382108760018930058394860603007001424382912702105147169896067823685079708989959143800311046093108376399488795534722266935183357874340078956349157604656237110199581814080600548506577829993259037199221869444445699869883472632249792106249045615345640658447917285320508620784005705828334360416848174248647664972423224903685785783863190570223458381219989427588835610857690137819073306248626190705659176315509375999369806876307757563120104775550790758765511228721782508081813322896256241870744825198156846311504559309947242286048194562395018358207501919614217911892013584950646874839529563362918050673255575400762070693869087347962278434334775678261431281516186791880386847567981072047107978917937634386163714984748853042723094359102727760879942514028091044173966388868922167144593325749332988578478255880123652927948342797217510287742246135675396125527201232145438346446682941278341204137413308858747587585064841047082889914003328092729593559621875945758098805165456065599323007894815179449050053956102011657994319857847966157436262812262716560327012504077928883299649504158406240031687457774617042859433293964808902941499315744807568641990546043227459319335765073888671165545625155408059027638424891471143108755404863888822635131134416254701482878043307527332817379069590109644137668524336250716009019303804657216526251420337892513268545415415089599505518101319961061763264844563955214857435952712592178419202695661851914794195861374086447186048298534876962569192878220819519610758728198732120782827962540403903104730882285560809639698743801485691334668636141936460865980428458491610531709664112963360284769156892901095336202946681132441654243527282365799638854384315418647656355945946129042794495958575758566929002402386276002721797529909081605087277261811368167440582519603217391065607865802055474249983177447070141018196658331080880681727658611809758333356331041423411893468600563156578071216784926985169719774663406495356726074619647582440791552984091085635344667185969220583626073019871244732572363523168449676821346661472890463758254108203062486902643051495251221705509500033794901335926979881129864637770325304092716089846070497681360916257189499407949660353780536572785672875554374694686637518868368720507554430077354098426700510797308334246451432902622875111466025143143207787134355801944933462984821363736671211541416342225471140497743993402021334248175765208586165533327563108737683952213696702043472618585152466536702760618922388927635467104716626148383338601571348903163427228349857427564202592718956810445447055401676476999239306882120941671766585939097807647085806239850459652099442535843115190660799974943785842329357190846625175801987395371821856324856734502418752001045039001285618539344491098611561016276522992451688757209011271966764790987847275434321807931371332400994379101193724560353964787372277739296239160327966226130753295265769748942510793442939187418156435336433280618085224935098052925923680556155568478199582783282904103789371497822249576971730302238918924317549057593009907246524110403947195730824359841536688009223446538668756458143306010087843379722434596689907081644953222975777392574773222923420765770609096465246896072007252775173738033825153782101342443168451391791865101581016226579349499079876645930803005311446886704457314006396907693054905733155040967085268206174307472072820193067532644546905908383823292443385544326916474369561919131961801145004404346547278953068646475737631953375428947831926501394587328574546505850289162335994551504741327123979825131974624633692344909008476031474121522468394419709757277730367850507405768164261504595952931383511139409064292645749856685505586920769774085136407818147463912390998393447681645056619993428714779605994425963110868912713763591359057538737849292125113638316874952342305652249105196515505820794054960495974180808841426984444077602292746445306515092195960545018660861329643450378125794544221498357229563160555199587933282418380091714560742036066503780623289148593471784478200803933429585645693926517133027100583463549951198221971867819264439817653015352835396035681746038518465365083296011190799338327030086288340274222759347515576339993392034705393236895325547658291341421971629893972407164981845613867343714351918083280895249208802338036015860348042021013586457200501257048319936634790209552782307143747356353824860041179023072119068532691333282896359009951879889229319895779796920387066201654849226500046816311918569561716865226261065711350335821796909005719130203978673985403901435771012163779451188826034012701912920287852395543131728964232633868480246555843330326245359602996392787601076382119610948670893609524547775254023821447739819058772846971110734525105190372425563800005934599623515571471687154624820569897077295390931761406926511837691410743063035731821679157372758360930100705227028277813977572446315651002687236447455292873726123910624074228968731340979674029316441326886095396367404653025490185761723065367062800790697013482267722211785079842797037598850851293873215069260732491849713600269626263946098118012483986347463726065544427579988275491807271529233271221447092573324835602147970908293135172001450041551909314188661436031136337480064424020080358629395297600600149789598572831203275748593851629402622199275569711048738227591653256724051667085932681723226043901462221081166717187552166887799689224117920044297479348754671680272428588771321945114769173324967352390753812332324075407193622449891864982031437285158457749460082187233162306249334626266536506107570118245607639289343417342442186249363697608358234731817216945363760595786982955480981607951579239266402221874553787656079366573635089664937040910363317281170118339377390619218837859247616080739825716904088643516262877198175202065042272976607247297672188964752182350342864172439020558890183278743225649723282639040520707455559080844903379156862760620993898284700710580975149265023278705227878989075413363171136196869103881222718033200620150878461930944711382661176112251737232954370291611903427121741186735256543302905327141880707263816878172663371992432278367627782959784145607885706526983925449442296783777256226855237880533468613170862390354283803801989796092841806079370428315562770067431072904391158682432456332213915418201329562153617715194878422765357743923000651340577804687795491582466480324176711265512794586886890451158301730906305230789178070210431837991575660242825943678008345874873058218128192044853370442594538409097074374302644255411990717553555838621075701008271376170340540032961321660338394285139475969759393683310604709340671570211313349372577793339347744709256634284656942154885732401976039828746591830243601960765119043620307393094091194994845944963351977954751412833179085347842774139622480298138611210832255454239888897027054204096592111895283725529305763914836251774768671347770215561595837202862014901448796367195730564707557792185051491360299578538069738425833438794467796645224346278964734193082002909790763399203488263269492002890976105081515417403353682513418663286460504933830235491761544714180490159847254086951252190693227398009458236023759561813677312603284927934821350236156229208731680277956267065369065187216045955785972766939046026131837962347403623925897816140770335052145035740815286685444464403988202841911343231610890530256936624046444090978565922264106607460015861613185585337557551138819900104789855033921537538323432810613216102321234883839946575021535029934074783698118445864005264804962136588721322609544600851213972302865800709178296444796184453389926163703727965013730186866110658041753111973989624415932724472651946982635613328195656351331594804446626250339493550795857790046396689823604183501773503939007708618170464306496258518871598440396514362826101657665564456522530045231299288328134403491602503475157004191434792459858472709435168434030595111969358685238810852653680431941674441859544146674601245999990065589149496805471287755996535442945756746644237605552280773037419530664643607479601251084121499244146609673345973428752603710509246235423772872029848644178596400449783229594447671442535383218242948635798859310917345002909206113009279996271473894417148696278210655084700800338806365931807906431848400241736454474846544732672512256957585010050363100870521109274985400895898946322652166977182964807813230032055094345947550538936115964595557500498645654192362882945841876287020640827362942845219260641438115407667078009442164477792726228956078974667309021641832468882139452507702017203279922654579735812202286965960371516346265376735483834377040658054795244170967381497497529747088596293805942856954686216136048967608689428963832698935319643031417452923278234975584547079218864567585329745351064794130083887307124650529745472859477888548328624487880685633499422521253893303819363795057757144245748131200042130063635645080845089396580401932816551269796772812598829643397437542640859983028165987878858314542599852397298738114718197021818519740172609143187644040492481295402278307010688300810580024178142294882135234124377870161812507543520406820007693985324802132632980443879535584519940215579324664408209738357548029697552837115572591398526191115031431435284939192729662341784374688440380412461699399842796919394359136684082968980504217522188890909248186686062374904662892717361607858390717021013670362338505320440121103357555880295172278118064309046795203599984554774575721904458634150214981204614662251148837189120608361440177521590785360687068902065547877077616601783301239907556728772376840085863525772915914539507153495332322129088590549681355073876333835466364760447070109603308088979089920334249034477795822639306292052058206776587245570965319721515785972233616542554956872040203854205299845899342636078379858759619463961314118255904376763423739422669403921520246960704249471097392284669219375268618188612239573255146920251438449907310084663854384289133370564652181406825977216125432577532037165384639759412712041997073516500160482719399009779263261152639033571578295475026440126195953644029043547648796027399214403525061965022590028262468908115751886107134624517479414327057503442718963880611571188427285419569664377391499802104791036730442779834575564552389607409437568203127062390944170324454030820285644265197781161116865842340839755202893854200432409172165362366188700327459510061584845650403919794226940668403782854689996128839674815607085575247414864898236485042612388760308850819682850784961061417727251969572878960608257627646006266861768544859898528002144759891579420780115995417802282297632976191662034694218125416781268685278279243595648140657678842969817480370814574806500387098471496936270365293965964327352604958103639416725070242028842194070985255897604455228589217470897871511389333495522022872388338567946405696934691974976554339895047371583773382471718929078207570187782675674984999464589817680268687092217874947620954719023777030535550039799578260807550226968494002925506765257997279867772159294660734679800021408781596470863474307608762589925209549132514096289933689803844166015742455602880606287049318805877176306309942953017337999450993124336228077427299487822491932210942113677369804262660591545558261398429629746875639460348167806909778651652100174482112837339927103919183636849881397299894252828558588491599162101951193142884828409299764937339860587554937765250619989981490865874108180058972047672533163584253179172564142035257713847592454066689598951887412896205324112265239445980893150575871646508226743410266153759280790092268081245870784043626288977083443105590699299932289418205620597080776496983266495365819224734969533191476212886094561606615510830001504548622042322513949689713886399286406221562198932167802435621117514009529576884748094155232073538632759988838082884480009609500884179135296285719407231608330115162370538590139295354823341517742604414280656359265654770398739044012681595116350996775072043513468383993855442494776307732342661596121214388588217580862893686074229774831414912928962332349605825238157330820546106035896036608762857193320399076796322540607162458701014624345454567887607143102254385123399514030507094261579068940480820448309550562132820541076456471864984895960088596657590291450210738407403544403467385045986451612510516889919561576127223532081815387610418231326883107630550005007128010613887772669465861543566231506036811502848409499929225397499070820014602989821675308470868307139647278736190898234854840379929936034226802339144297479405714349191295459895447726265605949520306752360449799374988233097130884582093255925909913118209726177901441194167459166843339977085527792749475113746348076181070616503651206339420566541446401493260104853267676185226719432929607324195309339360677350835471814831257787341823319027745548642203201872156957317322920129879584663559624081308718019398367572068652536970803841907801972487065804015689536317315709203454585127721090269379288527680922881134558165234855570807362625492208722631900227519238530451928860669842806753157780667947677683429536721196745632088771112008011415099630457081880675165382690815458566604499668756442417655270640716833192725384892325909205029735830086641893100671308858521383771690731188228062608399607192779897112872431179023660920399600426574544171271388029450022258479447198282784685374541955748209539218827385332346953880322086565010208237998273329847556341656144634171741697864181478975156567395054277543897376964685643056808080585030094137973779955414252110937625387522477435424855452966137347122782315021614769316667747622957177733717153424830169667401989720240695221332320335939438768535071718727372010813868503188648404401772592409878628107768609698629913234960997269447818599374180181597052719604083600275218765222694379242692015192894284982453826208880599109909515688980206120711016882498190201781615498168281065676767117613463124111482288055239343467942510597294643441220453947027024725638699465229602979351691653356150075975195236055016583132843633268555467147489944547702588714563579868054238066855357603134312989424050685548836017748683982747428260670195651811208712450001591122953019451383691822791058841151052960772876464890551302461883125653234354869520058554365494961193854945107428037433050110988389163891515598458003947516088417822444253904166600789863276055005145858132624385203139807457813567548210398590742006235650566982379631612526211395247591578574381637102124970319225638328440452922935121113355401686580549531305129218931132357141593002572346141588940719624300806774078588027962324486551175395228709668077209041647197338333086274372893721281467476311338767163939845332385088397391186481857512358480718643886459484531769876082401052721736715770470143775472621413510776112162578630060109434059915853324104299203696210923351524197611670778299945408105271790691426387512075005440667976168306570840394859218995181188146170030618861071114950244587590828368957049407224840462632930322227519018902496479574048534994343818066451077096785248817915483934155242973631465272776334381792905799047330480610634939057375420690570470006163687624192231722730858268649224326204349473983396058656484988081255468268444308958083876879921521440433058970188533382720735855203061076986699837806696584560042777654183539075840219839701851696285955345653275240942143155966720345904756348104888270061003185095020186853140371009491855512258186207820753920391521932817423777738864359285314253591857073917589436996282220726822083913780014142165294855267855048439643647605905833882810433376576852619209090595297464212325164046882373221589890339264197479073077388261763090512531088872791145875766447251818910005800577715432739792844507276637138362848580711264772814649050159312886119357198588642430713785455922902423308158804633503045860347691492182084837494106718431421510594475227861519437812894554581679479570510303282700706681229277720669470445578649935490887815158528181718984282584860264169281800255690255816793374861674413561804577043385604023206480330023366467852178667208220578824493553817614744110182945638896022665466036666112951876540027438213991186498929834952330463593714374663471436929836624520244080828743238422213036432303408813465492634676870838326237231126097136891900355128644362361644076739984783723858870032024520870578224687531372839171020082104015859831825537089016787182957228810130758182533047089799638965757106768798931027999443784716658239564817278303821259509994786328266990321790503743278764902185663229396988940905204478516154900061208663136150521573813556895672964830619323015967438163011699518266553485655036641243189126035766043331446739555649725948419000011380318023671225953602831244197045563827196810129934722657948801044791846171127332156874241149669260632254975046637036341600450621482664393893772299266567190287091460143036378433356898020507536714526587889220629995793604089112568552489323853913644979824535343173522370416709219223206578369777337605810926696387904643391162407045260025506060831975895904022817576447511304491438833740503319462284862659873448259447373644861386309732175817953382530861772128429284543860455820326304367705651435652038833051520366455243423463653295098814397878230660381789026806603173765169924684242227531028982124713197989225058591044015686085353589806526356354871092754437149502005740299360603353069940976546134133829037842298025461472421467611020509658581324864881216262573235856559964394748032819388271164708478720109373629849622412913924485580664220182651232780583957837782094364064204298725827693216512414320999489655151809905687893792419593810096641784375711697434210899502707448784269236466359854011739956123924903673485797486891929425307958852623659633614386648779182339854604464580180694211384503723320048020177509850283093046915258173712109838530124613513377686862518497453111046900672073415171808124039641222675500732454348699530410511689399197149012342567661858595381055307231437539831960592547637872550583000938514988243170441144794937820494442313818042819687772541455298397303714423595395003157816508801837608410761342813446647347526176850563464851733426949977075943260629027399729810092669230572632019304242075850111097246076053739878800330321296062328929314283632586068784395195373713020269136153213171242351679603861615018210386034002860006275279215429950955062190300937257217744808345019875684527179106586080616565695155191505689644214772058065208860861516212391233122872508844139336664701784625018848480909377653177293126774613991468140369913997910340928383282268164437877996010360930452610440759160725639816219133903354419867131967143617787261337725071512497062686655110693340077387647444707894704159080944093474941848056713885304093587424953316010548884482950898729814979910227190436585213299777547152257409469122033790011262311274925178374835760504233455096998685990880669748460565232298592625137441822109737596091378638951064878879043806775589449814253912618450911445574537050162893696949053855613228230735527064098328256992268033121125455284310423353774126436165685580044337348871341814751939600645249579375218455609765699711988008134226786475068737418759122637292858303969697759353768764206883726789855304331860655338560213473163682570150749682230987264286820453569834355338129549171657756485812412735458593592570988470558634168847677449409207939000157862969589079737320694154378967776292137537442062190872785661700160037662498656350915244187662414158235541153468486936302801108962831294787028041959419001245572220237893755568720041754600703106305149318522400754156088850017159558032592946279853050753549964471745416762731093027708867665463112031642134670875209462316623829597243792296334071368668662514318895296297625959186166273738918710210070696167335055789078869823891663815036188274966655172353412831215142407996713673926329682356573787845488819798150861042260515017562097344384569652298960539406323211120391048654105334365132786052008849478486438031411611110377844933988097949717680095154060706866541189817413692963930638129583593007059106931479784114938550532779639803910487748943738089079113137937883717377003398181278327093184611820176526403993498838455327924337108859616111372546551810350937304372434342388147647130497624566533002865126784562403688436549183601015936884714233900209494613246241405245702975454064809579516215295716465797603459220780508109788165600877309932579491032273022971814039218041736766126217758359377652593589880115159221853309038529152288705187066489674106875516427652997322606509512929874175418378274094197071214648076295081806384559304566529492218822843162539052150535515946299376702824906142110925121743638795144415532889374991369390654204812404483703305410614698548633829047401011776106910401150546501125576221424076428888286943742894551809642841624973543352941095723187545124007670091965908424521545363357876499231824656934876378354986522963393798377212853796375953661141612146806698786676056920612253644499433554877919209423574705804424986917106352520158729397914836010521621786627108895360174170156187599874212523955718877770577755231105257632707913105101895060396866621733127696637147492974722797653511284459202583606702756176042237379395562986681512039667797626751085823980099667019274869786458270690744102117327597935499833137794753944138920635595195507353783593398765836525421128695912282168628726566522455123214395721043089711704084346714714424948791629641686270161419519454846103815429487192613861442234965993910693070044865850741429740362170070780963290691117437659522094802103543320236855599605117151906166841972128250689153564082832379369008727896897611452200554965090578976845008286990681417095053513087245371742961256534244089863493261073214151968115906321291645887823768880948961449374086946662772298082241290606679397728457783764323595367946342633091083159771152718780342878571611246112976038045746596809302321111355473278488312186564187863530453837348702545516759170474244251025039510688121329492144273680577459942900071711383383928026237172071478754426202271977157561738571233226613569325197328323030484001324365385101037962782635033920411767230964001706944636885568905594250616786563897226440452583155032827630513322330379667698232085659633092425315466238100006628235252547042376052521917175903066423887404197200059061092152601809876053573820929860146885692888968702335588824565953969013338532925161014601213134854088467937826660949196794457991745987720930856286932556796087768833165374770689184485021774495147677680749890691563597787516958364355325081404025715289798673299646327741681865819398431904473826594985686898596039269065550004945504109493629621627447291317326221413386300026624911542001728324132935086728853781526661357019818515227450304266385607790565120361249148926975734445933601214933436344957546882666932402672951209585541479391656966008023195041643818888027749347121376905542128256912153303049954358158430779995750750938352013510806758412977222594569225622134565019988669381326152006803376353827726765139934319130285223072518849120648990011925396996349354067700324624477310324730161916344984437861745661061847759053730031590049748518664719954070484073125906040522402113959826564122881885056445755105646517401715367514406687227097351746903539917793028702651691423110041172644374314795940091562989690091736630825479231074878030195595292965291756373597137355813587944252490075509190138246257251798551897794382742924430108772091806716652454952997352012930666725993152840598014561790282862402565002590660999903720601279407567491484291217245684315831334719614493151534608416318539563494351982573874021662715187073117939212362441254692898588329451024383711233165642686490195977348349684330995495074650568394839407655450067168426801027811132548200446190239649555260734902067223780364445921553048393553847168203911887620991288824804630348012903741578968330399203978182335316942033137911080527571600157820709431600354101977610194629648224902919633968925868867903604266615913567718403307853743090173665267948914707198610935302923040140925471286458633039491675879618601721734920430691617293678944717474337315294700810354973168441992416304304514896646378447017862198116260738570435538046076482755006300748868737438060722906305273888722461598958261981859886997250058966400615066194223607109857703663277879257875595777070683110484201078734652392365330899233795004338174177070576570556800903156561282850707821417140636297524669860139994390197808346881376056020482315506053292188340325352926520029312747802591024398416730123398934024308577315630875113371749409553721268569583253331883004442809731360356788414340065163310342395161015616840177515792374858214676805100022278317892453686800294545094840696997179060251415440538305493255908158159323352274500643885709511338241777063041715415651006864410449617787855426955443815589436037216347816525151553608154371200652744362665309646380861183101004261592995189739298223299522874600316719724317342796639485934071317956885856157605703412785357044575087222220858489745729814537083434521368242601633679978720827214344814662160171871757755574257501578653767424736647523717342021816948901837503691177278670869350349138751372483627551215174575080634302361816862590555804584415371400226008193923557573498884603280473078902318410957859197952500509930440911471889892260476003311281123570144998577707823023631847813902343534017345030941464581289799520311366571214724230130023608617540720978533516009392869155727554448927498179362515957553477361064166300438581489515818685941163313033519101376195552027889483467633461794993888360399455909449994343134725398730354642808099398065035383272131854272299326591409363245663556895523043864395985263103484810299839207851582771436547578707340814106782879446148095206856303031920045324615798543243577483292759720932042734821823920862276280700133028004815220141300772568002325672732969851718922705388835062717336905811054069501488867295378079938416774378119284630148349329867548277712097662195879641957370408824379938062672207587151144462307725726498476505348181854291707687587610351948847369411591009312473825838600160664897023649543052588090289727938728362488772574118257317352441435940409715016393546848138991913137274310333600645735047546029376361011536897730938510275178657692771948873612572149732905631404519208389481630693164216510663614074651383992051391597123960684471784568718006529915477613970101957918171145095643714928403456122924880743375164001622517684609116989753086226282582234848438444226328690103991996149938409591344095650577806927700968816393007604272830552914088956881585068284444583623266758513751585512088717467686997650157268434127150679901426753029672745634593244940555258230071279120798097170716894828428543675943796034130202347141145505684970595872912569717252810949540810727732806248981723232200408091097479791692808618979631571830724757811955831139359101300547734013623526666488101204331938633648288895433539082663640820239990939782477286479667079816766786842462250096109958658916064018842585284592864292445354318883383882233706584485508468837177684812634858862563153355942498898631413233742872545025064671442412268701674920498574760441104438483909115718667106639363397100037399143882872549385451200831130845574937073686184634609432206680138665163987602205898803284531107777524232364235323222691520711976178482782254389228657944348977691576820801119748340386099481251681951168643889497710984120662097234807423415314551790134613826047357063945308392810197125525651132262498246038340182625071960480330235605092867698113630392341970972615264558372542639664900631977772758843288080864658012265738336197494188027974595270794108139045948097503304736271077945371666037715924929328719479701532762416352074043489311896762686619642841994719642484558363661361291998424557515749757314565202091072197693570625620100811766620816765539591287094567473824852032860361729000260466729392275450716154834793708665113477354526495967762509710369261976419279933604461377785359495974964922754432498782358825992540960652821352458079263186977848487141091137778887099819906819134114504051551911678942818770793389259362684829779119358443899089413775586384430969190923123929123920350885269440970311205456929302892912315374553897969523512020893572266596201727602135327388143937949852243209869914143558401177394223983141518744816684716200623221508484481642530515074137841200209973735637611120487141815720420603357804396643038368091640717513655819633500058622453417190908103549585635278357440592391064217137962850901936661017514174944415038101063478181330714209696534320485613332707442332206819052446577850336302579423510918670244300727803175536264308735746692987601573888635998366935756032002828504981761100708443431724893421415005210154046077874816545076753555702806351989886628662806674091107625681548946956227142041069669570840979338300771845789614616526950746205428190699928190960456972405509086590538667727125585903036265691665674692516964748381508972662724105944676584329406487687275580675046439454712167595108056930758866091415857050821126106409401258492090498949304150647705401433639212469729848355657312552579898385035836644792610554369643908757831734164255002094277141273419185711300294104321953488905195650754358764860770143494761332944226393190796923919370316614163735122170841067812566717765059795891876561582349929503476930569642030942193668130522489247454014188264471241322958106321580795880690560910742657036038267544952694599385179714291569495694401850980843340135139665779517047874085662758124871150138833577149284006097937332777105944919112268601670027143146764363477769197978438380852163530519838010487320754734093818393693867859176180287946297623373427094521344179295026630677031347193094031509941196354405500027472444417537542562826347004930552292803356106023934747411068915900381802865783396896083332678114044690033598765112018064958517217940658666724751115828157691145576523336129786451777122493469749746389322633231341118868577470111793105715315770743210921567136488717240384882529044521363433257435423255982586356697607689352838470816979593217295819838683911433793565168786973423986154859221883936249726421026259864075324633041844408595339185491537789210487152593603851833502703145404575264857134666179909478047509041709828173140309712221382021652919155586014510038995841521010124101859034805396121018200508597963537752819494711973519932935408836854920527977097227269011392769567468976089877560068514145355643695151163322453864615204968891909979100923505355482462264729465603409679854017197349700510052969451965329184097408459649561851673868813680537352831333685104413091748664998253758025670273473464816488766093779525483783025549671802746299468497731241692865750265774395000285317566895716213052796519173374294644562330904688066662024970922338914483784504568697973389123938106775761352925155490964511674749756891568548930584068060105748838792134908509647711258797418965750952813633595685689513208912234073634068166963684673111403152303976514865239860307348927450979834630023836070944076066227570472209925060194702346784773856741380684726889176705543239709037990090447588671339533089445337976243821596473019368823209285040293989458832431631986589007243989389907764675687456374296311790883868006597811104160734390365021252418459976955529398777786902754623131606087459423826305145090834739394895153660008996696416237340175168870534248901506121173745550096237519514256785531379783498455117144947602751769590736734693919438349902157162055170583671893908281146236734235383274053208131469537345155931296216713036812928973258759096293657213222214758179339038914979029581469674533942566407024377174331899096605199457850453879213986964255372399487327232361643712227713136087587941497176066358526752586654260820498849632039714906182671814588635117110862582812687609158878843689096069591575271909911991826011276967679726306566985707213087825070742526533112484792872077255630675114949895221770540728685761669094943616648081762605323639699492623810868665763910034349071060256216761962008178652676557100654848775602369362960611340325694042050810178675503583113897241170158249495343202498560400264533761405743934723490874014582766426762015835123574021262502893711625056567645446569392245184642011343934435699846285997234042820006878560357913130408599429156136249034596754510563315036737990289939576790017915011972421945293125334414633935733831638395879819758164851080145205830818699833861425144784847231009429754901603740358687886906418425091658134664945516618869019674296527943980131269603453563881175184330155954519462849186768433472405572727835257143114182528669766477105632091041571618695973363294070579092742283987569261070152586382393952461241016057412000925173651752254088240319379180874210158831949864542909391282223662969780360663706715813654756253406873800150900325639059076575310116478922714742476124989872810811277387575692837451409737961712418876959898904192867415192571928470800491647133745472182374154021869968870942918171243663271110634963110100575466231953852627302369732991519787010885140156556045877480645982988182938232483374654404762665613804070998911481013989873903436311549342260670433877753696086255314063891158078944195347265827566291256607101367137941409173333362642773366294377196163234275987988133627588734221564981871453160209710631194704215707341484132803602162171579432069299631081398972000529377056692006103284678404739896243759792560998321774077401474920916330349311898082051428341300151055148536229517507031012955604601519509020918856221692481187108222664105264634028080827825719190091798790169226330369183872841219287452808655799171897232828737857864275160726245557097551727323663706915776035327850137200764330787634647347090215090682689485051837892992853927891364654843105340390043248485733721511366786158813802084981857973072176687224617228168407076496579967821602316658082124350895646598279938744326933900663533937551444029853301199728418482719355624232396715123579602607778117977644981855173147073783622520529000241002537310586797258517524519672469792143595068261184141550377104012495330224122231472342357389806443173999394048675378530307527041481154280793460468501488058079026171486194434489256486430577615012401762200862699750903952571792587009279394811930037410194954689630758725490731134618630499038303131189113924240183679930891657751523434411658931882788640883463990468484394661005346044446813477096776132638035369893156426854225007474517625839510089364905641029145312188458980108233920155904810953374380354211950647677092421123725934389146683773534474552064769438074076903889327935898971831400948084715414682433466468286543228337209196781828410430990898661179219856623908018938955761953319291629521114292782806411787090556401086259021827126208918864227151056175285339581342887454137855528609777621857908720490784914560702801985129314569297132485413039617312534599526973583071691536139007194888332514039702524216663603301639825876282867959615509023980021950391914632088347496781394237821645297457354191526472947107417441807212850815865007617601945953123716906189593266443096160813360708940320356722511964532082956127130000167752457899422182396401156430219090152416461284585482927935590962821458867670232002766585996285752973852320507618647660489395104185316507063771435612442386176592214837638670798054504009164251113441969077141027756892450139625001570005519341456283112884902784173374661171363751593986363937136639019141853259588635781773485863751889242300955981578304311924238783157709549178750760530155591124359012823510388951044398229927670393464604123280552607291007629266766848800154422591466206355168643314387000103829307249480843388605640269735201806606758998076167785316005619634360151275816791818713331771429263080059763854299714738787829295987673288673405114828745018295111764081879312140212429382086300827919363199264853830467212681109535241745236545332479692182436504554375351810132311015850034213868115125525573155398449110025863216072260741844523540459614504813152651097533434585580217892133705747248742387006677553155220226097803935665968576182215594248727253304954380694737528492542056878447168303909752851092286806977250486609205392488353180217219821466411191207420585863377681858629554495799666949406734535468630327563873461915118982402638141724051408010707353783686821634205548494350943077395575402078237658188459736306974351470729658525305036549816658250929824044223911731265120520822643221295925333090666729409848664927394741587938089685924435638029301782472091666885631138117952282665599113585392577370113175723313151191534650737451091406594105952565805681129204498821337476037292606130791860109073791837247752615995366487112211761762531549058874483338519883601080824629740934350500223005029961652483524820713894676309189606725507504751846395821872596491570517492797750756618845787517602030453028337711030176855305912304054112764407291450258461801630435654933766966418545201093657856503683015588507948488332053577998326308185677937892396589864005903438487337566116630467762144014368765992310585180295443282342312358888424350979713361301943740936152479416482198071675010199707235012201018005994596750860844525386884308673471343573475775462640775660294832977559609107979878101469956766407160304951820104909835854981473412880532193437884631964414914805232543073136823265611402530907958612962129681256954465450563163182178069992593734814116427119628547455650929865586949824231746760893678573103312400491988162345185945037692351044936969273057623246589076970441200031304275536301800100920966591429825950698565133230148034034627600563791415689014942947702408421410051400233737978871265174202239401410233009875280195940867247522364318219812267355024781051109418239383592443422731159580535735133892213627145139310051674981963703895202123224980204902542194695203754455849715984041778985290800120630347635622045039168060403161103683790364167959342268252128704477322343649687721394373653608798357559787749880730192949634269697604033493701142471805011117826590838123489958994135012780920388318920563251980103630470437925145682626113670013026983528774218359678509614447038217653569416330596885768657869251927163269758580250629890990867862618406133320238587881797156019860512404998870225016930219472079865225960764387531783001599971738154648482048343853559567050605767939847949158730853508573091635809299505824068722647187225910939366790835958577665392713911249194656397685861442998811319342761484193140458975819850091844290852064673719805667662148134889773584079606038902394108588720919471444342729976658797741686250674828034493097176291419204337883463327841423043464191411928284884446799503822973191630544715984953465052708991626425169613907034936209770821494477019190207193705540247673110979408275182254752602317298771128992228424089922518438082693546778952260208064104286608757286788238057194708833822325529447564885847386077729729088149682843423951475913593544696378674017581625822889843884299902893430563330765898626399102572776103023670485234564791841363295661095717550695815655258193737065752182581857807159247885689790159905344449539700517498670529827480534523735989979230532449537708779615438955594126517685015589523009027952794897071606761063753320979445813380816758445088979402253292565505947464389563659665152762386560997333958310098432838570218843447377500140010460618458197342026455170494728305086245932199369227926772389456919107737277582054978995274366189281015528661977007204149485234739879678806451612689809874775553342713265372460710206413895246726198157316840972065006476365385896402968143214746963914166391054311075145327276788365262367021140291660421747201853649114928602057011785508488524815564496667336124091046072555616341597574853166757465446305298326758817147809275201125293198132215158169483402471158054224471992792462239902949739326309309845328117987841201132728980091620878905682786246257935197192862848797199113293571837179423992549239033595939031402665084046152765481533400668074784347430795446206957591347627982075366224429337802038461757008768955447100984961888404835281122007690557218659572008644186873519532963468637121314060054321372449752319495594938808128225340144497704549681890209998451894770968896415430612828356051693395325263626922788912882204382224304374230284786749124650756822811860777657248822491186264800572976886509372469128658993093504130075870153550186053560613543184730319980165196342813339572801445998274649506725042404142691454348943315601197435312127698043937585032404667347853224376940493825009849009987964932623203946852555263072808754151204259127962628771694440126547689004211203702719488403512979235393300414056186667546598595569017495040330887820780442181009176118143282187932466637924865932723002549398621943127404059220931585329083922114739525941538906094117106717667285177485497880893162758809506520247636946386132693109270633731744750623606271907629905708140051882561675398399710403584933037757999331380853953757472647700996938566245582517435976329235275244977593401203986433869909663946210916118973464285721601058542439288437182157994730146837282971595022392279082091951077258240217993610127867395294031018023587910812655689987068393477116841499570623547643886790253291413055998416270003176264690852458244488017698472186542621327735774772038567028221548790706772309896644104550983953583458090448515920999377769031017970255188778707249813323705413138531588914821890029948306214344083617509666027491421634090343033868548329322411210153598310786844499501585201476468443749717705517561767875646551748278805091082120476063211442788783139059379683538334083058452918332203686939775048091080879305941832999460273222902333345910664946315285640754039088943819231960941036604734867993821114418915759100493545009519917851931770605304706967130879001325775283050201755668860044119082666241803877503007316676213827911634129981687309128628795935397694831422305818352192732349872634117651307109717902789616526234942584014505402851209866967684948648542403680918506142702437768613202395537054688921126456504828503012802692137998111089639105118152463230360083759025468167880525024100221282912810966667752699399520401414381481230943631280805492116005550462823691786849466865765377522600793714113461105324790759469280450271706704641305846867412356645271544278822663050453759057598542324156279194238064159880630155250396743684017941276432411695789198948036006962030577520415468744859261370667303576468486957758658900471752706674822962628659183771812609843758944169606908387540772589898522916590431602360563807681953225198185618299173493122569433824027309303502992032211983152113180610924111854415251292693792035822892429280657809413529148603330984311307244914323059145398054008444699904065639984601268340983561239376165910183057667345579006570963085197104131140240369933499434991679937087678100685431611661514659563573450585701796197292309539312231723341788384038895260776396960542557113114707267808860729620210394999126320087680108562918609272814006783178666551070716254580527035531050405271693574865057130112750345397514597368171798645794137801028021915703851502132851785787274791277217697475680309892826074520153894933697701240826665454064539912331635685107611864035703547688633989246762408895981964626819271124735407442372328383751803886990263854336918009605348732334890665124078169048348009032498491735090842563661304771748414716489769649696177583371394720233298639613431363677505797243995429881245115633741570142565999924708461345108435011798751384083317919389414987546669020097330503668907394042278872005704747044010201610599272023185157360835934330698167808202137094591330161562718142056000525254548785931450202608367946009621844319498859287427612324817137186747363376459919828256133309144147389592925616642217471346783863306622862472218859057465784088304876511046591069532985295118715084358000765591284543160615560346669858480978671033649896819206431049072690832489005917161277751875970474045331674741373885008713909550630159892642912764268346195563747835739371204814087277883059673049599533477982327277081215476543882439175598889623914474520422540889756375721516115687338674624954170323451697255219871387865858882711165430393366346990146628363607863257225989447220857013777749832470129947816354425408931917147438386416881052875135649608854464450614504082105457411400894735807541748481829478314257231472792172447773960917244132957321768937806106506306052921659271850729164783983009846243573668114097736408330349101825273973191323450627112353766511103186894086760428675908731628414585878357850602717532216301839573679448756596826638513985682284012042165228727247392749453374077933951749052126712212034198091319734012945498725858109515692434484463560725455416813791507272123202410368895403333787510401175681493819034863938245673978165560400285954058594908587630405735805195348772415656487738480860323824910211329684440213485954996153916863676235685653468458424141142629808424832607650843118658531372774223161763881533643679333162181657445176453872384740283705582189640351275003974203200956517721355424219302008645536121148419246971994807463817208666460204072906979695012917262838167732974013192614601401230107418495167851536144487054017736813530181256505484289938646407999048203163095582602970492980368665121793238288091049329127694180063641909682524543387135351075642050124561482483915228144137973241981018819255691466306127081167185975786452486738192560595150563810087960070454633898503167580351460068622073030185573531980947197358491496284701619477367382437388527941218229690835255620853664719555587836422761903476984526108543665857970932562613180519962379459602828867248625549455375743978488104738795320129292598236509507531377109666515829667716860054077026292363528786051693194220950856015032054814449594060278118362042793432750020115660833293160514664975753327888730552807980257972247053894670481266747207995455224258436899421036671774188322640544671151149105198321312855904965262272351186481286568239824544288320139445498058512879989513075469737100290614617194998753432563837296737645030872124365933259784683497565129567895033330372724812241588092002570741341997442041739235673022435416836940133724465565075625489271276248237365571651391744640859378247420543296444412901404203384080221350595216926215955920559758548612196522301293428192048216093775477483794915572018343962479819400867816197335677623909649264860672570399820987760921336774645346582159466470101072716607441743504575284579751991515113547577208606680227893694552611240337789891209203037127330881212038899201519772220264102571156104040573508891032588594513497305814249262537989029887458123580430950076607787192950181287831276616361136792299943083759407500227669718123784152533478278235092739137135671300054829096447152331752609265431341753634233287329457945430669786887243693453826272582460164499198593682171058602834542532739223753920076650754862237617286098685322446729706672629347082207718744333901198079642924998011379398466964359851583119336674342825272763471960415339176954369505777105111071922045530857603295851398880009638685320982335865998680548794647820582785840205101115840134355054764183773204052668107139420686167172800537329515958165226228201134750202867873282931294501328124956584558232632895811024395394621199073096795546395875839283552854090399701984325626076741453824383394835981843261614782210307423901585030455057067092786800122079982298448759360237826545787199518775744597489107426738042475357213910178114844997294563105475835016643671908999834226248089845832346710637629647336410353066586790207810018940338148415017439587345563528689260283886060694590083984306062798772880103865758202809563331316878833781714213654905736841825277827996154725562647504948256848673251244845255752473553303383905819747909183028619401864205046659097028495826453777059634205158119022335394675123332923851963250439096079686993444970869824949099940091098244036583740584715322729583223510294846750393127342876488392769954701550742810579097126881790505422053066386817057837028580871991942234152128612583004396373121492862911581939549133752392033551905429962383504328371402633912952949506180448804070335345675101485250522812710448302163665035841170845023042822783748894754191769838006245240959220623495896988466455298159970776609103364982919909697686217620236369461824831867536183418718845602571511676361986210106379328569849616244684941406926719813627833777254490417730160149371597962146355720508338869881095197405895815789481739043200440450854621424915349248216757692696921276853798604354156838806545886162454988460326602976608954906423438179727509543097074612966570442047238295558192330977533214334158753614544482457420960861203433500766945511980342649677548671502379919993416775421895512466865990093568626701430376782591947321634727787367258862018594681455227628327246143810117726046163838709434793670579740203208785148932152561459987227300684542273026137517117478686912119763072463273301235098514498996947045132782642390736018693848177226709829673448375045588513193020925885275676203453171287973413743988166388596328084885201916376791288584933368943052244118463534428184600417605106156472618489968499306698160099280704702708217841265924800482624019372177647216258684791587647278645483619941616533728497743938056333788265928398198461647124250309716829839123996460739292467740421665253965368908040325895499979367559969790065432271353392887914213138164453099582117908448948206602599970144379693407475115366022976075127610404194281526084059832576156638234773398140581507772522329315590329508397621567927747165771101118475097990281611189883167428750183002900772324620664157153320529307761344678219673033158310055255800420846542292057591242667001827880391336953939975214863329400832480637209051352227808151727490015208645644127616377884025640971834744668818927115108449114322880826800018207946035295937512983822085200998037276957124963471622808873997967193744181623595686544706534492979248794537440520212907885341907855878764480088849532573957969111684515908362992279597798758140154411518358755306343741957994302031677130193699716616200834640177497779028272100769942699038543341616601938738721208300945766419004799535231956841277106968833674546064181809007622997440661013051896642378961213372164181776311701047319276556643038066681085905737938201685778112651744612971730285529568035942151745462599468826958452930331605587753170111073644531038872794341496397038084583055849709660534119472211691349838395123612035974312933549782170335136850090432596794013205364905367757804989500952463727609972835140306334258622947512160412499324293901098559452008448755470990512837664741832576384828607456983599533906196320989040716133736123107756572138386349528386873700764654416978323949363315371461265947107899787035300170963490789626232049659053331626087104004328849256843450285490769260301365918185945227220374028006389177341325153357259527369571584167676836451360510951790685806228190909665524825071075991297650898545630003372108712318328576870891323803550129706020112981823450603329214921430618020331824798551254188031712595638024704405456544528835748341428174790986811621306853599717098044298030310230442818306639486133622502398145786825288085464209695822941964519701315635207749127815344112795120605394371021238588034983151295411566987319805107240863059541789756306500631169132433349264507604000046665990972563879297817422233876062659685020971796167355504211648764257323835216470256776778000132680254159674482326722120657563442086581879925318300193021829215439298338924665090746299805848403100113015706326620239848416722770967739665550147936183010843543398955178121074979610460009080217896745230391053988616026519087947204207134023465016995385055085226941230187499191933184133547851180779541560628147197066055561277440245004831529044652402277615681773956340883445638583355896844519032563615643727362232502091298477802680517453767164426712963259438200654449689455111619807284499150376254890949062224328817366430425606677483743338373085120705449708680680490035858995803272233011490609808403949694238529466197326809175513582346604197265963365634808840344520337725865555507135946474591927274980948371745209415721296257742515278715701575964344073047338480371724592750486911532960471108471910765595830844075398779884441810021612912017351597783063378365528049024066811029998370196840202784076020110036894633959056208680335438879472140890967373359261896264617493414138624265871505536574289812321267003269356753351094682369507774811523314682612082049014293112436779076310681440368793554215990746532935796682085631196199180735576759683737334450804456821740080143383825601401858098896448076434826036697171260583976781284758424690102011184814920315974241154637441386958514465904207833481625576027121185535536485444282074414816102017023683070649494843395441269199892254090133731089186098366309062748833054433546256199504340218576178955080898318846690270191799578627488028819541213173838714822549496416514743332888347888740439876441044315399284213538208077687729956760747592092062885763632866928345291182472181867495759486010603349807091524634569437764492686559454755090159127645415327973284636179164640662442704835658443756994372072999954911924948508529477184176304398068622152354527873831670877094112719668037672493948056024669272713547008983114601043404052473726250808777768428807052834028853669553631558329729560816727439972561700711333785403100890375899727900800521070319174323845491103402200457365731738647000433086784008376834262136708997804277769760017336712625934582085309077359957338423154618194426975038684154375799348286067475598232399455291921930313619807832486691903076155835524137984778144632629402973796322396192227576018298643627358832628071587272445035561566063322006540766012052130588536556159770828358930303044878110870681203241392223975999369442810965766784209744963369025358202095781273042515056320999198370120222197072070614528723776459078447768399549663059439136762802531093282233481864273616862336679793192653602541262379218664804206327450446798253414816739813337438503669373082176785736638433327373874964050692307325431231376962798717707687678025051001386272043096251718768428353974520481210651814459894702830001277246153754909904720348434168012575203861519420701913201542096664590294572418497339302709614070240204547652926919715099789405440086512405389932977881421746154589319733346259737666342098114740322087876468701892723459284164123814265170618925712572748715725209208130970257190097712799242632375262477678883463145592572666628309389959221131815284463183049780487771395814925330608985546395456420998785200580430923878764321939601167789158183900879260597608045978149300207010476955743086454443441419023103767497816900637256983794409784319949192184632620280687101748546268737854728419351493703738348050458888540051638346668755719115904093034793129315188938254680962882179045468211060985140418260029023744390091208175832659003045414124941312545990219312918272929596362672472066514558203728542816892926405238496064137019670837353475662917711776067937352684043038702239962253117896390080397125974429418314459550278494760019371078137845305119348908062670654029651871118486270791081771418741391764428215013574162413550190232682983137155571841207028392037422512253430652785140774709770173695425706678311217824406633089339497292752054743750114442661546389172441401945177910970955716981786369739116410545958048457200900856515454909270666663779342288134458496399024051683584459226936742252377063484222755530122498502609185502479880942964195517529435542438054586993079401139687296221479032604228368798192672602957939926367405615165405117784688172132661897086041961745860659793594073097693568363734168241998432414145800358500066456896265932837110397649301947676591169320524861990267099554731378363514427092763085264906049366936225229949438760727918598785549008066201630644181117147989546744384488213547696691988758931089329724042639564937765338049337180943804988810139011050452281482067084673270252048911660620240853435101961181516848466251999533257024642597629572567375140236814602285667415013574311527370306513799398836796398438045184957224068624058768298063594218993519811036048644452260011684517682854189571726756469006411244075676564735201008318458626141268208015010495453830780527882302779609769027633052063073660373056027327631843365187749105262255732699297673978622577373596362920876946792693468841348544233914888999534554521441307256845681824042015445878076414401853023335534468177932469418987014562776912398309241395027831961203843242853533639973710168630511483644235699248358787718972668625649274177433112905001736646541723074285812716058409232063532675711956932515022615259737136170069668426105217325490848020863378276928985470005646287439166377292957854356666050264875449516756980904656506325314442305090511405567369265408019503759061384765316493611778312919703182317987712933932780132017990635658788456037629915724771548119835319747144463625722083897101306335444111214445913606389927070199413674787592136269515308832131274229794423633634582949257297979481160880529712631400026869808887166945726083044099186497959656004225087184561001733275673465496602413335532502836032397978740069899080740551877910822026863044947391888238256537850521724256748805072234164231122085460698909786140461649762202833502554023497965619947780952269624939129061565672538915711144849390486043103657956498092782933592705106822515939217194865036356943332615749450320582449488656100834740906656379159029738669476675823306099354175335115974560932336047786313466154088434428533092349499926634911447682973344021286081570009630039749476040967629154936329921082359969989649689845877686999886507964662471173358696314123259757178117992871450752897267304891782126124493731941063627068609372637148394272024047382837180672617898643150602083628750725617316244652861929164857218997972271553860449831346396112022368307833817339081372583338797160510968927619191127475994017970385191890370503953664437117604017446339648191624821400149701271632578356832271432906133484990388403172632542947081668151813177748593693379211561523034058209745841060987584599676364701747012240176083072752594123179424418262773715707780337317125863406890632781001729750743906633688739371299152944163663177153542850713979123924275415811543140732259499180538203556556350486255944139823946166263914606409510282391616739392851322346612041580940262461156616093673277718100835532763121128867343628705132356755758921494330067256813756351002897438840868781361913338748309580171248312144928310118707606987330523720166109443203589558396582460985810009316450981356040105683734884200593078068580588255366089156740022373387137846956373510897206419985929941567928456297805245209404866906764473119596587438532030308371506516299762020140945060975859618727590842293349495605217195010402475850426623187057584465430145125701436078370389968607363909176335349191873358337607884721751494122931070726991159638262975585569228738501402736967920293584016983015205600104348323853200303100537966071053014273332160220568029957060133413334362390566260005326130457637418251376749467939739565970139404697240440434197293010972296213564530785668331396955418965006820182901369119229120380577056151361094022521069906084426309608526768727107075070843880586282354317867237113400432737473088620984998253166727004389199392781996344982647811390814515998830668469932980926096172338152863299146647157733825907971365314618248517833057529767173733459374970194231525670536857474381680506485559070427719758685548255216442745889421137452693048276364080397942584319706227293861736009394240936848525944578905510809717755340506937026063307675191981361464510668206515256907181474564467188739382851429762362940077406899902008395225529818462252225276703975657815598357007384597493040281857436845342616313746888440614918943699718073611781083770358730909342795518752204506329983540134460392304559383724289285953627020689195440440542057740247369380807630097743896593990966058862637756602688128823690156347431161455890301116500836959962241636102744976780535680893019065597796355079803144048177987487988375144644372770323316886839668302639763518302663961384188903309093885387474663672613658835974882454042639572737552273816034546808004965731834186696501193956053080324602476069952491034309002450945298410972549258753895416072006399556656997196920535630889123176338680767759240854695466821513340207380717767291164961379928987596240033917572785658365696299797697748164944345356267034222817907584960381904046993419916930265915175192144855741266300980438346744932157374921329461696667226646931715721941362303231763244596005467440287177292015490237013983166951583877029291966053272373799423889833924769039971674283231358465551650697866469618815283164513594695590836237787968495510932111611486853073577540300922318927360208193598451602018399180009666373832621604407008450213623008016850732044639927052950405547522355784685626732066038622289102949208906927684505731566747770911526347717389510798866295169887277885403715137509386569752314307327284618225098719255790966800345171179545338222032234817973927332991297953520734448667384928658559696011304938652231870946595599311654324131842263328591858442443337778242075719007899463233159180066900603037892784594174841217921579829466381865686223155458122578960485629850670720446101628904397994008101459079915107429258520061977311630779486740640887270978499717249034610362717219746091220567179177028605218838400833950627509343859930362662676678682690874718522647521261912305070759515979465985997130739277071484607502656951866365395503350664941154499455538022763648303695631538139963931825104262750025788604778506036976845269041546379044778656117195057075460745337331748059956016768958309004068889237960836318441773727697458244698915306789976976382545527464713752321343110408864869160742101665432417731767348774294893060375534686286113962101153454177924989884197604227796910099652780972370060700666041991267786256244427594846481780159127723051192896798451662017711301344788907734909548699172357649890307294798895316826769164734733117589755167166018192324775027977159465004617723692615059158755045811490345013474714471877446555752544432692040756690697415567097611971040370767642986534754614683256131671177864266727198011670804033257876667198090354872408549632875051412104764947345583436537416715039452265375581686586554082344923731068010806454523811135721085279318099784400164539602359164134401925025286705435422137569652463686191129449523376407875413479339890458539578303176024501464364653872701094164202439783533715327894356214346285448147687634617926158441731207243278230267087951716928090830051795829658072736388696405529180181745608247353557847574856844244251486546824906934073239579665567815880959471323077016658741892570324860623134886898747658638460978407927294128605399528981740195599613035234644207662290913755307283655723658564055667635966527970754443921928921202131626979294515876586233838449568554302362355752179308036477672018925949251903432031467624170678629561751318368281893445343305632730256737293863576115292176081286795533082734718967603178446995289475351930750324272325672447679998601654534815346783876873872850112877161964607136556565666174843777710730677727289619056815376381766034815299600140655610223404941644599329680034591759417905246756074869629192765769969025878013767206024161776669640602690650455210879077096253397890934053302758152576475743203867661962216162205836704495435205818003312020446243993723393541063432339706179065793352015821560921698583037599930763433077463643224270543731509654513296459411877542904147155687978903293450342679563743887981137263842023986958383014326391509900238384635521632825707114150228607690223362234513566011154785109328317236231564369565325887867371019618024149790534896990173845860891365478757689799423005547804184631051369340176742309096221868647773411196271369324506009459847780330615852484047555691677067045822948935017562972120827056531279427241606275553828649057581580836635013322931163845676867136631362727027729146783414737061018018825201530575422080746521167822032033981227391121352206448450330454523367410653172391477084524125945431315431997459887058457426918834279204879942645885219808590753181839210048561883132845926003211250583711913164532987277519785904751804352360161875546330517459373073681463101400782960600373733257171566285897775414336974952479050556990994454736041640363098088618903621725663052527044102319120662515060135953479927374114153809917961189704792272907792967702882297967881124546252809411690775022772973291775038831659462457351037189027013546156638121611170711063270397088722150057181426451544142446833187108453957354115945578234614989775572700182594340029822355377492657166532593735164952607539808229698945339427065351543932860018464781445323593443793422242846001949964398033954485123844070478563439513134893645031224831901017276162155778959808394938563454363848673014063638440961801960883513583490384546582359120641680169687304276882406183260704020433992086777837586998858804282765379699712462164909230784477701769602532050847924886162177794037069235557123863785544189141843049045982604721944284178142658307987967627018756002883346975132384071925041970810930091614154139855767824250461871328657745386803317832120312525211445346626775904424270990286471327704297090490840374606628020837628114440119102318964368095114932006214487631632310554129171363169155438754513731370184081487544572485256104917595438653945462894752074891889998608190512832023377329561001878697793434702996952934906447215997392816145812149244185905181299781035368461401801092685427872142665414471885549215550843110813651387016978567162666726503828045663076916483610301082098053659487971553787534133620539344946298236631240652767538118993469020680191530834445696651917747111365052541475057602401212642332601813256165415032187149518026096162859100966767478386083754229165221005722220929213491012070630716311330510736091039968382192542116141754394628008260431285778280281218610303936396720518768820164359339674679296386787859594397376389447831470159954054069844246558136196109980407689504225056266241804505231452855242109082427195100577861768694337996988279529608358098279386550980222158199218645474613255478700845255482308869312553036190078224391653467212116457882619231681390869865522616733529774684268508212973204310878008619401691687459010087097208869640313208518756352458477934851961161249861987639766695051704416282468674983942198222259983492332912025584011058728278557844097579993968965313531414745847728262246885864377776270052630719083678316584815356098827491419514490909979466919414696488527890789593151230210603248493983448751971432530404644708845076504426283174604940333058287237828484160190854402761886066280358199662654953533653762549900327296014537578156021151795879836699735456580917780680446800343129281485132712411983035903905977955166331948502801327405780245904966428020356958455873967665420981973642265682776021672223448418165593375943966209617300751170796550784297043612192903948533871086174625216874431894668249739864267164330185333407132765607136038201413746400268653009023202963619212131715507763005937923460137906328549042392243972609281957769483028094537830265667786330847875210950013022301396180232250819399911262185365648099538557044899627290028374146531476506671753289436237266235743639223146627126713511589138986553596816273652745104501444618898343338214490683658423882657098816514230846400765386548433494114155057087917521218929806663772820087857133476580671837760545999899272577097985211305523875103363610267661912055237215123198877423038388253414417318163801710913779212210278910666128967271097081589209933338703536584836307073696812917530796292787392391949772278775497739721808299490784482299040273212293183510641910466990859494959209650951303120517141060083033587455898552233010163548396630894172374494048735146681409354806543319010321933203455254424588001778413124371171980019570527288569804122467396988450573508200039909678788388809276450353896186180150742123335834896120907547842856885527032609974449547214199769577236989358415264073892690288413847129278514665522622290136323493709373791493068972709076802458958629020694267567533529121572364561654276835406664287671527800091656570216919853266503462201631841143167160641047345361789949731128285422396180311750796150097546445750081483551134527664207058381159976850265333607855602696044219388541571061268375293636389023718913804845600034774969697986146957284688132176021981321421123936597170240752875433737736541809491880330657057952262327463699320916527779693024170580716633550796608638633164006765562575801818491527651930108960867810821733664804903432428695272423042030085245347302674264166916676345645907469735084515056354475937394823779530324872593976032539585842743914298126519854807604267027775224938793728301481511235750488232862900680912732435051499055870969326986964975678538490153668495572228135444991324657979478376083589688290668165018942703977187829785549467528327959281139122453917221605594909022963754858963099271061625460418879144682553101181784697285675558422082847977868523309790645797065386435528480213634220854775773643039344457110572703982456284801030880575362798484030024831383093229038742668583218042874385025329386318196303457722219887042906798185136814409684203149904839790176695725541692081957254735624528546698429885085981710694826593594378942803305384529068933571730140753650964690234814637360581514270584321387943353141177495699930254065033722304670226909438569799021948115544347798564805502416991101291725445275871010327390126807871545284763023814312095056051205380728443817788758402454521962599430732179574373940645718069047510061901773941706230319344394870600451286313657935992284859333079028680515835604519123340019863952679744392023376072377482497217118888021565183565873522585383760465150781262716145243880976141793577720780208519063527244543637935103612088523849924151949099549981065038456392486451156021323156503942219211070288673221478636672234041991358434957016237092569903878870046330813108307106502196341360133845608322061402359654710778441726334928188344240794970801888771354145270193582196460600547790871153405728469174695952629821163295726848042776952611530274186201689460308810198504344040263320502474019712749018615063616687443625064007973314274010288655827162959874438429450889748550863687588792149283739027053020399244592961238707566177660225904343108236160378196402092482447552984699127725059802115800004653768445152866402662468084425249511943991338647668447246864708793858584555317005146680697147140717539435911746898163142807445333493600467911015068530772430941148624081133905333168312723161249795846378403575262264724294199431569859530777703089374129207496853119805694364321999307784666508805977231100651625933201846939917024057842892991452543260572059202793371044108353401414588044326380685167926565435275920225539778903180336635714164325235364584354321511504192915186341157136409403303984633925865527794235293432309284034540247640262269100087358180189708032969667677801214593626072237011149032093165065005204636837428122160514951989058617348121008004982917267340538541417206382531718621576505321255588228091402452776546845702322903771146332322246055659257050863826350146646142417774847483357266297538753502411691169082972710246450854444292395531267564417656067865639317255901352609769582826733486245750862563328080395345717153886708008008573508176960449115530125201948788115911316618469036690647788345432580422657367532996403175031542121638424610366356783203652201498871061130558454773405776418885308100740888318789645050668476652853179196458818119764859804721337378648488645751892769559741550398706861779170337241269535081758565790331181794343262470599193598171232559517026143339708992091951817359239073783950990462351425511435854913441049982797714673521425263818342820750522721032140920153681646258633124104329058159450516211225784290679854128026691087528276006760789364810292431107524363119282923760675630411444987809802422426552876277464825757678601144623707391440992398296401195131929908587257382903991557601345462082680383866485052746111643725764087968778914520228492573408945793009340679702761277602126510635553122979761156661596310864487289222884800557044144529702186969375117940710130474773243525556661715063260804244455534816907151819124040452200509451888117217812675381493238339905632791918825189055885033077839527871253208380068890910855017117821962800300741995430538375922433696034084172940191427798458012812718340814915503169620167822880463342449799308271982024622558458364727874881807995069805806872113845972407204012107055811994542086618933840790216556316364986952502556004337612785322685391167905894155101481956335620470421042188838504377525321295252808536958451737740975254517016533418719927639929018550081319483417850975081519396991535934155887148520020519000462379624410592873551383153445102844627196990466791215576349781079260689496709619307616782097260526069206029241463549688933194823867154364868760276241928165446621117539384293703522378043584902700843106443218360510796982776655010371252550327482346975869486864526246883815345442849896387904952953773166267487872383746740929393301671677591677323569109421502951928835999690611468041479411125218412616231505134489170155542919201002065012251041308815164555814028116860376388419571504693404597377522086697226118335869907818983383378495773034417067956325463938550583449175075836235509144052330512191069730266462388072781790862234236760542202177042104337573333156831704868017378042927350794283377550746924814961266914311098720669163975460664426849304843987720921867285320826769287747008020554494463021624963915942747166596100031894428063200194831298364880255414419691713507484227303557443138009765865791946737264703552483337861348279845352435565560623417223278252797331583530135152653164986910330331871683858513576380801874627796617957939109873125177178678122859237531564682431730536222744421681114453958790014266836337779878721538499253050281394524089876258653154185494360196138154698229624155940101322168937298199399469634516634764034082452611016297842714053355468886619762325124439618055696709758252690367734704774273946603913419270310391304195488235462296969562494840459813261065721263795359023335987833914256221944275702391952344779277247824806847284418110398396753972529938216522184475370178235581170118476915880929854790335795388426854381261259559053431540288678985079505771467797786914450640600864696336523732223018187474196855953614862587189355613456001771904289622091563569555926076256035861673281480412135866415951264202875872380042025773034042337878114925195652621885582878802428072464771982257933690878624285936691695858183372232432626091880320781223187236658261931742454429278394262537037357542368030784265842095303051328409891019646846846780455619495292473144372792197636068134618949289850851754632464519288971590887515778318494675966583884915214183521256085199750981065379799016012582547749720019403879744770981258444778307467345462430480311537405412668996318008467910777022037582889810774977226883674984514797737887834614287186402407869002207293868959680010107984715660472489551622501439855383939861083663563477846595628793858585012950556714104245019661669291342006377747092556268016221643374163012904691365933637104244132020912328661619053618836284859552779780704388122376904363272753346668855119884957041885047130675408097826938146992971422843189624301249667023302326576327918837329138605241718624392250373561271762562604009521974958968554579943825038432562149752881953078776517124387818937619985308289015504060029914697096986531400851881542159848879026701765640260171815872764347477251129868815278169037377269729581972508477932443857434438266009834953345946030878406772609329120101755992723001267382229000474328588483430377966744094553732352653657126328578801366329350492283837250552035588515221638260660132497606955792314466849686133270495820550584603148556769540733912915445186466778066823272919274799893228969366120443062469371751545112092603719358037282425236425681551153180500963153293741049146203360456410943777021989160050757127606782588991611706755213908851609588339137448279307262654226376838301566649912243330520088897187859913934780191422043844681790288215915602112387978301106961747407710998641311493982634632999022651180218989721395720472560549518042776093763708400541877685601932915299617053770628328578802613460738841974787520054020068343265628730539771639917197773048830823743293795660317805667814196495290529167947629023707034595493835075990661291710815375643607546668629365635715622853452846834420719112225582826346394493944089378703175455811655709716575939971463832924006029638394243722776584072300977998904681994360276530898066159177769197209501629371507486751467283488540186177901348019166884693996718721658786439425469006387535801089404333457996377884188315560370967392666371259014460401658060226885273270347963904988041175246781284228361871468153490649613517481570300967661282197691001069504465284139406459549709950125639382296677089573113814879823528096178600457228697893987205176658502703055056232972722674401273186545090153540760075214605785182764329899963648630369891591550594472466340003290209680597830329448377987256545893876595968326883183855988117771759649489082171393729868303194327155462677083349331774688183443535154489451773548460711515617910988266962048750546849557758226974325647979497840491184984402296395431105771547333860633065574381466246149408936160504571252075146836809302223666725558785958718974298713992511921081665336060685868692358143907306054711127073766543477976910814859182076792800466468369861496428749611161950395251950123795168933715774737480821672433402452165659167490111512083468947536823771156905660428264948360002697896811403549569535756353802754729327047240783478202018707840854636930552942024814411379153883434097253188303093957959887077696554047688523930081421631442179533480403337860120920141721970444114229409456681919119544283296874593675951814332291287408562538170025330788594407853589459509924172307782970469213457372883807259411898154543901155435840830083998954790045151160251712313992780924980453027601814319513408763677733728196097392796444869705296812633502929134667974557102684730027194060346551076293971422105628792453163744609608136927225294507765979379837779661718998278630126297146591377407050679001872198794169880682023663468513925368013620312604002194004694410846241097019896992654269769833562367634020701540962055949710459691789443395607857848277353487170523185068918826548239604068091770803038108311395426027249201093333568752653553337617219553344021174752737898456736094938280258426982513887590743980569794167829870701634686768840607235185860094995523470020892936056761362123384159823622724211532213902173506674762587335217690526082307928953030924841926319651680774268643977736045497832456047667055280795105516920254811754803921506607127171034793104235473376079952296244198518214400228718116485674013003027068949893726102283451652131749837868412069171582679974987455441098711794157616862397433935149174087124312797875242295098065200043183344058557739646573330892370220756778676787879719777515667144278717688446644554436138790874129358795904055142754616438820132270365401348703365779734988893601258000372239948614858568062752564409860081748522350141031388315666356355875751565416118353351085281320796407483036042913844743428331441908266315848682856071015724764618658990865478546007325538017563855865477479751423801987046976167925408583266554510564042577840893567133308809243348484854439039691394206797797819609903956326899095694025673734299309770157346568555811677994912012717693962769239853185686806141410581991677237034561741752678800968182608375544242198481788054727314192894108318357764298759290708701436685925650226391601299231049663762985655736223780726707767603296216513287836341936149582776474469097464904748906463519379358065961889992491922422420088646831345033293758243138075044240145219879411878790077073264574117454397993627480518532960331048538298919754990248059414829462392431571707019700168563614557231192725204961432411947233281745037307337669990299595804208611608263425248827529260732829816709795906473063895762276240642381205666942959159389161448875172394707344086517522845816000353187039756521164738932939417608660644248162019573982287223984001278888396654471085476979275864203266290142189191305739141085460336362978636041601978010953096065455212160598850600643372969392223398799882890506611686573666995072294621418978396816427013594544560654743036404855856719930345935353101577556875000107683565689997007651486311706777343995312497928804037812108919280334709534785661691395118684302954480947483246208204371778757378868221285044714204538565517539905113459287888568812052033712458356970672594204979027348332857706097336590182089286974994359602068072810308510172816519999003081976017309558439150967290017483732884236137600055624385942319670443477986902520640644849144379811325276691679975680759095262332732664418813171793148040391594748909258303911201784080301511213857099098304643015836277768339063198241327786070210662616910906274245531772674823984289576298045618393855178142442677602138583012610686544940572986288824567711686628112954718936280847658836446064702178561846157735116223881614373828450408942163920865347199612827762660073880832342648712234155707931190639929612548264123928890646098693375478923802223077975138700318741091462629004815543602600249878953671831099066423671208752295073705619790669957715779939071198751433914679534743216656439174227317506228539138554543919503751302134902710917452457156988879901887294701009590351639761357097957308624323694053086162693298281863450090553433175042800860415050310115705105032329899728011939261251469647041233340245926635393967442396572578502299843776397371151863930362031223599370996779096336297869280223688102809492241258361961162553682898163626658306822449298720964374105668568141304446420242195631569783047259014764758103880276461706939697409104602672997754516142822282920217802843724225718562412055991180872076036408538746543446597229414981776587534349956134379757258222820040336651822560003417896885918104304427280625055712199285576974859113936173696824691508706155659067244787891975490989439479785368132023161550149320112477899100226227916834061680107361064360832269825793330677662819884534309989672979861899283553814429569797559923169510336131265860884986588320253510362534662349041293182933943655513116150880000887722618295223630961933048989374381785298091667969374810061853916819846049979298592483015599215296755068842288606038544791257686838231517814266119464203853165722683258152045809006962071393895052753563296052998748134889937346159600497120132134685006968108801557769475899455593192512407027674080701172790427102125376320631135125848331484986663749121262621196610519895534228131633364414584695693608509853476308763693772132529290812061340445945485314535037007095810886967858439525188622361736786496496500798790974167959019557976195616847595960109018761075901998739361815041438676788185134282327605037197292651146968656954927564920489560228061808179654442247034763726581386808253357552987288308582732174959488708377291224490768548033332503255180398337503671731326165701934077764359497684044971572076042183548100746569010292958661201142659580603800063358229197399067193889592763704763317053657122377513853578110883966647321249714885148749546380468247893707463001298461313945934683209407374664290148711741631779562971290580478779058940282053109805590983037348303203087581443076288788030753117411111793618620749155664901788413732143832552175651205508794087315725153534005201798449370964831102849472615218643196396312072640986838784471023801070514112735363538453459107067056574156242008010530371292294331142022251956621416260628725122526936224224367983763312357097357994904269070917893044461416067572473284751188194671636306653984192632160454696790058361930970907651369813997855469421663116972587178068275924981451705292664458167764915804515127548784127161643998613715811672819753570686152528584305542469431237050510887342408493148144683032186773141272545568837019746623510386412275250776169308435107264755033615880093202309156411707586108748709365183655320786060159825101304426223748282974301970649209705290980967759620661895459673570262709380336602614588533538658367681616973128657758319984485319279119400108123549240102378074637878630712064806171159596691346847633265065160360549457864942008488850355241529584731686401201441205264791003640173487331610940020417318296315904467079069139969769010591240748933410459424264379997803883381583505492539173806354328402240350157325054384888454458481428305560166266032214024318976898040038655321534290043581032529088740887864794443729785542147528105616090523229416323895845688452906596649963803182470071238554672849696767028862378426184588847939647484366075793517475555227403834650779019099015343163393559116364168863081248407840876069890467732501534842807222136971104381063971428068534149442413364546578503861241903445993959702804981522052030614712205627272137801083480100372756808866165906764822820819056934364181866981727054698922624016717082671879472204965726938455938039233547729727624622488498069739889773377428357585296423198033660234499644822421961901045630321063581193019010236478551032671464763245551698468374225573223895384563598391991682896135485596139650213046731699386484273739607629232891263164606245212612218900851896979616472009532760513617220569186798124173745650432413833938949784016709648760606289855432147670425068055649001968846438483539528568801683444592221742201007015014494657446882963127365827491021541250906593924384204551236493625755974523838256468711155996436520043244955489295416859585147751096051944969038310686520074129271632754752340162828136993795978707001161022302970588369595091260429562860333764060117950952405294051535466784928591199419834604966816996151115227715517176393285577549446770652380672396299094536752821708544737431794606938478426678425632722707934405516170957807135210136327756276498082535266941229098831684872072912661787325661835095627292005563830921376539785161258843733157507078366372254512190441400484379529340121754625581665063189394194961755200604748700209724255786388702284062350839972986235455489032240675326640283237279475837147968626671882624515593733175229304047668971785811109163508062166207217893718339238283818217058081345278123354989681274985623660877335662985670602525665949503169891930224246994425818517013779267777119674018077811180445063016272222447702688622196791306820738402077302464461697997532454876164821449091710694364075239512244413357972487629883143791894228911242130579319359485614829558434341989514866981722258498260832500876008625571802701751235444046147720057628557134916133786713036100617285049924085693049764819761476057713310252718207644476710205929564020854355242396906504800130926001781792570281520553543462351574988755861520236252591615026724169163823569745207562990554042494052361232329251038661490263182082294108690699256960269951935123540826920356117303261323739561733222962337333756691241640322582146304119220636778183512805078859784242185951627158170957344682433309738454794011762397927950460073731311863959055472801064366980848899007290696143986939610005051982188493536563264316924609927046856503074235119091062080668682437652004380578440046332384374647798629027622758148363945892826844858594351418579750360152947139285400569878014358368206217372936337541485426651683572382973842696886201583531127859249456120861226857573038215120773325827565796872382903508761380369837226917869814505890310419191325719630006037160605631486316022775659088173437173831963445091205487496155991782447950166718953408115308531457031924430305888226300259408657049024559133273834039620937192827583315981061594792537077624319941780353684401666320522603430074927143394968747260724824959587610352748213196160313273340305513141072476131999737761710953160005826299761521272674357160232091800310654991066835223520567033972848353873183565773199293922055853370612425070582293465898019597203055302064340693417032320380489642714980329194111402253141685292382697909517015206086369143653718966079156225932959131228110044012478480676450110422300470297573084452236924748851441274024120173026842932150250786091754028738726669348330927294366563975456501632425213779669320576528910806398778157357358643894886478820108323264013863297684769015555648431745135205834667640964211414114411689004698453054656268965919527524190248740934260835371506162559978857745591981762374434592188283748855480031036325123551528973128196843244752198548288081182809766685271351315963552290761669621446152158735483242177092037837122790627507896986485653061208831838715598429926928814759668022409859684200519962266829333965516203839328506592130647762480782584447296915534234516548503655245006859401775870615650213304792399972828024508874101697309993637831556795593906331133188012111450675711860276119916044506035908200187376779728644971222680334667046178913852288836418833704049112435544191697069064443527049532278996320539568172792222238203583397053912036255120231031021861043250085432140847168402932476884918499275038594330262417992009380920031535488433882774853813744588443959005441515323201555295258915322065628829633750186086007869843177139890226435591559676766746260321383975656159885996979847318255500962906622447662792030728558161448787267703474898742549199423720347223956734623508256927589141429155173133997484546304522926929962491349094180736848144498537759839000127396242746483131417909679480057034225959411732774890618273308128676596235994646238414293235264781135030281494563414600781008404677977032165439963004095096458327408526955095019925933937970212269566898034839532351177189594145821199983978165001598366542715610382826723263086709430841634074101769791554144456497442749992409843684941480468620319219056158310000253235321000032731300652423033543351048373820667590537501270723571350324137369831996391790917794020065316116765796622435636630780828214072858925046443513492559526422490879613625222891321375471156094667467271673689579006383331264688024464561948694192682122966203525458850800609871122611516839200860594526414503725550721776376886011332243931851760459904439677142031905144516968234601571574946925598953701904343091964132108574305257679488683520069626528009629275877961541424918875485165479097533776625642942144095961386018198379540852511927011910930095973584264227597174414374873189895697748745848364494308915903368264896311287255277472711120018451419123485908247309025805909842782139513441418647956359144789784373310389766893971505460910865988844723040717746385365129094676056326104984298152696853052009861833778014007497953244534485849663878374689246852552047522779175087223299047743817086226305778700542028658857426870765129072988543322118501736342670255910448335880587144859228135475759427590668219211579105801287654581951856057847832134779809611296044470985713853402997061451736618333004618304979350515950815367620739866562478903963705209857183260441787299148396232676580539422414936819463115553696167802329877971975773391241308140185687852315255655199869279604719828751640046756548519615497969429844905103867774860361059434016252922366783140728322801446395596695921662540594801919889348023463175842278307695148548308401936373348276604903217415959667964850830040990067726514202467938379349447617520501844850645729665322494242436534362708569500674688341899485585061471229626153354478880117395059991650544995393531203233966168498524632835054972616860238031797256094743266436527416447103257566548211202703149155673899840964959473912455827903299584479808312986904475180600959684216296696534993458441107944931941079560285988239816746011284542924548196637769828801438169880821116608920137657092908364929535520034195864752032467270585380724050366396086995520842689924491536396742388800201700242812131397046642616397132683062777871087294848218906590187130021063747251245928381618301172661694020290805871548141854131156402341297447780183161913207468153211955481857697805818838092664216170359431854542506731548152222001495758013460349705120794253001369050124720792973990455209008208864513595793823648190039717777482418229688685477314882164298428919567438238657059922210399864215806209439075465734155520713672939703988023183264927622110566124594669131554786685623900740770523703167784370592299695394401956619104464720956070945910563206757106248299144982852129353126273112991334620801455992134743224191876915195977280346738332610352728010412852734742494557556415840355517716276714821330832137663175352646651753853806648796707341401863567938447101831438517937428266553654836768408942590311128010789791055871576017325244639192351471933986567455404835798997565482552587491491313161438133008327696961828715362489281484629810093190292369755574178740927400331802531535060049167365381757255269914385678333165028600501133633234216583864579979365293366524646138792066272026961951448412534857867399610708985909846248537017109254159915310378696438130441004611658106947634142607493017814670708330872144913723360914651595909013179075341184119125334347907776415070991409550354922146553903528857234508775542198532361194517325817729429294026778136498130531406589545208550517443964412992429345828109417605431776195085671183785493059101170504088850969080497719398246517536780459587233929348768884112376029646172696042047851150117709862411958842836416048943299264467181411472776023592202948477496781941656435017754398595389335685663804949120596649663181448465382377975007436965694007378463540957615307897887930746187501276967754853836314545921697071245878481330971719004937553406662375850739212114358312534619898649028788185752093599688874129932852773451213584898900038986066411696563430482209448436261537010976511379787026225610718345724939695705226913774895938954734535496327003601043320284483659680916347916362174187612085497623272188563958452416262656423288218857071646767363067344364506320714970991867811116289076037144909651651105475468559115637146111439861777142749244272888738867991083441694276054207463247324347151662875643908714054918761946073919660174238976617715092092211178373024062879768482339291127932069558788899208514944129428710815507888098340892320865569120090932531982278030828330082886304331103315852751509043328096293541507636573825112206925614841375153350169690481721179842280406065466248209707934387336201228743537273377230694988423805377467452960141592495498129233909018920394373821070574326562264337067005946431076904433292417126904324518516796745847796053598022215341113191850321970789248212419205498179617432010540683934121868432847017157682467516789008206063931185987602623877737765783375362656680850594116449895874682657245689159314241909261062058670980368902791846287730852443076752588784508108348505223254519882061775133264175844299794320279658129363113038178613653542059886120059326018371723034454298999675366819358740460509691441545430231896109547686906108638183036408104853219051296346323164121260121258407822735776673816865556170297392175512980055252462699829233827309622923364077899007288703436033638415008402515805275838582526752625460023777632882169846345332994842359056181854357938006282847531904441634864209628482900151165914403026677725521642586317672720686127094229542822796702078476081175041807432744386327997980976382601359125526585209820744987966916410103727339696226142785001922172386911389735723576342067311952738606935079067100984888572511472082030906163361503110519208254668449231519783096638259691049731104928135633016343799960286545621496824852319263472933716592079945112593368870450778797985370695498984493376263682758285453005754207477564506329915241141368142081307272852413542992847739684791711106353779036933086655681048122564205053109255754962678332608124050885377382195574764101500012579233344123724094539375012018000084872233297766722128228885455660836527904018247287086036833527178708815339633867137262293288014776347755316625656374447649083216208008061695151718204137542388177318786979251257601980967178230457521049740364088491843888617133934943524098250213468604722899072876401305939148026145598692702129025371987946530160083411395235360348695502773478778212089862079611714048026074442696514981051495525907899381091806743177188208459905804180152498128982113355641747295322552343351654159597726295344367719070107630385103007427632837981034772447681070873678967904023302448560557309315132228098008740097744433416847256328184852847527495492944686012735741968398330800323371065690626401925733449786017874056290761421384062126191971911374453758316905823924031716490619801889908257195943622404585822094613721530307520459921861289444724317291372136287970952774927188805779823465603826779494594698581283516921333847287956183071829593201262663644306312664251852333457411369607801379817330428124916696666974462891221454274444787807943365915767575430778558627536427938076877750594382024309793841974168981604858871619517612228496568523786808469442639732305141782404543948182866645442265627646465161505135169653139064590075055913125089322934049884825232441543965137212459376556129399308027637013609422840052904895974570290298096729027331779248768587263866395510377893959628712571172333090845284660695054600343211547720145122581504178764510680850281363492929468024035003737494349746009324370299153343691806308837335846899630185911590861944293091086980670770240506901260283218076634794693696826660632461379403173940929402155335763968951563452130135417449661800347212140037110067628107187065355536980533687187792085195264090504430003102744765650158791571558162085605859721199098196717418127952811351073551621222350547260376633981400215175691635358687024131100744314212422211604697526779181627412132731942368439363548221011444348147746491703879508399594096569167922400541511050294727076905314294067704074771799053614351391557288634332442432974757847962825818051202181908440452436414381025745649080441164086746292693272513184631220972173378715980977875856377834853612878397328682473664898779235612326919595883307995964567594887534756441218887935976783958193516007058217638169955862009336828202896318486567807013994802539806187379384337895575517998757584169601500924585853505403815595592562779970953989882589986026228091518662125845933883923769870700855054892670086999175437395653524599553785898417578072443960065397477105317800573098092133313430605210017898217065524005279054709223277290138965244835747942979768555256424330929167745233173752367405595463629197579760958107948890654033440158830166559174948998666195629100005285021759479492377083605451671343934305253864570378410169767898164734966687308551639780477552892643754869685315532279486778194638668149527869778069111374762973783891686190380192468517405983922365428587776901634796008255937149277323851276079783765784979738750782414109991048742011515378479181231497186845419309908803862813921647629101556818437434900277336348961376978590668149322240218759358843913385425591798562505112422468555093045469197272563706753255583400056523201496715536405863740719890893926484222591109308814646115517265144378954606236088162278513211672603407917726366665662214191010125624049729203408113601893631390200460162520819568750375042066632247232052022370367363505660770499442062777220412102944609047116522140160332150101009262613252992529550107538778526883125739434970546218707747372662171881605704276617521133451770394862812028032394000343744349094382173947791901921898292503338148069500346673207633149545943715997356862488806670435888092839072883603749911599535793001530392365196032249852255498282508585863587250984445644303823693627648921772695616474736192367550234420912030357802934713415407751822971377593346959437590383581224643916867614190211284148380735282184263147181404022445868558729951160603407803027224577807659839004573114661338475971065877872906578976884843823652428632242550239478126600692400607697967531414697072247778941882613536876729252318976247620717106821065310094631292829228203654395090424026289510544503145647039192065154524756454963211888262910081804618830112328108565452155698548039538461835136284230609333882925103210075820242882543464115330240782626151051408716704879665859086391702664664667470250003973302668386560422687632417310545774691983797748429839316079074726584699113003733964522793793363970808259644137901937252131554802366739161830667593665957612428107737350390015413719718151530211854860441935226225035514278218705857171808213338532571897228415117144383784533496055667998171793392750523679685009926789703880027907221234317843531293247148666884336715880798482953717780563655591349978918981046725287905239833205007979274540862254013835497035081551440203407854997495140798528097382089580136417149148760293994027898679423717483369688939771873740420545913576343183848154384547688138012184810543038047830242108431276216125145388072889064404516091154329333213668679526950408032037976977127170865806743545959529320758998568858946086834557027628734419715972596267680733373427318029695118727151745550156724120001676513401777909925408524109318673383166998033965491981307567782668265556287881607780423535042404530571029507401875070450325105732436799278135535322474645164696735007762106731038881514154899586441240161120128608929567170378306357143353377341697556219653628705253781434786193577412148768810676432721710961409984216363149289028099305020546639104495091327385713463015717207988545495427306320589086829420555883970153490619486726199272055561512420172443573485509562810436783012331722079180440759070565724360410825955115907788057284068777216985328433131069336619478563980310470852588222612928792011649801765693148444774271243204978580490282578368517598490868821549261363507910419639620103241281833512211425397844035524032208947059401469467571111836012751756598754058115116216751885499941648572655959715784788023347049703471140752243532972857249722890699432967585545961993201798516998957941931068076738369676221860160670842495337142022554043662252635589660605326558154756193099179646017691447968605790163916890165988876877830741134110062721671085025411321123998256580852716678886532139868955869357851859940633359111112820796967043472204508413157755967242839214816735635815394800311512637880311723335741264926743270887064316781333702761222533347093990570204458691561065778747789967540719455449795312589606467708722092346895063172319739467875228259759341705172129406148880476231244556038241710477256254093840246665360055537101466635123020436612922705867730793528029909263595837968578050174188250219585199895402866604082028955573047663461087187747490658253182276770350159709303425135977939855991857154712400307338010380572830635504709940533342964728510162609205480650985931629690297662019574888806396339788712511170677215718839930865772771534557431735515090884308958494178987049591527027808487761177956204952910288630047205929620632695853720641445588939707895521616449939432136370716655587377665559489123168017284730789908108139838014706494456016101042046235883176480774276521188718634788316339479471069284112752709867520258253856993287994131752877058291254563156648464887555030884692732338700522293337758174232156180064751585278607563012083161461004415958788625298262390523605062911018524744597743326769146429617411951570737886474095605038454881784458602522615729727296660842360065934991526427689822100265128630469240963838622469957756786980358079177766102626491024790864384762885161869917717562720143777863624982376915982152154326308825598003002741265921758664842986284415991262119451724614194860714332883916877008159306985073766670663274336800479723476645037999385970799229894810180106835067305478829382729608215986273134518653531617890213182318520110899186547483835663758818387012723475767594891750243112770612402335125008907276366492326282030335121955432206442873069820235883440490695283391004931679088296964541630708343173542137349714518760914609087006741845447447381110145063660079031031787452298070853753634999028332872747022979371671484879170709612978659213692823435527277875145453451471453084354170130222334769196894298664906208209790361954570806253764688108508202492508829726037449593384476442629351347199412907517177957357472855020574732891533831595972839835043046039242957299744917173267366074704651651015465401440375539374325531038327147532991289519883988158812639101640107710719756721377742925585241615960338268914249425978374459107495525328387499125686008349192646104807857719932693050351101230432307056098125321701123441008212076519410192186614336281643929387551701751973900678950851006308818797771733606206946013032702701733346022291983240038219328244037228053268381353558134389347657246788335646256311232952141566180030831840412626494024375101714954469530097419539697902824142263780343442669566830801095295488143227523906327688971149983122132069710863873987903464023713580259114391210633058470755405588960957802030201116416254108224798020157870452150268415602627580308358825092700882805299763083605665822723396155813753735306652364310698508901297675174127230180715528476343033721382083368622697251775269994087447603543154020776350883131344122211679451687192256917468741087130352984913822008140538631980586100796723488821769884264629823907437691561460124948093646487643571868463596045090199042006585669902451394130244834178061987345914388532245594574815778946586989886031996920075298774647340522628804247898383092524704360061477979705600918395254331003488706324750821421761927627535732511366102965681360954035789830760415198089983023559111036181524159496942586918876276501435526869601159339712469626532144740698584910102041724766815472431224701026074000153573556290184101169838667692072725714140856669411541025832488819597671606128621416106812893469047313999110453197634990944094192094094004587008131956672881145984533053283167953092384170255571359547905065887180121993412733629279015194330174899437720569559234655218459925219916260090851710969849714110002692501633154304538716242882822221854650977349508145869171074302290385249880966807650021269167468392880732273471446849093978273940438773019130476627620743116426437096982021041885898448573291537147156471649396803331311294242671233206313648435034620558797930555729017182945943954487276238352889992886141982354344190309329183789035745828031177576127106079372805789168977719476435529723478141979874864194546945386936932236600191966383669394167725741611999622604294958393110954120957363358525562178909974789372674373040376659118113641564427749043775763927369450134817155653791815199822033747924939067485558599590768935201046136041604570529859311457654927177878444399936649201239621166302935818113931654779299103295479265407637172092188870256893916362125142023011353012784737637544347179445512470411045380441237734121577074087269677398638852843359036631403564394146088208956233840023459082190382804919539136404544441199465990628750679195751720668146595473138502920360948903182804478113282045716510258613875719520684974085652977716650647977768740032104295583413525320837375443362282133773416387880042458361986312636675166263669990905843638727660459351575918185317123225168726539390027220984693251279054934255973793001407122530230442528721795507291722610798742111537960525106883044700603545392487026836911359024647365931285371176076392680591683299245135616348398499895735053715029926668153456941514556923187070513639356979028345422007495705320193690161458667887718245182373425050354997807371163145174508067642532472494223666617122586738386251213166492923514911093310864044325292446232987178341406774821002646832738164043608034239812178535250467383255154387756305729926780974856638029700800921728027893334602747987945188084068123539426683518810210749388511180994059311258406478828997324813768473108629967342139260379563984739575642212649770153357483258627520634240532338057345020332582085077746606437013148015349702888149142600629138757734233630493816707034353084194457595474461260152846304260694275849292171179781278375338296213802484896331462278872925456328877756456069530183429637543866003508912606873997259933484929369688587437038902322798669703958791943742071041867809375814132358998417471557849465972457269001748512128310758646036112867378577399900216701980490455286850004947821788452211911524690757751236802208989145086924707577930717103606014000617219609144936473954066679210297489416896748442879505349719578508396357976599592349052716558863381217145878990768538596872039669387120929324473994864222163312511268231385480342894296315221022897821223823070376471809378409440073474007132571292366025173521574206002398361059941571419368493716477949235002722692148766465240300370870145828141818603522838366331409165166216748345233715622327808409221408574615244354791005732340257525082348190851542508440081257280576654875449972093236825216550878536383167386604248171068812200533889456091960545179711069830716481282913568957704297439628345432836023435144554688212600238276887724547676444570410619267171573865416062713251195135046319380297253923131711136211078926079078901871584102321802483176365553604266599129014977473993552086260089627961937806659735640873959940525431502241629150219267774777559123729068602879024297364713945638939964863245585104264658696373952586227032288018789246184620304310879439360472373978567919105690829804874068093700983630236021236726164017886711582799142946250335206028824739877455615834492888824347201090655775225914669414874844518997881544980974810578019410332383551222485014777138468496720402038714853795738522715487804723221579269517737859582612209879539583805092099981143401598261980379148518604219046502325588999082650653487299638739053724761347052307078441758260444647502991647921381365170935642394962479987635696947359016078022994064515390292973711796499173725811854549842467313796974821592007614873436093302940877122033052334425165750691934629823146648644778312871638820893193214530894141080264371844600485231354137716835900096703818998171973339873321222034388067261403362266544218294749836852774683796561236499664696461734100432910673491345683618650549464779674715271870569831796401696700130144132181649533606928079932701994895543845495115421136658752474522391547808857051288346171376496398538314679643994304072598170098690152185593720633094061578175607470315874699350357508298993351342941651883189184280114777656061873866179323336282120529009527250824043945769125847829079782460320836696638531945376441825226440767095501360191153036812275617690846190211625864976733703559580546356048196769550229058238740617308329999536596598598226343562081487748446270013539476942342914150062510538549868371795736033903796889170069437600815958156756877106847338356769580704806617219969812342757581557052119324908350379590418951228389827039110051344215767111614683635136679678333535661335057759862003181947725037664883517122526824139999563429978765105416200825276181562237389780227249945974538254832735295553775889229452081077010982466453664375521195404152324781322890036617830478910007384719556463148184228208696341843506120913965033777548451839033376409152395873189196996664206835154848608716663623870496506170808785019546279289114590027106556882263173456234738115185054896625462150125289720375411035218526080800468843820889098735265720347223119732809752842926842547222319614376960076866616342241910235211045924595501342266159407681157797032697591812234371036285854307190798694432160874665373689185331450643189332842658569563859474598378027627759464962924630041842746626107429620970027678206312221459987039420734433557930112311158435668002482688250254372755148816725813541698924221726457276587209547508228944667314438593299316999818325078973231784974037534858955284638026160913964623903314275762691278876068813469351845448039141716521672348901291740360143513668813953497936815339303617546613159658543228254729627095296194906630432377647123717389552097625881781615314210857530935306992084038924378244336505441963674070037887357574623789183310562280440277624566413253772049915856845003649834250769948411241961588288640650164902299542197780465939248104344610611006045126205246533139565401903990435408929136820131660730938005799375795459443883196398722033712003385725597230904361834623148899812456710100619729643934562015083367188488406498586855062312090868863682469842821507185621485808027744049972996958450132356034078892616948958843730994940602372905438207880756073770476269996913742006059941988839125986883451418567326603101729688601169796283278730710152466206954390774870939903904011057852289756866298815887370359829669268033057528195054602791414968038900738836222671185975250405000547002421970329002990469571599139720644257402674669683877656007232164582054888674252025496426544682625642425153104890350050077434454482446563108194334330003421920943229245727234549238464029467102830404294865972155699588723413194165036312492334056757577329877499422453072619066017657362962380000144567340545632571249518392338434771389453196782035516085353602029456525033185540214113270396227599150591917686554755274428675463171200988412365571832156628727816811075689457501866965434222637712716707001435487798151786819823691251234286086833050234171326205288237451672799129483088765840763140584063256174665992514324698274855447200627489550976094450106761467453420605740617255113442505466154922270043775615289099330309418893194583626680839527965010058173791849161493355361477909424363095608342349734036304577704445905587524564603465966154096177326559444991298937233580881317226307118426468826413829094055396944339627240553963518624841080832428810144262492937541380783678852224312571692009389825251983011337423456044862401565826076200798499635755997087173788657290618994249582134686707962791631067777128166058414266901155560232166591870514511050571690009004657067759995008611487935747886378195164613120563781279796400278650615666462199995803947735916351774567624257396259827816873107718912772600482162765387396548466212661577277969586277931731581798528436587674388452148411454071386532346526813033041237508496493228320043954719701451015491500254211386540225691667294612320755354551981216610719916955506339303362382829314613693568975806467000392909746046586951431980794238600670945308006335586921903015126662624337056461158278742230475975105453569620654804777955142405148125959692488707723403400423501643644028966393352058114143303380799076068747623780134266395063420125315185141370421580759943549995504980341102626018110151269146033965854689701908084472479491741066301956132265858178628957399138027903624556928382726531099006630765589271926321827015755842378022226216957527828253522987043118382777444075908826357137029546360919010246789997546584033872032117541794524777391050530480210028234094203783535710582941106754916183903107030389942746702290102156218225004116564826889541892167460885249171427183550256748078788611757355501835433515848310870974761110887303031859263788963407671143734963502999039845709877199803480314399348100851752873634010205982469000943590681582161683890436702356555981348642997249030494412132463920693910389296228898211054174073755985025119924886207969560117486684798877798784111804894530425572592349853864589895400218604772486729503802624663663324345348514831999881695664046143624402987704336914544229447368530728582847762065208081794934001668964986263273445561191791167833979692069025813351910586242475304074062792194598820191469454272182328213777834748013758464222890011364647727572059029275556658210269340414365132322777107101119143815990088148630742741152140150225184761452957973804489694605010835886242989365276764230791071999972546380543679589143105714457415257723833336861615150479412660329332306801349415808933452972281587127424295509181249219893692238229562381907212716210860637812083918715618654907741998746499298412248438587510211221832514259679893357120372551407722654221508093334855024205182760467836040616644062263212961390836659740140385802894488603051713645897117379280691058472771488194584965852643008745084911819528364165276105735880072877015230643096539784829685999259317685512252096006659395652133385163328230718566245973619028792845468499162483576647476736241609783979890673124027790089185772323480376571400714449495047822799260618778291783797995297381270557029705874733803228123345293031326756316925881080739822149993672897427609732167124325581190763103415830339633419855753629787264817437182625914957115952221495342490713006595360168219212773160517316983418905442759396260856861710854092160414485114004615371404509084456477682571922548065716692903510912631968187101481470828171291426259214141879857991209907212807888698367587758364085499861454934638972036834119867150809029687832318979258182527640451614587041633318233988261048455992943771678991281810039992516109224679862820094789590812180203249422189815779258797246230302818105522224574227498516773017834344985424083579330721727830304862254056517782640057505406548534280786916058105943479048721819249645948565331745165322386079000020333046389624774517763742195823276245130777227316442218233551775643551345518227668005186889633815440796034990725513594689271031351767060627899693187930676777754817422556666015787273426304096860705744566155820595516323474405267088407593843040449521974389829369562425156407285282976294467662321275256408347721560713213574791241522075382419393465355016012868787029988571174891181581440166625645625546744294657835270486904839757298580607217184764816260732596189227674139507749990710440806524518953079257338877646106445321442360122372624478195190628962866079572953426200466147872694280773821617516114354514058348374234078852102181010470959628400417364124635946352082907240685581193693728547567601312458960510186907961359989643981196423709448532688932309122390552207215501545255406713073789161120721773980810956620588215396837596184754134911670429636341162490044601538966615056378413726653138151265036727564147212140895198404427374738711111255408967197166973321744772268036369588859052781586754343383671256881903760475465492868109834341862540183274754406663969869127115482234703346053789694530553195842205789191182171896881967818812479428231551787270133855101269416754902387486214792515292078941797486946071841580023597587677116698346586032799417953451292835274184964373863532886886203814655285696712993656126041390254441786138371798352814168770896922766551699415804254645169242777863327215710748246478662194500309918944561081273199730686359303798239913013715987371092410409329934871626449982335510886746011973167636082323708968587138918172707683586967715302816879358933086190783974997446732833241533109351911620682699070981353427440081540366474865674243491140908758729333183048873594842989802670228096273687752400889740322738614384847016858362031270157923862834389457712675471030361869401513495743529203639973083011291662995300042304383434813137772351982649081451661883679905449214526638548836944070072248188597344614022735552146405549105438880688810543121822308967190497090146882186417376885537665106816514579888298231913760484677231186229048670461323498861000440510173057659859432524251624704384149150117373142018151174150070071743471358374279494986182540588324531461240514012072823401132958591967428320815727249206634652654250421543778638708760778009545009271737965799302807763860714708598308977225429749770659722356858496197494766330887509295085817214854414408262762369528828465358339713250600284863966077956161164013016954862605579622481832182572766212004668844835892974502047557513887775164096228048638428930179224345771900369425992539669619909534815858896772394667114830758558816484123165339507667131393028826873138203170014449562270463187531525962775383575453163984345838659432964121003806319703371586689849252472315235268998675115358873101041623288863813616244242183575952532983587921581453015125534047077379466863127828123800630473649038717747451515844169990351829946582936313174164042771386760054637560870444350444763209770624742816966609680920483241696083518185447172786864578141688290738805531131389629724210238699688784921742910992386619372993101014512791302436311983513783680740587570256134168665364582279304931403388612568641178432024573601658383488634430167008102535219221251239012608593039220385056948036727376658656003349713669588011671133873591653297482430718898352900996786689723699552021060018194882555257936237979285418334394499628623863270356298697076621067872369441511689820152078881853793136379501435923161291513117546154653612057142310091811252208718493287613916837487415608939675698282354684117292125501933821844478597971478352612889403857119732116718737934503426577241096753271728949229280071546038474813938191545482543357105878301530454474723185768521618629481371253424387991810981184897200286061660065189654579332304178501046691063938336535961834619110103376014132058103088833163793445190725432101275656117322920336179579457038197024131785028428029118051854540592321009184590704214923880302454771458419367457610209738981155135274434883872215384483678825263802355885124395718726472364200982468876389430611093999795003587620166735968635360370877064672719992919920352577808650598776642155592838153569063511562535431257822480723251674666502012738242183347543517738944483904135668212188026358500137747849980437434611251475975856247311281723275724849757811296509771637763282060661491876546630577899458584672899081125210778595324853058845950407078604048477346946494200502846041738928467679051084559709585681349423789516602261998590752113957153586182151422023306516997856972404415930824702721244094839038033789348484399444494700906431708443768934359972534544104637305947418864587505448569565422165140898812294956120930944279011373509165589922269328397321019749402753780949027960835783883964742044711087700581272792878163880643034241619700305357943248408088110876542828034525091469489153132266168104495210779353145920667775967485475373042085841658121915103115748684991243179656494148825817838561009129704176556851126386163522588654280817188298033340334175788890360219167573907350710097730537369039036386254300918169281260335084176016052346458756584459720322923147187167891199862043444719873662687211395420132810529323562881587406771991080384127319407202971046811149018465324895161714135244311135838690206793778497053645772932215437909040703733855799729521839112193864502480239724548649591320295170124676178785237119881614545650359846555384484284437514130107062817140983750903265052743540279237304480090571284586774375474890984233029823019288172085253048375860868164495541826664437386617122364354785344256671862074367330935758149693217614756124372593554532938427755248857882611123545630134209474267338143377394534351171726920854502697016417338990706905851280830306138865886369617799325177687681129229982385769463618404335951911381215842753563383597365747280800967077926593881329706782156602916634794965085498897133202707085004442572658168387170890440633136611909277607446284803756860991745334876671955908336875661834112844399156778000757609480814431304331294746116555030240802288541869425700028301117420849544417149974247847793389742543860172956389387009592861595573147499714826958428191806194675290258576725001563837798293560474252225492199696547309986900165146299441564555891490884015979520654312380790524141029121328138877990846655083254235894666634163831442481101057422158695218575905928390752390848366015752847360392489864324071274438261683269192370759380305928149876656893798106721420104657798638088930337465398392134836794270216607733175606498248070852780104964055422425600219314294797763358677155037435825631474358080687106833442193507873946924394741867661898466163577222860054352755294051866030405070166066593274591216812125873135856828687763152947781082737225895644291638415192485758388827764308094131696599634739770861321231409816627266282507013522150174068785108656021694696347657258508541762675548563998354660793643138621430371520772290468406668623361828620072724587384677276517660789293842191535712840563627869938278679694393830768365422060096777873398157613345543518898216375641857847864258352952188081727275268076515120037657582490612153760396278235230638161573834167818574713215253324215516087490755220174850036260952547230127104774143777592787306980561145310211745712053394729437835559362956664175879832686826173656852232786785879649196999334595783076252115654436004075097919358680962694434571700406692582351106553555184706590166225088160283411463514667219602489512393600789315873938782681638475621658693606219674991866024145469906405299634437335713030489627644346121844896929885111626723938072303226397892491039324567623231044810151231046882548056527641395667367584407981008606810469312248599478561984540946532999024988841416061434714384788566439530013104161844892427811435705569428610957607697473752764515179354827190441592481437171988695904347581300147669152532315951203205922383986956738243067358046485224379633951159355520461298405301625417802058945621836977406099978315788946840476008821352685950919965600344495725838449459087309311534781887692847351591626141507304431898656001128479500705636703451808567653143377969751047736679079548293153013183832045709226974308941487223235290825809259777393782012224953420244826284842518249057080139410346623080589993914783919618335911538865152087555846983167742967535862309907274919335900277791477095461794463928432441727738070420609207824674662733695815140913870603759161866536192780519377195264050886921307349473144590243395185020887917451674134813888886746246027241756673210387884512422636942940566744652817222891429784882537819321192964832150801215171733662230492708413600868399383362630530210965742556122915359331889680576615554365464392585389514101502179962823616808447020856149597494267326554569747191459074113589784489133579173847009100099913506489671892096707092100142120727491189680230607069984966791260380315507662492961449412413231761572164636343492916400787842635529931879117316711617652348934306147648723889726906273478503370998349652161794987978189454165162087106441102274237572108327300531433068239075154189180439692086246981339378109096050744696037798034145924489577821196511496191076716289235607232965692301948777852480060535324172071151565467224945599864200151328501848037000199466048774609324810505539353100908930672593027006171823037474796609451399586151388042891159228786248737164750034420942963809222631881585591641482256600775243270599926893179120959381268320164706905119898863070698121055508915273691245447545988145940804259778185386857327077274916489339983421758169901343882606404120289508929063940064281847987712073685016673674400521274514743207263794312064616774563201661160862923893848402330386052383079628132539098669422645100846736629825276527915005631807218416397978904427000279312906476698071864812093698514038030301097675795514563301194351070354556812913636081585695798010412054469422454387903857328169936640001218784877142646151869948589285135773591624026486029163353452864481981574692361202133555213534003276971466961612276877549451668002100813572386947853834187237645392295362780648243830877517035053662489319926733076791939125748088728555047593848900754299292004725661137408850373735502874126370532455192851903522653062795760665473831008641154472545570060396082493939975237900211230699382840412644613932784375244958733521092441026154184639123827984837484894516917321843697582983241691068555634035298661031849401817773706819336239517507107708064561992419202034558785519175339994181064779314236590571985326287979600926993293630953740730398278014915010982628052822060292897023398225206204585100663534027407782032880531267886700493308083916383768182105101296905982231422824343017226824710229704429649720903725556708000709074307181273233592074735476777723194107952031588675213889105149360252745429398121791023458383273471187891577464145178010938900240868207621633589618301521297707381318501472334393134016876257335530535714503490383975119323142744821506374442767302769148358742981580322809247832580797267356392728690884543049580458935738393726594277467502091663189057079976070610060622243289980910831687269208514979579366375548576996366769230800463248284640533964817192608855894370710652012581009015504468530373328538480746263545854501117386820282887719334991879978076184252332935021166085001730188033573486601860374458019432874244110487946275548642575782582790601239400350176371803526438168887222742796389181054147955386117835066220062982385477791442977201088729213601984252864211495744367344508288045647626637735504274228856540853844341774604643822231849041270679723131118184414245054174299202150258512485590910669508975993141640564245844104503702447351653509591538535436292929385179199096718005099693640220173114660990688144283108672814244971854165621439656431828902906744721807182873307450719794597619157426488136624287698454925269208024805930124215825468972462051284432148317165677038162035772708342009028256969374248659528424019749430583584258530358364072277843523480719381701724486217312132766756194338077149186310704807565880622100448142793253677322642475752359703199921847469273492144466394210635811457852527935130939672110454738308984462020516460904650877586741493794003183915984567028375413121049182318573587088618326189857523686590581227855335363865859631809969250616552740985555314550610147398787213015744774195286342954198563045100786751033764469512849912913115279756817067134329547309076065146554067588004840909559360900048040395093662786305879077256383210975353670203231050465300200639856618296088157606943728762402364972723293563793343642596092536540939696694552477866387965945729797113421979675358555970871268834190903576462471939028227996285888364825140800886020958879320364339496247572947433114783504155867916726761807379771052447031788709756662780360605916716168430154975623875944370117097699654904584112823304037296844644190979132412711000117324160837369735991364230698516916559646724978176023786720675969317831755010022883734222214030023312442266244319427687774780012672056577720037390531168778675453963081126667366162062115094798835887639225426651998071441522479066770013116925790383950121626820235145714220142537166753672887799724120521991533979657107867400060772585627117060992156484518480012565426290301531726724314134478541725774347064289212529083283815803850261927241786231983356698860774682754145469546783219456102465829905182266156795300428506870080311454931827898122593543070786219251660800326285086417161477669821568404377143017957386163724356688796886389028148983234831213344106344434696697842055600170086198450612760821481701420106437167495064337306095644421800090145599778973266226438687106503621921487633395082545575798842425969838822518306059419595594672423147234904644893206493291661650028007759177694075862034489142446697739047864567649165073286905820254784221958594972929671276998617307588086905445763123060240618152650893856152868011297539384836126312568813525087921628982705262403134705615151876429690715393941341963257718138312637552091292873526388902368852790098337791974352175119204643801700305733398709830964742792263367165458194962596811324530662233392587732379752968251701517338531299278609028342666089646531875903206014570965070516186576007017877378796314852752669269159745087462850631301580285717890777351881197905774693060743181996583039174453295655728209499524744821465881922277578749082795497185604894501034028417221027509470416990343556895098622385740856148715562161836368135383744502500104942916797572395100221528843323848953655809584564636339863360816425724070531274089340769995427565360155364577599648993908025231958723525300572377228421607677082794985383265233972968449243404142898639625533768451953854874116382036794994332241239272057146845467254812013651868028497569104199928880254635736607883684589379510288443349039892835417723532061942512538222827151240934200160522414715881376963709460394428128452572837982194211377026278069038171713231457479852245539296265963660191594957038966284227444306059171515569047907993596969932236941417979167118554758481732663868007217723457184894810271848535739607102457085560652938189937145679655649969002391662253700161703446442303511166507211715041521655534195081718507804306961285355441633524501810991851096036485873270931935780158742466642196472616702963681708387402828227097912898299928267002007084804402089079717971339119993921240559885802413014880155497889319525619486473906691735269526712064075784762121368351616825951554507412082952805123731446394354258310975122251625050313827164947830812733657943558870250333872122109119764565648539747972816644057759550553827652051462572620674546615524298781053069115281680475494411298820860600373254250739808246336355558748005913640772399473407729708360699733172237325861060236273243137992026268438694532757250793398908822118148881221998895312853806601042078902240512867885470587973202387464449269371068777248456229839335345373851063881288127409204343690089897251336324069665827154112965647632593500338065540871953836291059596779723516816688998012885873995186228488754702785380515349902672442150666862441165110199285628382173706634926124923205498993593759349581026867886525278335166722649660579931389452306341938541420557463741786487841215497797033365570536005761781494731091930977392769419173609207373062994083239156889157296942838438458756990424077705561621102570421513043684264295240422266148048274504264079389770513821083531899753348010918639622598330224866543202699346558209291713827831505650060172528125841050032225156306690871973657782887798105015848333591219570522166256284840195789042917317844493080914659901675758417674600451480985953195718970168314004723940031022767855106275099582142676178632560852013151841585916527585765687536743442132184082490232859893358101085651026110676674715012791625449622953192132265994453557536303075095999919917828004841122427946300644860385069448283963520034745393861594138216632307107836225684540871586936557948177436548812932540318528349114198132632806946000727098103120508310883643097823282732777796129243758051916722532915958216993852907479562052403594181077733169073444151284920110166810726441617511284874800892858135505901517272212870263545273907912307087856487230891632356161272288761455239720579064740195929329787189819772872349386807707002100885770894107216727645946998026359988483964050521748726791000496755204119425514989278781896952600061568736229612143485436544005189513289972311296282762706934779863645472257825555639626928244045589261874842323468090713490866463017208565860980936207749987420741358553899804780498891242881470456362328874811038717626901449173457964501117419119889116734346884583708986183395897476518121765892981047734867440514859608478717051385413720550741383030458480367558691692685018501471110359573480775386850421594007148183906821452740346680285891389698887905894603530149744284759759071127186867100268184008508068728358548242164481838357987154840044744469250535137748873783590647079339421368013815026902199608816731286468771093142505737157830500340085239311478003471106783929487310792146719694315693340522686718463219720523220743373886034812413494164139443500909643077699007718064109379759120419034223078189190889914400167696649600060488267811809368615735965726277191468682873669831125840341248099427461711802509003499852664550546788692817108025805536778785658574840187617358132714516294169713808726020482636535290652163217079506506772142330242237845982621580381760240009104472933494589135671572964974464968010483878832207497539472233739060662829970921806857960152765636986651001548198662324890600048888835726224981129948186190611449261108172554909668647557249619892998628994370738389135786020569205892517107926980792361166098822793339492145395035471965162192908313225448835369363364862719298742109714331615239916356858598190718328721214342686583978748604961214911535787233069840088701445955682703685424387377852766576988112970316818316618649527743570997122004024374394461900998536873090609577652058358719247997098748459709886851108291983384441551148663802998787393707807483973851231624848823514944118126344595582503406017866529548163908389240120525249412212264138853405320529314666489966315189955655329893606243362798830908877016429777001717793098014310935620554969317032979597412592089831937695961872364599692511812015164799968166554480054111276246052609890395618413951556277617766551740082330097079975793625271396759809972326319044355214560580667562516641861591419415050241779061182572404062523470290221450951374425065567553508931354025486690466268627617418228678884642221979626234209027456555214829181676525875553050241710598201639353785344557467908427017100903614844336397928034662388818463208912338670475580233791404090139265439415288750355825773547005984863320126464991473529391085328885929707663941665269061742828090363244043495295240019997700858460177374742083769442666166520140036098235773257658726906460956210533952192832149932145564586778395993766347640998252725633067711545676373953347010433385954259300355922949700801157444795152333963257098845939402908903250735598565933580778506188372384954889928419743023000402518826916312649990989861640629750362714212742125163526435685102325162144454390484615295690192413900130161031073467086325406050525035630822869641869525541748785894621194627327621750458172247750874703634884597656629323351767258034502342605463474793261908817518032292768353002495937218142395444614377818351190578525865810065391527434373687967909510140129292996107588130885742355636551377793929799485646282108619954437950601918824539141425102910553307537566964381833380806245308097408520013315365194595418921228020494338256630190700093858320424670159878818990898435955337926106253106907748368128914972041807132265659164516338006834587457632383623401111987196804221040472635664705156997703955265262416605133794701020612433274495544796909693904701967324609910438186270025305189882444850824913498716810200347926287545547526176437832201162126990102025490918609007212936594033656344574190177036754327948186372619042266239648599380822398931029493033974494351626849531961816139689465974249574679500006499912700044565269640692604012884938121251538307231544627243735114008365861804256861215523202724487834999561553179168699842661061212168384953381318233756199508282357849769351220414147319851739818949970723670170259512442380693234742152355790130286811861408413099296958634620909251153285900559306235463829424171634454806220693917347381937416143598907502030373361111735692664516760634974037212626042528397143231026376839106649350728504967679414280001297339509755887000200939799768547479868855896707674716109558852062870215102829988982830320346604594308172476165785535528776673960132406417911833645932966927829798610587913426824820713926285054964336756633639179760967955313221036221484585566187990482003171666221256538868141122177295160103104092002207263435147128746305435420006676819210355424835693034191666816259244574912322891898723424979433784139003138013902667876174337020218653698306531949352513174238275170514788620015647373160283243355855728789332841178786412862134401464213981285753853247253807477508381247128016746408152118174478231723253626462838308908279929506083660364916547294914773572539644481311499906377948618923183807088594263497131835740500243902002468331927546859200160280441729494479848329859906738649130416286179329309139566711500419564027657761586607920369172307045820226420431208898234401150306226792812360114242853482360374633098197840034333917622314473851540601918358711901471800894992442191171476372939737892325013316945801958012927325736670091802600949787574751475801897260194757643769387565992210372460157411944596985850451723678063921090202674148693782932026633842648265071140416974682757513080296991436478515502437375577324883337729697078102400804414304024115608648189484059117183515244171654987924440573157692940973762121077322381855863916077100696407458669736575611467895872139556150248365789518178200547638733722011080736137512355866651877529051527108325692762375713740010683121266823209217121131659607363956343334305901111912839885291692497443328932039369681920887538692584434818586506685478275263284941549657391222944917196837468397075336991675610674882108844936302515642583053300275558668687774260613233818265596653619352182313747347111944861522039646397386346545691926014934705557698365082115905527591953730823736048887373327494275672306731150011336963002346624512536614652489266389933317019070970230228744004758813075841806608165927212212635673980641640195402725808155743909868458121621998500836160690651395061334263054546255076824413357250240341194059469372140783090843264479286656601806720430594545460502498844510007186711151577555822818457840147952561396218844905981160122441267054554181306136584157271218448246572569365538233380070823691297972341239685682162747981408821395850499574608070529729111983261131670141055413122905487100341444029251129624381734317571780490836897829888015848351286733735094487221263722181820222887504552678529304505270436618913673611267203801572533466668401974802053490508289090784127613803376553897193419188112312339176096622376877093874512166330166991920599118734228799035873117207857170204241106413126580476717098037663084284066964900658141159133261735587587848372033223518584578992925226922804657755521398139193316914959677986521790829154545299299842581484580454797403804009774089319704144449902573523785195627183532853028411210437902934258140038229026397878244770127013679081129338316005886726407149862782442888810462246933744487053770433435802573012134977951584809599179798215912865436690128502995092089134335514547948497360569174926662406985665903051868729393518561472401215879326029782089044694699011075785859290244128712627956247827672185259238562023816096144088960021606592031176789309294981069069075766720534167359670991716882726102780928362880865484087782052641806985408817581564237017885534175584513685697000929348880242375193253858248606008044486469585995792469530043444124210650934879163699640936146203187229222097484888113235420809995095814574926669771659867056768891913973122360701957051868700064017252551000991895991862263543242289401678028266539064237743510373678511208313474305516146871946100941511812477629781787738386377272696209592635212119317783997192117189761671861082479005811905273212978253633207494770150704423148322080128247180972544737426017439369650961050086049085148957151811975177178095984047086247267392664928214836400868328266852605734629973148427987637531320686504610548233350375265578449620009000253300055724169321852966572716760103989946693023352112497129516427575436792967406812445154129553130918636759731670411728738940814216231939717383110953852673526091993581110358852791325478002285436697011972593771295454651481413603517951645249709359020484790379725531771331376552808985148340721510948269718250211917769490718182520623700138259851676394238313967140389289433328747835555535188124227482774531352421371099936491516811247839298362827842099332776287874792611039740608276870506835111795173320588569529190681407930444837998423661092396702115809447363456227575054910082570020549361575444564699916045277026300077112762251992746844648346952355630606479054392787231103745433797371823357800800530177611320647101436981802305661065181568506596339706161800527266055491664384902615300116696930999920610763730890992672234234930309256809673546509611513777057090703834951755207784738290460070285257804125377916164499698586220259154086061898814273679815324772289550620008495228845065732512187720468865054365299514742172032177661596935481303310891088198936432124520874094673699131732154341905977793645190152999371075106128303122421606034063382187968120588712568219114852638923338234332937715243232341160917636218058675879023479657512141140198112884991708541493115088532622443468779641491043342598655822173246053288162784039164623023963162360143020294667125044239760118548573773300517808935629014741650074407642007662790158085436056805714816665317088605974390558467864797655048153815770528139758800318650717928889107193834030547269926981819582553760418872010039566127873829112862089214297017103632750519755354085899199283288820689685801636302445972086068811016583461091213812537503522089828809315443084336849370871083865288071129394932034813454164589222352232943892935876021296894125671103513949981466613115553894390539844584498188379960652184041005816366129627215781269844480218810983388819360779328625914830205338081238084708667291200649857405624685793208260587296253740184176503304649187363369520770649268834738245799916717265171722964503527631982560058749831689508847195322649037924278645367569610141081703053109355683214955401491335552777453615391200475946785422673267671484672135913039150310139877433062520561700304493739306726237229737026137081572282616931911158570685993432217628394868620964684158642953940408286590781796815937222517159502289586259156053150898970701769575311765457378162117300954312677519672628140081084015876764309231410232860095271292683816884969837905580055792346979542637918959475247864477992895486541959928343775553611444396388121052822111902771701864402869083583364682214851321078023380746077486208483701333763302377678534670825483191466396277750017232367527152411007512494658494454428015022589097674531564350196523733127827406916071472610172858918061058953465476874047749762548468440647972089150736870081548132623884645531720506675577351357905088527360057896436458129663507360695790724033558063537077575635658986584133093293124427533630339599947083087495711990249517791553256643608539834668762184322690796069375996192049637853969808481796077053524174166903785355133093711554126558975728443116492862512986177597557343504463837718773198969866348079007399105838652837370681855352012914923208035613633827376424717138063018698105530444764697003649543882916359101452568085768897205945621055849496634085242560809225336885430131306717789440103687594311870211460504451414876200818648152805209729600993605048483554475354280748063646026626247423288473972144490777546002112474915951851895346428198438135229820965766705095305418135921429781464135514932086823543298278925526115129687762645219005206570235836256964493655251560157501223310307662555190068137145688035346628138280926248930562062266925980119889023995188751361963475210514996655200283216837323693131400176596323474452030046629063011641887465300809081041192909741420936823729341691320727889507929847575502265360864743038956688649064011380711845992641156084988261044378137875867672710099912637175590608154999362844840036341064048617260915915926713172955847864703862775428848256531342631965349057914185144732074378789663932134917888259717642159197383312821267726226167273197119724963176251642504229773299383161843379332845562849258768050903776716470563623856712267716232880568641107101963324246159126968665924147975099129802185787511323019143862235105406211744881699750486181730168510481403796290884293848111332697399643919712781942817779358210472967807809207843453178701679793801755571021480254586102774381736576950555997361473007924013728843596350938409014779972196749081090696064460944834845804223194257184146654379029448688214869753778707075478605029740085633510124304648551700204683944828122005048336834517712362997995768382202050606261249219235695266581936848413274693503772009641426261950688729745899762178593619193929551650839574063572014540659129755700499195750073478495127741367920670439414713712271332253601351682530119858526348483993169123147915977394688162663517360315314722667241638888579070901420110259053238603614855155627702439404240637339761993841318602427031174000023807230133374215438992983948475166741147439669476737363677621082971555321170480641761019811707786306344381215950654606428198087562190067514240226204750397549618000246269731578144206580545158210819120703141034406308108623227600325621661460665901180166346735843823663892124613028533277858050981233922577489437721691340098292096973929614641716997371904774165054174884458788898408143955621254178165486676588577480328922203464310353127835973749995346887009655313921679510219785919260416350204406282770026630107416955930536049407692175102159255065356169797660180201647414595651323504427479746488887158368256878356771288366407101686723033914764804770789321214032072773135891481259331266297417905343088761457066829362409976037433099477917386666095090059446594878862859039269860112314688106652403853933575617865934972104959275925134531661148437097468114895963368267854997223975118371663315416318411655190778171857642595837770047803282495830156614274812135027121670034798969003979980986823182209899216236004981565405478691358740439078979962708688102839848617744441734230192633106226428757814724963175339674285822940880459058609153772984084731789199793298942333546247111643116073279733689202240893314226807403254654410408440665017627676575572703627643722562820624573116537373510736176491519895981185574414765784079218193445963307152085409563353357925223371826154495373681542572061898310470414949999273311363912024152309404978137684127762731556230406254588298184968022236246166241282280239578588202103197599220361698154606613684294311417372248848940762011431304725641968017200677671529752647071865179590765623941794392819580505038359605745429095108495338468647023512313307687342928266405091579611051872293621208161293881354136894553483798132646690729288854626289612310051380598340117239637331823346383804110932092397974181539656887010846487884266034012562889089959066199522213942565794763290659517713657643586960680141055800512592931757588576296874535975009672592090098147103098219780509368096996202940358542523547921940034300830039689570391036283700893811231246728418831774607037132021449514348198204229616409044589043996264670081244254574710244961563394776946436451806336288877020699166735749952159567281258730872343939718892210555464577170222942367293341884698951821493220736769446934283647904596339794314007941945646531377529466720810739343544770358283143729065562652351832338826061704741617342950406235042007686113173152013155561178043707844516071619064734960031595139999522841524792254778755334680263284299979431777178224586220820898857442933224396136528779258310154366394297510127618885119756547588171985233202160989983965606198066246870739438005227523554613399543088235169738281646400438240316924890319910545182365537903014258069430733495030734039534943694852532015543874942380606878829817296905948800378605435754093573918763926907022629479806129538935691606311754431671475736267609582012397213580293364529156651049375899569174710739627000387835679382975590970599355401837130617668211204954040915158682324408392515978101235419370466451723538060168093587095960945564926249845138804711526597295007787391299142358241239780655991407615080437655545381161841819389320950284747312627491623453301711457419383809682085652744442318541007674391770130452793846084390572230909756845088593929758086915903002891937900988889452212510821168723764136417981557238596815605167189708876054142865187733586182935778621201234456932989411236564713553467114502609566710239494799363343449808126802270098173923693285892289635624993216586606411551653176003265343424065401881980110284343279710604295218017228056917092785925340512460442784397089862595393023254948334021108399293583473958611040055481872769100331755354466010771860899149051017331521538721575325771670046513720379730778415594401444254789458329489221302612657209879225457456389634501025279320122709117488602628020293209397553525129201301867280275846564560959100986567397955773233220217177947637657141547467275823529973523230196942391127066714598625192023944597431723246967483295139799969262344858683849428307001468560712902665736135465424721381014302886564363059588364818159941157648093800478476482079650464833917811482500870217946333739837593623217495088422897855479192801963489223483393685019697965700816806882060604318559517192598155699591659043505044941706383401623738686217090531496174509058234467417326082737746314123665641450376042662952359827820573209140674691862782212235290005514777041920218724286705000257924504513440968531945858552416834778076191939459625388857870649749307780298382491363114924325237875154084345432409890896658060896282528593767266885545032818407989152015551144509648073125704516069420420799760552034172871757097544194900190002242247936416709461505556109701071477481007261101505732796912842135884852121657591122120222895553264401839830816581458751262234445927986646857790625797812571676731052101381795265773034135758785651058395676557035425612404466879003593283859377899742342792065093730283191079214661483791583143444541199002084679015372835383863512817164488185020778660587636123087505716877844292060341689936446911095157080279529243960439407660202136679232144366988168744805482849567959994005439233569690149015858176169689132666228376991988634974692202920488681511612993884173298667692135814463505014946990536381968563886761758069903051898511948493201283080917710259654970644632070757014594669102170971521155874476374102534979276912575611143726615564291006407489896273970575820274076986320749847876105259672016020254827125904148861244100229830826473359383485063005444831896684637449510259848056400077243547431821851383553080439251549995667326239500159421381204461712828058537676362683753019000143298115131976950326355342773309421794431918278212380807620465618994838230050187596605913548022138007136399632069461348616510616600658646970104035243937451062201565679515380918536700168819826019992801601285843705905946218858803557238980732405280576965866203288270549454719746577210831795588893367843572015172699572442675169351609827496912749160342943829606198452733770564968395349158509185882411195927624794699715477319392240858602789305448865736785899456730954350322357230317296358546755480383959876567562966481810897153859627552269375393788364513914681253654605316035828967156804918028028210127980951563068149800197911658948643150366030337740283622478303218192943643963765333013231235547755794730893930027499407968910077236731755754020902245730605396355223641274069500098297308542135577334369906617997355393984574659579933737199719304574668684092397127575723566862284150117217378729151991674784563577721899241869784048522816984128675210400042149046633159399233671201949637526727998662052596995158202508532620720788816605118814123567578633403175959459944358638689339007850028464097757211899302463068079760705466214978059081607913711347543125406990566938368764101021024599267471106497882602094811182557700875002382185106839381782201593205588360565743681515266577717741400090482555057407624541563618021552581783986038356793171723365103188308899397294266059581897156401770007724119670951266701601148941455774218329983741760007267144211578745268310764381227333974663267974210610273037276841545211413820614080437993187194578068245115982160387369923565969299225259353926862420116719701393817421934938735242749404832352174849938655547659804461293499574653484160963568688302180642559970815564790438221327941632973551020005388282087103454488415271467277026161911995915708912572988332938993562232005571143432153951832281925761585891235192684302838421129478363535965502443381778842002250084459082306992658771346029495031218881430729771375226549423553134588841442366496110001641525739787816918871393007891036990284533642893887015799515311906194103573532992539750371955272635461683675312304557071516433407681356726053850067833358892181454564593112969733118059899577805236100529178587055757994056112218568521338941590704277164493253030003249172937832317196850242746941148359961038006627936363141220396845683541783196269388384292029779064827604689956044683318372677073905855029017481334906476294702524782999375963796108239050011074979810953742163717514792766248557522240975032167487725694538974517769231457968446397963605783486137917453103648654518883948106771720575824811958992609149914796130006215102011042427989726174551243137332779870081773528880565599879477697424081613969551208185546705019296966776296047657656959618906341819517908471933975646625489475329701883706302208469367284660388292685899098151898605528561889007020293926439223930392209879396735070339882870085734434210937192887278291038104774207007909675627632344747498989676237382575609264792299989695452571638261308289522304502397512574293285773870260507335451829428318113878055741268996265910541096767221103579589766401027364403046529175115282975087530083472396399748536829731305148298751247385434680855129804013265778969066500653589812447345743135719343382516004600937278265434861796463471137702426332607697192379612559967954245757603274679258378672900824881168858548809520729978292184119782695778527344112806679583899885478539426409387195371043421279465993393887214411090234791879285933552431937514678302701649891737460059107499983857744884854966561409221402061806114950406625435318830663125899680121632746847902733616463981238385072524840934342628139317967368987875376928395439437654618062216404945191889129595097736298590908592718776223239540781424213839898620665911801796359790439891229539969254648879321359856563590006739228848603414136857061568783494161735745269866686881108144706743910715727252875193895658660474540547962430516009205637382641308079857031711574064419846757330011191652367252740853785276339021390266477686002297150399479446695812855464202188686591411643621812228588787751452668088607896477942331298679039875160109204398896456922244616718501164080361383324880513517390386901747696638497745636028731955486143039823611272901744406487808477288174472403353611998833715156484081355816875150962193396854459839046580321795524570331376925303992956938594898447395818699199466901166080466344470631090498228667701446375653749847726115113819001159782965858012674447321080517144142318134774446638463550730610442652546282908278440228711757243944118981992063631377855196415993732735067892660420235048344531482227826299266876818120099757252313257035549651504017431968370954098603007714285446577859618360529068284200337024753310938499731683613936359225076052540044788532102959290206635394837707764579820660374372308368755593194216277527532659806297437639821949058726994885128614155756692716240145636662856700667786595101750344532742386775840634296836064828418689818449924644648236478448778790978227770272868120940829308268123622379002347694229132582227867948858728511491389726167751223889787598207305366659460293987071098024881350117246407466122320686901698320709515160697789926352835973263848333149691146066761466470165313991602729905741120861319228941496097769732342902459105566827714712958467904304989858497267134552672811965480303672067013933757816079789354500292886100971246302561089696783836735091583690919986654260986674645439517306399529292964674548834550172099292619519930693554763440713564634111294772494123666638228619931502025090635644164646720990846179991001250144380564999485634895928549779857190500735284340195303281283702134655318712005148749275682907385100470764232323009199032831953079266746784337676380663147951579716030505902540542535774422616170008487334183996580487861683851862429320074051677200373957584072622037911252376218402590185278938215076051258267257817025011434215378372131684412252830456924841390409075054262329271975292801652970645535570191077158702375225686986047726861235820539861446823113599200784276224608087176819652734886203641366825784005184059487876258265745909648559346612730983399029305505622960405202732808813519766535692643882893889403766362391453455136587918641260328077332341339889279930809583798488719081647420953623701977900395700967581545434339979960158707314809941023408024458026096412118515201817924985059675234014715427137405179587047122382713126604783176087351673924913407393781073362314654951570282376253685295182363988192425073060931575833127988068695385484080867319101419111630295083013645596356395945082183645027410907902583483308663171389405807818641275695332008508629648019434628379596442013238055161191931999907719904911441402014422159589151838768132999382748112501939619610431477015797914974040251569060598248503301757133233796439412738373916131635103541763709415308020142202049366355761420434742825792978516276668330679514925740728853266020418749298620865626866395265829162375812332052081939050873595104530890100231653631554750612028239793627466855071599143420066329520874423982722031258908576288903917577639900062415015880870858462185776904776049326218359201954074435273996213586605824553329061620723874527002523683996776952882199190930906576057068742117800585548967837976016132830315870944389138764811754705369327678511851666211710038290466422250938067001556770272024951491946545569742157633042551466979042190888337926731832682879472652457796943651032680247214908788938479746396015484694359948867711023251846605078054444235974685054986801460658699721313674595811143684438912429895939430304719259558605939952736658696322232313978670295156645509330881369848924408472139624918176113917318987246474411580279253872559287802655329419340583151382999866166695063001189352385265068363786858561424614699158081436310806972489578007779847785728695212681525132019414204491832525315633522019279629844361371686622796189104045437123618429745848223955094809636128292452060065509365483058394565755359214445257278517659471169602476965439558614665754040295276388493779359175672921861387115548637704176008604840909614513135845157071912640812048607916262305807133864400368572781585895907625858173222289500965753903440867282793672887801019717772313888340200617389919833361467212178411436899748687417078729083692908085383985063090562745999846870037371533570910883933492416541968422304779241982051323701172105112054479259965626920767311846487132003264461870536745285252510375255194933815180435789028713827904042504329522891056989160945408551587785291949538532182849786915131995885957630538751723329878194944221734985074999073607585780204627760145757312539213453969794324446102393183501182973702590727871740195868532561725262151722859407720352052860910819354057103184119058987045766984356649053231680983967683181287127483659374775543864015500474816977638857844429017912841907892998035280778727447649455257228141651353406504249349677639474201073889541915216491169917838096300480704601491438441477402617814784958382861796434624904102296763347412190560090203872305480934812573899948238282913210882014640366848561894428746431511027020544598460768054669723006711781826887011066067656547430285514756342827891199328778778259248789820849548769389632289473410516012936680426529319312788543402196057500615622053398361237232758188521521566314793836716036383403468093210625235747694503297190911754443772378877113236456833506794051468779913800120496366341032832074758359115305556551326623322176979532188388486442715812565893990781893735571951128304422855011670471400542971972373206869428178570903679670658460870617457242997183864966189526537246643507490809852371294613272486831936635965368810227024854650076814095421639196755960592571077562613542270782411942107880028130257862882106386413980317932147463955705883205761102247258227157261207900770495457878626978037262017758768249152369337038576586259044962834394117383666434917936900251835813753205578154661728960031